]> Chaos Git - corbenik/ctrulib.git/commitdiff
moved some things around
authorsmea <smealum@gmail.com>
Tue, 26 Aug 2014 05:38:37 +0000 (22:38 -0700)
committersmea <smealum@gmail.com>
Tue, 26 Aug 2014 05:38:37 +0000 (22:38 -0700)
examples/gpu/source/costable.h [deleted file]
examples/gpu/source/main.c
examples/gpu/source/math.c [new file with mode: 0644]
examples/gpu/source/math.h [new file with mode: 0644]

diff --git a/examples/gpu/source/costable.h b/examples/gpu/source/costable.h
deleted file mode 100644 (file)
index 1c9b8ec..0000000
+++ /dev/null
@@ -1,6 +0,0 @@
-#ifndef COSTABLE_H
-#define COSTABLE_H
-
-s32 costable[] = {4096, 4095, 4094, 4093, 4091, 4088, 4084, 4080, 4076, 4071, 4065, 4058, 4051, 4044, 4035, 4026, 4017, 4007, 3996, 3985, 3973, 3960, 3947, 3934, 3919, 3904, 3889, 3873, 3856, 3839, 3821, 3803, 3784, 3765, 3744, 3724, 3703, 3681, 3659, 3636, 3612, 3588, 3564, 3539, 3513, 3487, 3461, 3434, 3406, 3378, 3349, 3320, 3290, 3260, 3229, 3198, 3167, 3135, 3102, 3069, 3035, 3002, 2967, 2932, 2897, 2861, 2825, 2788, 2751, 2714, 2676, 2638, 2599, 2560, 2521, 2481, 2441, 2401, 2360, 2318, 2277, 2235, 2193, 2150, 2107, 2064, 2020, 1976, 1932, 1888, 1843, 1798, 1753, 1707, 1662, 1616, 1569, 1523, 1476, 1429, 1382, 1334, 1287, 1239, 1191, 1143, 1095, 1046, 997, 949, 900, 851, 801, 752, 703, 653, 603, 554, 504, 454, 404, 354, 304, 254, 204, 153, 103, 53, 3, -46, -97, -147, -197, -247, -297, -347, -398, -448, -497, -547, -597, -647, -696, -746, -795, -844, -893, -942, -991, -1040, -1088, -1137, -1185, -1233, -1281, -1328, -1376, -1423, -1470, -1517, -1563, -1610, -1656, -1701, -1747, -1792, -1837, -1882, -1927, -1971, -2015, -2058, -2102, -2144, -2187, -2229, -2271, -2313, -2354, -2395, -2436, -2476, -2516, -2555, -2594, -2633, -2671, -2709, -2747, -2784, -2820, -2857, -2892, -2928, -2963, -2997, -3031, -3065, -3098, -3130, -3163, -3194, -3225, -3256, -3286, -3316, -3345, -3374, -3402, -3430, -3457, -3484, -3510, -3536, -3561, -3585, -3609, -3633, -3656, -3678, -3700, -3721, -3742, -3762, -3782, -3801, -3819, -3837, -3854, -3871, -3887, -3902, -3917, -3932, -3946, -3959, -3971, -3983, -3995, -4005, -4016, -4025, -4034, -4042, -4050, -4057, -4064, -4070, -4075, -4080, -4084, -4087, -4090, -4092, -4094, -4095, -4095, -4095, -4094, -4093, -4091, -4088, -4085, -4081, -4076, -4071, -4066, -4059, -4052, -4045, -4036, -4028, -4018, -4008, -3997, -3986, -3974, -3962, -3949, -3935, -3921, -3906, -3891, -3875, -3858, -3841, -3824, -3805, -3787, -3767, -3747, -3727, -3705, -3684, -3662, -3639, -3615, -3592, -3567, -3542, -3517, -3491, -3464, -3437, -3409, -3381, -3353, -3324, -3294, -3264, -3233, -3202, -3171, -3139, -3106, -3073, -3040, -3006, -2972, -2937, -2902, -2866, -2830, -2793, -2756, -2719, -2681, -2643, -2604, -2565, -2526, -2486, -2446, -2406, -2365, -2324, -2282, -2240, -2198, -2156, -2113, -2069, -2026, -1982, -1938, -1894, -1849, -1804, -1759, -1713, -1668, -1622, -1575, -1529, -1482, -1435, -1388, -1341, -1293, -1245, -1197, -1149, -1101, -1052, -1004, -955, -906, -857, -808, -758, -709, -660, -610, -560, -510, -460, -411, -360, -310, -260, -210, -160, -110, -60, -9, 40, 90, 140, 191, 241, 291, 341, 391, 441, 491, 541, 591, 640, 690, 739, 789, 838, 887, 936, 985, 1033, 1082, 1130, 1179, 1227, 1274, 1322, 1370, 1417, 1464, 1511, 1557, 1604, 1650, 1695, 1741, 1786, 1831, 1876, 1921, 1965, 2009, 2053, 2096, 2139, 2182, 2224, 2266, 2308, 2349, 2390, 2431, 2471, 2511, 2550, 2589, 2628, 2666, 2704, 2742, 2779, 2816, 2852, 2888, 2923, 2958, 2993, 3027, 3060, 3093, 3126, 3158, 3190, 3221, 3252, 3282, 3312, 3342, 3370, 3399, 3426, 3454, 3480, 3507, 3532, 3557, 3582, 3606, 3630, 3653, 3675, 3697, 3718, 3739, 3759, 3779, 3798, 3817, 3835, 3852, 3869, 3885, 3900, 3915, 3930, 3944, 3957, 3970, 3982, 3993, 4004, 4014, 4024, 4033, 4041, 4049, 4056, 4063, 4069, 4074, 4079, 4083, 4087, 4090, 4092, 4094, 4095};
-
-#endif
index 99a5d03fd7602ee77deea79aa2adf34699d569df..14020919b42216c49b430b56e6d53d0cd9ab9234 100644 (file)
@@ -13,7 +13,7 @@
 #include <3ds/svc.h>
 #include <3ds/os.h>
 #include <3ds/gfx.h>
