WIP: Dev 0.7 rewrite #15

Draft
tobid7 wants to merge 85 commits from dev-0.7-rewrite into stable
Owner
No description provided.
tobid7 self-assigned this 2026-09-06 15:44:20 +02:00
tobid7 started working 2026-09-06 15:46:20 +02:00
tobid7 worked for 3 seconds 2026-09-06 15:46:23 +02:00
tobid7 added 85 commits 2026-09-06 15:58:48 +02:00
- remove everyting
- keep core
-rename bit_utils to bits
- add formatter for  color
- add float getters to color
- start with new drivers api
- Add a GfxDriver config Template to be able to modify settings like allocators / Types for specific Drivers
- Add glad
- Add gfx_test
- add texture loading to GfxOpenGL
- add full submit code
- add debug logging
- add construct and destroy functionality to Pool
- add command functionality
- add vertex and index pools to lithium (static and not threadsafe yet)
- Update GfxDriver Matrix with SetViewPort
- Add glfw (only dependency of gfx_test) maybe later required for input driver
- Renamed GfxOpenGL to GfxOPenGL2
- Added GfxOpenGL3 backend for OpenGL 3.3+
- Added WIP DirectX9 backend
- Added structure for Citro3D
- Added linear Allocator
- Track textures (not sure if this is done tbh)
- Add lithium formatters and move TextureID, TextureFormat and TextureFilter to lithium
- Only include gl-helper if any glDriver is included
- Add Li::Rect for UV stuff
- Add Li::Texture as Info holder (still thinking of making them to ptrs
- Add Check if textures are still loaded on exit
- Make OpenGL2 and OpenGL3 use the same base shaders (using SpirvHelper)
- Add Transpose func to Mat4
- remove glslang from pd-system
- use spirv blobs instead of glsl 460
- Use Legacy shaders for OpenGL2 backend
- add devnotes
- Add Pool iterator support
- Add Pool Expandability
- Add Pool::Push
- Add Lithium Maths API
- Remove InitPools
- update spirv-helper
- Add ResetFast to Pool using c++20 concept
- Add Put function to Pool
- Use Pool Index instead of pointers in Command
- Add accessor to Li Pools to prevent wrong command usage
- Add Command Formatter
- Use ResetFast for all Pools
- Add Reset func to Li::Vertex (for ResetFast)
- Add Pool Expandor and Put funcs to Lithium pools
- Add getters for GfxDriverBase to PD::Li Pools
- Added renderspace
- Revision System (to not always update pRenderspace
- added some test scene
- MSVC requires cmake for Windows
- mingw only builds when GLSLANG is excluded due to wrong header generation
- Added container
- Made container the base of Layout
- Set Containers theirself as pParent for Elements on Push
- Text now requires a font and is able to take an individual scale
- Container requires &ref for Elements to make sure they always exist
- SetViewport now sets the canvas as well
- SetBaseViewport Sets the Virtual Canvas Size
- Layout Now requires a Drawlist reference in Render function
- main.cpp: updated the template
- Add point InSpace check to PD::Li::Math
- Add Universal AlignmentCenter flag for Horizontal and and Vertical Alignment
-  Add Fallbackfont to Layout (if you dont want to set font per object)
- Add Button Object WIP
- Rename OnHover to OnFocus and add OnUnfocus
- Move font and FontScale to ElementBase (for fallback logic etc)
- Add UpdateInput func to ElementBase
- Corectly Set fontScale in Text Rendering
- Update ecample
- Add WIP HidNX Driver (clangd not working with devkitpro for switch on windows)
- Add default-release as default search path for compile_commands.json
- remove mingw preset (casue its exactly the default target)
- Move Mouse pos cycle into HidDriver::Update
- Test around with HidGlfw on Nintendo switch
- Fix Os::GetTimeNano()
- only build tests on non vendored usage
prevents double copy problems
saves memory
(needs to be optimized...)
took me about a full week to get something to render again withour shared_ptrs
as of now this is very unstable, untested and lacking a lot of features due to lithium is lacking the base for that
Added JetBrainsMono font as debug font for the metrics
Throw OneFrame living objs into a pool
why?
cause sorting around the global driver pool would basically use more cpu power then just copy data sequences into the right order
And sorting data references costs 0 performance at all
Scrolling was hardcoded to 3ds sCrEeNhEiGhT wTh
tobid7 force-pushed dev-0.7-rewrite from 7e0f3a6bf6 to 39e91b588f 2026-09-06 15:58:48 +02:00 Compare
This pull request has changes conflicting with the target branch.
  • backends/include/pd_system/gfx_citro3d.hpp
  • backends/include/pd_system/gfx_directx9.hpp
  • backends/include/pd_system/gfx_opengl2.hpp
  • backends/include/pd_system/gfx_opengl3.hpp
  • backends/source/gfx_citro3d.cpp
  • backends/source/gfx_directx9.cpp
  • backends/source/gfx_opengl2.cpp
  • backends/source/gfx_opengl3.cpp
  • include/pd/drivers/gfx.hpp
  • include/pd/lithium/command.hpp
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin dev-0.7-rewrite:dev-0.7-rewrite
git checkout dev-0.7-rewrite
Sign in to join this conversation.