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++)