Updated todo
This commit is contained in:
parent
16401f9259
commit
d67d041b21
146
todo.txt
146
todo.txt
|
@ -1,14 +1,5 @@
|
||||||
TODO FOLDHAUS
|
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
|
Name
|
||||||
x lumen lab
|
x lumen lab
|
||||||
- Splash screen (like blender) (thisll be fun)
|
- Splash screen (like blender) (thisll be fun)
|
||||||
|
@ -17,26 +8,13 @@ x lumen lab
|
||||||
- - Display on startup
|
- - Display on startup
|
||||||
|
|
||||||
/Debug
|
/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 Make debug scope tracking thread safe - was throwing an error in stringsequal but that stopped.
|
||||||
x Keep an eye out.
|
x Keep an eye out.
|
||||||
|
|
||||||
Application
|
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
|
- More efficient HSV <-> RGB
|
||||||
|
|
||||||
x Load/Unload sculptures
|
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
|
- - Make sure that we offload unloading until after all jobs are completed. Otherwise they'll try and write
|
||||||
- to data that doesn't exist
|
- to data that doesn't exist
|
||||||
- Save and load a session
|
- Save and load a session
|
||||||
|
@ -45,19 +23,11 @@ x Load/Unload sculptures
|
||||||
- Don't render if the window isn't visible
|
- Don't render if the window isn't visible
|
||||||
|
|
||||||
Development
|
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.
|
- Fix your scope time tracker to account for threads.
|
||||||
- Nest scope times so you can see totals/dig in
|
- 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
|
- 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
|
Interface
|
||||||
x pattern controls
|
|
||||||
- fullscreen
|
- fullscreen
|
||||||
- In world interface elements
|
- In world interface elements
|
||||||
- - Handles for Patterns
|
- - Handles for Patterns
|
||||||
|
@ -68,62 +38,22 @@ x pattern controls
|
||||||
|
|
||||||
Switch To Nodes
|
Switch To Nodes
|
||||||
x basic node elements
|
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)
|
- - evaluation step (one node at a time)
|
||||||
- - process to execute
|
- - search nodes by name
|
||||||
x reflection
|
- - selector node (has a list of connections that it can switch between)
|
||||||
- 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)
|
|
||||||
- serialize
|
- serialize
|
||||||
- delete nodes
|
- 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
|
Structure
|
||||||
x load structure from a file
|
|
||||||
x generate arbitrary assemblies
|
|
||||||
- multiple assemblies
|
|
||||||
- motion
|
- motion
|
||||||
x reasses if control boxes are even a necessary structure
|
|
||||||
|
|
||||||
Renderer
|
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
|
- Mouse Picking - point at a led and see info about it
|
||||||
x Camera: tumble controls
|
|
||||||
- Camera: pan
|
- Camera: pan
|
||||||
- Camera: zoom
|
- Camera: zoom
|
||||||
- Camera: leds always face camera
|
- Camera: leds always face camera
|
||||||
|
|
||||||
Resource Management
|
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
|
- TODO: Need to figure out which textures are currently in graphics memory and which need to be resubmitted
|
||||||
- Icons
|
- Icons
|
||||||
|
|
||||||
|
@ -148,75 +78,3 @@ Optimization
|
||||||
- probably want to convert as much color functions to use u32 Packed Colors
|
- 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
|
- - Probably want to think about this more. What about supporting different color depths
|
||||||
- for different output devices?
|
- 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