From 1c4a84dffab5b09db2264152fce956c915d36a72 Mon Sep 17 00:00:00 2001 From: Wellinator Date: Wed, 31 Jan 2024 17:57:19 -0300 Subject: [PATCH] chore: implements updateTextureInfo for texture packet update --- .../renderer/core/texture/renderer_core_texture.hpp | 6 ++++++ .../renderer/core/texture/renderer_core_texture.cpp | 11 +++++++++++ 2 files changed, 17 insertions(+) diff --git a/engine/inc/renderer/core/texture/renderer_core_texture.hpp b/engine/inc/renderer/core/texture/renderer_core_texture.hpp index 98a05b5..6792959 100644 --- a/engine/inc/renderer/core/texture/renderer_core_texture.hpp +++ b/engine/inc/renderer/core/texture/renderer_core_texture.hpp @@ -29,6 +29,12 @@ class RendererCoreTexture { RendererCoreTextureBuffers useTexture(const Texture* t_tex); + /** + * Called by user after changing texture wrap settings + * Updates texture packet without reallocate it + */ + RendererCoreTextureBuffers updateTextureInfo(const Texture* t_tex); + /** Called by renderer during initialization */ void init(RendererCoreGS* gs, Path3* path3); diff --git a/engine/src/renderer/core/texture/renderer_core_texture.cpp b/engine/src/renderer/core/texture/renderer_core_texture.cpp index 999effc..2e70b43 100644 --- a/engine/src/renderer/core/texture/renderer_core_texture.cpp +++ b/engine/src/renderer/core/texture/renderer_core_texture.cpp @@ -56,6 +56,17 @@ RendererCoreTextureBuffers RendererCoreTexture::useTexture( return newTexBuffer; } +RendererCoreTextureBuffers RendererCoreTexture::updateTextureInfo( + const Texture* t_tex) { + TYRA_ASSERT(t_tex != nullptr, "Provided nullptr texture!"); + + auto allocated = getAllocatedBuffersByTextureId(t_tex->id); + TYRA_ASSERT(allocated.id != 0, "Can't update an unallocated texture!"); + + path3->sendTexture(t_tex, allocated); + return allocated; +} + RendererCoreTextureBuffers RendererCoreTexture::getAllocatedBuffersByTextureId( const u32& t_id) { for (u32 i = 0; i < currentAllocations.size(); i++)