static void TridentSubsequentFillRectSolid(ScrnInfoPtr pScrn, int x, int y, int w, int h) { TRIDENTPtr pTrident = TRIDENTPTR(pScrn); TGUI_DIM_XY(w,h); TGUI_DEST_XY(x,y); TGUI_COMMAND(GE_BLT); TridentSync(pScrn); }
static void TridentSubsequentColor8x8PatternFillRect(ScrnInfoPtr pScrn, int patternx, int patterny, int x, int y, int w, int h) { TRIDENTPtr pTrident = TRIDENTPTR(pScrn); TGUI_DEST_XY(x,y); TGUI_DIM_XY(w,h); TGUI_COMMAND(GE_BLT); TridentClearSync(pScrn); }
static void XPSubsequentScanlineCPUToScreenColorExpandFill( ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft ){ TRIDENTPtr pTrident = TRIDENTPTR(pScrn); pTrident->dwords = (w + 31) >> 5; pTrident->h = h; XP_DEST_XY(x,y); XP_DIM_XY(w>>1,h); TGUI_COMMAND(GE_BLT); }
static void TridentSubsequentScanlineCPUToScreenColorExpandFill( ScrnInfoPtr pScrn, int x, int y, int w, int h, int skipleft ){ TRIDENTPtr pTrident = TRIDENTPTR(pScrn); pTrident->dwords = (w + 31) >> 5; pTrident->h = h; pTrident->y = y; pTrident->x = x; pTrident->w = w; TGUI_DEST_XY(x,pTrident->y++); TGUI_DIM_XY(w,1); TGUI_COMMAND(GE_BLT); }
static void TridentSubsequentSolidBresenhamLine( ScrnInfoPtr pScrn, int x, int y, int dmaj, int dmin, int e, int len, int octant) { TRIDENTPtr pTrident = TRIDENTPTR(pScrn); int tmp = pTrident->BltScanDirection; if (octant & YMAJOR) tmp |= YMAJ; if (octant & XDECREASING) tmp |= XNEG; if (octant & YDECREASING) tmp |= YNEG; TGUI_DRAWFLAG(pTrident->DrawFlag | SOLIDFILL | STENCIL | tmp); TGUI_SRC_XY(dmin-dmaj,dmin); TGUI_DEST_XY(x,y); TGUI_DIM_XY(dmin+e,len); TGUI_COMMAND(GE_BRESLINE); TridentSync(pScrn); }
static void TridentSubsequentColorExpandScanline(ScrnInfoPtr pScrn, int bufno) { TRIDENTPtr pTrident = TRIDENTPTR(pScrn); XAAInfoRecPtr infoRec; infoRec = GET_XAAINFORECPTR_FROM_SCRNINFOPTR(pScrn); MoveDWORDS((CARD32 *)pTrident->FbBase, (CARD32 *)pTrident->XAAScanlineColorExpandBuffers[0], pTrident->dwords); pTrident->h--; TridentSync(pScrn); if (pTrident->h) { TGUI_DEST_XY(pTrident->x,pTrident->y++); TGUI_DIM_XY(pTrident->w,1); TGUI_COMMAND(GE_BLT); } }
static void TridentSubsequentSolidHorVertLine( ScrnInfoPtr pScrn, int x, int y, int len, int dir ){ TRIDENTPtr pTrident = TRIDENTPTR(pScrn); TGUI_DRAWFLAG(pTrident->DrawFlag | SOLIDFILL); if (dir == DEGREES_0) { TGUI_DIM_XY(len,1); TGUI_DEST_XY(x,y); } else { TGUI_DIM_XY(1,len); TGUI_DEST_XY(x,y); } TGUI_COMMAND(GE_BLT); TridentSync(pScrn); }
void TridentSubsequentDashedBresenhamLine(ScrnInfoPtr pScrn, int x, int y, int dmaj, int dmin, int e, int len, int octant, int phase) { TRIDENTPtr pTrident = TRIDENTPTR(pScrn); int tmp = pTrident->BltScanDirection; if (octant & YMAJOR) tmp |= YMAJ; if (octant & XDECREASING) tmp |= XNEG; if (octant & YDECREASING) tmp |= YNEG; TGUI_STYLE(((pTrident->LinePattern >> phase) | (pTrident->LinePattern << (16-phase))) & 0x0000FFFF); TGUI_DRAWFLAG(pTrident->DrawFlag | STENCIL | tmp); TGUI_SRC_XY(dmin-dmaj,dmin); TGUI_DEST_XY(x,y); TGUI_DIM_XY(e+dmin,len); TGUI_COMMAND(GE_BRESLINE); TridentSync(pScrn); }
static void TridentSubsequentScreenToScreenCopy(ScrnInfoPtr pScrn, int x1, int y1, int x2, int y2, int w, int h) { TRIDENTPtr pTrident = TRIDENTPTR(pScrn); if (pTrident->BltScanDirection & YNEG) { y1 = y1 + h - 1; y2 = y2 + h - 1; } if (pTrident->BltScanDirection & XNEG) { x1 = x1 + w - 1; x2 = x2 + w - 1; } TGUI_SRC_XY(x1,y1); TGUI_DEST_XY(x2,y2); TGUI_DIM_XY(w,h); TGUI_COMMAND(GE_BLT); TridentClearSync(pScrn); }