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