diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-05-20 19:01:42 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-05-22 14:29:04 +0300 |
commit | 45c085a1718eee2b5616dd2af7f37749f79ab593 (patch) | |
tree | 55bfec4b2bfd658019ebe0b0d65dfdcb01901251 /source/blender/gpu | |
parent | 88a725eff8f42bcaa5921f35b988fa07d0e619e7 (diff) |
DRW: Add DRWView to improve different view handling
This will have multiple benefit.
TODO detail benefits (culling, more explicit, handling of clipping planes)
For now the view usage is wrapped to make changes needed more progressive.
Diffstat (limited to 'source/blender/gpu')
-rw-r--r-- | source/blender/gpu/GPU_viewport.h | 2 | ||||
-rw-r--r-- | source/blender/gpu/intern/gpu_viewport.c | 6 |
2 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/gpu/GPU_viewport.h b/source/blender/gpu/GPU_viewport.h index e61cfe363df..e7600279d6f 100644 --- a/source/blender/gpu/GPU_viewport.h +++ b/source/blender/gpu/GPU_viewport.h @@ -39,8 +39,10 @@ typedef struct GPUViewport GPUViewport; typedef struct ViewportMemoryPool { struct BLI_memblock *calls; struct BLI_memblock *states; + struct BLI_memblock *cullstates; struct BLI_memblock *shgroups; struct BLI_memblock *uniforms; + struct BLI_memblock *views; struct BLI_memblock *passes; struct BLI_memblock *images; } ViewportMemoryPool; diff --git a/source/blender/gpu/intern/gpu_viewport.c b/source/blender/gpu/intern/gpu_viewport.c index b825819ceb4..4fd439f4203 100644 --- a/source/blender/gpu/intern/gpu_viewport.c +++ b/source/blender/gpu/intern/gpu_viewport.c @@ -625,12 +625,18 @@ void GPU_viewport_free(GPUViewport *viewport) if (viewport->vmempool.states != NULL) { BLI_memblock_destroy(viewport->vmempool.states, NULL); } + if (viewport->vmempool.cullstates != NULL) { + BLI_memblock_destroy(viewport->vmempool.cullstates, NULL); + } if (viewport->vmempool.shgroups != NULL) { BLI_memblock_destroy(viewport->vmempool.shgroups, NULL); } if (viewport->vmempool.uniforms != NULL) { BLI_memblock_destroy(viewport->vmempool.uniforms, NULL); } + if (viewport->vmempool.views != NULL) { + BLI_memblock_destroy(viewport->vmempool.views, NULL); + } if (viewport->vmempool.passes != NULL) { BLI_memblock_destroy(viewport->vmempool.passes, NULL); } |