Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upcoming changes for version 0.1.4 #4

Merged
merged 126 commits into from
Sep 7, 2024
Merged
Changes from 1 commit
Commits
Show all changes
126 commits
Select commit Hold shift + click to select a range
7d52972
Remove file to be able to rename it.
linuscu Aug 6, 2024
2fd60f5
Integrate platform definitions. Some clean up.
linuscu Aug 7, 2024
78d5ce3
Merge branch 'version-0.1.4' of github.com:lnd3/ltools into version-0…
linuscu Aug 7, 2024
4a251d4
Add linux platform specifics.
linuscu Aug 7, 2024
b77143c
Move platform code.
linuscu Aug 7, 2024
7304270
Readd ldeps.
linuscu Aug 7, 2024
019a18d
Clean out linux platform code for now.
linuscu Aug 7, 2024
82099b5
Fix linux platform errors.
linuscu Aug 7, 2024
d3dd370
Upgrade cmake min version. Move linux platform file.
linuscu Aug 7, 2024
934a8f2
Update ldeps.
linuscu Aug 7, 2024
bcfa361
Add linux platform source.
linuscu Aug 7, 2024
239905a
Skip some auto types in ecs to make intellisense work.
linuscu Aug 7, 2024
914f0f6
Fix initialization.
linuscu Aug 7, 2024
afd17f7
Fix some edge cases with utc time parsing.
linuscu Aug 7, 2024
0063b13
Update ldeps.
linuscu Aug 8, 2024
2923ac4
Fix unintended implicit type conversion.
linuscu Aug 9, 2024
cb2342a
Return data when no filter is applied.
linuscu Aug 12, 2024
b1b47ea
Rename graphnode to nodegraph everywhere.
linuscu Aug 14, 2024
61e5877
Update node graph test.
linuscu Aug 14, 2024
5acbb9c
Add optional new frame function for the imgui integration code.
linuscu Aug 15, 2024
8573047
Add ui container.
linuscu Aug 18, 2024
b6fb8ce
Add an empty ui container test.
linuscu Aug 18, 2024
919a33d
Fix resize hover feedback.
linuscu Aug 18, 2024
fb01bc5
Fix some gnu warnings.
linuscu Aug 18, 2024
7fa43a3
Add missing files.
linuscu Aug 18, 2024
8465189
Rearrange members.
linuscu Aug 18, 2024
19a033f
Fix warning.
linuscu Aug 18, 2024
00d69bf
Refactor time and date conversions.
linuscu Aug 19, 2024
47ae130
Small update to name changes.
linuscu Aug 19, 2024
df5b56b
Some minor fixes after the time string refactor.
linuscu Aug 19, 2024
50ab886
Fix an issue with put_time expecting non adjusted tm struct.
linuscu Aug 19, 2024
c76822e
Few fixes.
linuscu Aug 19, 2024
502d112
Remove unreliable test. Don't depend on local time zones.
linuscu Aug 19, 2024
f4ba16b
Fix a few things with uicontainer.
linuscu Aug 20, 2024
85fea86
More changes for ui container. A fix for a linux warning.
linuscu Aug 20, 2024
039ed01
Add ui split container.
linuscu Aug 20, 2024
e00139d
Add more rendering options to ui container and a active check for vis…
linuscu Aug 21, 2024
e995d5d
Prepare for better container traversal.
linuscu Aug 21, 2024
5d7eedc
Fix warnings.
linuscu Aug 21, 2024
f9867e8
Add uisplit and uilayout containers.
linuscu Aug 21, 2024
2165df5
Add container text rendering and debug name rendering.
linuscu Aug 21, 2024
2d5bcde
Add a ui creator for easy ui creation.
linuscu Aug 21, 2024
e439b84
Add debug rendering. Add a layout and alignment config to all contain…
linuscu Aug 21, 2024
34cd864
Introduce layout config for auto sizing to parent size.
linuscu Aug 22, 2024
5a5d2ff
Add config for depth first or breadth first. Fix scaling for texts. F…
linuscu Aug 22, 2024
06905ab
Clean up.
linuscu Aug 22, 2024
de578f2
Massaging the code.
linuscu Aug 23, 2024
4c99ba2
Add ui links for connecting container input and output.
linuscu Aug 23, 2024
f458500
Add ui link disconnect logic.
linuscu Aug 23, 2024
23b2da2
Fix a scaling issue.
linuscu Aug 23, 2024
e0a8d4d
Simplify some things in ui container implementation.
linuscu Aug 24, 2024
0ca5e18
Remove container area from visitor interface as it now comes from the…
linuscu Aug 24, 2024
dcd76be
Also remove the container area for the tree search since it is now in…
linuscu Aug 24, 2024
9c84f84
Rename.
linuscu Aug 24, 2024
feb706f
Clean out useless stuff.
linuscu Aug 24, 2024
0db9778
Fix some issues.
linuscu Aug 24, 2024
28d64f1
Name refactor. Fix curve scale.
linuscu Aug 25, 2024
2d5827f
Add handler functionality for connecting ui containers to be able to …
linuscu Aug 26, 2024
e9cb522
Fix init order.
linuscu Aug 26, 2024
512a146
Make both node graph and ui container work with id's and channels to …
linuscu Aug 26, 2024
f292d0b
Fix a misunderstanding with input nodes in groups as their output are…
linuscu Aug 26, 2024
d46b1da
Add getter.
linuscu Aug 27, 2024
9246617
Add default node io names and functions to set custom io names.
linuscu Aug 27, 2024
1fa2c23
Have a name identifier for a node be defined by its operation.
linuscu Aug 27, 2024
464222f
Fix warnings.
linuscu Aug 27, 2024
5a7f38b
Move creation stuff to new node graph schema.
linuscu Aug 27, 2024
ac65c6a
Move node graph to its separate package.
linuscu Aug 27, 2024
782a70c
Move more code into ui visitors.
linuscu Aug 27, 2024
61c17de
Clean up.
linuscu Aug 27, 2024
3643be2
Add nodegraph to standalone project deps.
linuscu Aug 27, 2024
644dece
Add pointer popup window callback.
linuscu Aug 28, 2024
cede21d
Clean up.
linuscu Aug 28, 2024
f94b771
Add a node editor.
linuscu Aug 28, 2024
0c22b7f
Improve node type register.
linuscu Aug 28, 2024
527db03
Some improvements.
linuscu Aug 28, 2024
a4977fb
Add a selection visitor with ui container delete.
linuscu Aug 28, 2024
5aeae2d
Propagate removal of ui nodes into the node graph.
linuscu Aug 28, 2024
90cbc50
Fix warning.
linuscu Aug 28, 2024
3df99bf
Add constants nodes and a sine generator. Fix some bugs and hook in n…
linuscu Aug 29, 2024
8462c35
Fix warnings.
linuscu Aug 29, 2024
05d127c
Fix some bugs.
linuscu Aug 29, 2024
d87aba5
Add a edit visitor for editing value. Fixed a notification issue. Onl…
linuscu Aug 29, 2024
6d67821
Add a human interface device package for structured keyboard input et…
linuscu Aug 31, 2024
04e9999
Fix warnings. Fix node graph test.
linuscu Aug 31, 2024
3eee470
Fix some errors and warnings.
linuscu Aug 31, 2024
07e2571
Move code to cpp file.
linuscu Aug 31, 2024
977ecfc
Fix sine source.
linuscu Aug 31, 2024
fffb862
Add audio package for miniaudio.
linuscu Aug 31, 2024
a84f531
Some cmake config changes.
linuscu Sep 1, 2024
84ed168
Ignore warnings.
linuscu Sep 1, 2024
04fb2dd
Small audio test.
linuscu Sep 1, 2024
199314a
Start using external libraries specifically to avoid multiple linking…
linuscu Sep 1, 2024
c1cba7a
Remove msvc pragmas.
linuscu Sep 1, 2024
777ebd4
Update ldeps.
linuscu Sep 1, 2024
0024982
Update deps.
linuscu Sep 1, 2024
c526257
Ifdef miniaudio code for now.
linuscu Sep 1, 2024
2afef65
Update ldeps.
linuscu Sep 1, 2024
da9f8f7
Add audio package with port audio integration.
linuscu Sep 1, 2024
f76067e
Rename.
linuscu Sep 1, 2024
4f64cfb
Update ldeps.
linuscu Sep 1, 2024
55aa948
Add port audio to relevant packages since both audio, node graph and …
linuscu Sep 2, 2024
3f8fd53
Fixed some bugs.
linuscu Sep 2, 2024
d60971a
In node groups add the output node to the list of group content becau…
linuscu Sep 2, 2024
0f1b619
Add reverb.
linuscu Sep 2, 2024
b2dad74
Fix a few issues with group connections. Add another reverb. Add a en…
linuscu Sep 3, 2024
4d813c0
Readd previous reverb.
linuscu Sep 3, 2024
9df7efe
Fix lp filter and test.
linuscu Sep 3, 2024
9c8e24b
Add math package and move some files from physics into it. Refactor d…
linuscu Sep 4, 2024
76b142d
Fix input bounds and clamp on get input. Fix all node operations. Tid…
linuscu Sep 4, 2024
48d96ed
Fix build errors.
linuscu Sep 4, 2024
a15566f
Add more node types for audio processing.
linuscu Sep 4, 2024
d8a4bd2
Prepare for batching. Fix math functions. Add limiter to speaker outp…
linuscu Sep 4, 2024
bd9e25b
Fix an issue with recurring tick being called on the same tick due to…
linuscu Sep 4, 2024
622f512
Fix parameter order. Data first, params last.
linuscu Sep 4, 2024
6162ff4
Pretty up.
linuscu Sep 4, 2024
deaf63e
Fix the sine generators.
linuscu Sep 5, 2024
123ae2d
Fix some constants.
linuscu Sep 5, 2024
92592ec
Fix error.
linuscu Sep 5, 2024
54430fb
Add plot output node.
linuscu Sep 6, 2024
a1619cc
Move midi code to hid package and implement platform independent code…
linuscu Sep 6, 2024
0be7680
Fix warnings.
linuscu Sep 6, 2024
9afb124
fix warnings.
linuscu Sep 6, 2024
c6e7456
Add midi keyboard and midi knob nodes. Fix some issues.
linuscu Sep 7, 2024
7af6e51
Fix null deref.
linuscu Sep 7, 2024
692922c
Fix audio volume in audio test.
linuscu Sep 7, 2024
0252974
Clean up.
linuscu Sep 7, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Simplify some things in ui container implementation.
  • Loading branch information
