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-02-03 16:38:11 +0300
committerClément Foucault <foucault.clem@gmail.com>2017-02-03 16:38:11 +0300
commit7203aa24f99830ef022cf78874d59e4322b231a0 (patch)
tree878072852ed39550891ae574bdd954fbbb59fe8d
parent9fb97e3f85e973e8138af067bed73be7772a00d4 (diff)
New CMake flag for Clay Engine
-rw-r--r--CMakeLists.txt4
-rw-r--r--source/blender/draw/CMakeLists.txt4
-rw-r--r--source/blender/draw/engines/clay/clay.c3
-rw-r--r--source/blender/draw/intern/draw_manager.c18
-rw-r--r--source/blender/makesrna/intern/CMakeLists.txt4
-rw-r--r--source/blender/makesrna/intern/rna_material.c4
-rw-r--r--source/blender/makesrna/intern/rna_scene.c7
7 files changed, 36 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index de01be1d299..b1a9d6fcf3f 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 6cf358e8c11..d5b54e8a746 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 3bdd48d319e..f443606f11d 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 ed626d10802..729d9d19ce8 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 608d4781e60..0bf2bbb6109 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 3df4164cb6a..fd934fe4683 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 11290f3c1d0..39d93648a60 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)