diff options
Diffstat (limited to 'source/blender/draw/intern/draw_manager.c')
-rw-r--r-- | source/blender/draw/intern/draw_manager.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index 059ebc6eab3..bc11ab48d48 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -145,6 +145,7 @@ struct DRWInterface { int modelview; int projection; int view; + int viewinverse; int modelviewprojection; int viewprojection; int normal; @@ -505,6 +506,7 @@ static DRWInterface *DRW_interface_create(GPUShader *shader) interface->modelview = GPU_shader_get_uniform(shader, "ModelViewMatrix"); interface->projection = GPU_shader_get_uniform(shader, "ProjectionMatrix"); interface->view = GPU_shader_get_uniform(shader, "ViewMatrix"); + interface->viewinverse = GPU_shader_get_uniform(shader, "ViewMatrixInverse"); interface->viewprojection = GPU_shader_get_uniform(shader, "ViewProjectionMatrix"); interface->modelviewprojection = GPU_shader_get_uniform(shader, "ModelViewProjectionMatrix"); interface->normal = GPU_shader_get_uniform(shader, "NormalMatrix"); @@ -648,6 +650,10 @@ DRWShadingGroup *DRW_shgroup_material_create(struct GPUMaterial *material, DRWPa DRW_shgroup_uniform_texture(grp, input->shadername, tex, max_tex - input->texid); } } + /* Color Ramps */ + else if (input->tex) { + DRW_shgroup_uniform_texture(grp, input->shadername, input->tex, max_tex - input->texid); + } /* Floats */ else { switch (input->type) { @@ -1191,6 +1197,9 @@ static void draw_geometry(DRWShadingGroup *shgroup, Batch *geom, const float (*o if (interface->modelviewprojection != -1) { GPU_shader_uniform_vector(shgroup->shader, interface->modelviewprojection, 16, 1, (float *)mvp); } + if (interface->viewinverse != -1) { + GPU_shader_uniform_vector(shgroup->shader, interface->viewinverse, 16, 1, (float *)rv3d->viewinv); + } if (interface->viewprojection != -1) { GPU_shader_uniform_vector(shgroup->shader, interface->viewprojection, 16, 1, (float *)rv3d->persmat); } |