Project stuff: --------------- * Select project * Create project * "Bundles" (i.e. scripts + shaders) w/ import/export Capabilities: -------------- * Compute shaders * Mostly done, need barriers * Buffers & instancing * Only one triangle for fullscreen Compiler / emulator: --------------------- * Spill values in the FPU stack runs out * More checks in the execution engine * Check for overrides on the same inputs when setting things up * Aliases * Display errors in UI * Shader paths relative to scripts (will require different way of handling libraries) Optimizer: ----------- * Dead code elimination * Unused arguments * Dead store: call arguments * Unused functions * Unused inputs * Common subexpressions * Strength reduction * Loop-invariant code motion (esp. uniforms and var defs) * Sampler re-use * (Output only) Texture / framebuffer re-use * Code clean-up Sequencer: ----------- * Mouse controls for overrides * Zoom level is mostly useless, fix it * Save/restore sets of tracks * Edition buttons in toolbar * Multiple points selection * Moving tracks * Moving segments * Add curve display * CLEAN UP THAT FUCKING SPAGHETTI MESS! Synth: ------- * Node editor * Synth blocks * Mixer * Oscillators * Noise generators * Enveloppes * Filters * Delay buffers * Panning * Gain * Distortion * Synth code generator UI: ---- * General overhaul (e.g. use tabs) * Color grading controls: * White balance control in components tab * Don't reset when hitting value or saturation 0 * Camera * Control for up vector - check if something more appropriate exists? * Vector controls are too sensitive * Build configurations (requires tabs) * Moar keyboard shortcuts! Producing output: ------------------ * We need the synth done first. General idea: 1/ Generate assembly code for the init and main loop 2/ Generate executable 3/ Start working on Frankencoding