[Bf-blender-cvs] [7203aa24f9] clay-engine: New CMake flag for Clay Engine

Clément Foucault noreply at git.blender.org
Fri Feb 3 14:39:28 CET 2017


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)




More information about the Bf-blender-cvs mailing list