aboutsummaryrefslogtreecommitdiff
path: root/src/mesa/ppc/ppc_xform.c
diff options
context:
space:
mode:
authorRadosław Kujawa <radoslaw.kujawa@c0ff33.net>2026-07-17 14:54:32 +0200
committerRadosław Kujawa <radoslaw.kujawa@c0ff33.net>2026-07-17 14:54:32 +0200
commit2702c90d7a39fca2a3319c5e915fd290cb31fc70 (patch)
tree283c4d851efef7e3a7cd03ba80c87e2bffcdbb2c /src/mesa/ppc/ppc_xform.c
parent836167945ec2c7ad5acdf0aa17ce35ec1b9428a6 (diff)
Initial import.
Diffstat (limited to 'src/mesa/ppc/ppc_xform.c')
-rw-r--r--src/mesa/ppc/ppc_xform.c46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/mesa/ppc/ppc_xform.c b/src/mesa/ppc/ppc_xform.c
new file mode 100644
index 0000000..966798c
--- /dev/null
+++ b/src/mesa/ppc/ppc_xform.c
@@ -0,0 +1,46 @@
+#include "ppc_xform.h"
+
+#ifdef USE_PPC_ASM
+
+#include "glheader.h"
+#include "math/m_xform.h"
+
+#include "rlvec.h"
+
+static void _XFORMAPI
+ppc_transform_points3_general(GLvector4f *to_vec, const GLfloat m[16],
+ const GLvector4f *from_vec)
+{
+
+ rlvec.xform_points3((GLfloat *)to_vec->start, m,
+ (const GLfloat *)from_vec->start, from_vec->stride,
+ from_vec->count);
+ to_vec->size = 4;
+ to_vec->flags |= VEC_SIZE_4;
+ to_vec->count = from_vec->count;
+}
+
+void
+_mesa_init_all_ppc_transform_asm(void)
+{
+
+ rlvec_init();
+
+ /*
+ * points3 = the glVertex3f-class path.
+ */
+ _mesa_transform_tab[3][MATRIX_GENERAL] =
+ ppc_transform_points3_general;
+ _mesa_transform_tab[3][MATRIX_PERSPECTIVE] =
+ ppc_transform_points3_general;
+ _mesa_transform_tab[3][MATRIX_3D] =
+ ppc_transform_points3_general;
+ _mesa_transform_tab[3][MATRIX_3D_NO_ROT] =
+ ppc_transform_points3_general;
+ _mesa_transform_tab[3][MATRIX_2D] =
+ ppc_transform_points3_general;
+ _mesa_transform_tab[3][MATRIX_2D_NO_ROT] =
+ ppc_transform_points3_general;
+}
+
+#endif /* USE_PPC_ASM */