Commit: 7203aa24f99830ef022cf78874d59e4322b231a0
Author: Clément Foucault
Date:   Fri Feb 3 14:38:11 2017 +0100
Branches: clay-engine
https://developer.blender.org/rB7203aa24f99830ef022cf78874d59e4322b231a0

New CMake flag for Clay Engine

===================================================================

M       CMakeLists.txt
M       source/blender/draw/CMakeLists.txt
M       source/blender/draw/engines/clay/clay.c
M       source/blender/draw/intern/draw_manager.c
M       source/blender/makesrna/intern/CMakeLists.txt
M       source/blender/makesrna/intern/rna_material.c
M       source/blender/makesrna/intern/rna_scene.c

===================================================================

diff --git a/CMakeLists.txt b/CMakeLists.txt
index de01be1d29..b1a9d6fcf3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -165,6 +165,7 @@ option_defaults_init(
        _init_FFTW3
        _init_GAMEENGINE
        _init_OPENSUBDIV
+       _init_CLAY_ENGINE
 )
 
 # customize...
@@ -186,6 +187,7 @@ elseif(WIN32)
 elseif(APPLE)
        set(_init_JACK                           OFF)
        set(_init_OPENSUBDIV                     OFF)
+       set(_init_CLAY_ENGINE                    OFF)
 endif()
 
 
@@ -242,6 +244,8 @@ endif()
 option(WITH_PLAYER        "Build Player" OFF)
 option(WITH_OPENCOLORIO   "Enable OpenColorIO color management" 
${_init_OPENCOLORIO})
 
+option(WITH_CLAY_ENGINE    "Enable New Clay engine (Breaks Mac and Intel 
compatibility)" _init_CLAY_ENGINE)
+
 # Compositor
 option(WITH_COMPOSITOR         "Enable the tile based nodal compositor" ON)
 
diff --git a/source/blender/draw/CMakeLists.txt 
b/source/blender/draw/CMakeLists.txt
index 6cf358e8c1..d5b54e8a74 100644
--- a/source/blender/draw/CMakeLists.txt
+++ b/source/blender/draw/CMakeLists.txt
@@ -63,6 +63,10 @@ set(SRC
        ./DRW_engine.h
 )
 
+if(WITH_CLAY_ENGINE)
+       add_definitions(-DWITH_CLAY_ENGINE)
+endif()
+
 data_to_c_simple(engines/clay/shaders/clay_frag.glsl SRC)
 data_to_c_simple(engines/clay/shaders/clay_vert.glsl SRC)
 data_to_c_simple(engines/clay/shaders/ssao_alchemy.glsl SRC)
diff --git a/source/blender/draw/engines/clay/clay.c 
b/source/blender/draw/engines/clay/clay.c
index 3bdd48d319..f443606f11 100644
--- a/source/blender/draw/engines/clay/clay.c
+++ b/source/blender/draw/engines/clay/clay.c
@@ -34,7 +34,7 @@
 #include "UI_interface_icons.h"
 
 #include "clay.h"
-
+#ifdef WITH_CLAY_ENGINE
 /* Shaders */
 
 extern char datatoc_clay_frag_glsl[];
@@ -719,3 +719,4 @@ RenderEngineType viewport_clay_type = {
        NULL, NULL, NULL, NULL, &CLAY_view_draw, NULL, 
&CLAY_collection_settings_create,
        {NULL, NULL, NULL}
 };
+#endif
\ No newline at end of file
diff --git a/source/blender/draw/intern/draw_manager.c 
b/source/blender/draw/intern/draw_manager.c
index ed626d1080..729d9d19ce 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -617,7 +617,7 @@ void DRW_draw_background(void)
                glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        }
 }
-
+#ifdef WITH_CLAY_ENGINE
 /* Only alter the state (does not reset it like set_state() ) */
 static void shgroup_set_state(DRWShadingGroup *shgroup)
 {
@@ -928,15 +928,15 @@ void DRW_state_reset(void)
        state |= DRW_STATE_DEPTH_LESS;
        set_state(state);
 }
-
+#endif
 /* ****************************************** Settings 
******************************************/
-
 void *DRW_material_settings_get(Material *ma, const char *engine_name)
 {
        MaterialEngineSettings *ms = NULL;
 
        ms = BLI_findstring(&ma->engines_settings, engine_name, 
offsetof(MaterialEngineSettings, name));
 
+#ifdef WITH_CLAY_ENGINE
        /* If the settings does not exists yet, create it */
        if (ms == NULL) {
                ms = MEM_callocN(sizeof(RenderEngineSettings), 
"RenderEngineSettings");
@@ -954,6 +954,9 @@ void *DRW_material_settings_get(Material *ma, const char 
*engine_name)
 
                BLI_addtail(&ma->engines_settings, ms);
        }
+#else
+       return NULL;
+#endif
 
        return ms->data;
 }
