MCPcopy Create free account
hub / github.com/bfbbdecomp/bfbb / GXSetChanMatColor

Function GXSetChanMatColor

src/dolphin/src/gx/GXLight.c:357–400  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

355}
356
357void GXSetChanMatColor(GXChannelID channel, GXColor color)
358{
359 u32 reg = 0;
360 u32 rgb;
361 GXChannelID colorID;
362
363 switch (channel)
364 {
365 case GX_COLOR0:
366 rgb = __GXData->matColor[GX_COLOR0];
367 reg = GX_SET_TRUNC(GXCOLOR_AS_U32(color) & ~0xff, rgb, 24, 31);
368 colorID = GX_COLOR0;
369 break;
370 case GX_COLOR1:
371 rgb = __GXData->matColor[GX_COLOR1];
372 reg = GX_SET_TRUNC(GXCOLOR_AS_U32(color) & ~0xff, rgb, 24, 31);
373 colorID = GX_COLOR1;
374 break;
375 case GX_ALPHA0:
376 reg = __GXData->matColor[GX_COLOR0];
377 reg = GX_SET_TRUNC(reg, color.a, 24, 31);
378 colorID = GX_COLOR0;
379 break;
380 case GX_ALPHA1:
381 reg = __GXData->matColor[GX_COLOR1];
382 reg = GX_SET_TRUNC(reg, color.a, 24, 31);
383 colorID = GX_COLOR1;
384 break;
385 case GX_COLOR0A0:
386 reg = GXCOLOR_AS_U32(color);
387 colorID = GX_COLOR0;
388 break;
389 case GX_COLOR1A1:
390 reg = GXCOLOR_AS_U32(color);
391 colorID = GX_COLOR1;
392 break;
393 default:
394 return;
395 }
396
397 GX_XF_LOAD_REG(0x100c + colorID, reg);
398 __GXData->bpSentNot = GX_TRUE;
399 __GXData->matColor[colorID] = reg;
400}
401
402void GXSetNumChans(u8 nChans)
403{

Callers 1

__GXInitGXFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected