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>2017-05-30 23:28:47 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-05-30 23:30:16 +0300
commite7fb013a60dd91caef1b1dd80f52b3996f06a21c (patch)
treeca9ec934203b7cc5e48f2fbc65b982487be91323 /source/blender/makesdna
parentff0210319480ac9a77897bed716088a0bc18cd35 (diff)
Draw Manager: Add SceneLayerEngineData and use callbacks to clear runtime engine data
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r--source/blender/makesdna/DNA_layer_types.h10
-rw-r--r--source/blender/makesdna/DNA_object_types.h9
2 files changed, 18 insertions, 1 deletions
diff --git a/source/blender/makesdna/DNA_layer_types.h b/source/blender/makesdna/DNA_layer_types.h
index 6b4c19d2977..1e6657ae29c 100644
--- a/source/blender/makesdna/DNA_layer_types.h
+++ b/source/blender/makesdna/DNA_layer_types.h
@@ -52,6 +52,13 @@ typedef struct CollectionOverride {
/* TODO proper data */
} CollectionOverride;
+typedef struct SceneLayerEngineData {
+ struct SceneLayerEngineData *next, *prev;
+ struct DrawEngineType *engine_type;
+ void *storage;
+ void (*free)(void *storage);
+} SceneLayerEngineData;
+
typedef struct LayerCollection {
struct LayerCollection *next, *prev;
struct SceneCollection *scene_collection;
@@ -79,6 +86,9 @@ typedef struct SceneLayer {
ListBase layer_collections; /* LayerCollection */
struct IDProperty *properties; /* overrides */
struct IDProperty *properties_evaluated;
+
+ /* Runtime data */
+ ListBase drawdata; /* SceneLayerEngineData */
} SceneLayer;
typedef struct SceneCollection {
diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h
index ba42f403a30..72a21437b7d 100644
--- a/source/blender/makesdna/DNA_object_types.h
+++ b/source/blender/makesdna/DNA_object_types.h
@@ -72,6 +72,13 @@ typedef struct bFaceMap {
char name[64]; /* MAX_VGROUP_NAME */
} bFaceMap;
+/* Object Runtime display data */
+typedef struct ObjectEngineData {
+ struct ObjectEngineData *next, *prev;
+ struct DrawEngineType *engine_type;
+ void *storage;
+ void (*free)(void *storage);
+} ObjectEngineData;
#define MAX_VGROUP_NAME 64
@@ -316,7 +323,7 @@ typedef struct Object {
struct IDProperty *base_collection_properties; /* used by depsgraph, flushed from base */
- ListBase drawdata; /* runtime, for draw engine datas */
+ ListBase drawdata; /* runtime, ObjectEngineData */
int base_selection_color; /* flushed by depsgraph only */
int pad3[3];
} Object;