@@ -968,6 +971,7 @@ void *DRW_render_settings_get(Scene *scene, const char 
*engine_name)
 
        rs = BLI_findstring(&scene->engines_settings, engine_name, 
offsetof(RenderEngineSettings, name));
 
+#ifdef WITH_CLAY_ENGINE
        /* If the settings does not exists yet, create it */
        if (rs == NULL) {
                rs = MEM_callocN(sizeof(RenderEngineSettings), 
"RenderEngineSettings");
@@ -985,10 +989,12 @@ void *DRW_render_settings_get(Scene *scene, const char 
*engine_name)
 
                BLI_addtail(&scene->engines_settings, rs);
        }
+#else
+       return NULL;
+#endif
 
        return rs->data;
 }
-
 /* ****************************************** Framebuffers 
******************************************/
 
 void DRW_framebuffer_init(struct GPUFrameBuffer **fb, int width, int height, 
DRWFboTexture textures[MAX_FBO_TEX],
@@ -1119,14 +1125,18 @@ bool DRW_viewport_cache_is_dirty(void)
 
 void DRW_engines_init(void)
 {
+#ifdef WITH_CLAY_ENGINE
        RE_engines_register(NULL, &viewport_clay_type);
+#endif
 }
 
 void DRW_engines_free(void)
 {
+#ifdef WITH_CLAY_ENGINE
        clay_engine_free();
 
        DRW_shape_cache_free();
 
        BLI_remlink(&R_engines, &viewport_clay_type);
+#endif
 }
\ No newline at end of file
diff --git a/source/blender/makesrna/intern/CMakeLists.txt 
b/source/blender/makesrna/intern/CMakeLists.txt
index 608d4781e6..0bf2bbb610 100644
--- a/source/blender/makesrna/intern/CMakeLists.txt
+++ b/source/blender/makesrna/intern/CMakeLists.txt
@@ -192,6 +192,10 @@ if(WITH_GAMEENGINE)
        add_definitions(-DWITH_GAMEENGINE)
 endif()
 
+if(WITH_CLAY_ENGINE)
+       add_definitions(-DWITH_CLAY_ENGINE)
+endif()
+
 if(WITH_IMAGE_OPENEXR)
        add_definitions(-DWITH_OPENEXR)
 endif()
diff --git a/source/blender/makesrna/intern/rna_material.c 
b/source/blender/makesrna/intern/rna_material.c
index 3df4164cb6..fd934fe468 100644
--- a/source/blender/makesrna/intern/rna_material.c
+++ b/source/blender/makesrna/intern/rna_material.c
@@ -316,11 +316,11 @@ static void rna_MaterialTextureSlot_use_set(PointerRNA 
*ptr, int value)
 static StructRNA *rna_MaterialEngineSettings_refine(PointerRNA *ptr)
 {
        MaterialEngineSettings *mes = (MaterialEngineSettings *)ptr->data;
-
+#ifdef WITH_CLAY_ENGINE
        if (STREQ(mes->name, RE_engine_id_BLENDER_CLAY)) {
                return  &RNA_MaterialEngineSettingsClay;
        }
-
+#endif
        return &RNA_MaterialEngineSettings;
 }
 
diff --git a/source/blender/makesrna/intern/rna_scene.c 
b/source/blender/makesrna/intern/rna_scene.c
index 11290f3c1d..39d93648a6 100644
--- a/source/blender/makesrna/intern/rna_scene.c
+++ b/source/blender/makesrna/intern/rna_scene.c
@@ -1880,10 +1880,11 @@ static StructRNA 
*rna_RenderEngineSettings_refine(PointerRNA *ptr)
 {
        RenderEngineSettings *res = (RenderEngineSettings *)ptr->data;
 
+#ifdef WITH_CLAY_ENGINE
        if (STREQ(res->name, RE_engine_id_BLENDER_CLAY)) {
                return  &RNA_RenderEngineSettingsClay;
        }
-
+#endif
        return &RNA_RenderEngineSettings;
 }
 
@@ -6848,6 +6849,7 @@ static void rna_def_scene_quicktime_settings(BlenderRNA 
*brna)
 }
 #endif
 
+#ifdef WITH_CLAY_ENGINE
 static void rna_def_render_engine_settings_clay(BlenderRNA *brna)
 {
        StructRNA *srna;
@@ -6940,6 +6942,7 @@ static void 
rna_def_render_engine_settings_clay(BlenderRNA *brna)
        RNA_def_property_range(prop, 1, 500);
        RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL);
 }
+#endif
 
 static void rna_def_scene_render_engine(BlenderRNA *brna)
 {
@@ -6950,7 +6953,9 @@ static void rna_def_scene_render_engine(BlenderRNA *brna)
        RNA_def_struct_sdna(srna, "RenderEngineSettings");
        RNA_def_struct_refine_func(srna, "rna_RenderEngineSettings_refine");
 
+#ifdef WITH_CLAY_ENGINE
        rna_def_render_engine_settings_clay(brna);
+#endif
 }
 
 static void rna_def_scene_render_data(BlenderRNA *brna)

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to