[Bf-blender-cvs] [8a2f93b2aba] blender2.8: DRW: Opti: Use less bytes in DRWUniform.
Clément Foucault
noreply at git.blender.org
Wed Feb 7 19:12:53 CET 2018
Commit: 8a2f93b2aba76a6c1c065a08d14e414db8cb597e
Author: Clément Foucault
Date: Wed Feb 7 18:12:35 2018 +0100
Branches: blender2.8
https://developer.blender.org/rB8a2f93b2aba76a6c1c065a08d14e414db8cb597e
DRW: Opti: Use less bytes in DRWUniform.
===================================================================
M source/blender/draw/intern/draw_manager.c
===================================================================
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 865937018a0..909095b8901 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -177,12 +177,14 @@ typedef enum {
DRW_ATTRIB_FLOAT,
} DRWAttribType;
+#define MAX_UNIFORM_DATA_SIZE 16
+
struct DRWUniform {
struct DRWUniform *next;
- DRWUniformType type;
int location;
- int length;
- int arraysize;
+ char type; /* DRWUniformType */
+ char length; /* cannot be more than 16 */
+ char arraysize; /* cannot be more than 16 too */
const void *value;
};
@@ -692,7 +694,8 @@ static void drw_interface_uniform(DRWShadingGroup *shgroup, const char *name,
DRWUniform *uni = BLI_mempool_alloc(DST.vmempool->uniforms);
- BLI_assert(arraysize > 0);
+ BLI_assert(arraysize > 0 && arraysize <= 16);
+ BLI_assert(arraysize * length <= MAX_UNIFORM_DATA_SIZE);
uni->location = location;
uni->type = type;
More information about the Bf-blender-cvs
mailing list