Mercurial > hg > Members > kono > Cerium
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