Yo lo haría así:
No estoy seguro de como va el orden de los colores en RGBA, pero supongo que se ordenan de izquierda a derecha y ocupan 32 bits, ¿no? (en bits por color: RRRRRRRRGGGGGGGGBBBBBBBBAAAAAAAA)
RGBA A; #32 bits izq-derecha
GXColor B; # la estrcutura tb ocupa 32 bits, y sí que se ordena RRRRRRRRGGGGGGGGBBBBBBBBAAAAAAAA en memoria
Entonces basta con B=(GXColor) A; Un casting a secas.
En algún sitio leí que uno era bigendian y otro little endian, así que si es necesario hacer un swap para cada componente, hay que sacarlo de uno en uno:
B=(GXColor)((A<<24)|(A<<8&0x00FF0000)|(A>>8&0x0000FF00)|(A>>24))
Creo que con eso vadría, échale un vistazo al número de bits que estoy moviendo ya que lo he escrito un poco rápido.