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