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
path: root/source
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2019-05-13 20:20:58 +0300
committerClément Foucault <foucault.clem@gmail.com>2019-05-14 11:57:04 +0300
commit72a5e3f61a1478616a494d90bdcc565e20ee0858 (patch)
treeeaed31c04df21139dbe57f7f426740b5c5a461d9 /source
parent92b4e96afed7bbc63e969f213266beaebc4c71b9 (diff)
Cleanup: DRW: Add and use DRW_shgroup_uniform_vec2_copy
Diffstat (limited to 'source')
-rw-r--r--source/blender/draw/intern/DRW_render.h1
-rw-r--r--source/blender/draw/intern/draw_manager_data.c5
-rw-r--r--source/blender/draw/modes/object_mode.c7
-rw-r--r--source/blender/draw/modes/shaders/object_empty_image_vert.glsl5
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