Commit: c9c0d6c24fe38221f87a8a7ff74f8725bc80443a
Author: Clément Foucault
Date:   Mon Jan 9 15:06:17 2017 +0100
Branches: clay-engine
https://developer.blender.org/rBc9c0d6c24fe38221f87a8a7ff74f8725bc80443a

Add properties to clay material (not exposed yet)

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

M       source/blender/blenkernel/intern/scene.c
M       source/blender/draw/engines/clay/clay.c
M       source/blender/draw/intern/DRW_render.h
M       source/blender/draw/intern/draw_manager.c
M       source/blender/makesdna/DNA_material_types.h
M       source/blender/makesdna/DNA_scene_types.h

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

diff --git a/source/blender/blenkernel/intern/scene.c 
b/source/blender/blenkernel/intern/scene.c
index 8054050f59..2e9b95f274 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -108,6 +108,7 @@
 
 const char *RE_engine_id_BLENDER_RENDER = "BLENDER_RENDER";
 const char *RE_engine_id_BLENDER_GAME = "BLENDER_GAME";
+const char *RE_engine_id_BLENDER_CLAY = "BLENDER_CLAY";
 const char *RE_engine_id_CYCLES = "CYCLES";
 
 void free_avicodecdata(AviCodecData *acd)
diff --git a/source/blender/draw/engines/clay/clay.c 
b/source/blender/draw/engines/clay/clay.c
index 0d8da2a165..6203f56fb7 100644
--- a/source/blender/draw/engines/clay/clay.c
+++ b/source/blender/draw/engines/clay/clay.c
@@ -281,9 +281,13 @@ static void clay_populate_passes(CLAY_PassList *passes, 
const struct bContext *C
        }
 
        for (SETLOOPER(scene, sce_iter, base)) {
+               /* Create hash table of batch based on material id*/
+
                /* Add everything for now */
                if (pop_clay) DRW_batch_add_surface(matcapbatch, base);
                if (pop_depth) DRW_batch_add_surface(depthbatch, base);
+
+               /* Free hash table */
        }
 }
 
diff --git a/source/blender/draw/intern/DRW_render.h 
b/source/blender/draw/intern/DRW_render.h
index ce95c09407..52bc5bc4ed 100644
--- a/source/blender/draw/intern/DRW_render.h
+++ b/source/blender/draw/intern/DRW_render.h
@@ -136,6 +136,10 @@ void DRW_viewport_matrix_get(float mat[4][4], 
DRWViewportMatrixType type);
 int *DRW_viewport_size_get(void);
 bool DRW_viewport_is_persp(void);
 
+/* Settings */
+void *DRW_material_settings(Material *ma);
+void *DRW_render_settings(void);
+
 /* Draw commands */
 void DRW_draw_background(void);
 void DRW_draw_pass(DRWPass *pass);
diff --git a/source/blender/draw/intern/draw_manager.c 
b/source/blender/draw/intern/draw_manager.c
index ccae2b5651..ee4e97bf57 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -578,6 +578,30 @@ void DRW_state_reset(void)
        set_state(state);
 }
 
+/* ****************************************** Materials 
******************************************/
+
+void *DRW_material_settings(Material *ma)
+{
+       Scene *scene = CTX_data_scene(DST.context);
+
+       if (STREQ(scene->r.engine, RE_engine_id_BLENDER_CLAY))
+               return &ma->clay;
+
+       BLI_assert(false);
+       return NULL;
+}
+
+void *DRW_render_settings(void)
+{
+       Scene *scene = CTX_data_scene(DST.context);
+
+       if (STREQ(scene->r.engine, RE_engine_id_BLENDER_CLAY))
+               return &scene->claydata;
+
+       BLI_assert(false);
+       return NULL;
+}
+
 /* ****************************************** Framebuffers 
******************************************/
 
 void DRW_framebuffer_init(struct GPUFrameBuffer **fb, int width, int height, 
DRWFboTexture textures[MAX_FBO_TEX],
diff --git a/source/blender/makesdna/DNA_material_types.h 
b/source/blender/makesdna/DNA_material_types.h
index e078eb8666..aa3d53acf1 100644
--- a/source/blender/makesdna/DNA_material_types.h
+++ b/source/blender/makesdna/DNA_material_types.h
@@ -91,8 +91,10 @@ typedef struct TexPaintSlot {
 } TexPaintSlot;
 
 typedef struct EngineSettingsClay {
+       short type;
        short matcap_icon; /* Icon ID */
-       short pad;
+       float rot;
+       float hue;
 } EngineSettingsClay;
 
 typedef struct Material {
diff --git a/source/blender/makesdna/DNA_scene_types.h 
b/source/blender/makesdna/DNA_scene_types.h
index d8875b7407..3efe9e4491 100644
--- a/source/blender/makesdna/DNA_scene_types.h
+++ b/source/blender/makesdna/DNA_scene_types.h
@@ -796,8 +796,10 @@ typedef struct RenderProfile {
 
 /* Render Data */
 typedef struct EngineDataClay {
+       short type;
        short matcap_icon; /* Icon ID */
-       short pad;
+       float rot;
+       float hue;
 } EngineDataClay;
 
 /* *************************************************************** */
@@ -1870,8 +1872,8 @@ enum {
 /* scene->r.engine (scene.c) */
 extern const char *RE_engine_id_BLENDER_RENDER;
 extern const char *RE_engine_id_BLENDER_GAME;
+extern const char *RE_engine_id_BLENDER_CLAY;
 extern const char *RE_engine_id_CYCLES;
-extern const char *RE_engine_id_CLAY;
 
 /* **************** SCENE ********************* */

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

Reply via email to