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-03-08 22:00:09 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-03-09 03:30:26 +0300
commit3b91989a093aef874b601efcffd247cf61e73bad (patch)
treef5e8df6b3aad70c71e8002c0e3775b768dbd22fc /source/blender/render
parentd9f42e5fab6a13ce200665b9a89291aa34ff6c09 (diff)
Draw Manager: structural change
All engines are now called by the draw manager. Engines are separate entities that cannot interfer with each others. Also separated draw_mode_pass.c into the mode engines.
Diffstat (limited to 'source/blender/render')
-rw-r--r--source/blender/render/extern/include/RE_engine.h2
-rw-r--r--source/blender/render/intern/source/external_engine.c9
2 files changed, 8 insertions, 3 deletions
diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h
index f1b3534b40a..74d96ce69d1 100644
--- a/source/blender/render/extern/include/RE_engine.h
+++ b/source/blender/render/extern/include/RE_engine.h
@@ -102,6 +102,8 @@ typedef struct RenderEngineType {
void (*collection_settings_create)(struct RenderEngine *engine, struct CollectionEngineSettings *ces);
+ struct DrawEngineType *draw_engine;
+
/* RNA integration */
ExtensionRNA ext;
} RenderEngineType;
diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c
index 1744d88a14f..8c1cdb3dc8a 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -71,7 +71,7 @@
static RenderEngineType internal_render_type = {
NULL, NULL,
"BLENDER_RENDER", N_("Blender Render"), RE_INTERNAL,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
{NULL, NULL, NULL}
};
@@ -80,7 +80,7 @@ static RenderEngineType internal_render_type = {
static RenderEngineType internal_game_type = {
NULL, NULL,
"BLENDER_GAME", N_("Blender Game"), RE_INTERNAL | RE_GAME,
- NULL, NULL, NULL, NULL, NULL, NULL, NULL,
+ NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
{NULL, NULL, NULL}
};
@@ -94,7 +94,7 @@ void RE_engines_init(void)
#ifdef WITH_GAMEENGINE
RE_engines_register(NULL, &internal_game_type);
#endif
- DRW_engines_init();
+ DRW_engines_register();
}
void RE_engines_exit(void)
@@ -121,6 +121,9 @@ void RE_engines_exit(void)
void RE_engines_register(Main *bmain, RenderEngineType *render_type)
{
+ if (render_type->draw_engine) {
+ DRW_engine_register(render_type->draw_engine);
+ }
if (render_type->collection_settings_create) {
BKE_layer_collection_engine_settings_callback_register(bmain, render_type->idname, render_type->collection_settings_create);
}