Mercurial > hg > Members > kono > Cerium
diff Renderer/test_render/polygon_pack.h @ 283:55ea4465b1a2
fix test_render
author | e065746@localhost.localdomain |
---|---|
date | Fri, 05 Jun 2009 16:49:12 +0900 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/Renderer/test_render/polygon_pack.h Fri Jun 05 16:49:12 2009 +0900 @@ -0,0 +1,68 @@ +#ifndef INCLUDED_POLYGON_PACK +#define INCLUDED_POLYGON_PACK + +#ifndef INCLUDED_TYPES +# include "types.h" +#endif + +#define MAX_SIZE_TRIANGLE 128 + +typedef struct VertexPack { + float x; + float y; + float z; + float tex_x; + float tex_y; +} VertexPack, *VertexPackPtr; // 20 + +typedef struct TriTexInfo { + uint32 *addr; + int width; + int height; + int scale_max; +} TriangleTexInfo, *TriangleTexInfoPtr; // 16 + +typedef struct TrianglePack { + TriTexInfo tex_info; + VertexPack ver1; + VertexPack ver2; + VertexPack ver3; +} TrianglePack, *TrianglePackPtr; + + +typedef struct PolygonPack { + struct PORIGON_info { + int size; + int light_pos[3]; + int light_rgb[3]; + }info; + + TrianglePack tri[MAX_SIZE_TRIANGLE]; + + PolygonPack* next; + + void init(void) { + info.size = 0; + next = 0; + } + + void clear(void) { + PolygonPack *q = 0; + PolygonPack *q1 = 0; + + q = this->next; + while (q) { + q1 = q->next; + delete(q); + q = q1; + } + this->init(); + } +} PolygonPack, *PolygonPackPtr; // 4*7 + 76*128 + 4 = 9760 + +typedef struct PolygonPackList { + int size; + PolygonPack *list; +} PolygonPackList; + +#endif