DRW: Use new gpu::TexturePool inside TextureFromPool
Follow up to #134403.
This commit is contained in:
@@ -73,6 +73,7 @@
|
||||
#include "GPU_framebuffer.hh"
|
||||
#include "GPU_storage_buffer.hh"
|
||||
#include "GPU_texture.hh"
|
||||
#include "GPU_texture_pool.hh"
|
||||
#include "GPU_uniform_buffer.hh"
|
||||
|
||||
namespace blender::draw {
|
||||
@@ -1062,8 +1063,7 @@ class TextureFromPool : public Texture, NonMovable {
|
||||
{
|
||||
BLI_assert(this->tx_ == nullptr);
|
||||
|
||||
this->tx_ = DRW_texture_pool_texture_acquire(
|
||||
DST.vmempool->texture_pool, UNPACK2(extent), format, usage);
|
||||
this->tx_ = gpu::TexturePool::get().acquire_texture(UNPACK2(extent), format, usage);
|
||||
|
||||
if (G.debug & G_DEBUG_GPU) {
|
||||
debug_clear();
|
||||
@@ -1076,7 +1076,7 @@ class TextureFromPool : public Texture, NonMovable {
|
||||
if (this->tx_ == nullptr) {
|
||||
return;
|
||||
}
|
||||
DRW_texture_pool_texture_release(DST.vmempool->texture_pool, this->tx_);
|
||||
gpu::TexturePool::get().release_texture(this->tx_);
|
||||
this->tx_ = nullptr;
|
||||
}
|
||||
|
||||
@@ -1087,8 +1087,8 @@ class TextureFromPool : public Texture, NonMovable {
|
||||
static void swap(TextureFromPool &a, Texture &b)
|
||||
{
|
||||
Texture::swap(a, b);
|
||||
DRW_texture_pool_give_texture_ownership(DST.vmempool->texture_pool, a);
|
||||
DRW_texture_pool_take_texture_ownership(DST.vmempool->texture_pool, b);
|
||||
gpu::TexturePool::get().give_texture_ownership(a);
|
||||
gpu::TexturePool::get().take_texture_ownership(b);
|
||||
}
|
||||
static void swap(Texture &a, TextureFromPool &b)
|
||||
{
|
||||
|
||||
@@ -353,6 +353,7 @@ static void drw_viewport_data_reset(DRWData *drw_data)
|
||||
DRW_instance_data_list_resize(drw_data->idatalist);
|
||||
DRW_instance_data_list_reset(drw_data->idatalist);
|
||||
DRW_texture_pool_reset(drw_data->texture_pool);
|
||||
blender::gpu::TexturePool::get().reset();
|
||||
}
|
||||
|
||||
void DRW_viewport_data_free(DRWData *drw_data)
|
||||
@@ -1793,6 +1794,7 @@ void DRW_render_gpencil(RenderEngine *engine, Depsgraph *depsgraph)
|
||||
|
||||
GPU_depth_test(GPU_DEPTH_NONE);
|
||||
|
||||
blender::gpu::TexturePool::get().reset(true);
|
||||
drw_manager_exit(&DST);
|
||||
|
||||
/* Restore Drawing area. */
|
||||
@@ -1880,6 +1882,8 @@ void DRW_render_to_image(RenderEngine *engine, Depsgraph *depsgraph)
|
||||
|
||||
DRW_smoke_exit(DST.vmempool);
|
||||
|
||||
blender::gpu::TexturePool::get().reset(true);
|
||||
|
||||
drw_manager_exit(&DST);
|
||||
DRW_cache_free_old_subdiv();
|
||||
|
||||
@@ -1966,7 +1970,6 @@ void DRW_custom_pipeline_begin(DrawEngineType *draw_engine_type, Depsgraph *deps
|
||||
|
||||
void DRW_custom_pipeline_end()
|
||||
{
|
||||
|
||||
DRW_smoke_exit(DST.vmempool);
|
||||
|
||||
GPU_framebuffer_restore();
|
||||
@@ -1980,6 +1983,7 @@ void DRW_custom_pipeline_end()
|
||||
GPU_finish();
|
||||
}
|
||||
|
||||
blender::gpu::TexturePool::get().reset(true);
|
||||
drw_manager_exit(&DST);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user