Mercurial > hg > Game > Cerium
view TaskManager/Test/test_render/task/DrawSpan.h @ 403:e2f29e912d0b draft
clean up and add more info on task_list
author | Shinji KONO <kono@ie.u-ryukyu.ac.jp> |
---|---|
date | Wed, 23 Sep 2009 12:04:29 +0900 |
parents | 492e60453124 |
children | 839e34d0cc3c |
line wrap: on
line source
#ifndef INCLUDED_TASK_DRAW_SPAN #define INCLUDED_TASK_DRAW_SPAN #include "SchedTask.h" #include "Tapestry.h" #include "SpanPack.h" #if !USE_MEMHASH #include "TileHash.h" #endif class DrawSpan : public SchedTask { public: SchedConstructor(DrawSpan); int *linebuf; float *zRow; TileListPtr tileList; int doneWrite; ~DrawSpan(void); int run(SchedTask *smanager, void *rbuf, void *wbuf); int* linebuf_init(SchedTask *smanager, int width, int height, int rgb); float* zRow_init(SchedTask *smanager, int width, int height); TilePtr set_rgb(memaddr addr, int wait_tag); void set_rgbs(memaddr addr, uint32 *max_addr, int wait_tag); uint32 get_rgb(int tx, int ty, TilePtr tile); TilePtr isAvailableTile(memaddr addr); memaddr getTile(int tx, int ty, int tw, memaddr tex_addr_top); int getTexBlock(int tx, int ty, int twidth); void writebuffer(SchedTask *smanager, 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, float normal_x, float nomral_x, float normal_z, TilePtr tile); void reboot(SpanPackPtr spack, int cur_span_x); int drawDot1(SchedTask *smanager, SpanPtr span, int startx, int endx, int wait_tag); void drawDot2(SchedTask *smanager, SpanPtr span, int startx, int endx, int js, int wait_tag); int drawLine1(SchedTask *smanager, SpanPtr span, int startx, int endx, int wait_tag); void drawLine2(SchedTask *smanager, SpanPtr span, int startx, int endx, int js, int wait_tag); int infinity_light_calc(int color,float normal_x, float normal_y, float normal_z); }; typedef struct { uint32 display; int screen_width; int rangex_start; int rangex_end; int rangey; } DrawSpanArg, *DrawSpanArgPtr; #endif