From e050dce79b67ae6386240567a994454711ab998d Mon Sep 17 00:00:00 2001 From: hachem Date: Thu, 14 Aug 2025 00:42:05 +0200 Subject: [add]: Custom memory managers and fix includes --- src/Platform/OpenGL/OpenGLRendererAPI.cpp | 8 ++++---- src/Platform/OpenGL/OpenGLRendererAPI.h | 6 +++++- src/Platform/OpenGL/OpenGLShader.cpp | 2 ++ src/Platform/OpenGL/OpenGLShader.h | 1 + src/Platform/OpenGL/OpenGLTexture.cpp | 5 ++--- src/Platform/OpenGL/OpenGLTexture.h | 2 ++ src/Platform/OpenGL/OpenGLVertexArray.cpp | 5 +++-- src/Platform/OpenGL/OpenGLVertexArray.h | 15 ++++++++------- src/Platform/Vulkan/VulkanRendererAPI.cpp | 2 +- src/Platform/Vulkan/VulkanRendererAPI.h | 3 ++- src/Platform/Vulkan/VulkanVertexArray.cpp | 4 ++-- src/Platform/Vulkan/VulkanVertexArray.h | 13 +++++++------ 12 files changed, 39 insertions(+), 27 deletions(-) (limited to 'src/Platform') diff --git a/src/Platform/OpenGL/OpenGLRendererAPI.cpp b/src/Platform/OpenGL/OpenGLRendererAPI.cpp index 7957fa0..3c49144 100644 --- a/src/Platform/OpenGL/OpenGLRendererAPI.cpp +++ b/src/Platform/OpenGL/OpenGLRendererAPI.cpp @@ -1,7 +1,7 @@ #include "OpenGLRendererAPI.h" + #include #include -#include namespace Donut { @@ -9,13 +9,13 @@ namespace Donut { if (!glfwGetCurrentContext()) { - std::cout << "No OpenGL context is current! Cannot initialize GLAD." << std::endl; + DONUT_ERROR("No OpenGL context is current! Cannot initialize GLAD."); return; } if (!gladLoadGLLoader((GLADloadproc)glfwGetProcAddress)) { - std::cout << "Failed to initialize GLAD!" << std::endl; + DONUT_ERROR("Failed to initialize GLAD!"); return; } @@ -61,7 +61,7 @@ namespace Donut glDisable(GL_CULL_FACE); } - void OpenGLRendererAPI::DrawIndexed(const std::shared_ptr& vertexArray, uint32_t indexCount) + void OpenGLRendererAPI::DrawIndexed(const Ref& vertexArray, uint32_t indexCount) { uint32_t count = indexCount ? indexCount : vertexArray->GetIndexBuffer()->GetCount(); glDrawElements(GL_TRIANGLES, count, GL_UNSIGNED_INT, nullptr); diff --git a/src/Platform/OpenGL/OpenGLRendererAPI.h b/src/Platform/OpenGL/OpenGLRendererAPI.h index 8211504..97e508b 100644 --- a/src/Platform/OpenGL/OpenGLRendererAPI.h +++ b/src/Platform/OpenGL/OpenGLRendererAPI.h @@ -1,6 +1,10 @@ #pragma once +#include "Core/Memory.h" +#include "Core/Log.h" + #include "Rendering/Renderer.h" + #include namespace Donut @@ -17,7 +21,7 @@ namespace Donut virtual void EnableDepthTest() override; virtual void SetFaceCulling(bool enabled) override; - virtual void DrawIndexed(const std::shared_ptr& vertexArray, + virtual void DrawIndexed(const Ref& vertexArray, uint32_t indexCount = 0) override; }; }; diff --git a/src/Platform/OpenGL/OpenGLShader.cpp b/src/Platform/OpenGL/OpenGLShader.cpp index b24e158..b163cde 100644 --- a/src/Platform/OpenGL/OpenGLShader.cpp +++ b/src/Platform/OpenGL/OpenGLShader.cpp @@ -1,6 +1,8 @@ #include "OpenGLShader.h" + #include #include + #include #include diff --git a/src/Platform/OpenGL/OpenGLShader.h b/src/Platform/OpenGL/OpenGLShader.h index cb7fec1..e9a7dc2 100644 --- a/src/Platform/OpenGL/OpenGLShader.h +++ b/src/Platform/OpenGL/OpenGLShader.h @@ -1,6 +1,7 @@ #pragma once #include "Rendering/Shader.h" + #include #include diff --git a/src/Platform/OpenGL/OpenGLTexture.cpp b/src/Platform/OpenGL/OpenGLTexture.cpp index 72e40ee..e12dea4 100644 --- a/src/Platform/OpenGL/OpenGLTexture.cpp +++ b/src/Platform/OpenGL/OpenGLTexture.cpp @@ -1,5 +1,4 @@ #include "OpenGLTexture.h" -#include namespace Donut { @@ -40,7 +39,7 @@ namespace Donut uint32_t whitePixel = 0xFFFFFFFF; glTextureSubImage2D(m_RendererID, 0, 0, 0, m_Width, m_Height, m_DataFormat, GL_UNSIGNED_BYTE, &whitePixel); - std::cout << "Created default texture (stb_image not available for loading: " << path << ")" << std::endl; + DONUT_INFO("Created default texture (stb_image not available for loading: ", path, ")"); } OpenGLTexture2D::~OpenGLTexture2D() @@ -53,7 +52,7 @@ namespace Donut uint32_t bpp = m_DataFormat == GL_RGBA ? 4 : 3; if (size != m_Width * m_Height * bpp) { - std::cout << "Data must be entire texture!" << std::endl; + DONUT_ERROR("Data must be entire texture!"); return; } diff --git a/src/Platform/OpenGL/OpenGLTexture.h b/src/Platform/OpenGL/OpenGLTexture.h index 3c6c08a..1c3cb05 100644 --- a/src/Platform/OpenGL/OpenGLTexture.h +++ b/src/Platform/OpenGL/OpenGLTexture.h @@ -1,6 +1,8 @@ #pragma once #include "Rendering/Texture.h" +#include "Core/Log.h" + #include namespace Donut diff --git a/src/Platform/OpenGL/OpenGLVertexArray.cpp b/src/Platform/OpenGL/OpenGLVertexArray.cpp index c24441e..6019287 100644 --- a/src/Platform/OpenGL/OpenGLVertexArray.cpp +++ b/src/Platform/OpenGL/OpenGLVertexArray.cpp @@ -1,4 +1,5 @@ #include + #include "OpenGLVertexArray.h" #include "Rendering/VertexBuffer.h" #include "Rendering/IndexBuffer.h" @@ -25,7 +26,7 @@ namespace Donut glBindVertexArray(0); } - void OpenGLVertexArray::AddVertexBuffer(const std::shared_ptr& vertexBuffer) + void OpenGLVertexArray::AddVertexBuffer(const Ref& vertexBuffer) { glBindVertexArray(m_RendererID); vertexBuffer->Bind(); @@ -46,7 +47,7 @@ namespace Donut m_VertexBuffers.push_back(vertexBuffer); } - void OpenGLVertexArray::SetIndexBuffer(const std::shared_ptr& indexBuffer) + void OpenGLVertexArray::SetIndexBuffer(const Ref& indexBuffer) { glBindVertexArray(m_RendererID); indexBuffer->Bind(); diff --git a/src/Platform/OpenGL/OpenGLVertexArray.h b/src/Platform/OpenGL/OpenGLVertexArray.h index 545f02c..b6ae82f 100644 --- a/src/Platform/OpenGL/OpenGLVertexArray.h +++ b/src/Platform/OpenGL/OpenGLVertexArray.h @@ -1,11 +1,12 @@ #pragma once +#include "Core/Memory.h" + #include "Rendering/VertexArray.h" #include "Rendering/VertexBuffer.h" #include "Rendering/IndexBuffer.h" #include -#include namespace Donut { @@ -19,22 +20,22 @@ namespace Donut virtual void Bind() const override; virtual void Unbind() const override; - virtual void AddVertexBuffer(const std::shared_ptr& vertexBuffer) override; - virtual void SetIndexBuffer(const std::shared_ptr& indexBuffer) override; + virtual void AddVertexBuffer(const Ref& vertexBuffer) override; + virtual void SetIndexBuffer(const Ref& indexBuffer) override; - virtual const std::vector>& GetVertexBuffers() const override + virtual const std::vector>& GetVertexBuffers() const override { return m_VertexBuffers; } - virtual const std::shared_ptr& GetIndexBuffer() const override + virtual const Ref& GetIndexBuffer() const override { return m_IndexBuffer; } private: uint32_t m_RendererID; uint32_t m_VertexBufferIndex = 0; - std::vector> m_VertexBuffers; - std::shared_ptr m_IndexBuffer; + std::vector> m_VertexBuffers; + Ref m_IndexBuffer; }; }; diff --git a/src/Platform/Vulkan/VulkanRendererAPI.cpp b/src/Platform/Vulkan/VulkanRendererAPI.cpp index 377f100..86d9653 100644 --- a/src/Platform/Vulkan/VulkanRendererAPI.cpp +++ b/src/Platform/Vulkan/VulkanRendererAPI.cpp @@ -32,7 +32,7 @@ namespace Donut // TODO(Hachem): Implement Vulkan face culling setting } - void VulkanRendererAPI::DrawIndexed(const std::shared_ptr& vertexArray, uint32_t indexCount) + void VulkanRendererAPI::DrawIndexed(const Ref& vertexArray, uint32_t indexCount) { // TODO(Hachem): Implement Vulkan indexed drawing } diff --git a/src/Platform/Vulkan/VulkanRendererAPI.h b/src/Platform/Vulkan/VulkanRendererAPI.h index 73cfbdb..47342ac 100644 --- a/src/Platform/Vulkan/VulkanRendererAPI.h +++ b/src/Platform/Vulkan/VulkanRendererAPI.h @@ -1,5 +1,6 @@ #pragma once +#include "Core/Memory.h" #include "Rendering/Renderer.h" namespace Donut @@ -16,7 +17,7 @@ namespace Donut virtual void EnableDepthTest() override; virtual void SetFaceCulling(bool enabled) override; - virtual void DrawIndexed(const std::shared_ptr& vertexArray, + virtual void DrawIndexed(const Ref& vertexArray, uint32_t indexCount = 0) override; }; }; diff --git a/src/Platform/Vulkan/VulkanVertexArray.cpp b/src/Platform/Vulkan/VulkanVertexArray.cpp index 9fda0a3..de22f05 100644 --- a/src/Platform/Vulkan/VulkanVertexArray.cpp +++ b/src/Platform/Vulkan/VulkanVertexArray.cpp @@ -22,13 +22,13 @@ namespace Donut // TODO(Hachem): Implement Vulkan vertex array unbinding } - void VulkanVertexArray::AddVertexBuffer(const std::shared_ptr& vertexBuffer) + void VulkanVertexArray::AddVertexBuffer(const Ref& vertexBuffer) { // TODO(Hachem): Implement Vulkan vertex buffer addition m_VertexBuffers.push_back(vertexBuffer); } - void VulkanVertexArray::SetIndexBuffer(const std::shared_ptr& indexBuffer) + void VulkanVertexArray::SetIndexBuffer(const Ref& indexBuffer) { // TODO(Hachem): Implement Vulkan index buffer setting m_IndexBuffer = indexBuffer; diff --git a/src/Platform/Vulkan/VulkanVertexArray.h b/src/Platform/Vulkan/VulkanVertexArray.h index a6eef6a..e4484e5 100644 --- a/src/Platform/Vulkan/VulkanVertexArray.h +++ b/src/Platform/Vulkan/VulkanVertexArray.h @@ -1,6 +1,7 @@ #pragma once #include "Rendering/VertexArray.h" +#include "Core/Memory.h" namespace Donut { @@ -14,14 +15,14 @@ namespace Donut virtual void Bind() const override; virtual void Unbind() const override; - virtual void AddVertexBuffer(const std::shared_ptr& vertexBuffer) override; - virtual void SetIndexBuffer(const std::shared_ptr& indexBuffer) override; + virtual void AddVertexBuffer(const Ref& vertexBuffer) override; + virtual void SetIndexBuffer(const Ref& indexBuffer) override; - virtual const std::vector>& GetVertexBuffers() const { return m_VertexBuffers; } - virtual const std::shared_ptr& GetIndexBuffer() const { return m_IndexBuffer; } + virtual const std::vector>& GetVertexBuffers() const { return m_VertexBuffers; } + virtual const Ref& GetIndexBuffer() const { return m_IndexBuffer; } private: uint32_t m_RendererID; - std::vector> m_VertexBuffers; - std::shared_ptr m_IndexBuffer; + std::vector> m_VertexBuffers; + Ref m_IndexBuffer; }; }; -- cgit v1.3