sm64/include/gex.h

103 lines
4.2 KiB
C

/********************************************************************************
gex.h: Ultra 64 MARIO Brothers include file
Copyright (c) 1995 Nintendo co., ltd. All rights reserved
Sept 25 1995
********************************************************************************/
#ifndef GEX_H
#define GEX_H
/********************************************************************************/
/* gsDPLoadTextureBlock() without gsDPSetTextureImage() */
/********************************************************************************/
#define gsxDPLoadTextureImage(fmt, siz, width, height, \
pal, cms, cmt, masks, maskt, shifts, shiftt) \
\
gsDPSetTile(fmt, siz, 0, 0, G_TX_LOADTILE, 0 , cmt, maskt, \
shiftt, cms, masks, shifts), \
gsDPLoadSync(), \
gsDPLoadBlock(G_TX_LOADTILE, 0, 0, (width)*(height)-1, \
CALC_DXT(width, siz##_BYTES)), \
gsDPSetTile(fmt, siz, ((((width) * siz##_LINE_BYTES)+7)>>3), 0, \
G_TX_RENDERTILE, pal, cmt, maskt, shiftt, cms, masks, \
shifts), \
gsDPSetTileSize(G_TX_RENDERTILE, 0, 0, \
((width)-1) << G_TEXTURE_IMAGE_FRAC, \
((height)-1) << G_TEXTURE_IMAGE_FRAC)
/********************************************************************************/
/* Static display-list to load texture image made by Tanimoto. */
/********************************************************************************/
#define g_Tani_LoadTextureImage(gfxptr, timg, fmt, siz, width, height, tmem, ttdn) \
\
gDPSetTextureImage(gfxptr, fmt, siz, 1, timg); \
gDPTileSync(gfxptr); \
gDPSetTile(gfxptr, fmt, siz, 0, tmem, ttdn, 0, 0,0,0, 0,0,0); \
gDPLoadSync(gfxptr); \
gDPLoadBlock(gfxptr, ttdn, 0, 0, ((width)*(height)-1), \
CALC_DXT(width, siz##_BYTES) )
#define gs_Tani_LoadTextureImage(timg, fmt, siz, width, height, tmem, ttdn) \
\
gsDPSetTextureImage(fmt, siz, 1, timg), \
gsDPTileSync(), \
gsDPSetTile(fmt, siz, 0, tmem, ttdn, 0, 0,0,0, 0,0,0), \
gsDPLoadSync(), \
gsDPLoadBlock(ttdn, 0, 0, ((width)*(height)-1), \
CALC_DXT(width, siz##_BYTES) )
/********************************************************************************/
/* Static display-list to load texture image Ver.2 made by Tanimoto. */
/********************************************************************************/
#define g_Tani_LoadTextureImage2(gfxptr, timg, fmt, siz, width, height, tmem, ttdn) \
\
gDPSetTextureImage(gfxptr, fmt, siz, 1, timg); \
gDPLoadSync(gfxptr); \
gDPLoadBlock(gfxptr, ttdn, 0, 0, ((width)*(height)-1), \
CALC_DXT(width, siz##_BYTES) )
#define gs_Tani_LoadTextureImage2(timg, fmt, siz, width, height, tmem, ttdn) \
\
gsDPSetTextureImage(fmt, siz, 1, timg), \
gsDPLoadSync(), \
gsDPLoadBlock(ttdn, 0, 0, ((width)*(height)-1), \
CALC_DXT(width, siz##_BYTES) )
/********************************************************************************/
/* Static display-list to set up Texture Tile Descriptor made by Tanimoto. */
/********************************************************************************/
#define g_Tani_SetUpTileDescrip(gfxptr, fmt, siz, width, height, tmem, ttdn, \
cms, masks, shifts, cmt, maskt, shiftt) \
\
gDPTileSync(gfxptr); \
gDPSetTile(gfxptr, fmt, siz, ((((width)*siz##_LINE_BYTES)+7)>>3), tmem, \
ttdn, 0, (cmt), (maskt), (shiftt), (cms), (masks), (shifts)); \
gDPSetTileSize(gfxptr, ttdn, 0, 0, \
(((width) -1) << G_TEXTURE_IMAGE_FRAC), \
(((height)-1) << G_TEXTURE_IMAGE_FRAC) )
#define gs_Tani_SetUpTileDescrip(fmt, siz, width, height, tmem, ttdn, \
cms, masks, shifts, cmt, maskt, shiftt) \
\
gsDPTileSync(), \
gsDPSetTile(fmt, siz, ((((width)*siz##_LINE_BYTES)+7)>>3), tmem, \
ttdn, 0, (cmt), (maskt), (shiftt), (cms), (masks), (shifts)), \
gsDPSetTileSize(ttdn, 0, 0, \
(((width) -1) << G_TEXTURE_IMAGE_FRAC), \
(((height)-1) << G_TEXTURE_IMAGE_FRAC) )
#endif