diff --git a/CppGame/CppGame.vcxproj b/CppGame/CppGame.vcxproj index 1902758..354638b 100644 --- a/CppGame/CppGame.vcxproj +++ b/CppGame/CppGame.vcxproj @@ -118,7 +118,7 @@ Console true - libs\lib\x64;%(AdditionalLibraryDirectories) + lds\lib64;%(AdditionalLibraryDirectories) SDL3.lib;%(AdditionalDependencies) @@ -145,11 +145,13 @@ + + diff --git a/CppGame/CppGame.vcxproj.filters b/CppGame/CppGame.vcxproj.filters index 61864fd..da8821d 100644 --- a/CppGame/CppGame.vcxproj.filters +++ b/CppGame/CppGame.vcxproj.filters @@ -21,5 +21,22 @@ Header Files + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + \ No newline at end of file diff --git a/CppGame/Renderer.cpp b/CppGame/Renderer.cpp index 91768e8..17de220 100644 --- a/CppGame/Renderer.cpp +++ b/CppGame/Renderer.cpp @@ -1,8 +1,9 @@ #include "Renderer.h" #include "Variant.h" +#include void Rena3D_Renderer::InitTree() { - + std::cout << "tree inited!" << std::endl; } void Rena3D_Renderer::RenderFrame(r3d_Variant::RenderTime timeSignature) { diff --git a/CppGame/Variant.h b/CppGame/Variant.h index b9a6847..e4252f1 100644 --- a/CppGame/Variant.h +++ b/CppGame/Variant.h @@ -1,6 +1,8 @@ #pragma once +#include struct r3d_Variant { using RenderTime = double; using NotificationSignal = unsigned int; + using String = std::string; }; \ No newline at end of file diff --git a/CppGame/transl.cpp b/CppGame/transl.cpp new file mode 100644 index 0000000..4582944 --- /dev/null +++ b/CppGame/transl.cpp @@ -0,0 +1,7 @@ +#include "transl.h" +#include "Variant.h" + +void Translator::RegisterNewLanguage(r3d_Variant::String name) { + std::unordered_map newLanguage; + languages.insert({ name, newLanguage }); +} \ No newline at end of file diff --git a/CppGame/transl.h b/CppGame/transl.h new file mode 100644 index 0000000..6e2230f --- /dev/null +++ b/CppGame/transl.h @@ -0,0 +1,16 @@ +#pragma once +#define PREPROC_TRANSLATOR_ENABLE +#define PREPROC_TRANSLATOR_LANG "EN_US" +#include "Variant.h" +#include +#include + + +class Translator { +public: + std::unordered_map> languages; + r3d_Variant::String GetTransString(r3d_Variant::String key); + void RegisterTranslatableObject(r3d_Variant::String key, r3d_Variant::String language, r3d_Variant::String value); + void RegisterNewLanguage(r3d_Variant::String name); +}; + diff --git a/CppGame/type.h b/CppGame/type.h index 8b7aff8..9609f1a 100644 --- a/CppGame/type.h +++ b/CppGame/type.h @@ -16,5 +16,6 @@ struct Types { using uint_32 = unsigned int; using vec2 = _v2; using BOOLEAN = bool; + }; diff --git a/CppGame/window.cpp b/CppGame/window.cpp index beced89..194ba20 100644 --- a/CppGame/window.cpp +++ b/CppGame/window.cpp @@ -4,9 +4,12 @@ #include static SDL_Window* window = NULL; static SDL_Renderer* renderer = NULL; -static Types::vec2 windowDimensions(1366, 768); +static Types::vec2 windowDimensions(800, 600); static Rena3D_Renderer r3dgpu; +Uint64 lastTime = SDL_GetPerformanceCounter(); +r3d_Variant::RenderTime deltaTime = 0.0; + int main(Types::uint_32 argc, char* argv) { if (!SDL_Init(SDL_INIT_VIDEO)) { std::cerr << "cannot init sdl window: " << SDL_GetError() << std::endl; @@ -45,10 +48,20 @@ int main(Types::uint_32 argc, char* argv) { } } + Uint64 curTime = SDL_GetPerformanceCounter(); + + deltaTime = (r3d_Variant::RenderTime)(curTime - lastTime) / (r3d_Variant::RenderTime)SDL_GetPerformanceFrequency(); + SDL_SetRenderDrawColor(renderer, 0, 0, 0, 255); SDL_RenderClear(renderer); - r3dgpu.RenderFrame(0); + lastTime = curTime; + + if (deltaTime > 0.1) { + deltaTime = 0.1; + } + + r3dgpu.RenderFrame(deltaTime); SDL_RenderPresent(renderer); }