diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-03-09 21:52:37 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-03-10 04:18:25 +0300 |
commit | 8444aaaa693a9b9e613d801612ea46dfd9b82dba (patch) | |
tree | 41cd1badc74798d29a2bb007b6100940d0820c19 /source/blender/draw/intern/draw_manager.h | |
parent | 4540bd226dce454573242c40a8b2de79ca1bffa5 (diff) |
DRW: Put all view-only dependant uniform in a UBO.
This leads to less lookups to the GWNShaderInterface and less uniform upload.
We still keep a legacy path so that Builtin uniforms can still work. We might restrict this path to Builtin shader only in the future.
Diffstat (limited to 'source/blender/draw/intern/draw_manager.h')
-rw-r--r-- | source/blender/draw/intern/draw_manager.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/source/blender/draw/intern/draw_manager.h b/source/blender/draw/intern/draw_manager.h index 1afa0ff2402..689b19a81ff 100644 --- a/source/blender/draw/intern/draw_manager.h +++ b/source/blender/draw/intern/draw_manager.h @@ -246,6 +246,12 @@ struct DRWPass { char name[MAX_PASS_NAME]; }; +typedef struct ViewUboStorage { + DRWMatrixState matstate; + float viewcamtexcofac[4]; + float clipplanes[2][4]; +} ViewUboStorage; + /* ------------- DRAW MANAGER ------------ */ #define MAX_CLIP_PLANES 6 /* GL_MAX_CLIP_PLANES is at least 6 */ @@ -304,11 +310,8 @@ typedef struct DRWManager { int num_clip_planes; /* Number of active clipplanes. */ bool dirty_mat; - struct { - DRWMatrixState matstate; - float viewcamtexcofac[4]; - float clip_planes_eq[MAX_CLIP_PLANES][4]; - } view_data; + /* keep in sync with viewBlock */ + ViewUboStorage view_data; struct { float frustum_planes[6][4]; |