linuscu committed Aug 24, 2024
commit e0a8d4d6ca44355aa0f8e24c87fec9b480dad296
10 changes: 4 additions & 6 deletions packages/rendering/include/rendering/ui/UIContainer.h
Original file line number Diff line number Diff line change
@@ -56,10 +56,8 @@ namespace l::ui {
};

enum class UITraversalMode {
AllDFS = 0, // when a visitor performs an action on all containers of its type for example rendering (visiting leaves first)
AllBFS = 1, // when a visitor performs an action on all containers starting with the root (visiting leaves last)
Once = 2, // when a visitor performs an action on one container of its type for example resizing
Twice = 3, // when a visitor performs an action on two containers of its type for example drag and drop actions like connecting input/output between two containers
DFS = 0, // Depth first search, leaves first, root last
BFS = 1, // Breadth first search, root first, leaves last
};

struct UIRenderData {
@@ -270,8 +268,8 @@ namespace l::ui {
}
virtual ~UIContainer() = default;

bool Accept(UIVisitor& visitor, const InputState& input, UITraversalMode mode = UITraversalMode::AllBFS);
virtual bool Accept(UIVisitor& visitor, const InputState& input, const ContainerArea& contentArea, UITraversalMode mode = UITraversalMode::AllBFS);
bool Accept(UIVisitor& visitor, const InputState& input, UITraversalMode mode = UITraversalMode::BFS);
virtual bool Accept(UIVisitor& visitor, const InputState& input, const ContainerArea& contentArea, UITraversalMode mode = UITraversalMode::BFS);
virtual void Add(UIContainer* container, int32_t i = -1);

template<class T>
24 changes: 12 additions & 12 deletions packages/rendering/source/common/ui/UIContainer.cpp
Original file line number Diff line number Diff line change
@@ -230,8 +230,10 @@ namespace l::ui {
}
}

