Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-03-09 21:52:37 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-03-10 04:18:25 +0300
commit8444aaaa693a9b9e613d801612ea46dfd9b82dba (patch)
tree41cd1badc74798d29a2bb007b6100940d0820c19 /source/blender/draw/intern/draw_manager.h
parent4540bd226dce454573242c40a8b2de79ca1bffa5 (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.h13
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];