diff --git a/modules/renderer/.clang-tidy b/modules/renderer/.clang-tidy new file mode 100644 index 0000000..56f5fef --- /dev/null +++ b/modules/renderer/.clang-tidy @@ -0,0 +1,248 @@ +--- +Checks: "-*, + +performance-unnecessary-value-param, +performance-unnecessary-copy-initialization, +performance-type-promotion-in-math-fn, +performance-trivially-destructible, +performance-noexcept-swap, +performance-noexcept-move-constructor, +performance-noexcept-destructor, +performance-no-int-to-ptr, +performance-no-automatic-move, +performance-move-constructor-init, +performance-move-const-arg, +performance-inefficient-vector-operation, +performance-inefficient-string-concatenation, +performance-inefficient-algorithm, +performance-implicit-conversion-in-loop, +performance-for-range-copy, +performance-faster-string-find, +performance-enum-size, +performance-avoid-endl, + +readability-avoid-const-params-in-decls, +readability-avoid-nested-conditional-operator, +readability-avoid-return-with-void-value, +readability-avoid-unconditional-preprocessor-if, +readability-braces-around-statements, +readability-const-return-type, +readability-container-contains, +readability-container-data-pointdr, +readability-container-size-empty, +readability-delete-null-pointer, +readability-duplicate-include, +readability-else-after-return, +readability-inconsistent-declaration-parameter-name, +readability-isolate-declaration, +readability-make-member-function-const, +readability-misleading-indentation, +readability-misplaced-array-index, +readability-named-parameter, +readability-non-const-parameter, +readability-qualified-auto, +readability-redundant-access-specifiers, +readability-redundant-casting, +readability-redundant-control-flow, +readability-redundant-declaration, +readability-redundant-function-ptr-dereference, +readability-redundant-inline-specifier, +readability-redundant-member-init, +readability-redundant-preprocessor, +readability-redundant-smartptr-get, +readability-redundant-string-cstr, +readability-reference-to-constructed-temporary, +readability-simplify-boolean-expr, +readability-simplify-subscript-expr, +readability-static-accessed-through-instance, +readability-static-definition-in-anonymous-namespace, +readability-string-compare, +readability-suspicious-call-argument, +readability-uniqueptr-delete-release, +readability-use-anyofallof +readability-use-std-min-max, +readability-function-cognitive-complexity +readability-function-size +readability-identifier-naming +readability-identifier-length +readability-magic-numbers + +modernize-avoid-bind, +modernize-avoid-c-arrays, +modernize-concat-nested-namespaces, +modernize-deprecated-headers, +modernize-deprecated-ios-base-aliases, +modernize-loop-convert, +modernize-macro-to-enum, +modernize-make-shared, +modernize-make-unique, +modernize-pass-by-value, +modernize-raw-string-literal, +modernize-redundant-void-arg, +modernize-replace-auto-ptr, +modernize-replace-disallow-copy-and-assign-macro, +modernize-replace-random-shuffle, +modernize-return-braced-init-list, +modernize-shrink-to-fit, +modernize-type-traits, +modernize-unary-static-assert, +modernize-use-auto, +modernize-use-bool-literals, +modernize-use-constraints, +modernize-use-default-member-init, +modernize-use-designated-initializers, +modernize-use-emplace, +modernize-use-equals-default, +modernize-use-equals-delete, +modernize-use-nodiscard, +modernize-use-noexcept, +modernize-use-nullptr, +modernize-use-override, +modernize-use-starts-ends-with, +modernize-use-std-numbers, +modernize-use-std-print, +modernize-use-transparent-functors, +modernize-use-uncaught-exceptions, +modernize-use-using +modernize-min-max-use-initializer-list, + +cppcoreguidelines-avoid-capturing-lambda-coroutines, +cppcoreguidelines-avoid-const-or-ref-data-members, +cppcoreguidelines-avoid-do-while, +cppcoreguidelines-avoid-goto, +cppcoreguidelines-avoid-non-const-global-variables, +cppcoreguidelines-avoid-reference-coroutine-parameters, +cppcoreguidelines-init-variables, +cppcoreguidelines-interfaces-global-init, +cppcoreguidelines-macro-usage, +cppcoreguidelines-misleading-capture-default-by-value, +cppcoreguidelines-missing-std-forward, +cppcoreguidelines-narrowing-conversions, +cppcoreguidelines-no-malloc, +cppcoreguidelines-no-suspend-with-lock, +cppcoreguidelines-owning-memory, +cppcoreguidelines-prefer-member-initializer, +cppcoreguidelines-pro-bounds-array-to-pointer-decay, +cppcoreguidelines-pro-bounds-pointer-arithmetic, +cppcoreguidelines-pro-type-const-cast, +cppcoreguidelines-pro-type-cstyle-cast, +cppcoreguidelines-pro-type-member-init, +cppcoreguidelines-pro-type-reinterpret-cast, +cppcoreguidelines-pro-type-static-cast-downcast, +cppcoreguidelines-pro-type-vararg, +cppcoreguidelines-rvalue-reference-param-not-moved, +cppcoreguidelines-slicing, +cppcoreguidelines-special-member-functions, +cppcoreguidelines-virtual-class-destructor, + +bugprone-argument-comment, +bugprone-assert-side-effect, +bugprone-assignment-in-if-condition, +bugprone-bad-signal-to-kill-thread, +bugprone-bool-pointer-implicit-conversion, +bugprone-branch-clone, +bugprone-casting-through-void, +bugprone-chained-comparison, +bugprone-compare-pointer-to-member-virtual-function, +bugprone-copy-constructor-init, +bugprone-crtp-constructor-accessibility, +bugprone-dangling-handle, +bugprone-empty-catch, +bugprone-exception-escape, +bugprone-fold-init-type, +bugprone-forward-declaration-namespace, +bugprone-forwarding-reference-overload, +bugprone-implicit-widening-of-multiplication-result, +bugprone-inaccurate-erase, +bugprone-inc-dec-in-conditions, +bugprone-incorrect-enable-if, +bugprone-incorrect-roundings, +bugprone-infinite-loop, +bugprone-integer-division, +bugprone-lambda-function-name, +bugprone-macro-parentheses, +bugprone-macro-repeated-side-effects, +bugprone-misplaced-operator-in-strlen-in-alloc, +bugprone-misplaced-pointer-arithmetic-in-alloc, +bugprone-misplaced-widening-cast, +bugprone-move-forwarding-reference, +bugprone-multi-level-implicit-pointer-conversion, +bugprone-multiple-new-in-one-expression, +bugprone-multiple-statement-macro, +bugprone-no-escape, +bugprone-non-zero-enum-to-bool-conversion, +bugprone-not-null-terminated-result, +bugprone-optional-value-conversion, +bugprone-parent-virtual-call, +bugprone-posix-return, +bugprone-redundant-branch-condition, +bugprone-reserved-identifier, +bugprone-return-const-ref-from-parameter, +bugprone-shared-ptr-array-mismatch, +bugprone-signal-handler, +bugprone-signed-char-misuse, +bugprone-sizeof-container, +bugprone-sizeof-expression, +bugprone-spuriously-wake-up-functions, +bugprone-standalone-empty, +bugprone-string-constructor, +bugprone-string-integer-assignment, +bugprone-string-literal-with-embedded-nul, +bugprone-stringview-nullptr, +bugprone-suspicious-enum-usage, +bugprone-suspicious-include, +bugprone-suspicious-memory-comparison, +bugprone-suspicious-memset-usage, +bugprone-suspicious-missing-comma, +bugprone-suspicious-realloc-usage, +bugprone-suspicious-semicolon, +bugprone-suspicious-string-compare, +bugprone-suspicious-stringview-data-usage, +bugprone-swapped-arguments, +bugprone-switch-missing-default-case, +bugprone-terminating-continue, +bugprone-throw-keyword-missing, +bugprone-too-small-loop-variable, +bugprone-unchecked-optional-access, +bugprone-undefined-memory-manipulation, +bugprone-undelegated-constructor, +bugprone-unhandled-exception-at-new, +bugprone-unhandled-self-assignment, +bugprone-unique-ptr-array-mismatch, +bugprone-unsafe-functions, +bugprone-unused-local-non-trivial-variable, +bugprone-unused-raii, +bugprone-unused-return-value, +bugprone-use-after-move, +bugprone-virtual-near-miss, + +concurrency-mt-unsafe, +concurrency-thread-canceltype-asynchronous, + +misc-use-anonymous-namespace, +misc-unused-using-decls, +misc-unused-parameters, +misc-unused-alias-decls, +misc-uniqueptr-reset-release, +misc-unconventional-assign-operator, +misc-throw-by-value-catch-by-reference, +misc-static-assert, +misc-redundant-expression, +misc-non-private-member-variables-in-classes, +misc-non-copyable-objects, +misc-no-recursion, +misc-new-delete-overloads, +misc-misplaced-const, +misc-misleading-identifier, +misc-misleading-bidirectional, +misc-header-include-cycle, +misc-definitions-in-headers, +misc-coroutine-hostile-raii, +misc-const-correctness, + +-hicpp-signed-bitwise, +hicpp-no-assembler, +hicpp-multiway-paths-covered, +hicpp-ignored-remove-result, +hicpp-exception-baseclass, +" diff --git a/modules/renderer/CMakeLists.txt b/modules/renderer/CMakeLists.txt index 9c0fe48..3c978cd 100644 --- a/modules/renderer/CMakeLists.txt +++ b/modules/renderer/CMakeLists.txt @@ -27,10 +27,7 @@ target_link_libraries( renderer PUBLIC camera PUBLIC input - PUBLIC glad PUBLIC logger - PUBLIC opengl::opengl - PUBLIC glfw PUBLIC imgui PUBLIC asset_parser PUBLIC yaml-cpp::yaml-cpp diff --git a/modules/renderer/private/backend.test.cpp b/modules/renderer/private/backend.test.cpp new file mode 100644 index 0000000..406da82 --- /dev/null +++ b/modules/renderer/private/backend.test.cpp @@ -0,0 +1,14 @@ +#include +#include +#include + +using namespace lt; +#include + +using lt::test::Case; +using lt::test::Suite; + +Suite raii = [] { + Case { "happy path won't throw" } = [] { + }; +}; diff --git a/modules/renderer/private/dx/graphics_context.cpp b/modules/renderer/private/dx/graphics_context.cpp index d5bbdec..5a752e3 100644 --- a/modules/renderer/private/dx/graphics_context.cpp +++ b/modules/renderer/private/dx/graphics_context.cpp @@ -7,15 +7,9 @@ #include // required for forward declaratio> #include // required for forward declaratio> -#define GLFW_EXPOSE_NATIVE_WIN32 -#include -#include - namespace lt { -dxGraphicsContext::dxGraphicsContext(GLFWwindow *windowHandle) - : m_window_handle(windowHandle) - , m_debug_interface(nullptr) +dxGraphicsContext::dxGraphicsContext(): m_window_handle(windowHandle), m_debug_interface(nullptr) { // set 'GraphicsAPI'; m_graphics_api = GraphicsAPI::DirectX; @@ -28,7 +22,7 @@ dxGraphicsContext::dxGraphicsContext(GLFWwindow *windowHandle) setup_debug_interface(); } -void dxGraphicsContext::setup_device_and_swap_chain(GLFWwindow *windowHandle) +void dxGraphicsContext::setup_device_and_swap_chain() { auto context = std::static_pointer_cast(m_shared_context); @@ -52,8 +46,7 @@ void dxGraphicsContext::setup_device_and_swap_chain(GLFWwindow *windowHandle) sd.BufferUsage = DXGI_USAGE_RENDER_TARGET_OUTPUT; sd.BufferCount = 1u; - // #todo: don't handle Windows's window with glfw, create it yourself - sd.OutputWindow = static_cast(glfwGetWin32Window(windowHandle)); + sd.OutputWindow = {}; // ... sd.Windowed = true; sd.SwapEffect = DXGI_SWAP_EFFECT_DISCARD; diff --git a/modules/renderer/private/dx/graphics_context.hpp b/modules/renderer/private/dx/graphics_context.hpp index fa9f839..0b57ca7 100644 --- a/modules/renderer/private/dx/graphics_context.hpp +++ b/modules/renderer/private/dx/graphics_context.hpp @@ -4,23 +4,19 @@ #include #include -struct GLFWwindow; - namespace lt { class dxGraphicsContext: public GraphicsContext { public: - dxGraphicsContext(GLFWwindow *windowHandle); + dxGraphicsContext(); virtual void log_debug_data() override; private: - GLFWwindow *m_window_handle; - Microsoft::WRL::ComPtr m_debug_interface; - void setup_device_and_swap_chain(GLFWwindow *windowHandle); + void setup_device_and_swap_chain(); void setup_render_targets(); diff --git a/modules/renderer/private/dx/user_interface.cpp b/modules/renderer/private/dx/user_interface.cpp deleted file mode 100644 index 477aac0..0000000 --- a/modules/renderer/private/dx/user_interface.cpp +++ /dev/null @@ -1,66 +0,0 @@ -#include -#include -#include - -#define GLFW_EXPOSE_NATIVE_WIN32 -#include -#include -#include -#include -#include - -namespace lt { - -void dxUserInterface::platform_implementation( - GLFWwindow *windowHandle, - Ref sharedContext -) -{ - auto &io = ImGui::GetIO(); - auto context = std::dynamic_pointer_cast(sharedContext); - - ImGui_ImplWin32_Init(glfwGetWin32Window(windowHandle)); - ImGui_ImplDX11_Init(context->get_device().Get(), context->get_device_context().Get()); -} - -dxUserInterface::~dxUserInterface() -{ - // #todo: handle this in a better way - auto &io = ImGui::GetIO(); - - if (io.IniFilename == "default_gui_layout.ini") - io.IniFilename = "user_gui_layout.ini"; - - ImGui_ImplDX11_Shutdown(); - ImGui_ImplWin32_Shutdown(); - ImGui::DestroyContext(); -} - -void dxUserInterface::begin() -{ - ImGui_ImplDX11_NewFrame(); - ImGui_ImplWin32_NewFrame(); - ImGui::NewFrame(); -} - -void dxUserInterface::end() -{ - ImGui::Render(); - ImGui_ImplDX11_RenderDrawData(ImGui::GetDrawData()); - - ImGui::UpdatePlatformWindows(); - ImGui::RenderPlatformWindowsDefault(); -} - -void dxUserInterface::log_debug_data() -{ - // #todo: improve - log_inf("________________________________________"); - log_inf("UserInterface::"); - log_inf(" API : ImGui"); - log_inf(" Version: {}", ImGui::GetVersion()); - log_inf(" GraphicsAPI : DirectX"); - log_inf("________________________________________"); -} - -} // namespace lt diff --git a/modules/renderer/private/dx/user_interface.hpp b/modules/renderer/private/dx/user_interface.hpp index f9e29cb..4274900 100644 --- a/modules/renderer/private/dx/user_interface.hpp +++ b/modules/renderer/private/dx/user_interface.hpp @@ -4,8 +4,6 @@ #include #include -struct GLFWwindow; - namespace lt { class dxSharedContext; @@ -17,10 +15,7 @@ public: ~dxUserInterface(); - void platform_implementation( - GLFWwindow *windowHandle, - Ref sharedContext - ) override; + void platform_implementation(Ref sharedContext) override; void begin() override; diff --git a/modules/renderer/private/gl/blender.cpp b/modules/renderer/private/gl/blender.cpp index 25a153d..1316b26 100644 --- a/modules/renderer/private/gl/blender.cpp +++ b/modules/renderer/private/gl/blender.cpp @@ -1,4 +1,3 @@ -#include #include namespace lt { diff --git a/modules/renderer/private/gl/buffers.cpp b/modules/renderer/private/gl/buffers.cpp index 2222357..6ac6125 100644 --- a/modules/renderer/private/gl/buffers.cpp +++ b/modules/renderer/private/gl/buffers.cpp @@ -1,5 +1,4 @@ #include -#include #include #include diff --git a/modules/renderer/private/gl/framebuffers.cpp b/modules/renderer/private/gl/framebuffers.cpp index 68b0574..5be4095 100644 --- a/modules/renderer/private/gl/framebuffers.cpp +++ b/modules/renderer/private/gl/framebuffers.cpp @@ -1,4 +1,3 @@ -#include #include namespace lt { diff --git a/modules/renderer/private/gl/graphics_context.cpp b/modules/renderer/private/gl/graphics_context.cpp index 0caf4d4..5720f47 100644 --- a/modules/renderer/private/gl/graphics_context.cpp +++ b/modules/renderer/private/gl/graphics_context.cpp @@ -1,4 +1,3 @@ -#include #include #include // required for forward declaratio> #include // required for forward declaratio> @@ -6,18 +5,11 @@ #include // required for forward declaratio> #include // required for forward declaratio> -#ifndef STOP_FUCKING_ORDERING_THESE_THE_WRONG_WAY_CLANG_FORMAT____ - #include -#endif - namespace lt { -glGraphicsContext::glGraphicsContext(GLFWwindow *windowHandle): m_window_handle(windowHandle) +glGraphicsContext::glGraphicsContext() { m_graphics_api = GraphicsAPI::OpenGL; - glfwMakeContextCurrent(windowHandle); - ensure(gladLoadGL(glfwGetProcAddress), "Failed to initialize opengl (glad)"); - set_debug_message_callback(); } diff --git a/modules/renderer/private/gl/graphics_context.hpp b/modules/renderer/private/gl/graphics_context.hpp index df25baa..b88dfa1 100644 --- a/modules/renderer/private/gl/graphics_context.hpp +++ b/modules/renderer/private/gl/graphics_context.hpp @@ -3,20 +3,16 @@ #include -struct GLFWwindow; - namespace lt { class glGraphicsContext: public GraphicsContext { public: - glGraphicsContext(GLFWwindow *windowHandle); + glGraphicsContext(); void log_debug_data() override; private: - GLFWwindow *m_window_handle; - void set_debug_message_callback(); }; diff --git a/modules/renderer/private/gl/render_command.cpp b/modules/renderer/private/gl/render_command.cpp index 6722902..95cb6fe 100644 --- a/modules/renderer/private/gl/render_command.cpp +++ b/modules/renderer/private/gl/render_command.cpp @@ -1,18 +1,13 @@ -#include #include -#ifndef DONT_FUCKING_ORDER_THESSE_PLEASE_FOR_THE_LOVE_OF_GOD_CLANG_FORMAT - #include -#endif namespace lt { -glRenderCommand::glRenderCommand(GLFWwindow *windowHandle): m_window_handle(windowHandle) +glRenderCommand::glRenderCommand(): m_window_handle(windowHandle) { } void glRenderCommand::swap_buffers() { - glfwSwapBuffers(m_window_handle); } void glRenderCommand::clear_back_buffer(const math::vec4 &clearColor) diff --git a/modules/renderer/private/gl/render_command.hpp b/modules/renderer/private/gl/render_command.hpp index 86f78a4..6b00bbb 100644 --- a/modules/renderer/private/gl/render_command.hpp +++ b/modules/renderer/private/gl/render_command.hpp @@ -3,14 +3,12 @@ #include #include -struct GLFWwindow; - namespace lt { class glRenderCommand: public RenderCommand { public: - glRenderCommand(GLFWwindow *windowHandle); + glRenderCommand(); void swap_buffers() override; @@ -28,9 +26,6 @@ public: unsigned int width, unsigned int height ) override; - -private: - GLFWwindow *m_window_handle; }; } // namespace lt diff --git a/modules/renderer/private/gl/shader.cpp b/modules/renderer/private/gl/shader.cpp index 2968892..bd1c724 100644 --- a/modules/renderer/private/gl/shader.cpp +++ b/modules/renderer/private/gl/shader.cpp @@ -1,6 +1,4 @@ #include -#include -#include namespace lt { diff --git a/modules/renderer/private/gl/texture.cpp b/modules/renderer/private/gl/texture.cpp index aeb7939..16c6e5d 100644 --- a/modules/renderer/private/gl/texture.cpp +++ b/modules/renderer/private/gl/texture.cpp @@ -1,5 +1,4 @@ #include -#include #include #include diff --git a/modules/renderer/private/gl/user_interface.hpp b/modules/renderer/private/gl/user_interface.hpp index 0a62d68..2a173aa 100644 --- a/modules/renderer/private/gl/user_interface.hpp +++ b/modules/renderer/private/gl/user_interface.hpp @@ -3,8 +3,6 @@ #include -struct GLFWwindow; - namespace lt { class glUserInterface: public UserInterface @@ -14,19 +12,13 @@ public: ~glUserInterface() override; - void platform_implementation( - GLFWwindow *windowHandle, - Ref sharedContext - ) override; + void platform_implementation(Ref sharedContext) override; void begin() override; void end() override; void log_debug_data() override; - -private: - GLFWwindow *m_window_handle {}; }; } // namespace lt diff --git a/modules/renderer/private/gl/vertex_layout.cpp b/modules/renderer/private/gl/vertex_layout.cpp index 08a4fb2..ede17a9 100644 --- a/modules/renderer/private/gl/vertex_layout.cpp +++ b/modules/renderer/private/gl/vertex_layout.cpp @@ -1,4 +1,3 @@ -#include #include #include #include diff --git a/modules/renderer/private/graphics_context.cpp b/modules/renderer/private/graphics_context.cpp index c38b22f..231d158 100644 --- a/modules/renderer/private/graphics_context.cpp +++ b/modules/renderer/private/graphics_context.cpp @@ -12,7 +12,7 @@ GraphicsContext *GraphicsContext::s_context = nullptr; GraphicsContext::~GraphicsContext() = default; -auto GraphicsContext::create(GraphicsAPI api, GLFWwindow *window_handle) -> Scope +auto GraphicsContext::create(GraphicsAPI api) -> Scope { delete s_context; diff --git a/modules/renderer/private/render_command.cpp b/modules/renderer/private/render_command.cpp index 4d69cad..b7d3ad2 100644 --- a/modules/renderer/private/render_command.cpp +++ b/modules/renderer/private/render_command.cpp @@ -11,12 +11,11 @@ namespace lt { -auto RenderCommand::create(GLFWwindow *windowHandle, const Ref & /*sharedContext*/) - -> Scope +auto RenderCommand::create(const Ref & /*sharedContext*/) -> Scope { switch (GraphicsContext::get_graphics_api()) { - case GraphicsAPI::OpenGL: return create_scope(windowHandle); + case GraphicsAPI::OpenGL: return create_scope(); case GraphicsAPI::DirectX: lt_win( diff --git a/modules/renderer/private/renderer.cpp b/modules/renderer/private/renderer.cpp index b17889d..c9e9e5a 100644 --- a/modules/renderer/private/renderer.cpp +++ b/modules/renderer/private/renderer.cpp @@ -16,11 +16,7 @@ namespace lt { Renderer *Renderer::s_context = nullptr; -Renderer::Renderer( - GLFWwindow *window_handle, - const Ref &shared_context, - CreateInfo create_info -) +Renderer::Renderer(const Ref &shared_context, CreateInfo create_info) : m_quad_renderer( create_scope( LT_MAX_QUAD_RENDERER_VERTICES, @@ -66,15 +62,9 @@ Renderer::~Renderer() // NOLINT { } -auto Renderer::create( - GLFWwindow *windowHandle, - Ref sharedContext, - CreateInfo create_info -) -> Scope +auto Renderer::create(Ref sharedContext, CreateInfo create_info) -> Scope { - return make_scope( - new Renderer(windowHandle, std::move(sharedContext), std::move(create_info)) - ); + return make_scope(new Renderer(std::move(sharedContext), std::move(create_info))); } void Renderer::on_window_resize(const WindowResizedEvent &event) diff --git a/modules/renderer/private/system.cpp b/modules/renderer/private/system.cpp index c5f8b65..7f37755 100644 --- a/modules/renderer/private/system.cpp +++ b/modules/renderer/private/system.cpp @@ -6,7 +6,6 @@ namespace lt::renderer { System::System(InitRequirements requirements): m_registry(std::move(requirements.registry)) { ensure(m_registry, "null registry"); - ensure(requirements.glfw_window_handle, "null glfw handle"); } System::~System() = default; diff --git a/modules/renderer/private/system.test.cpp b/modules/renderer/private/system.test.cpp index c08e93a..b2a6075 100644 --- a/modules/renderer/private/system.test.cpp +++ b/modules/renderer/private/system.test.cpp @@ -13,11 +13,8 @@ Suite raii = [] { using lt::test::expect_throw; using renderer::System; - auto *window = static_cast(lt::Window::create([](auto &&PH1) {})->get_handle()); - Case { "happy" } = [=] { std::ignore = System { { - .glfw_window_handle = window, .registry = create_ref(), } }; }; @@ -25,14 +22,12 @@ Suite raii = [] { Case { "unhappy" } = [=] { expect_throw([=] { std::ignore = System { { - .glfw_window_handle = window, .registry = {}, } }; }); expect_throw([=] { std::ignore = System { { - .glfw_window_handle = {}, .registry = create_ref(), } }; }); @@ -42,7 +37,6 @@ Suite raii = [] { for (auto idx : std::views::iota(0, 100'001)) { std::ignore = System { { - .glfw_window_handle = window, .registry = create_ref(), } }; } diff --git a/modules/renderer/public/graphics_context.hpp b/modules/renderer/public/graphics_context.hpp index 75a06f9..b80c01b 100644 --- a/modules/renderer/public/graphics_context.hpp +++ b/modules/renderer/public/graphics_context.hpp @@ -1,7 +1,5 @@ #pragma once -struct GLFWwindow; - namespace lt { class SharedContext; @@ -19,12 +17,7 @@ enum class GraphicsAPI class GraphicsContext { public: - static auto create( - GraphicsAPI api, - GLFWwindow *window_handle - - ) -> Scope; - + static auto create(GraphicsAPI api) -> Scope; GraphicsContext(const GraphicsContext &) = delete; GraphicsContext &operator=(const GraphicsContext &) = delete; diff --git a/modules/renderer/public/render_command.hpp b/modules/renderer/public/render_command.hpp index 8908e3d..b806475 100644 --- a/modules/renderer/public/render_command.hpp +++ b/modules/renderer/public/render_command.hpp @@ -2,8 +2,6 @@ #include -struct GLFWwindow; - namespace lt { class SharedContext; @@ -11,8 +9,7 @@ class SharedContext; class RenderCommand { public: - static auto create(GLFWwindow *windowHandle, const Ref &sharedContext) - -> Scope; + static auto create(const Ref &sharedContext) -> Scope; RenderCommand(const RenderCommand &) = delete; diff --git a/modules/renderer/public/renderer.hpp b/modules/renderer/public/renderer.hpp index 32af2fa..d96d55e 100644 --- a/modules/renderer/public/renderer.hpp +++ b/modules/renderer/public/renderer.hpp @@ -13,8 +13,6 @@ #define LT_MAX_TEXTURE_RENDERER_VERTICES (1028u * 4u) #define LT_MAX_TINTED_TEXTURE_RENDERER_VERTICES (1028u * 4u) -struct GLFWwindow; - namespace lt { class ConstantBuffer; @@ -42,11 +40,7 @@ public: Ref tinted_texture_renderer_shader; }; - static auto create( - GLFWwindow *windowHandle, - Ref sharedContext, - CreateInfo create_info - ) -> Scope; + static auto create(Ref sharedContext, CreateInfo create_info) -> Scope; static void draw_quad( const math::vec3 &position, @@ -134,11 +128,7 @@ private: bool m_should_clear_backbuffer { false }; - Renderer( - GLFWwindow *window_handle, - const Ref &shared_context, - CreateInfo create_info - ); + Renderer(const Ref &shared_context, CreateInfo create_info); void draw_quad_impl( const math::vec3 &position, diff --git a/modules/renderer/public/system.hpp b/modules/renderer/public/system.hpp index db9316f..b4ee95f 100644 --- a/modules/renderer/public/system.hpp +++ b/modules/renderer/public/system.hpp @@ -3,8 +3,6 @@ #include #include -struct GLFWwindow; - namespace lt::renderer { /** The system for putting gore on your display @@ -28,8 +26,6 @@ public: /** The requirements for this system to initialize. */ struct InitRequirements { - GLFWwindow *glfw_window_handle; - Ref registry; }; diff --git a/modules/renderer/public/texture.hpp b/modules/renderer/public/texture.hpp index f6741e8..64bce3d 100644 --- a/modules/renderer/public/texture.hpp +++ b/modules/renderer/public/texture.hpp @@ -3,7 +3,6 @@ namespace Assets { class TextureAsset; - } namespace lt {