if (mode == UITraversalMode::AllBFS && visitor.Active(*this, input)) {
visitor.Visit(*this, input, contentArea);
if (mode == UITraversalMode::BFS && visitor.Active(*this, input)) {
if (visitor.Visit(*this, input, contentArea)) {
return true;
}
}

size_t i = 0;
@@ -251,14 +253,12 @@ namespace l::ui {
}

if (content->Accept(visitor, input, mContentAreas.at(i), mode)) {
if (mode == UITraversalMode::Once) {
return true;
}
return true;
}
i++;
}

if ((mode == UITraversalMode::AllDFS || mode == UITraversalMode::Once || mode == UITraversalMode::Twice) && visitor.Active(*this, input)) {
if (mode == UITraversalMode::DFS && visitor.Active(*this, input)) {
return visitor.Visit(*this, input, contentArea);
}
return false;
@@ -314,8 +314,10 @@ namespace l::ui {
}
}

if (mode == UITraversalMode::AllBFS && visitor.Active(*this, input)) {
visitor.Visit(*this, input, contentArea);
if (mode == UITraversalMode::BFS && visitor.Active(*this, input)) {
if (visitor.Visit(*this, input, contentArea)) {
return true;
}
}

size_t i = 0;
@@ -327,9 +329,7 @@ namespace l::ui {
}

if (content->Accept(visitor, input, mContentAreas.at(i), mode)) {
if (mode == UITraversalMode::Once) {
return true;
}
return true;
}

if (visitor.ShouldUpdateContainer()) {
@@ -355,7 +355,7 @@ namespace l::ui {
i++;
}

if ((mode == UITraversalMode::AllDFS || mode == UITraversalMode::Once || mode == UITraversalMode::Twice) && visitor.Active(*this, input)) {
if ((mode == UITraversalMode::DFS) && visitor.Active(*this, input)) {
return visitor.Visit(*this, input, contentArea);
}
return false;