diff options
author | chai <chaifix@163.com> | 2019-12-08 00:23:50 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2019-12-08 00:23:50 +0800 |
commit | 3df29dc54c509c983dc8a0e23eab4160d48144f2 (patch) | |
tree | d8c5287c9979e731e373e7a1481aadd79d3f071b /src/example/example_cube.c | |
parent | 8e684dc0c76708e3174f005aebcaabc144b85500 (diff) |
+clipping
Diffstat (limited to 'src/example/example_cube.c')
-rw-r--r-- | src/example/example_cube.c | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/src/example/example_cube.c b/src/example/example_cube.c deleted file mode 100644 index caedd64..0000000 --- a/src/example/example_cube.c +++ /dev/null @@ -1,73 +0,0 @@ -#include "example.h" - -/*Õý·½Ìå*/ -Vec3 verts[] = { - // front face - {1, 1, 1}, {-1, 1, 1}, {-1, -1, 1}, {1, -1, 1}, - // back face - {1, 1, -1}, {-1, 1, -1}, {-1, -1, -1}, {1, -1, -1}, -}; - -Color colors[] = { - 0xffff0000, 0xff00ff00, 0xffff00ff, 0xff00ffff, - 0xff0000ff, 0xff000000, 0xffffff00, 0xffffffff, -}; - -int cube[] = { - 0, 2, 1, 0, 3, 2, - 1, 2, 5, 2, 6, 5, - 4, 5, 6, 4, 6, 7, - 0, 4, 7, 0, 7, 3, - 0, 1, 4, 1, 5, 4, - 2, 3, 6, 3, 7, 6 -}; -Mat4 m; -void onloadcube(void* data) { -} - -void oneventcube(void* data) { - SDL_Event* e = (SDL_Event*)data; -} - -float _t = 0; - -void onupdatecube(void*data) { - uint dt = *(uint*)data; - ssr_matrixmode(MATRIX_MODEL); - ssr_loadidentity(); - ssr_translate(0, 0, -3); - ssr_rotate(360 * sin(_t += 0.001f), 1, 1, 1); - ssr_matrixmode(MATRIX_PROJECTION); - ssr_loadidentity(); - ssr_perspective(100 + 20 * sin(_t * 10), 1.25f, -0.1f, -100); - ssr_matrixmode(MATRIX_VIEW); - ssr_loadidentity(); - Vec3 pos = { 0,0,0 }, target = { 0,0,-1 }, up = { 0,1,0 }; - ssr_lookat(&pos, &target, &up); - ssr_getmvp(&m); -} - -void ondrawcube(void*data) { - ssr_clearcolor(0); - Vec2 proj[8]; - - for (int i = 0; i < 8; ++i) { - Vec4 v = { verts[i].x, verts[i].y ,verts[i].z ,1 }, temp; - mat4_applytovec4(&m, &v, &temp); - temp.x /= temp.w; - temp.y /= temp.w; - temp.z /= temp.w; - //vec4_print(&temp); - proj[i].x = temp.x; - proj[i].y = temp.y; - } - for (int j = 1; j < sizeof(cube) / sizeof(int); ++j) { - int fromx = proj[cube[j]].x * 250.f + 250, fromy = 200 - proj[cube[j]].y * 200.f; - int tox = proj[cube[j - 1]].x * 250.f + 250, toy = 200 - proj[cube[j - 1]].y * 200.f; - ssrR_putline(fromx, fromy , tox, toy, 0xffff0000); - } - - Vec2 v1 = { 0, 0 }, v2 = { 3, 1 }, v3 = {1, 5}; - float area = ssrR_area(&v1, &v2, &v3); - printf("%f\n", area); -} |