X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fmodex16.c;h=9b7f4c4c57c84fe1bb42002af490ac0c90ecefa6;hb=6c9777deaf1f9c47fd66742921770777c552a46e;hp=e77d5c1b7ef47c66ae85f5cc47617e7ae1070988;hpb=58374e61c1d73c2151fd67adcb570f8d95c6e45e;p=16.git diff --git a/src/lib/modex16.c b/src/lib/modex16.c index e77d5c1b..9b7f4c4c 100755 --- a/src/lib/modex16.c +++ b/src/lib/modex16.c @@ -398,47 +398,29 @@ modexClearRegion(page_t *page, int x, int y, int w, int h, byte color) { //memory management needs to be added //void //modexDrawBmpRegion (page_t *page, int x, int y, int rx, int ry, int rw, int rh, bitmap_t *bmp) -void modexDrawPBufRegion (page_t *page, int x, int y, int rx, int ry, int rw, int rh, planar_buf_t *p, boolean sprite) +void modexDrawPBufRegion (page_t *page, int x, int y, int rx, int ry, int rw, int rh, planar_buf_t *p, boolean sprite) { - int plane; - int px, py, i; -// byte near *buff; - px=x; - py=y; -// buff = _nmalloc(p->pwidth+1); - // TODO Make this fast. It's SLOOOOOOW -// for(plane=0; plane < 4; plane++) { -// i=0; -// modexSelectPlane(PLANE(plane+x)); -// for(px = plane; px < p->width; px+=4) { -// offset=px; -// for(py=0; pyheight/2; py++) { -// //SELECT_ALL_PLANES(); -// if(!sprite || p->plane[offset]) -// page->data = &(p->plane[offset][i++]); -// offset+=p->width; -// offset++; -// } -// } -// } - for(plane=0; plane < 4; plane++) { - i=(rx/4)+((rx/4)*ry); - modexSelectPlane(PLANE(plane+x)); - for(; y < py+p->height; y++) { - //for(px=0; px < p->width; px++) { - //printf("%02X ", (int) p->plane[plane][i++]); -// _fmemcpy(buff, &(p->plane[plane][i+=p->pwidth]), p->pwidth); -// printf("buff %u==%s\n", y, *buff); -// _fmemcpy(page->data + (((page->width/4) * (y+page->dy)) + ((x+page->dx) / 4)), buff, p->pwidth); - _fmemcpy(page->data + (((page->width/4) * (y+page->dy)) + ((x+page->dx) / 4)), &(p->plane[plane][i+=p->pwidth]), p->pwidth); - //} - } - x=px; - y=py; - } -// _nfree(buff); + int plane; + int px, py, i; + px=x; + py=y; + for(plane=0; plane < 4; plane++) { + i=(rx/4)+((rx/4)*ry); + modexSelectPlane(PLANE(plane+x)); + for(; y < py+rh; y++) { + //for(px=0; px < p->width; px++) { + //printf("%02X ", (int) p->plane[plane][i++]); +// _fmemcpy(buff, &(p->plane[plane][i+=p->pwidth]), p->pwidth); +// printf("buff %u==%s\n", y, *buff); + _fmemcpy(page->data + (((page->width/4) * (y+page->dy)) + ((x+page->dx) / 4)), &(p->plane[plane][i+=rw]), rw/4); + //} + } + x=px; + y=py; + } } + /*temp*/ void DrawPBuf(page_t *page, int x, int y, planar_buf_t *p, boolean sprite)