diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2021-10-05 10:36:11 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2021-10-05 10:39:54 +0300 |
commit | 1d49293b80446b89b5b12fa0eeefaf14e5051e48 (patch) | |
tree | 72e007ea9d498576ad9b48050f81f38994aa0d98 /source/blender/draw/DRW_engine.h | |
parent | 08511b1c3de0338314940397083adaba4e9cf492 (diff) |
DRW: Move buffer & temp textures & framebuffer management to DrawManager
This is a necessary step for EEVEE's new arch. This moves more data
to the draw manager. This makes it easier to have the render or draw
engines manage their own data.
This makes more sense and cleans-up what the GPUViewport holds
Also rewrites the Texture pool manager to be in C++.
This also move the DefaultFramebuffer/TextureList and the engine related
data to a new `DRWViewData` struct. This struct manages the per view
(as in stereo view) engine data.
There is a bit of cleanup in the way the draw manager is setup.
We now use a temporary DRWData instead of creating a dummy viewport.
Development: fclem, jbakker
Differential Revision: https://developer.blender.org/D11966
Diffstat (limited to 'source/blender/draw/DRW_engine.h')
-rw-r--r-- | source/blender/draw/DRW_engine.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/draw/DRW_engine.h b/source/blender/draw/DRW_engine.h index 5e7b812c37b..927a29ed6b6 100644 --- a/source/blender/draw/DRW_engine.h +++ b/source/blender/draw/DRW_engine.h @@ -26,13 +26,12 @@ #include "DNA_object_enums.h" -#include "DRW_engine_types.h" - #ifdef __cplusplus extern "C" { #endif struct ARegion; +struct DRWData; struct DRWInstanceDataList; struct Depsgraph; struct DrawEngineType; @@ -57,8 +56,6 @@ void DRW_engines_free(void); bool DRW_engine_render_support(struct DrawEngineType *draw_engine_type); void DRW_engine_register(struct DrawEngineType *draw_engine_type); -void DRW_engine_viewport_data_size_get( - const void *engine_type, int *r_fbl_len, int *r_txl_len, int *r_psl_len, int *r_stl_len); typedef struct DRWUpdateContext { struct Main *bmain; @@ -176,6 +173,9 @@ void DRW_deferred_shader_remove(struct GPUMaterial *mat); struct DrawDataList *DRW_drawdatalist_from_id(struct ID *id); void DRW_drawdata_free(struct ID *id); +struct DRWData *DRW_viewport_data_create(void); +void DRW_viewport_data_free(struct DRWData *drw_data); + bool DRW_opengl_context_release(void); void DRW_opengl_context_activate(bool drw_state); |