diff Renderer/test_render/spe/DrawSpan.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/spe/DrawSpan.h	Fri Jun 05 16:49:12 2009 +0900
@@ -0,0 +1,64 @@
+#ifndef INCLUDED_TASK_DRAW_SPAN
+#define INCLUDED_TASK_DRAW_SPAN
+
+#ifndef INCLUDED_SCHED_TASK
+#  include "SchedTask.h"
+#endif
+
+#ifndef INCLUDED_TAPESTRY
+#  include "Tapestry.h"
+#endif
+
+#ifndef INCLUDED_SPAN_PACK
+#  include "SpanPack.h"
+#endif
+
+#ifndef INCLUDED_TEXTURE_HASH
+#  include "TileHash.h"
+#endif
+
+class DrawSpan : public SchedTask {
+public:
+    SchedConstructor(DrawSpan);
+
+    int *linebuf;
+    float *zRow;
+    TileHashPtr hash;
+    TileListPtr tileList;
+    int doneWrite;
+
+    ~DrawSpan(void);
+
+    int run(void *rbuf, void *wbuf);
+
+    int* linebuf_init(int width, int height, int rgb);
+    float* zRow_init(int width, int height);
+    void set_rgb(uint32 *addr, int wait_tag);
+    void set_rgbs(uint32 *addr, uint32 *max_addr, int wait_tag);
+    uint32 get_rgb(int tx, int ty, uint32 *addr);
+    TilePtr isAvailableTile(uint32 *addr);
+    uint32* getTile(int tx, int ty, int tw, uint32 *tex_addr_top);
+    int getTexBlock(int tx, int ty, int twidth);
+    void writebuffer(unsigned int display, int width, int height,
+		     int screen_width);
+    void updateBuffer(float zpos, int rangex, int x, int y,
+		      int tex_x, int tex_y, uint32 *tex_addr);
+
+
+    void reboot(SpanPackPtr spack, int cur_span_x);
+
+    int drawDot1(SpanPtr span, int startx, int endx, int wait_tag);
+    void drawDot2(SpanPtr span, int startx, int endx, int js, int wait_tag);
+    int drawLine1(SpanPtr span, int startx, int endx, int wait_tag);
+    void drawLine2(SpanPtr span, int startx, int endx, int js, int wait_tag);
+};
+
+typedef struct {
+    uint32 display;
+    int screen_width;
+    int rangex_start;
+    int rangex_end;
+    int rangey;
+} DrawSpanArg, *DrawSpanArgPtr;
+
+#endif