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>2019-05-11 15:37:27 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-05-14 11:57:03 +0300
commit2d28df783a029ee5b64da005b2fa400e4e8de976 (patch)
tree52761ab5351a3db388482029625e3c0526044037 /source/blender/gpu/intern/gpu_material.c
parent642c8010b210e1671f4faa0ca1c097c77f19042a (diff)
GPU: Move Material index to nodetree evaluation
This removes the need to pass the Material* all over the place in the draw manager. Cleanup comming right after.
Diffstat (limited to 'source/blender/gpu/intern/gpu_material.c')
-rw-r--r--source/blender/gpu/intern/gpu_material.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/source/blender/gpu/intern/gpu_material.c b/source/blender/gpu/intern/gpu_material.c
index 6aa13b0d8ca..de9ed56abf5 100644
--- a/source/blender/gpu/intern/gpu_material.c
+++ b/source/blender/gpu/intern/gpu_material.c
@@ -231,6 +231,12 @@ ListBase *GPU_material_get_inputs(GPUMaterial *material)
return &material->inputs;
}
+/* Return can be NULL if it's a world material. */
+Material *GPU_material_get_material(GPUMaterial *material)
+{
+ return material->ma;
+}
+
GPUUniformBuffer *GPU_material_uniform_buffer_get(GPUMaterial *material)
{
return material->ubo;
@@ -637,6 +643,7 @@ GPUMaterial *GPU_material_from_nodetree_find(ListBase *gpumaterials,
* so only do this when they are needed.
*/
GPUMaterial *GPU_material_from_nodetree(Scene *scene,
+ struct Material *ma,
struct bNodeTree *ntree,
ListBase *gpumaterials,
const void *engine_type,
@@ -655,6 +662,7 @@ GPUMaterial *GPU_material_from_nodetree(Scene *scene,
/* allocate material */
GPUMaterial *mat = MEM_callocN(sizeof(GPUMaterial), "GPUMaterial");
+ mat->ma = ma;
mat->scene = scene;
mat->engine_type = engine_type;
mat->options = options;