[PATCH v3 3/8] wined3d: Move multiply_vector_matrix() to wined3d_private.h.

Paul Gofman gofmanp at gmail.com
Mon May 20 04:56:38 CDT 2019


Signed-off-by: Paul Gofman <gofmanp at gmail.com>
---
v3:
    - rename multiply_vector_matrix() to wined3d_vec4_mat().

 dlls/wined3d/glsl_shader.c     | 25 ++++++-------------------
 dlls/wined3d/wined3d_private.h | 13 +++++++++++++
 2 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c
index f85fb5a3e1..a977fdf8f9 100644
--- a/dlls/wined3d/glsl_shader.c
+++ b/dlls/wined3d/glsl_shader.c
@@ -1374,19 +1374,6 @@ static void shader_glsl_ffp_vertex_lightambient_uniform(const struct wined3d_con
     checkGLcall("glUniform3fv");
 }
 
-static void multiply_vector_matrix(struct wined3d_vec4 *dest, const struct wined3d_vec4 *src1,
-        const struct wined3d_matrix *src2)
-{
-    struct wined3d_vec4 temp;
-
-    temp.x = (src1->x * src2->_11) + (src1->y * src2->_21) + (src1->z * src2->_31) + (src1->w * src2->_41);
-    temp.y = (src1->x * src2->_12) + (src1->y * src2->_22) + (src1->z * src2->_32) + (src1->w * src2->_42);
-    temp.z = (src1->x * src2->_13) + (src1->y * src2->_23) + (src1->z * src2->_33) + (src1->w * src2->_43);
-    temp.w = (src1->x * src2->_14) + (src1->y * src2->_24) + (src1->z * src2->_34) + (src1->w * src2->_44);
-
-    *dest = temp;
-}
-
 static void shader_glsl_ffp_vertex_light_uniform(const struct wined3d_context *context,
         const struct wined3d_state *state, unsigned int light, const struct wined3d_light_info *light_info,
         struct glsl_shader_prog_link *prog)
@@ -1402,7 +1389,7 @@ static void shader_glsl_ffp_vertex_light_uniform(const struct wined3d_context *c
     switch (light_info->OriginalParms.type)
     {
         case WINED3D_LIGHT_POINT:
-            multiply_vector_matrix(&vec4, &light_info->position, view);
+            wined3d_vec4_mat(&vec4, &light_info->position, view);
             GL_EXTCALL(glUniform4fv(prog->vs.light_location[light].position, 1, &vec4.x));
             GL_EXTCALL(glUniform1f(prog->vs.light_location[light].range, light_info->OriginalParms.range));
             GL_EXTCALL(glUniform1f(prog->vs.light_location[light].c_att, light_info->OriginalParms.attenuation0));
@@ -1411,10 +1398,10 @@ static void shader_glsl_ffp_vertex_light_uniform(const struct wined3d_context *c
             break;
 
         case WINED3D_LIGHT_SPOT:
-            multiply_vector_matrix(&vec4, &light_info->position, view);
+            wined3d_vec4_mat(&vec4, &light_info->position, view);
             GL_EXTCALL(glUniform4fv(prog->vs.light_location[light].position, 1, &vec4.x));
 
-            multiply_vector_matrix(&vec4, &light_info->direction, view);
+            wined3d_vec4_mat(&vec4, &light_info->direction, view);
             GL_EXTCALL(glUniform3fv(prog->vs.light_location[light].direction, 1, &vec4.x));
 
             GL_EXTCALL(glUniform1f(prog->vs.light_location[light].range, light_info->OriginalParms.range));
@@ -1427,12 +1414,12 @@ static void shader_glsl_ffp_vertex_light_uniform(const struct wined3d_context *c
             break;
 
         case WINED3D_LIGHT_DIRECTIONAL:
-            multiply_vector_matrix(&vec4, &light_info->direction, view);
+            wined3d_vec4_mat(&vec4, &light_info->direction, view);
             GL_EXTCALL(glUniform3fv(prog->vs.light_location[light].direction, 1, &vec4.x));
             break;
 
         case WINED3D_LIGHT_PARALLELPOINT:
-            multiply_vector_matrix(&vec4, &light_info->position, view);
+            wined3d_vec4_mat(&vec4, &light_info->position, view);
             GL_EXTCALL(glUniform4fv(prog->vs.light_location[light].position, 1, &vec4.x));
             break;
 
@@ -1505,7 +1492,7 @@ static void shader_glsl_clip_plane_uniform(const struct wined3d_context *context
     {
         invert_matrix(&matrix, &state->transforms[WINED3D_TS_VIEW]);
         transpose_matrix(&matrix, &matrix);
-        multiply_vector_matrix(&plane, &plane, &matrix);
+        wined3d_vec4_mat(&plane, &plane, &matrix);
     }
 
     GL_EXTCALL(glUniform4fv(prog->vs.clip_planes_location + index, 1, &plane.x));
diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h
index 716f5101c9..57f5e69edc 100644
--- a/dlls/wined3d/wined3d_private.h
+++ b/dlls/wined3d/wined3d_private.h
@@ -4882,6 +4882,19 @@ static inline void wined3d_get_mcs(enum wined3d_material_color_source *diffuse_s
     }
 }
 
+static inline void wined3d_vec4_mat(struct wined3d_vec4 *dest, const struct wined3d_vec4 *src1,
+        const struct wined3d_matrix *src2)
+{
+    struct wined3d_vec4 temp;
+
+    temp.x = (src1->x * src2->_11) + (src1->y * src2->_21) + (src1->z * src2->_31) + (src1->w * src2->_41);
+    temp.y = (src1->x * src2->_12) + (src1->y * src2->_22) + (src1->z * src2->_32) + (src1->w * src2->_42);
+    temp.z = (src1->x * src2->_13) + (src1->y * src2->_23) + (src1->z * src2->_33) + (src1->w * src2->_43);
+    temp.w = (src1->x * src2->_14) + (src1->y * src2->_24) + (src1->z * src2->_34) + (src1->w * src2->_44);
+
+    *dest = temp;
+}
+
 BOOL invert_matrix(struct wined3d_matrix *out, const struct wined3d_matrix *m) DECLSPEC_HIDDEN;
 
 void compute_normal_matrix(float *normal_matrix, BOOL legacy_lighting,
-- 
2.21.0




More information about the wine-devel mailing list