# Stage 1.7

- Added File to Memory and FastHashMomory
- Add Protection that only one app can exist
- Add a Trace exist Variable as GetTraceRef automatically creates a trace
- Outsource the LI::Rect to its own header
- Add a CurrentScreen func
- Use Rect for uv (to manually set all corners)
- Rect still supports to use vec4 for uv
- Add tex3ds Spritesheet support
- Add T3X Loader to Texture (if single tex)
- Integrate an autounload into Texture as in case of spritesheet the Tex needs to be unloaded manually
- Safe some performance in texture loading by combining the Loops (best thing ive ever found)
- Use the Momory Hash to only render one error icon into the TTF Texture
- Also Try loading the whole 16-Bit range
- Use GPU_A8 format for TTF rendering to save 24Bits per pixel and use the same Rendermode as System Font
- Simplify Quad Command by using modern vec api
- Integrate Text aligning
- Fix FPS displayed twice in Performance overlay
- UI7 DrawList now has its own AST system
  - TODO: do the same layering for the objects as Text uses
- Map Drawcommands with a bool that declares either bottom or top screen was active
- Add first basic Manu functions
- Fix Typos in Theme
- Add a basic UI7 Context Handler

## Extra
- Added JetBrainsMono font in Test app
## Bugs:
- Performance Overlay Freezes 3ds hardware and crashes Citra with Vulkan when System Font is used
- UI7 Menu scrolling is as scruffed as back in RenderD7 0.9.5
This commit is contained in:
2025-01-29 03:14:29 +01:00
parent d55f485b8d
commit 2914f2c8e5
33 changed files with 1198 additions and 211 deletions

View File

@ -32,9 +32,14 @@ SOFTWARE.
namespace PD {
/// @brief Template Class for User Application
class App : public SmartCtor<App> {
class App {
public:
App() = default;
App() {
if (too) {
Error("Only one App can be created at the same time!");
}
too++;
}
~App() = default;
/// @brief Templete function where the user can Init his stuff
@ -50,8 +55,8 @@ class App : public SmartCtor<App> {
/// @brief Function to run the App
/// (int main() {
/// auto app = PD::New<UserApp>();
/// app->Run();
/// UserApp app;
/// app.Run();
/// return 0;
/// })
void Run();
@ -71,5 +76,8 @@ class App : public SmartCtor<App> {
u64 last_time;
float app_time;
float fps;
/// The Only One
static int too;
};
} // namespace PD

10
include/pd/common/io.hpp Normal file
View File

@ -0,0 +1,10 @@
#pragma once
#include <pd/common/common.hpp>
namespace PD {
namespace IO {
std::vector<u8> LoadFile2Mem(const std::string& path);
u32 HashMemory(const std::vector<u8>& data);
} // namespace IO
} // namespace PD

View File

@ -32,6 +32,7 @@ using TraceMap = std::map<std::string, TT::Res::Ref>;
u64 GetTime();
u64 GetNanoTime();
TT::Res::Ref& GetTraceRef(const std::string& id);
bool TraceExist(const std::string& id);
TraceMap& GetTraceMap();
} // namespace Sys
} // namespace PD