diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-05-13 20:20:58 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-05-14 11:57:04 +0300 |
commit | 72a5e3f61a1478616a494d90bdcc565e20ee0858 (patch) | |
tree | eaed31c04df21139dbe57f7f426740b5c5a461d9 /source/blender | |
parent | 92b4e96afed7bbc63e969f213266beaebc4c71b9 (diff) |
Cleanup: DRW: Add and use DRW_shgroup_uniform_vec2_copy
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/draw/intern/DRW_render.h | 1 | ||||
-rw-r--r-- | source/blender/draw/intern/draw_manager_data.c | 5 | ||||
-rw-r--r-- | source/blender/draw/modes/object_mode.c | 7 | ||||
-rw-r--r-- | source/blender/draw/modes/shaders/object_empty_image_vert.glsl | 5 |
4 files changed, 10 insertions, 8 deletions
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h index 722f9117f7d..8337255464a 100644 --- a/source/blender/draw/intern/DRW_render.h +++ b/source/blender/draw/intern/DRW_render.h @@ -509,6 +509,7 @@ void DRW_shgroup_uniform_mat4(DRWShadingGroup *shgroup, const char *name, const void DRW_shgroup_uniform_int_copy(DRWShadingGroup *shgroup, const char *name, const int value); void DRW_shgroup_uniform_bool_copy(DRWShadingGroup *shgroup, const char *name, const bool value); void DRW_shgroup_uniform_float_copy(DRWShadingGroup *shgroup, const char *name, const float value); +void DRW_shgroup_uniform_vec2_copy(DRWShadingGroup *shgroup, const char *name, const float *value); bool DRW_shgroup_is_empty(DRWShadingGroup *shgroup); diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c index 1a58cb4c25f..e47433e60ab 100644 --- a/source/blender/draw/intern/draw_manager_data.c +++ b/source/blender/draw/intern/draw_manager_data.c @@ -293,6 +293,11 @@ void DRW_shgroup_uniform_float_copy(DRWShadingGroup *shgroup, const char *name, drw_shgroup_uniform(shgroup, name, DRW_UNIFORM_FLOAT_COPY, &value, 1, 1); } +void DRW_shgroup_uniform_vec2_copy(DRWShadingGroup *shgroup, const char *name, const float *value) +{ + drw_shgroup_uniform(shgroup, name, DRW_UNIFORM_FLOAT_COPY, value, 2, 1); +} + /** \} */ /* -------------------------------------------------------------------- */ diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c index 6f6b4dc8d41..9702f99e802 100644 --- a/source/blender/draw/modes/object_mode.c +++ b/source/blender/draw/modes/object_mode.c @@ -1010,9 +1010,7 @@ static void DRW_shgroup_empty_image(OBJECT_Shaders *sh_data, { DRWShadingGroup *grp = DRW_shgroup_create(sh_data->object_empty_image_wire, sgl->non_meshes); - /* TODO(fclem) implement DRW_shgroup_uniform_vec2_copy */ - DRW_shgroup_uniform_float_copy(grp, "aspectX", image_aspect[0]); - DRW_shgroup_uniform_float_copy(grp, "aspectY", image_aspect[1]); + DRW_shgroup_uniform_vec2_copy(grp, "aspect", image_aspect); DRW_shgroup_uniform_int_copy(grp, "depthMode", depth_mode); DRW_shgroup_uniform_float(grp, "size", &ob->empty_drawsize, 1); DRW_shgroup_uniform_vec2(grp, "offset", ob->ima_ofs, 1); @@ -1030,8 +1028,7 @@ static void DRW_shgroup_empty_image(OBJECT_Shaders *sh_data, if (tex && ((ob->color[3] > 0.0f) || !use_alpha_blend)) { DRWShadingGroup *grp = DRW_shgroup_create( sh_data->object_empty_image, (use_alpha_blend) ? sgl->image_empties : sgl->non_meshes); - DRW_shgroup_uniform_float_copy(grp, "aspectX", image_aspect[0]); - DRW_shgroup_uniform_float_copy(grp, "aspectY", image_aspect[1]); + DRW_shgroup_uniform_vec2_copy(grp, "aspect", image_aspect); DRW_shgroup_uniform_int_copy(grp, "depthMode", depth_mode); DRW_shgroup_uniform_float(grp, "size", &ob->empty_drawsize, 1); DRW_shgroup_uniform_vec2(grp, "offset", ob->ima_ofs, 1); diff --git a/source/blender/draw/modes/shaders/object_empty_image_vert.glsl b/source/blender/draw/modes/shaders/object_empty_image_vert.glsl index 881d7aa750e..5ac3b49b394 100644 --- a/source/blender/draw/modes/shaders/object_empty_image_vert.glsl +++ b/source/blender/draw/modes/shaders/object_empty_image_vert.glsl @@ -1,7 +1,6 @@ uniform mat4 ModelMatrix; -uniform float aspectX; -uniform float aspectY; +uniform vec2 aspect; uniform float size; uniform vec2 offset; #ifdef USE_WIRE @@ -21,7 +20,7 @@ out vec2 texCoord_interp; void main() { - vec3 pos = vec3((pos + offset) * (size * vec2(aspectX, aspectY)), 0.0); + vec3 pos = vec3((pos + offset) * (size * aspect), 0.0); vec3 world_pos = point_object_to_world(pos); gl_Position = point_world_to_ndc(world_pos); #ifdef USE_WIRE |