1#ifndef RVL_SDK_GX_ATTR_H 
    2#define RVL_SDK_GX_ATTR_H 
    5#include <revolution/GX/GXTypes.h> 
   22void GXSetVtxDesc(GXAttr name, GXAttrType type);
 
   23void GXSetVtxDescv(
const GXVtxDescList* list);
 
   24void GXGetVtxDesc(GXAttr name, GXAttrType* type);
 
   25void GXGetVtxDescv(GXVtxDescList* list);
 
   26void GXClearVtxDesc(
void);
 
   27void GXSetVtxAttrFmt(GXVtxFmt fmt, GXAttr attr, GXCompCnt compCnt,
 
   28                     GXCompType compType, u8 shift);
 
   31#ifdef GXATTR_MATCH_HACK 
   32void GXSetVtxAttrFmtv(s16 fmt, 
const GXVtxAttrFmtList* list);
 
   34void GXSetVtxAttrFmtv(GXVtxFmt fmt, 
const GXVtxAttrFmtList* list);
 
   37void GXGetVtxAttrFmt(GXVtxFmt fmt, GXAttr attr, GXCompCnt* compCnt,
 
   38                     GXCompType* compType, u8* shift);
 
   39void GXGetVtxAttrFmtv(GXVtxFmt fmt, GXVtxAttrFmtList* list);
 
   40void GXSetArray(GXAttr attr, 
const void* base, u8 stride);
 
   41void GXInvalidateVtxCache(
void);
 
   42void GXSetTexCoordGen2(GXTexCoordID 
id, GXTexGenType type, GXTexGenSrc src,
 
   43                       u32 texMtxIdx, GXBool normalize, u32 dualTexMtxIdx);
 
   44void GXSetNumTexGens(u8 num);
 
   47void __GXCalculateVLim(
void);
 
   50static void GXSetTexCoordGen(GXTexCoordID 
id, GXTexGenType type,
 
   51                             GXTexGenSrc src, u32 texMtxIdx) {
 
   52    GXSetTexCoordGen2(
id, type, src, texMtxIdx, FALSE, GX_PTIDENTITY);