Ejemplo n.º 1
0
Archivo: gfx.c Proyecto: glankk/gz
void gfx_mode_apply(enum gfx_mode mode)
{
  Gfx dl[GFX_MODE_ALL];
  Gfx *pdl = dl;
  switch (mode) {
    case GFX_MODE_ALL:
    case GFX_MODE_FILTER: {
      gDPSetTextureFilter(pdl++, gfx_modes[GFX_MODE_FILTER]);
      if (mode != GFX_MODE_ALL)
        break;
    }
    case GFX_MODE_COMBINE: {
      gDPSetCombine(pdl++, gfx_modes[GFX_MODE_COMBINE]);
      if (mode != GFX_MODE_ALL)
        break;
    }
    case GFX_MODE_COLOR: {
      uint32_t c = gfx_modes[GFX_MODE_COLOR];
      gDPSetPrimColor(pdl++, 0, 0, (c >> 24) & 0xFF, (c >> 16) & 0xFF,
                                   (c >> 8)  & 0xFF, (c >> 0)  & 0xFF);
      if (mode != GFX_MODE_ALL)
        break;
    }
    default:
      break;
  }
  size_t s = pdl - dl;
  if (s > 0) {
    gfx_sync();
    memcpy(gfx_disp_p, dl, s * sizeof(*dl));
    gfx_disp_p += s;
  }
}
Ejemplo n.º 2
0
void RDP_SetCombine( u32 w0, u32 w1 )
{
    gDPSetCombine( _SHIFTR( w0, 0, 24 ),    // muxs0
                   w1 );                    // muxs1
}