diff Renderer/test_render/SpanPack.h @ 283:15bfacccde99 draft

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/SpanPack.h	Fri Jun 05 16:49:12 2009 +0900
@@ -0,0 +1,53 @@
+#ifndef INCLUDED_SPAN_PACK
+#define INCLUDED_SPAN_PACK
+
+#ifndef INCLUDED_SPAN
+#  include "Span.h"
+#endif
+
+#define MAX_SIZE_SPAN 64
+
+class SpanPack {
+public: /* fields */
+    struct SpanInfo {
+	int start;
+	int size;
+	int y_top;
+	int light_pos[3];
+	int light_rgb[3];
+    } info; // 36
+
+    Span span[MAX_SIZE_SPAN]; // 48*MAX_SIZE_SPAN = 3072
+    SpanPack *next; // 4
+
+    int pad[2]; // 8
+
+    void init(int ytop) {
+	this->info.start = 0;
+	this->info.size = 0;
+	this->info.y_top = ytop;
+	this->next = NULL;
+    }
+
+    void reinit(int ytop) {
+	SpanPack* top = this;
+	SpanPack* p;
+	SpanPack* p1;
+
+	p = top->next;
+	while (p != NULL) {
+	    p1 = p->next;
+	    free(p);
+	    p = p1;
+	}
+	
+	this->info.start = 0;
+	this->info.size = 0;
+	this->info.y_top = ytop;
+	this->next = NULL;
+    }
+};
+
+typedef SpanPack* SpanPackPtr;
+
+#endif