On Wed, 15 May 2019 at 19:40, Paul Gofman <gofmanp(a)gmail.com> wrote:
+static float dot_vec3(const struct wined3d_vec3 *src1, const struct wined3d_vec3 *src2) +{ + return src1->x * src2->x + src1->y * src2->y + src1->z * src2->z; +} We'd typically call that "wined3d_vec3_dot()".
+static void normalize_vec3(struct wined3d_vec3 *dest, const struct wined3d_vec3 *src) +{ + float rnorm = 1.0f / sqrtf(src->x * src->x + src->y * src->y + src->z * src->z); "sqrtf(wined3d_vec3_dot(src, src))", right?
+static void madd_vec(float *dst, const float *src, unsigned int count, float c) +{ + unsigned int i; + + for (i = 0; i < count; ++i) + dst[i] += src[i] * c; +} + +static void multiply_vector3_matrix(struct wined3d_vec3 *dest, const struct wined3d_vec3 *src1, + const float *src2) +{ + struct wined3d_vec3 temp; + + temp.x = (src1->x * src2[0]) + (src1->y * src2[3]) + (src1->z * src2[3 * 2]); + temp.y = (src1->x * src2[1]) + (src1->y * src2[3 + 1]) + (src1->z * src2[3 * 2 + 1]); + temp.z = (src1->x * src2[2]) + (src1->y * src2[3 + 2]) + (src1->z * src2[3 * 2 + 2]); + + *dest = temp; +} I think we'd prefer proper matrix and vector structures here.