X-Git-Url: http://4ch.mooo.com/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fmodex16%2F16render.c;h=0399a7771738f489fe3a77a936387183319ab571;hb=5c022e8e83924eba7882be2ab3824f63d6ce0c3c;hp=f80d5ea8fc367bcd1a2aa9460d7758c0cd30e441;hpb=544ccf6efbf54ec3bf18c0dc1a71a9943f493905;p=16.git diff --git a/src/lib/modex16/16render.c b/src/lib/modex16/16render.c index f80d5ea8..0399a777 100755 --- a/src/lib/modex16/16render.c +++ b/src/lib/modex16/16render.c @@ -1,5 +1,5 @@ /* Project 16 Source Code~ - * Copyright (C) 2012-2015 sparky4 & pngwen & andrius4669 + * Copyright (C) 2012-2016 sparky4 & pngwen & andrius4669 & joncampbell123 * * This file is part of Project 16. * @@ -36,29 +36,30 @@ void modexDrawPBufRegion (page_t *page, int x, int y, int rx, int ry, int rw, in const int px=x+page->dx; const int py=y+page->dy; const int prw = rw/4; + int prh; + + //fine tuning rx+=1; ry+=1; + + //^^; #define PEEE rx-prw #define PE (p->pwidth) - #define PEEEE (PE*(ry)) + if(rhheight) prh = (PE*(ry-4)); + else if(rh==p->height) prh = (PE*(ry)); y=py; x=px; //printf("%d,%d p(%d,%d) r(%d,%d) rwh(%d,%d)\n", x, y, px, py, rx, ry, rw, rh); for(plane=0; plane < 4; plane++) { - i=PEEE+PEEEE; + i=PEEE+prh; modexSelectPlane(PLANE(plane-1)); 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)) + ((x) / 4)), &(p->plane[plane][i]), prw); i+=PE; - //} } x=px; y=py; - } + } } @@ -433,3 +434,35 @@ modexDrawSpritePBufRegion(page_t *page, int x, int y, JNZ PLANE_LOOP ; do all 4 planes } } + +void modexDrawCharPBuf(page_t *page, int x, int y, word t, word col, word bgcol, boolean q) +{ + word i, j, k; + for(i=0; idata + (((page->width/4) * (y+i)) + ((x+romFontsData.chw+k) / 4)), romFontsData.l[i] & j ? col:bgcol, 2); + modexputPixel(page, x+k+romFontsData.chw, y+i, romFontsData.l[i] & j ? col:bgcol); + else + //printf("l[i]=%c j=%02u l[i] & j=%02u %c\n", l[i] , j, l[i] & j, l[i] & j ? '*':' '); + //printf("%c", l[i] & j ? '*':' '); + romFontsData.z[k]=romFontsData.l[i] & j ? '*':' '; + j>>=1; + k++; + } + if(!q) + { + for(k=0;k<9;k++) + { + printf("%c", romFontsData.z[k]); + } + printf("\n"); + } + } + romFontsData.chw += k; +}