static inline void i810_set_color(I810DriverData *i810drv, I810DeviceData *i810dev, CardState *state) { if (i810dev->i_color) return; switch (state->destination->config.format) { case DSPF_LUT8: i810dev->color_value = state->color_index; break; case DSPF_ARGB1555: i810dev->color_value = PIXEL_ARGB1555(state->color.a, state->color.r, state->color.g, state->color.b); break; case DSPF_RGB16: i810dev->color_value = PIXEL_RGB16(state->color.r, state->color.g, state->color.b); break; case DSPF_RGB24: i810dev->color_value = PIXEL_RGB32(state->color.r, state->color.g, state->color.b); break; default: D_BUG("unexpected pixelformat~"); } i810dev->i_color = 1; }
static inline void savage4_validate_color( Savage4DeviceData *sdev, CardState *state ) { if (sdev->v_color) return; switch (state->destination->config.format) { case DSPF_A8: sdev->Fill_Color = state->color.a; break; case DSPF_ARGB1555: sdev->Fill_Color = PIXEL_ARGB1555(state->color.a, state->color.r, state->color.g, state->color.b); break; case DSPF_RGB16: sdev->Fill_Color = PIXEL_RGB16(state->color.r, state->color.g, state->color.b); break; case DSPF_RGB32: sdev->Fill_Color = PIXEL_RGB32(state->color.r, state->color.g, state->color.b); break; case DSPF_ARGB: sdev->Fill_Color = PIXEL_ARGB(state->color.a, state->color.r, state->color.g, state->color.b); break; case DSPF_RGB332: sdev->Fill_Color = PIXEL_RGB332(state->color.r, state->color.g, state->color.b); break; default: D_BUG( "unexpected destination format" ); break; } sdev->v_color = 1; }
static inline void savage3D_validate_color( Savage3DDriverData *sdrv, Savage3DDeviceData *sdev, CardState *state ) { if (sdev->v_color) return; savage3D_waitfifo( sdrv, sdev, 2 ); BCI_SEND( BCI_CMD_NOP | BCI_CMD_SEND_COLOR ); switch (state->destination->config.format) { case DSPF_A8: BCI_SEND( state->color.a ); break; case DSPF_ARGB1555: BCI_SEND( PIXEL_ARGB1555(state->color.a, state->color.r, state->color.g, state->color.b) ); break; case DSPF_RGB16: BCI_SEND( PIXEL_RGB16(state->color.r, state->color.g, state->color.b) ); break; case DSPF_RGB32: BCI_SEND( PIXEL_RGB32(state->color.r, state->color.g, state->color.b) ); break; case DSPF_ARGB: BCI_SEND( PIXEL_ARGB(state->color.a, state->color.r, state->color.g, state->color.b) ); break; default: D_ONCE( "unsupported destination format" ); break; } sdev->v_color = 1; }
static inline void tdfx_validate_colorFore( TDFXDriverData *tdrv, TDFXDeviceData *tdev, CardState *state ) { if (tdev->v_colorFore) return; tdfx_waitfifo( tdrv, tdev, 1 ); switch (state->destination->config.format) { case DSPF_A8: tdrv->voodoo2D->colorFore = state->color.a; break; case DSPF_ARGB1555: tdrv->voodoo2D->colorFore = PIXEL_ARGB1555( state->color.a, state->color.r, state->color.g, state->color.b ); break; case DSPF_RGB16: tdrv->voodoo2D->colorFore = PIXEL_RGB16( state->color.r, state->color.g, state->color.b ); break; case DSPF_RGB24: case DSPF_RGB32: tdrv->voodoo2D->colorFore = PIXEL_RGB32( state->color.r, state->color.g, state->color.b ); break; case DSPF_ARGB: tdrv->voodoo2D->colorFore = PIXEL_ARGB( state->color.a, state->color.r, state->color.g, state->color.b ); break; default: D_BUG( "unexpected pixelformat!" ); break; } tdev->v_colorFore = 1; }
void sis_validate_color(SiSDriverData *drv, SiSDeviceData *dev, CardState *state) { u32 color; if (dev->v_color) return; switch (state->destination->config.format) { case DSPF_LUT8: color = state->color_index; break; case DSPF_ARGB1555: color = PIXEL_ARGB1555(state->color.a, state->color.r, state->color.g, state->color.b); break; case DSPF_RGB16: color = PIXEL_RGB16(state->color.r, state->color.g, state->color.b); break; case DSPF_RGB32: color = PIXEL_RGB32(state->color.r, state->color.g, state->color.b); break; case DSPF_ARGB: color = PIXEL_ARGB(state->color.a, state->color.r, state->color.g, state->color.b); break; default: D_BUG("unexpected pixelformat"); return; } sis_wl(drv->mmio_base, SIS315_2D_PAT_FG_COLOR, color); dev->v_color = 1; }
static inline void neo2200_validate_fgColor( Neo2200DriverData *ndrv, Neo2200DeviceData *ndev, CardState *state ) { if (ndev->n_fgColor) return; neo2200_waitfifo( ndrv, ndev, 1 ); switch (state->destination->config.format) { case DSPF_A8: ndrv->neo2200->fgColor = state->color.a; break; case DSPF_LUT8: ndrv->neo2200->fgColor = state->color_index; break; case DSPF_RGB332: ndrv->neo2200->fgColor = PIXEL_RGB332( state->color.r, state->color.g, state->color.b ); break; case DSPF_ARGB1555: ndrv->neo2200->fgColor = PIXEL_ARGB1555( state->color.a, state->color.r, state->color.g, state->color.b ); break; case DSPF_RGB16: ndrv->neo2200->fgColor = PIXEL_RGB16( state->color.r, state->color.g, state->color.b ); break; default: D_BUG( "unexpected pixelformat!" ); break; } ndev->n_fgColor = 1; }
static void gxSetState(void *drv, void *dev, GraphicsDeviceFuncs *funcs, CardState *state, DFBAccelerationMask accel) { NSCDriverData *gxdrv = (NSCDriverData *) drv; NSCDeviceData *gxdev = (NSCDeviceData *) dev; if (state->mod_hw & SMF_SRC_COLORKEY) gxdev->v_srcColorkey = 0; switch (accel) { case DFXL_BLIT: state->set |= DFXL_BLIT; if (state->blittingflags & DSBLIT_SRC_COLORKEY) nsc_validate_srcColorkey(gxdrv, gxdev, state); break; case DFXL_FILLRECTANGLE: case DFXL_DRAWRECTANGLE: case DFXL_DRAWLINE: state->set |= DFXL_FILLRECTANGLE | DFXL_DRAWLINE | DFXL_DRAWRECTANGLE; break; default: D_BUG("unexpected drawing/blitting function"); break; } if (state->mod_hw & SMF_DESTINATION) { /* set offset & pitch */ gxdev->dst_offset = state->dst.offset; gxdev->dst_pitch = state->dst.pitch; } if (state->mod_hw & SMF_SOURCE && state->source) { gxdev->src_offset = state->src.offset; gxdev->src_pitch = state->src.pitch; } if (state->mod_hw & (SMF_DESTINATION | SMF_COLOR)) { switch (state->destination->config.format) { case DSPF_A8: gxdev->Color = state->color.a; break; case DSPF_ARGB1555: gxdev->Color = PIXEL_ARGB1555(state->color.a, state->color.r, state->color.g, state->color.b); break; case DSPF_RGB16: gxdev->Color = PIXEL_RGB16(state->color.r, state->color.g, state->color.b); break; default: D_BUG("unexpected pixelformat"); break; } } state->mod_hw = 0; }