Updated todo
This commit is contained in:
parent
16401f9259
commit
d67d041b21
146
todo.txt
146
todo.txt
|
@ -1,14 +1,5 @@
|
|||
TODO FOLDHAUS
|
||||
|
||||
Pick Up Where You Left Off
|
||||
- In a node, you aren't filling in all the LED lists. Some of them (the outputs) are empty
|
||||
when you reach the pattern proc because theyre outputs.
|
||||
SOLUTION: Probably want to take the led lists out of each set of colors and just pass them in
|
||||
once per data struct.
|
||||
|
||||
|
||||
|
||||
|
||||
Name
|
||||
x lumen lab
|
||||
- Splash screen (like blender) (thisll be fun)
|
||||
|
@ -17,26 +8,13 @@ x lumen lab
|
|||
- - Display on startup
|
||||
|
||||
/Debug
|
||||
x There's an extra tri/quad sometimes when the renderer starts
|
||||
x Something is still happening when I reload a dll, it sometimes has an error.
|
||||
x Fixing the debug system seems to have solved this too. Keep an eye out tho
|
||||
x Make debug scope tracking thread safe - was throwing an error in stringsequal but that stopped.
|
||||
x Keep an eye out.
|
||||
|
||||
Application
|
||||
x File Browsing to load sculptures
|
||||
x Different Memory Layouts
|
||||
- x General Purpose - ideally growable but shouldn't exhibit any size change outside of like 1000x sculptures, for assets etc.
|
||||
- x SACN - growable, in its own memory. This is a central system.
|
||||
- x Sculpture - per scultpure, monolithic memory allocation
|
||||
- x track each sculpture in general purpose memory, linked list
|
||||
- x need to move the assemblies structs back up the list when I remove an earlier one (ie. remove 0, shift 1 to 0, etc.);
|
||||
- More efficient HSV <-> RGB
|
||||
|
||||
x Load/Unload sculptures
|
||||
- x Load Function
|
||||
- x Unload Function
|
||||
- x Call From Interface
|
||||
- - Make sure that we offload unloading until after all jobs are completed. Otherwise they'll try and write
|
||||
- to data that doesn't exist
|
||||
- Save and load a session
|
||||
|
@ -45,19 +23,11 @@ x Load/Unload sculptures
|
|||
- Don't render if the window isn't visible
|
||||
|
||||
Development
|
||||
x Reloadable DLL
|
||||
x Make sure Debug Info Isn't Lost When We Reload the DLL
|
||||
- Fix your scope time tracker to account for threads.
|
||||
- Nest scope times so you can see totals/dig in
|
||||
x Darken the area behind debug text so you can see it.
|
||||
- Log memory allocations
|
||||
|
||||
Data Output
|
||||
x output the data (check but I think we're doing this)
|
||||
x Universe view - pannable grid of universes with labels
|
||||
|
||||
Interface
|
||||
x pattern controls
|
||||
- fullscreen
|
||||
- In world interface elements
|
||||
- - Handles for Patterns
|
||||
|
@ -68,62 +38,22 @@ x pattern controls
|
|||
|
||||
Switch To Nodes
|
||||
x basic node elements
|
||||
- x ports (expected value) (in/out)
|
||||
- x display value
|
||||
- x connections
|
||||
- - evaluation nodes (nodes that we start evaluation from)
|
||||
- - evaluation step (one node at a time)
|
||||
- - process to execute
|
||||
x reflection
|
||||
- x look at struct members and figure out how to draw it (see notes at bottom)
|
||||
- x associate with a process
|
||||
x draw nodes on canvas
|
||||
x interact
|
||||
- x move around
|
||||
- x reconnect
|
||||
- x move connections handles (see casey)
|
||||
- - search nodes by name
|
||||
- - selector node (has a list of connections that it can switch between)
|
||||
- serialize
|
||||
- delete nodes
|
||||
- need a way to add a timer to the nodes system (oscillators)
|
||||
- probably want to build some build-in nodes so they can have custom behavior
|
||||
- - static value: color, float, int etc
|
||||
- - oscillators
|
||||
- - hue range
|
||||
|
||||
|
||||
Patterns
|
||||
x arbitrary assemblies
|
||||
|
||||
x reload at runtime
|
||||
- load patterns from a separate dll
|
||||
x pattern initialization
|
||||
- multiple active patterns
|
||||
- - pattern blending
|
||||
- - only update active patterns
|
||||
- Parameters
|
||||
|
||||
Structure
|
||||
x load structure from a file
|
||||
x generate arbitrary assemblies
|
||||
- multiple assemblies
|
||||
- motion
|
||||
x reasses if control boxes are even a necessary structure
|
||||
|
||||
Renderer
|
||||
x Push Buffer Renderer
|
||||
x Get Headers out of the command structs
|
||||
x Render Text Batch Command
|
||||
x Render Quads Batch Command
|
||||
x vertex buffer
|
||||
x depth sorting
|
||||
- Mouse Picking - point at a led and see info about it
|
||||
x Camera: tumble controls
|
||||
- Camera: pan
|
||||
- Camera: zoom
|
||||
- Camera: leds always face camera
|
||||
|
||||
Resource Management
|
||||
x Manually Load/Unload Textures
|
||||
- TODO: Need to figure out which textures are currently in graphics memory and which need to be resubmitted
|
||||
- Icons
|
||||
|
||||
|
@ -148,75 +78,3 @@ Optimization
|
|||
- probably want to convert as much color functions to use u32 Packed Colors
|
||||
- - Probably want to think about this more. What about supporting different color depths
|
||||
- for different output devices?
|
||||
|
||||
|
||||
|
||||
NOTES
|
||||
|
||||
Reflection for Nodes
|
||||
|
||||
// These used for the reflection system
|
||||
#define CANVAS_STRUCT(name) struct name
|
||||
#define CANVAS_INPUT(type, name) type name
|
||||
#define CANVAS_OUTPUT(type, name) type name
|
||||
|
||||
CANVAS_STRUCT(multiply_data)
|
||||
{
|
||||
CANVAS_INPUT(r32, A);
|
||||
CANVAS_INPUT(r32, B);
|
||||
CANVAS_OUTPUT(r32, C);
|
||||
}
|
||||
|
||||
CANVAS_PROC(multiply_proc)
|
||||
{
|
||||
multiply_data* Data = (multiply_data*)Data;
|
||||
Data->C = Data->A * Data->B;
|
||||
}
|
||||
|
||||
node
|
||||
{
|
||||
InputCount 2
|
||||
node_port_values* Inputs;
|
||||
|
||||
OutputCount 1
|
||||
node_port_values* Outputs;
|
||||
}
|
||||
|
||||
node_port_value
|
||||
{
|
||||
type NodeInputType_r32
|
||||
s32 MemoryOffsetFromHead;
|
||||
s32 DataSize;
|
||||
|
||||
r32 UnconnectedValue;
|
||||
r32* ConnectedValue; // Overrides Unconnected
|
||||
}
|
||||
|
||||
u8* GetValueAddress (node_port_value* Port)
|
||||
{
|
||||
u8* Result = &Port->UnconnectedValue;
|
||||
if (Port->ConnectedValue)
|
||||
{
|
||||
Result = Port->ConnectedValue;
|
||||
}
|
||||
return Result;
|
||||
}
|
||||
|
||||
void UpdateCanvasElement (u8* Data, s32 DataSize, node* Node)
|
||||
{
|
||||
for (s32 i = 0; i < Node->InputCount; i++)
|
||||
{
|
||||
GSMemCopy(GetValueAddress(&Node->Input[i]),
|
||||
Data + Node->Input[i].MemoryOffsetFromHead,
|
||||
Node->Input[i].DataSize);
|
||||
}
|
||||
}
|
||||
|
||||
void InitializeMultiplyNode ()
|
||||
{
|
||||
node Multiply = {};
|
||||
Multiply.InputCount = 2;
|
||||
Alloc Inputs
|
||||
|
||||
Input[0].
|
||||
}
|
Loading…
Reference in New Issue