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:
authorSergey Sharybin <sergey.vfx@gmail.com>2018-01-29 18:28:24 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2018-01-29 19:53:51 +0300
commit006c66b1ff5972c5badff7a7f53f638e27e24cd4 (patch)
tree5969a622529686545b923353f36a7b66188daf37 /source/blender/makesdna/DNA_object_types.h
parentd174f3bd60bbc2b07c0136bd2e1c4a1dea50ca7b (diff)
Refactor object engine data storage
Main idea is to make specific engine types be a subclass of generic ObjectEngineData structure. This required following changes: - Have extra size argument to engine data allocation function. Not sure whether there is less error-prone way of doing this. - Add init() callback to engine data allocation function. Additionally, added some extra checks to Eevee's engine data getters, so we do not silently cast lamp data to lightprobe data. Reviewers: dfelinto, fclem Differential Revision: https://developer.blender.org/D3027
Diffstat (limited to 'source/blender/makesdna/DNA_object_types.h')
-rw-r--r--source/blender/makesdna/DNA_object_types.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index 7364dcbc167..d62ec746309 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -75,11 +75,17 @@ typedef struct bFaceMap {
} bFaceMap;
/* Object Runtime display data */
+struct ObjectEngineData;
+typedef void (*ObjectEngineDataInitCb)(struct ObjectEngineData *engine_data);
+typedef void (*ObjectEngineDataFreeCb)(struct ObjectEngineData *engine_data);
+
+#
+#
typedef struct ObjectEngineData {
struct ObjectEngineData *next, *prev;
struct DrawEngineType *engine_type;
- void *storage;
- void (*free)(void *storage);
+ /* Only nested data, NOT the engine data itself. */
+ ObjectEngineDataFreeCb free;
} ObjectEngineData;
#define MAX_VGROUP_NAME 64