diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-05-30 23:28:47 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-05-30 23:30:16 +0300 |
commit | e7fb013a60dd91caef1b1dd80f52b3996f06a21c (patch) | |
tree | ca9ec934203b7cc5e48f2fbc65b982487be91323 /source/blender/makesdna | |
parent | ff0210319480ac9a77897bed716088a0bc18cd35 (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.h | 10 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_object_types.h | 9 |
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; |