diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2022-08-26 15:19:28 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2022-08-26 15:48:34 +0300 |
commit | d5b1085aa7ad15caf3dbfcc14290faf6447a770a (patch) | |
tree | 69f2a2b5f497aae6a71b324b7320698d495b5b74 /source/blender/draw/intern/draw_manager.cc | |
parent | 7efa5647fa05a22bd067893132c2bfc58b4430d0 (diff) |
Add Pass::material_set()
Diffstat (limited to 'source/blender/draw/intern/draw_manager.cc')
-rw-r--r-- | source/blender/draw/intern/draw_manager.cc | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_manager.cc b/source/blender/draw/intern/draw_manager.cc index 38a37c3f01e..a1b1673ef6e 100644 --- a/source/blender/draw/intern/draw_manager.cc +++ b/source/blender/draw/intern/draw_manager.cc @@ -10,12 +10,30 @@ #include "draw_manager.h" #include "draw_manager.hh" +#include "draw_pass.hh" #include "draw_shader.h" namespace blender::draw { +Manager::~Manager() +{ + for (GPUTexture *texture : acquired_textures) { + /* Decrease refcount and free if 0. */ + GPU_texture_free(texture); + } +} + void Manager::begin_sync() { + /* TODO: This means the reference is kept until further redraw or manager teardown. Instead, they + * should be released after each draw loop. But for now, mimics old DRW behavior. */ + for (GPUTexture *texture : acquired_textures) { + /* Decrease refcount and free if 0. */ + GPU_texture_free(texture); + } + + acquired_textures.clear(); + #ifdef DEBUG /* Detect non-init data. */ memset(matrix_buf.data(), 0xF0, resource_len_ * sizeof(*matrix_buf.data())); |