-#include "costable.h"
+#include "math.h"
 #include "test_shbin.h"
 #include "test_png_bin.h"
 #include "mdl.h"
@@ -22,97 +22,6 @@ DVLB_s* shader;
 float* vertArray;
 u32* texData;
 
-void loadIdentity44(float* m)
-{
-       if(!m)return;
-
-       memset(m, 0x00, 16*4);
-       m[0]=m[5]=m[10]=m[15]=1.0f;
-}
-
-void multMatrix44(float* m1, float* m2, float* m) //4x4
-{
-       int i, j;
-       for(i=0;i<4;i++)for(j=0;j<4;j++)m[i+j*4]=(m1[0+j*4]*m2[i+0*4])+(m1[1+j*4]*m2[i+1*4])+(m1[2+j*4]*m2[i+2*4])+(m1[3+j*4]*m2[i+3*4]);
-}
-
-void translateMatrix(float* tm, float x, float y, float z)
-{
-       float rm[16], m[16];
-
-       loadIdentity44(rm);
-       rm[3]=x;
-       rm[7]=y;
-       rm[11]=z;
-       
-       multMatrix44(rm,tm,m);
-       memcpy(tm,m,16*sizeof(float));
-}
-
-void rotateMatrixX(float* tm, float x)
-{
-       float rm[16], m[16];
-       memset(rm, 0x00, 16*4);
-       rm[0]=1.0f;
-       rm[5]=cos(x);
-       rm[6]=sin(x);
-       rm[9]=-sin(x);
-       rm[10]=cos(x);
-       rm[15]=1.0f;
-       multMatrix44(tm,rm,m);
-       memcpy(tm,m,16*sizeof(float));
-}
-
-void rotateMatrixZ(float* tm, float x)
-{
-       float rm[16], m[16];
-       memset(rm, 0x00, 16*4);
-       rm[0]=cos(x);
-       rm[1]=sin(x);
-       rm[4]=-sin(x);
-       rm[5]=cos(x);
-       rm[10]=1.0f;
-       rm[15]=1.0f;
-       multMatrix44(tm,rm,m);
-       memcpy(tm,m,16*sizeof(float));
-}
-
-void scaleMatrix(float* tm, float x, float y, float z)
-{
-       tm[0]*=x; tm[4]*=x; tm[8]*=x; tm[12]*=x;
-       tm[1]*=y; tm[5]*=y; tm[9]*=y; tm[13]*=y;
-       tm[2]*=z; tm[6]*=z; tm[10]*=z; tm[14]*=z;
-}
-
-void initProjectionMatrix(float* m, float fovy, float aspect, float near, float far)
-{
-       float top = near*tan(fovy/2);
-       float right = (top*aspect);
-       
-       *(m++) = near/right;
-       *(m++) = 0.0f;
-       *(m++) = 0.0f;
-       *(m++) = 0.0f;
-
-       *(m++) = 0.0f;
-       *(m++) = near/top;
-       *(m++) = 0.0f;
-       *(m++) = 0.0f;
-
-       *(m++) = 0.0f;
-       *(m++) = 0.0f;
-       // *(m++) = -(far+near)/(far-near);
-       *(m++) = 0.0f;
-       // *(m++) = -2.0f*(far*near)/(far-near);
-       // *(m++) = 1.0f;
-       *(m++) = -1.0f;
-
-       *(m++) = 0.0f;
-       *(m++) = 0.0f;
-       *(m++) = -1.0f;
-       *(m++) = 0.0f;
-}
-
 void setUniformMatrix(u32 startreg, float* m)
 {
        float param[16];
@@ -150,9 +59,6 @@ u32* gpuDOut=(u32*)0x1F370800;
 // topscreen
 void doFrame1()
 {
-       static u32 zero[0x400];
-       memset(zero, 0x00, 0x400*4);
-
        //general setup
                GPU_SetViewport((u32*)osConvertVirtToPhys((u32)gpuDOut),(u32*)osConvertVirtToPhys((u32)gpuOut),0,0,240*2,400);
 
diff --git a/examples/gpu/source/math.c b/examples/gpu/source/math.c
new file mode 100644 (file)
index 0000000..9c0977a
--- /dev/null
@@ -0,0 +1,95 @@
+#include <math.h>
+#include <string.h>
+
+#include "math.h"
+
+void loadIdentity44(float* m)
+{
+       if(!m)return;
+
+       memset(m, 0x00, 16*4);
+       m[0]=m[5]=m[10]=m[15]=1.0f;
+}
+
+void multMatrix44(float* m1, float* m2, float* m) //4x4
+{
+       int i, j;
+       for(i=0;i<4;i++)for(j=0;j<4;j++)m[i+j*4]=(m1[0+j*4]*m2[i+0*4])+(m1[1+j*4]*m2[i+1*4])+(m1[2+j*4]*m2[i+2*4])+(m1[3+j*4]*m2[i+3*4]);
+}
+
+void translateMatrix(float* tm, float x, float y, float z)
+{
+       float rm[16], m[16];
+
+       loadIdentity44(rm);
+       rm[3]=x;
+       rm[7]=y;
+       rm[11]=z;
+       
+       multMatrix44(rm,tm,m);
+       memcpy(tm,m,16*sizeof(float));
+}
+
+void rotateMatrixX(float* tm, float x)
+{
+       float rm[16], m[16];
+       memset(rm, 0x00, 16*4);
+       rm[0]=1.0f;
+       rm[5]=cos(x);
+       rm[6]=sin(x);
+       rm[9]=-sin(x);
+       rm[10]=cos(x);
+       rm[15]=1.0f;
+       multMatrix44(tm,rm,m);
+       memcpy(tm,m,16*sizeof(float));
+}
+
+void rotateMatrixZ(float* tm, float x)
+{
+       float rm[16], m[16];
+       memset(rm, 0x00, 16*4);
+       rm[0]=cos(x);
+       rm[1]=sin(x);
+       rm[4]=-sin(x);
+       rm[5]=cos(x);
+       rm[10]=1.0f;
+       rm[15]=1.0f;
+       multMatrix44(tm,rm,m);
+       memcpy(tm,m,16*sizeof(float));
+}
+
+void scaleMatrix(float* tm, float x, float y, float z)
+{
+       tm[0]*=x; tm[4]*=x; tm[8]*=x; tm[12]*=x;
+       tm[1]*=y; tm[5]*=y; tm[9]*=y; tm[13]*=y;
+       tm[2]*=z; tm[6]*=z; tm[10]*=z; tm[14]*=z;
+}
+
+void initProjectionMatrix(float* m, float fovy, float aspect, float near, float far)
+{
+       float top = near*tan(fovy/2);
+       float right = (top*aspect);
+       
+       *(m++) = near/right;
+       *(m++) = 0.0f;
+       *(m++) = 0.0f;
+       *(m++) = 0.0f;
+
+       *(m++) = 0.0f;
+       *(m++) = near/top;
+       *(m++) = 0.0f;
+       *(m++) = 0.0f;
+
+       *(m++) = 0.0f;
+       *(m++) = 0.0f;
+       // *(m++) = -(far+near)/(far-near);
+       *(m++) = 0.0f;
+       // *(m++) = -2.0f*(far*near)/(far-near);
+       // *(m++) = 1.0f;
+       *(m++) = -1.0f;
+
+       *(m++) = 0.0f;
+       *(m++) = 0.0f;
+       *(m++) = -1.0f;
+       *(m++) = 0.0f;
+}
diff --git a/examples/gpu/source/math.h b/examples/gpu/source/math.h
new file mode 100644 (file)
index 0000000..5eed360
--- /dev/null
@@ -0,0 +1,13 @@
+#ifndef MATH_H
+
+void loadIdentity44(float* m);
+void multMatrix44(float* m1, float* m2, float* m);
+
+void translateMatrix(float* tm, float x, float y, float z);
+void rotateMatrixX(float* tm, float x);
+void rotateMatrixZ(float* tm, float x);
+void scaleMatrix(float* tm, float x, float y, float z);
+
+void initProjectionMatrix(float* m, float fovy, float aspect, float near, float far);
+
+#endif