[Video] Change GrTexInfo to gfxTexInfo
This commit is contained in:
parent
f14c857bce
commit
f7422740a5
|
@ -109,10 +109,10 @@ static void DrawRE2Video256(FB_TO_SCREEN_INFO & fb_info)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceRDP, TraceDebug, "DrawRE2Video256. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
WriteTrace(TraceRDP, TraceDebug, "DrawRE2Video256. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
||||||
uint32_t * src = (uint32_t*)(gfx.RDRAM + fb_info.addr);
|
uint32_t * src = (uint32_t*)(gfx.RDRAM + fb_info.addr);
|
||||||
GrTexInfo t_info;
|
gfxTexInfo t_info;
|
||||||
t_info.smallLodLog2 = GFX_LOD_LOG2_256;
|
t_info.smallLodLog2 = GFX_LOD_LOG2_256;
|
||||||
t_info.largeLodLog2 = GFX_LOD_LOG2_256;
|
t_info.largeLodLog2 = GFX_LOD_LOG2_256;
|
||||||
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
t_info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
uint16_t * tex = (uint16_t*)texture_buffer;
|
uint16_t * tex = (uint16_t*)texture_buffer;
|
||||||
uint16_t * dst = tex;
|
uint16_t * dst = tex;
|
||||||
uint32_t col;
|
uint32_t col;
|
||||||
|
@ -157,12 +157,12 @@ static void DrawFrameBufferToScreen256(FB_TO_SCREEN_INFO & fb_info)
|
||||||
WriteTrace(TraceRDP, TraceDebug, "DrawFrameBufferToScreen256. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
WriteTrace(TraceRDP, TraceDebug, "DrawFrameBufferToScreen256. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
||||||
uint32_t width = fb_info.lr_x - fb_info.ul_x + 1;
|
uint32_t width = fb_info.lr_x - fb_info.ul_x + 1;
|
||||||
uint32_t height = fb_info.lr_y - fb_info.ul_y + 1;
|
uint32_t height = fb_info.lr_y - fb_info.ul_y + 1;
|
||||||
GrTexInfo t_info;
|
gfxTexInfo t_info;
|
||||||
uint8_t * image = gfx.RDRAM + fb_info.addr;
|
uint8_t * image = gfx.RDRAM + fb_info.addr;
|
||||||
uint32_t width256 = ((width - 1) >> 8) + 1;
|
uint32_t width256 = ((width - 1) >> 8) + 1;
|
||||||
uint32_t height256 = ((height - 1) >> 8) + 1;
|
uint32_t height256 = ((height - 1) >> 8) + 1;
|
||||||
t_info.smallLodLog2 = t_info.largeLodLog2 = GFX_LOD_LOG2_256;
|
t_info.smallLodLog2 = t_info.largeLodLog2 = GFX_LOD_LOG2_256;
|
||||||
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
t_info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
t_info.format = GFX_TEXFMT_ARGB_1555;
|
t_info.format = GFX_TEXFMT_ARGB_1555;
|
||||||
uint16_t * tex = (uint16_t*)texture_buffer;
|
uint16_t * tex = (uint16_t*)texture_buffer;
|
||||||
t_info.data = tex;
|
t_info.data = tex;
|
||||||
|
@ -273,7 +273,7 @@ bool DrawFrameBufferToScreen(FB_TO_SCREEN_INFO & fb_info)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
WriteTrace(TraceRDP, TraceDebug, "DrawFrameBufferToScreen. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
WriteTrace(TraceRDP, TraceDebug, "DrawFrameBufferToScreen. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
||||||
GrTexInfo t_info;
|
gfxTexInfo t_info;
|
||||||
uint8_t * image = gfx.RDRAM + fb_info.addr;
|
uint8_t * image = gfx.RDRAM + fb_info.addr;
|
||||||
uint32_t texwidth;
|
uint32_t texwidth;
|
||||||
float scale;
|
float scale;
|
||||||
|
@ -292,11 +292,11 @@ bool DrawFrameBufferToScreen(FB_TO_SCREEN_INFO & fb_info)
|
||||||
|
|
||||||
if (height <= (texwidth >> 1))
|
if (height <= (texwidth >> 1))
|
||||||
{
|
{
|
||||||
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_2x1;
|
t_info.aspectRatioLog2 = GFX_ASPECT_LOG2_2x1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
t_info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (fb_info.size == 2)
|
if (fb_info.size == 2)
|
||||||
|
@ -385,12 +385,12 @@ static void DrawDepthBufferToScreen256(FB_TO_SCREEN_INFO & fb_info)
|
||||||
WriteTrace(TraceRDP, TraceDebug, "DrawDepthBufferToScreen256. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
WriteTrace(TraceRDP, TraceDebug, "DrawDepthBufferToScreen256. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
||||||
uint32_t width = fb_info.lr_x - fb_info.ul_x + 1;
|
uint32_t width = fb_info.lr_x - fb_info.ul_x + 1;
|
||||||
uint32_t height = fb_info.lr_y - fb_info.ul_y + 1;
|
uint32_t height = fb_info.lr_y - fb_info.ul_y + 1;
|
||||||
GrTexInfo t_info;
|
gfxTexInfo t_info;
|
||||||
uint8_t * image = gfx.RDRAM + fb_info.addr;
|
uint8_t * image = gfx.RDRAM + fb_info.addr;
|
||||||
uint32_t width256 = ((width - 1) >> 8) + 1;
|
uint32_t width256 = ((width - 1) >> 8) + 1;
|
||||||
uint32_t height256 = ((height - 1) >> 8) + 1;
|
uint32_t height256 = ((height - 1) >> 8) + 1;
|
||||||
t_info.smallLodLog2 = t_info.largeLodLog2 = GFX_LOD_LOG2_256;
|
t_info.smallLodLog2 = t_info.largeLodLog2 = GFX_LOD_LOG2_256;
|
||||||
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
t_info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
t_info.format = GFX_TEXFMT_ALPHA_INTENSITY_88;
|
t_info.format = GFX_TEXFMT_ALPHA_INTENSITY_88;
|
||||||
uint16_t * tex = (uint16_t*)texture_buffer;
|
uint16_t * tex = (uint16_t*)texture_buffer;
|
||||||
t_info.data = tex;
|
t_info.data = tex;
|
||||||
|
@ -455,9 +455,9 @@ static void DrawDepthBufferToScreen256(FB_TO_SCREEN_INFO & fb_info)
|
||||||
static void DrawHiresDepthBufferToScreen(FB_TO_SCREEN_INFO & fb_info)
|
static void DrawHiresDepthBufferToScreen(FB_TO_SCREEN_INFO & fb_info)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceRDP, TraceDebug, "DrawHiresDepthBufferToScreen. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
WriteTrace(TraceRDP, TraceDebug, "DrawHiresDepthBufferToScreen. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
||||||
GrTexInfo t_info;
|
gfxTexInfo t_info;
|
||||||
float scale = 0.25f;
|
float scale = 0.25f;
|
||||||
GrLOD_t LOD = GFX_LOD_LOG2_1024;
|
gfxLOD_t LOD = GFX_LOD_LOG2_1024;
|
||||||
if (g_scr_res_x > 1024)
|
if (g_scr_res_x > 1024)
|
||||||
{
|
{
|
||||||
scale = 0.125f;
|
scale = 0.125f;
|
||||||
|
@ -465,7 +465,7 @@ static void DrawHiresDepthBufferToScreen(FB_TO_SCREEN_INFO & fb_info)
|
||||||
}
|
}
|
||||||
t_info.format = GFX_TEXFMT_ALPHA_INTENSITY_88;
|
t_info.format = GFX_TEXFMT_ALPHA_INTENSITY_88;
|
||||||
t_info.smallLodLog2 = t_info.largeLodLog2 = LOD;
|
t_info.smallLodLog2 = t_info.largeLodLog2 = LOD;
|
||||||
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
t_info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
gfxConstantColorValue(rdp.fog_color);
|
gfxConstantColorValue(rdp.fog_color);
|
||||||
gfxColorCombine(GR_COMBINE_FUNCTION_LOCAL,
|
gfxColorCombine(GR_COMBINE_FUNCTION_LOCAL,
|
||||||
GR_COMBINE_FACTOR_NONE,
|
GR_COMBINE_FACTOR_NONE,
|
||||||
|
@ -536,7 +536,7 @@ void DrawDepthBufferToScreen(FB_TO_SCREEN_INFO & fb_info)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
WriteTrace(TraceRDP, TraceDebug, "DrawDepthBufferToScreen. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
WriteTrace(TraceRDP, TraceDebug, "DrawDepthBufferToScreen. ul_x=%d, ul_y=%d, lr_x=%d, lr_y=%d, size=%d, addr=%08lx", fb_info.ul_x, fb_info.ul_y, fb_info.lr_x, fb_info.lr_y, fb_info.size, fb_info.addr);
|
||||||
GrTexInfo t_info;
|
gfxTexInfo t_info;
|
||||||
uint8_t * image = gfx.RDRAM + fb_info.addr;
|
uint8_t * image = gfx.RDRAM + fb_info.addr;
|
||||||
uint32_t texwidth;
|
uint32_t texwidth;
|
||||||
float scale;
|
float scale;
|
||||||
|
@ -555,11 +555,11 @@ void DrawDepthBufferToScreen(FB_TO_SCREEN_INFO & fb_info)
|
||||||
|
|
||||||
if (height <= (texwidth >> 1))
|
if (height <= (texwidth >> 1))
|
||||||
{
|
{
|
||||||
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_2x1;
|
t_info.aspectRatioLog2 = GFX_ASPECT_LOG2_2x1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
t_info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t * tex = (uint16_t*)texture_buffer;
|
uint16_t * tex = (uint16_t*)texture_buffer;
|
||||||
|
|
|
@ -76,8 +76,8 @@ VOODOO voodoo = { 0, 0, 0, 0,
|
||||||
0, 0, 0, 0
|
0, 0, 0, 0
|
||||||
};
|
};
|
||||||
|
|
||||||
GrTexInfo fontTex;
|
gfxTexInfo fontTex;
|
||||||
GrTexInfo cursorTex;
|
gfxTexInfo cursorTex;
|
||||||
uint32_t offset_font = 0;
|
uint32_t offset_font = 0;
|
||||||
uint32_t offset_cursor = 0;
|
uint32_t offset_cursor = 0;
|
||||||
uint32_t offset_textures = 0;
|
uint32_t offset_textures = 0;
|
||||||
|
@ -224,16 +224,16 @@ void guLoadTextures()
|
||||||
if (voodoo.max_tex_size <= 256)
|
if (voodoo.max_tex_size <= 256)
|
||||||
{
|
{
|
||||||
gfxTextureBufferExt(GFX_TMU1, voodoo.tex_min_addr[GFX_TMU1], GFX_LOD_LOG2_256, GFX_LOD_LOG2_256,
|
gfxTextureBufferExt(GFX_TMU1, voodoo.tex_min_addr[GFX_TMU1], GFX_LOD_LOG2_256, GFX_LOD_LOG2_256,
|
||||||
GR_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565, GR_MIPMAPLEVELMASK_BOTH);
|
GFX_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565, GR_MIPMAPLEVELMASK_BOTH);
|
||||||
tbuf_size = 8 * gfxTexCalcMemRequired(GFX_LOD_LOG2_256, GFX_LOD_LOG2_256,
|
tbuf_size = 8 * gfxTexCalcMemRequired(GFX_LOD_LOG2_256, GFX_LOD_LOG2_256,
|
||||||
GR_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565);
|
GFX_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565);
|
||||||
}
|
}
|
||||||
else if (g_scr_res_x <= 1024)
|
else if (g_scr_res_x <= 1024)
|
||||||
{
|
{
|
||||||
gfxTextureBufferExt(GFX_TMU0, voodoo.tex_min_addr[GFX_TMU0], GFX_LOD_LOG2_1024, GFX_LOD_LOG2_1024,
|
gfxTextureBufferExt(GFX_TMU0, voodoo.tex_min_addr[GFX_TMU0], GFX_LOD_LOG2_1024, GFX_LOD_LOG2_1024,
|
||||||
GR_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565, GR_MIPMAPLEVELMASK_BOTH);
|
GFX_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565, GR_MIPMAPLEVELMASK_BOTH);
|
||||||
tbuf_size = gfxTexCalcMemRequired(GFX_LOD_LOG2_1024, GFX_LOD_LOG2_1024,
|
tbuf_size = gfxTexCalcMemRequired(GFX_LOD_LOG2_1024, GFX_LOD_LOG2_1024,
|
||||||
GR_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565);
|
GFX_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565);
|
||||||
gfxRenderBuffer(GFX_BUFFER_TEXTUREBUFFER_EXT);
|
gfxRenderBuffer(GFX_BUFFER_TEXTUREBUFFER_EXT);
|
||||||
gfxBufferClear(0, 0, 0xFFFF);
|
gfxBufferClear(0, 0, 0xFFFF);
|
||||||
gfxRenderBuffer(GFX_BUFFER_BACKBUFFER);
|
gfxRenderBuffer(GFX_BUFFER_BACKBUFFER);
|
||||||
|
@ -241,9 +241,9 @@ void guLoadTextures()
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
gfxTextureBufferExt(GFX_TMU0, voodoo.tex_min_addr[GFX_TMU0], GFX_LOD_LOG2_2048, GFX_LOD_LOG2_2048,
|
gfxTextureBufferExt(GFX_TMU0, voodoo.tex_min_addr[GFX_TMU0], GFX_LOD_LOG2_2048, GFX_LOD_LOG2_2048,
|
||||||
GR_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565, GR_MIPMAPLEVELMASK_BOTH);
|
GFX_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565, GR_MIPMAPLEVELMASK_BOTH);
|
||||||
tbuf_size = gfxTexCalcMemRequired(GFX_LOD_LOG2_2048, GFX_LOD_LOG2_2048,
|
tbuf_size = gfxTexCalcMemRequired(GFX_LOD_LOG2_2048, GFX_LOD_LOG2_2048,
|
||||||
GR_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565);
|
GFX_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565);
|
||||||
gfxRenderBuffer(GFX_BUFFER_TEXTUREBUFFER_EXT);
|
gfxRenderBuffer(GFX_BUFFER_TEXTUREBUFFER_EXT);
|
||||||
gfxBufferClear(0, 0, 0xFFFF);
|
gfxBufferClear(0, 0, 0xFFFF);
|
||||||
gfxRenderBuffer(GFX_BUFFER_BACKBUFFER);
|
gfxRenderBuffer(GFX_BUFFER_BACKBUFFER);
|
||||||
|
@ -273,7 +273,7 @@ void guLoadTextures()
|
||||||
uint8_t *tex8 = (uint8_t*)malloc(256 * 64);
|
uint8_t *tex8 = (uint8_t*)malloc(256 * 64);
|
||||||
|
|
||||||
fontTex.smallLodLog2 = fontTex.largeLodLog2 = GFX_LOD_LOG2_256;
|
fontTex.smallLodLog2 = fontTex.largeLodLog2 = GFX_LOD_LOG2_256;
|
||||||
fontTex.aspectRatioLog2 = GR_ASPECT_LOG2_4x1;
|
fontTex.aspectRatioLog2 = GFX_ASPECT_LOG2_4x1;
|
||||||
fontTex.format = GFX_TEXFMT_ALPHA_8;
|
fontTex.format = GFX_TEXFMT_ALPHA_8;
|
||||||
fontTex.data = tex8;
|
fontTex.data = tex8;
|
||||||
|
|
||||||
|
@ -313,7 +313,7 @@ void guLoadTextures()
|
||||||
uint16_t *tex16 = (uint16_t*)malloc(32 * 32 * 2);
|
uint16_t *tex16 = (uint16_t*)malloc(32 * 32 * 2);
|
||||||
|
|
||||||
cursorTex.smallLodLog2 = cursorTex.largeLodLog2 = GFX_LOD_LOG2_32;
|
cursorTex.smallLodLog2 = cursorTex.largeLodLog2 = GFX_LOD_LOG2_32;
|
||||||
cursorTex.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
cursorTex.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
cursorTex.format = GFX_TEXFMT_ARGB_1555;
|
cursorTex.format = GFX_TEXFMT_ARGB_1555;
|
||||||
cursorTex.data = tex16;
|
cursorTex.data = tex16;
|
||||||
|
|
||||||
|
|
|
@ -563,7 +563,7 @@ bool gfxSstWinClose()
|
||||||
return FXTRUE;
|
return FXTRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gfxTextureBufferExt(gfxChipID_t tmu, uint32_t startAddress, GrLOD_t lodmin, GrLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt, uint32_t evenOdd)
|
void gfxTextureBufferExt(gfxChipID_t tmu, uint32_t startAddress, gfxLOD_t lodmin, gfxLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt, uint32_t evenOdd)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
static int fbs_init = 0;
|
static int fbs_init = 0;
|
||||||
|
@ -789,7 +789,7 @@ void gfxTextureBufferExt(gfxChipID_t tmu, uint32_t startAddress, GrLOD_t lodmin,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int CheckTextureBufferFormat(gfxChipID_t tmu, uint32_t startAddress, GrTexInfo *info)
|
int CheckTextureBufferFormat(gfxChipID_t tmu, uint32_t startAddress, gfxTexInfo *info)
|
||||||
{
|
{
|
||||||
int found, i;
|
int found, i;
|
||||||
if (!use_fbo) {
|
if (!use_fbo) {
|
||||||
|
|
|
@ -150,7 +150,7 @@ uint32_t gfxTexMaxAddress(gfxChipID_t tmu)
|
||||||
return TMU_SIZE * 2 - 1;
|
return TMU_SIZE * 2 - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t gfxTexTextureMemRequired(uint32_t evenOdd, GrTexInfo *info)
|
uint32_t gfxTexTextureMemRequired(uint32_t evenOdd, gfxTexInfo *info)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceGlitch, TraceDebug, "evenOdd = %d", evenOdd);
|
WriteTrace(TraceGlitch, TraceDebug, "evenOdd = %d", evenOdd);
|
||||||
int width, height;
|
int width, height;
|
||||||
|
@ -197,7 +197,7 @@ uint32_t gfxTexTextureMemRequired(uint32_t evenOdd, GrTexInfo *info)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t gfxTexCalcMemRequired(GrLOD_t lodmin, GrLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt)
|
uint32_t gfxTexCalcMemRequired(gfxLOD_t lodmin, gfxLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceGlitch, TraceDebug, "lodmin = %d, lodmax: %d aspect: %d fmt: %d", lodmin, lodmax, aspect, fmt);
|
WriteTrace(TraceGlitch, TraceDebug, "lodmin = %d, lodmax: %d aspect: %d fmt: %d", lodmin, lodmax, aspect, fmt);
|
||||||
int width, height;
|
int width, height;
|
||||||
|
@ -375,7 +375,7 @@ int grTexFormat2GLPackedFmt(int fmt, int * gltexfmt, int * glpixfmt, int * glpac
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
void gfxTexDownloadMipMap(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, GrTexInfo *info)
|
void gfxTexDownloadMipMap(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, gfxTexInfo *info)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceGlitch, TraceDebug, "tmu = %d, startAddress: %d evenOdd: %d", tmu, startAddress, evenOdd);
|
WriteTrace(TraceGlitch, TraceDebug, "tmu = %d, startAddress: %d evenOdd: %d", tmu, startAddress, evenOdd);
|
||||||
int width, height, i, j;
|
int width, height, i, j;
|
||||||
|
@ -631,9 +631,9 @@ void gfxTexDownloadMipMap(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenO
|
||||||
glBindTexture(GL_TEXTURE_2D, default_texture);
|
glBindTexture(GL_TEXTURE_2D, default_texture);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CheckTextureBufferFormat(gfxChipID_t tmu, uint32_t startAddress, GrTexInfo *info);
|
int CheckTextureBufferFormat(gfxChipID_t tmu, uint32_t startAddress, gfxTexInfo *info);
|
||||||
|
|
||||||
void gfxTexSource(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, GrTexInfo *info)
|
void gfxTexSource(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, gfxTexInfo *info)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceGlitch, TraceDebug, "tmu = %d, startAddress: %d evenOdd: %d", tmu, startAddress, evenOdd);
|
WriteTrace(TraceGlitch, TraceDebug, "tmu = %d, startAddress: %d evenOdd: %d", tmu, startAddress, evenOdd);
|
||||||
|
|
||||||
|
|
|
@ -863,7 +863,7 @@ bool gfxSstWinClose()
|
||||||
return FXTRUE;
|
return FXTRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gfxTextureBufferExt(gfxChipID_t tmu, uint32_t startAddress, GrLOD_t lodmin, GrLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt, uint32_t evenOdd)
|
void gfxTextureBufferExt(gfxChipID_t tmu, uint32_t startAddress, gfxLOD_t lodmin, gfxLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt, uint32_t evenOdd)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
static int fbs_init = 0;
|
static int fbs_init = 0;
|
||||||
|
@ -1093,7 +1093,7 @@ void gfxTextureBufferExt(gfxChipID_t tmu, uint32_t startAddress, GrLOD_t lodmin,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int CheckTextureBufferFormat(gfxChipID_t tmu, uint32_t startAddress, GrTexInfo *info)
|
int CheckTextureBufferFormat(gfxChipID_t tmu, uint32_t startAddress, gfxTexInfo *info)
|
||||||
{
|
{
|
||||||
int found, i;
|
int found, i;
|
||||||
if (!use_fbo) {
|
if (!use_fbo) {
|
||||||
|
|
|
@ -151,7 +151,7 @@ uint32_t gfxTexMaxAddress(gfxChipID_t tmu)
|
||||||
return TMU_SIZE * 2 - 1;
|
return TMU_SIZE * 2 - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t gfxTexTextureMemRequired(uint32_t evenOdd, GrTexInfo *info)
|
uint32_t gfxTexTextureMemRequired(uint32_t evenOdd, gfxTexInfo *info)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceGlitch, TraceDebug, "evenOdd = %d", evenOdd);
|
WriteTrace(TraceGlitch, TraceDebug, "evenOdd = %d", evenOdd);
|
||||||
int width, height;
|
int width, height;
|
||||||
|
@ -198,7 +198,7 @@ uint32_t gfxTexTextureMemRequired(uint32_t evenOdd, GrTexInfo *info)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t gfxTexCalcMemRequired(GrLOD_t lodmin, GrLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt)
|
uint32_t gfxTexCalcMemRequired(gfxLOD_t lodmin, gfxLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceGlitch, TraceDebug, "lodmin = %d, lodmax: %d aspect: %d fmt: %d", lodmin, lodmax, aspect, fmt);
|
WriteTrace(TraceGlitch, TraceDebug, "lodmin = %d, lodmax: %d aspect: %d fmt: %d", lodmin, lodmax, aspect, fmt);
|
||||||
int width, height;
|
int width, height;
|
||||||
|
@ -370,7 +370,7 @@ int grTexFormat2GLPackedFmt(int fmt, int * gltexfmt, int * glpixfmt, int * glpac
|
||||||
return factor;
|
return factor;
|
||||||
}
|
}
|
||||||
|
|
||||||
void gfxTexDownloadMipMap(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, GrTexInfo *info)
|
void gfxTexDownloadMipMap(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, gfxTexInfo *info)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceGlitch, TraceDebug, "tmu = %d, startAddress: %d evenOdd: %d", tmu, startAddress, evenOdd);
|
WriteTrace(TraceGlitch, TraceDebug, "tmu = %d, startAddress: %d evenOdd: %d", tmu, startAddress, evenOdd);
|
||||||
|
|
||||||
|
@ -627,9 +627,9 @@ void gfxTexDownloadMipMap(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenO
|
||||||
grDisplayGLError("gfxTexDownloadMipMap");
|
grDisplayGLError("gfxTexDownloadMipMap");
|
||||||
}
|
}
|
||||||
|
|
||||||
int CheckTextureBufferFormat(gfxChipID_t tmu, uint32_t startAddress, GrTexInfo *info);
|
int CheckTextureBufferFormat(gfxChipID_t tmu, uint32_t startAddress, gfxTexInfo *info);
|
||||||
|
|
||||||
void gfxTexSource(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, GrTexInfo *info)
|
void gfxTexSource(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, gfxTexInfo *info)
|
||||||
{
|
{
|
||||||
WriteTrace(TraceGlitch, TraceDebug, "tmu = %d, startAddress: %d evenOdd: %d", tmu, startAddress, evenOdd);
|
WriteTrace(TraceGlitch, TraceDebug, "tmu = %d, startAddress: %d evenOdd: %d", tmu, startAddress, evenOdd);
|
||||||
|
|
||||||
|
|
|
@ -19,9 +19,9 @@ void gfxClipWindow(uint32_t minx, uint32_t miny, uint32_t maxx, uint32_t maxy);
|
||||||
void gfxColorMask(bool rgb, bool a);
|
void gfxColorMask(bool rgb, bool a);
|
||||||
uint32_t gfxTexMinAddress(gfxChipID_t tmu);
|
uint32_t gfxTexMinAddress(gfxChipID_t tmu);
|
||||||
bool gfxSstWinClose();
|
bool gfxSstWinClose();
|
||||||
void gfxTextureBufferExt(gfxChipID_t tmu, uint32_t startAddress, GrLOD_t lodmin, GrLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt, uint32_t evenOdd);
|
void gfxTextureBufferExt(gfxChipID_t tmu, uint32_t startAddress, gfxLOD_t lodmin, gfxLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt, uint32_t evenOdd);
|
||||||
uint32_t gfxTexMaxAddress(gfxChipID_t tmu);
|
uint32_t gfxTexMaxAddress(gfxChipID_t tmu);
|
||||||
uint32_t gfxTexTextureMemRequired(uint32_t evenOdd, GrTexInfo *info);
|
uint32_t gfxTexTextureMemRequired(uint32_t evenOdd, gfxTexInfo *info);
|
||||||
void gfxConstantColorValue(GrColor_t value);
|
void gfxConstantColorValue(GrColor_t value);
|
||||||
void gfxColorCombine(GrCombineFunction_t function, GrCombineFactor_t factor, GrCombineLocal_t local, GrCombineOther_t other, bool invert);
|
void gfxColorCombine(GrCombineFunction_t function, GrCombineFactor_t factor, GrCombineLocal_t local, GrCombineOther_t other, bool invert);
|
||||||
void gfxAlphaCombine(GrCombineFunction_t function, GrCombineFactor_t factor, GrCombineLocal_t local, GrCombineOther_t other, bool invert);
|
void gfxAlphaCombine(GrCombineFunction_t function, GrCombineFactor_t factor, GrCombineLocal_t local, GrCombineOther_t other, bool invert);
|
||||||
|
@ -62,12 +62,12 @@ bool gfxLfbLock(GrLock_t type, GrBuffer_t buffer, GrLfbWriteMode_t writeMode, Gr
|
||||||
bool gfxLfbUnlock(GrLock_t type, GrBuffer_t buffer);
|
bool gfxLfbUnlock(GrLock_t type, GrBuffer_t buffer);
|
||||||
bool gfxLfbReadRegion(GrBuffer_t src_buffer, uint32_t src_x, uint32_t src_y, uint32_t src_width, uint32_t src_height, uint32_t dst_stride, void *dst_data);
|
bool gfxLfbReadRegion(GrBuffer_t src_buffer, uint32_t src_x, uint32_t src_y, uint32_t src_width, uint32_t src_height, uint32_t dst_stride, void *dst_data);
|
||||||
bool gfxLfbWriteRegion(GrBuffer_t dst_buffer, uint32_t dst_x, uint32_t dst_y, GrLfbSrcFmt_t src_format, uint32_t src_width, uint32_t src_height, bool pixelPipeline, FxI32 src_stride, void *src_data);
|
bool gfxLfbWriteRegion(GrBuffer_t dst_buffer, uint32_t dst_x, uint32_t dst_y, GrLfbSrcFmt_t src_format, uint32_t src_width, uint32_t src_height, bool pixelPipeline, FxI32 src_stride, void *src_data);
|
||||||
uint32_t gfxTexCalcMemRequired(GrLOD_t lodmin, GrLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt);
|
uint32_t gfxTexCalcMemRequired(gfxLOD_t lodmin, gfxLOD_t lodmax, GrAspectRatio_t aspect, GrTextureFormat_t fmt);
|
||||||
void gfxLoadGammaTable(uint32_t nentries, uint32_t *red, uint32_t *green, uint32_t *blue);
|
void gfxLoadGammaTable(uint32_t nentries, uint32_t *red, uint32_t *green, uint32_t *blue);
|
||||||
void gfxGetGammaTableExt(uint32_t /*nentries*/, uint32_t *red, uint32_t *green, uint32_t *blue);
|
void gfxGetGammaTableExt(uint32_t /*nentries*/, uint32_t *red, uint32_t *green, uint32_t *blue);
|
||||||
void gfxGammaCorrectionRGB(FxFloat gammaR, FxFloat gammaG, FxFloat gammaB);
|
void gfxGammaCorrectionRGB(FxFloat gammaR, FxFloat gammaG, FxFloat gammaB);
|
||||||
void gfxTexDownloadMipMap(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, GrTexInfo *info);
|
void gfxTexDownloadMipMap(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, gfxTexInfo *info);
|
||||||
void gfxTexSource(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, GrTexInfo *info);
|
void gfxTexSource(gfxChipID_t tmu, uint32_t startAddress, uint32_t evenOdd, gfxTexInfo *info);
|
||||||
void gfxTexDetailControl(gfxChipID_t tmu, int lod_bias, FxU8 detail_scale, float detail_max);
|
void gfxTexDetailControl(gfxChipID_t tmu, int lod_bias, FxU8 detail_scale, float detail_max);
|
||||||
void gfxTexClampMode(gfxChipID_t tmu, GrTextureClampMode_t s_clampmode, GrTextureClampMode_t t_clampmode);
|
void gfxTexClampMode(gfxChipID_t tmu, GrTextureClampMode_t s_clampmode, GrTextureClampMode_t t_clampmode);
|
||||||
void gfxTexFilterMode(gfxChipID_t tmu, GrTextureFilterMode_t minfilter_mode, GrTextureFilterMode_t magfilter_mode);
|
void gfxTexFilterMode(gfxChipID_t tmu, GrTextureFilterMode_t minfilter_mode, GrTextureFilterMode_t magfilter_mode);
|
||||||
|
|
|
@ -95,6 +95,17 @@ enum gfxTextureFormat_t
|
||||||
GFX_TEXFMT_GZ = 0x8000,
|
GFX_TEXFMT_GZ = 0x8000,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum gfxAspectRatio_t
|
||||||
|
{
|
||||||
|
GFX_ASPECT_LOG2_8x1 = 3, /* 8W x 1H */
|
||||||
|
GFX_ASPECT_LOG2_4x1 = 2, /* 4W x 1H */
|
||||||
|
GFX_ASPECT_LOG2_2x1 = 1, /* 2W x 1H */
|
||||||
|
GFX_ASPECT_LOG2_1x1 = 0, /* 1W x 1H */
|
||||||
|
GFX_ASPECT_LOG2_1x2 = -1, /* 1W x 2H */
|
||||||
|
GFX_ASPECT_LOG2_1x4 = -2, /* 1W x 4H */
|
||||||
|
GFX_ASPECT_LOG2_1x8 = -3, /* 1W x 8H */
|
||||||
|
};
|
||||||
|
|
||||||
enum GFX_CMBX
|
enum GFX_CMBX
|
||||||
{
|
{
|
||||||
GFX_CMBX_ZERO = 0x00,
|
GFX_CMBX_ZERO = 0x00,
|
||||||
|
@ -124,3 +135,11 @@ enum gfxChipID_t
|
||||||
GFX_TMU2 = 0x2,
|
GFX_TMU2 = 0x2,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
gfxLOD_t smallLodLog2;
|
||||||
|
gfxLOD_t largeLodLog2;
|
||||||
|
gfxAspectRatio_t aspectRatioLog2;
|
||||||
|
gfxTextureFormat_t format;
|
||||||
|
void *data;
|
||||||
|
} gfxTexInfo;
|
||||||
|
|
|
@ -81,13 +81,13 @@ static TBUFF_COLOR_IMAGE * AllocateTextureBuffer(COLOR_IMAGE & cimage)
|
||||||
{
|
{
|
||||||
if ((texbuf.scr_width / texbuf.scr_height) >= 2)
|
if ((texbuf.scr_width / texbuf.scr_height) >= 2)
|
||||||
{
|
{
|
||||||
texbuf.info.aspectRatioLog2 = GR_ASPECT_LOG2_2x1;
|
texbuf.info.aspectRatioLog2 = GFX_ASPECT_LOG2_2x1;
|
||||||
texbuf.tex_width = tex_size;
|
texbuf.tex_width = tex_size;
|
||||||
texbuf.tex_height = tex_size >> 1;
|
texbuf.tex_height = tex_size >> 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
texbuf.info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
texbuf.info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
texbuf.tex_width = texbuf.tex_height = tex_size;
|
texbuf.tex_width = texbuf.tex_height = tex_size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,13 +95,13 @@ static TBUFF_COLOR_IMAGE * AllocateTextureBuffer(COLOR_IMAGE & cimage)
|
||||||
{
|
{
|
||||||
if ((texbuf.scr_height / texbuf.scr_width) >= 2)
|
if ((texbuf.scr_height / texbuf.scr_width) >= 2)
|
||||||
{
|
{
|
||||||
texbuf.info.aspectRatioLog2 = GR_ASPECT_LOG2_1x2;
|
texbuf.info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x2;
|
||||||
texbuf.tex_width = tex_size >> 1;
|
texbuf.tex_width = tex_size >> 1;
|
||||||
texbuf.tex_height = tex_size;
|
texbuf.tex_height = tex_size;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
texbuf.info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
texbuf.info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
texbuf.tex_width = texbuf.tex_height = tex_size;
|
texbuf.tex_width = texbuf.tex_height = tex_size;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -321,7 +321,7 @@ int OpenTextureBuffer(COLOR_IMAGE & cimage)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static GrTextureFormat_t TexBufSetupCombiner(int force_rgb = FALSE)
|
static gfxTextureFormat_t TexBufSetupCombiner(int force_rgb = FALSE)
|
||||||
{
|
{
|
||||||
gfxColorCombine(GR_COMBINE_FUNCTION_SCALE_OTHER,
|
gfxColorCombine(GR_COMBINE_FUNCTION_SCALE_OTHER,
|
||||||
GR_COMBINE_FACTOR_ONE,
|
GR_COMBINE_FACTOR_ONE,
|
||||||
|
@ -344,7 +344,7 @@ static GrTextureFormat_t TexBufSetupCombiner(int force_rgb = FALSE)
|
||||||
gfxDepthMask(FXFALSE);
|
gfxDepthMask(FXFALSE);
|
||||||
gfxCullMode(GR_CULL_DISABLE);
|
gfxCullMode(GR_CULL_DISABLE);
|
||||||
gfxFogMode(GR_FOG_DISABLE);
|
gfxFogMode(GR_FOG_DISABLE);
|
||||||
GrTextureFormat_t buf_format = (rdp.tbuff_tex) ? rdp.tbuff_tex->info.format : GFX_TEXFMT_RGB_565;
|
gfxTextureFormat_t buf_format = (rdp.tbuff_tex) ? rdp.tbuff_tex->info.format : GFX_TEXFMT_RGB_565;
|
||||||
GrCombineFunction_t color_source = GR_COMBINE_FUNCTION_LOCAL;
|
GrCombineFunction_t color_source = GR_COMBINE_FUNCTION_LOCAL;
|
||||||
if (!force_rgb && rdp.black_ci_index > 0 && rdp.black_ci_index <= rdp.copy_ci_index)
|
if (!force_rgb && rdp.black_ci_index > 0 && rdp.black_ci_index <= rdp.copy_ci_index)
|
||||||
{
|
{
|
||||||
|
@ -461,7 +461,7 @@ int CopyTextureBuffer(COLOR_IMAGE & fb_from, COLOR_IMAGE & fb_to)
|
||||||
return CloseTextureBuffer(TRUE);
|
return CloseTextureBuffer(TRUE);
|
||||||
}
|
}
|
||||||
rdp.tbuff_tex->crc = 0;
|
rdp.tbuff_tex->crc = 0;
|
||||||
GrTextureFormat_t buf_format = rdp.tbuff_tex->info.format;
|
gfxTextureFormat_t buf_format = rdp.tbuff_tex->info.format;
|
||||||
rdp.tbuff_tex->info.format = GFX_TEXFMT_RGB_565;
|
rdp.tbuff_tex->info.format = GFX_TEXFMT_RGB_565;
|
||||||
TexBufSetupCombiner(TRUE);
|
TexBufSetupCombiner(TRUE);
|
||||||
float ul_x = 0.0f;
|
float ul_x = 0.0f;
|
||||||
|
@ -508,7 +508,7 @@ int CopyDepthBuffer()
|
||||||
{
|
{
|
||||||
WriteTrace(TraceRDP, TraceDebug, "CopyDepthBuffer. ");
|
WriteTrace(TraceRDP, TraceDebug, "CopyDepthBuffer. ");
|
||||||
float bound = 1024.0f;
|
float bound = 1024.0f;
|
||||||
GrLOD_t LOD = GFX_LOD_LOG2_1024;
|
gfxLOD_t LOD = GFX_LOD_LOG2_1024;
|
||||||
if (g_scr_res_x > 1024)
|
if (g_scr_res_x > 1024)
|
||||||
{
|
{
|
||||||
bound = 2048.0f;
|
bound = 2048.0f;
|
||||||
|
@ -518,7 +518,7 @@ int CopyDepthBuffer()
|
||||||
rdp.tbuff_tex->tmu = rdp.texbufs[0].tmu;
|
rdp.tbuff_tex->tmu = rdp.texbufs[0].tmu;
|
||||||
rdp.tbuff_tex->info.format = GFX_TEXFMT_RGB_565;
|
rdp.tbuff_tex->info.format = GFX_TEXFMT_RGB_565;
|
||||||
rdp.tbuff_tex->info.smallLodLog2 = rdp.tbuff_tex->info.largeLodLog2 = LOD;
|
rdp.tbuff_tex->info.smallLodLog2 = rdp.tbuff_tex->info.largeLodLog2 = LOD;
|
||||||
rdp.tbuff_tex->info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
rdp.tbuff_tex->info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
TexBufSetupCombiner(TRUE);
|
TexBufSetupCombiner(TRUE);
|
||||||
float ul_x = 0.0f;
|
float ul_x = 0.0f;
|
||||||
float ul_y = 0.0f;
|
float ul_y = 0.0f;
|
||||||
|
@ -541,7 +541,7 @@ int CopyDepthBuffer()
|
||||||
gfxTexSource(rdp.texbufs[0].tmu, rdp.texbufs[0].begin, GR_MIPMAPLEVELMASK_BOTH, &(rdp.tbuff_tex->info));
|
gfxTexSource(rdp.texbufs[0].tmu, rdp.texbufs[0].begin, GR_MIPMAPLEVELMASK_BOTH, &(rdp.tbuff_tex->info));
|
||||||
gfxRenderBuffer(GFX_BUFFER_TEXTUREBUFFER_EXT);
|
gfxRenderBuffer(GFX_BUFFER_TEXTUREBUFFER_EXT);
|
||||||
gfxTextureBufferExt(rdp.texbufs[1].tmu, rdp.texbufs[1].begin, LOD, LOD,
|
gfxTextureBufferExt(rdp.texbufs[1].tmu, rdp.texbufs[1].begin, LOD, LOD,
|
||||||
GR_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565, GR_MIPMAPLEVELMASK_BOTH);
|
GFX_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565, GR_MIPMAPLEVELMASK_BOTH);
|
||||||
gfxDrawTriangle(&v[0], &v[2], &v[1]);
|
gfxDrawTriangle(&v[0], &v[2], &v[1]);
|
||||||
gfxDrawTriangle(&v[2], &v[3], &v[1]);
|
gfxDrawTriangle(&v[2], &v[3], &v[1]);
|
||||||
gfxRenderBuffer(GFX_BUFFER_BACKBUFFER);
|
gfxRenderBuffer(GFX_BUFFER_BACKBUFFER);
|
||||||
|
|
|
@ -923,7 +923,8 @@ void LoadTex(int id, gfxChipID_t tmu)
|
||||||
WriteTrace(TraceRDP, TraceDebug, " | |-+ LoadTex (id: %d, tmu: %d)", id, tmu);
|
WriteTrace(TraceRDP, TraceDebug, " | |-+ LoadTex (id: %d, tmu: %d)", id, tmu);
|
||||||
|
|
||||||
int td = rdp.cur_tile + id;
|
int td = rdp.cur_tile + id;
|
||||||
int lod, aspect;
|
gfxLOD_t lod;
|
||||||
|
gfxAspectRatio_t aspect;
|
||||||
CACHE_LUT *cache;
|
CACHE_LUT *cache;
|
||||||
|
|
||||||
if (texinfo[id].width < 0 || texinfo[id].height < 0)
|
if (texinfo[id].width < 0 || texinfo[id].height < 0)
|
||||||
|
@ -1064,24 +1065,24 @@ void LoadTex(int id, gfxChipID_t tmu)
|
||||||
switch (ratio)
|
switch (ratio)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
aspect = GR_ASPECT_LOG2_1x1;
|
aspect = GFX_ASPECT_LOG2_1x1;
|
||||||
cache->scale_x = 1.0f;
|
cache->scale_x = 1.0f;
|
||||||
cache->scale_y = 1.0f;
|
cache->scale_y = 1.0f;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
aspect = GR_ASPECT_LOG2_2x1;
|
aspect = GFX_ASPECT_LOG2_2x1;
|
||||||
cache->scale_x = 1.0f;
|
cache->scale_x = 1.0f;
|
||||||
cache->scale_y = 0.5f;
|
cache->scale_y = 0.5f;
|
||||||
real_y >>= 1;
|
real_y >>= 1;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
aspect = GR_ASPECT_LOG2_4x1;
|
aspect = GFX_ASPECT_LOG2_4x1;
|
||||||
cache->scale_x = 1.0f;
|
cache->scale_x = 1.0f;
|
||||||
cache->scale_y = 0.25f;
|
cache->scale_y = 0.25f;
|
||||||
real_y >>= 2;
|
real_y >>= 2;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
aspect = GR_ASPECT_LOG2_8x1;
|
aspect = GFX_ASPECT_LOG2_8x1;
|
||||||
cache->scale_x = 1.0f;
|
cache->scale_x = 1.0f;
|
||||||
cache->scale_y = 0.125f;
|
cache->scale_y = 0.125f;
|
||||||
real_y >>= 3;
|
real_y >>= 3;
|
||||||
|
@ -1094,19 +1095,19 @@ void LoadTex(int id, gfxChipID_t tmu)
|
||||||
switch (ratio)
|
switch (ratio)
|
||||||
{
|
{
|
||||||
case 2:
|
case 2:
|
||||||
aspect = GR_ASPECT_LOG2_1x2;
|
aspect = GFX_ASPECT_LOG2_1x2;
|
||||||
cache->scale_x = 0.5f;
|
cache->scale_x = 0.5f;
|
||||||
cache->scale_y = 1.0f;
|
cache->scale_y = 1.0f;
|
||||||
real_x >>= 1;
|
real_x >>= 1;
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
aspect = GR_ASPECT_LOG2_1x4;
|
aspect = GFX_ASPECT_LOG2_1x4;
|
||||||
cache->scale_x = 0.25f;
|
cache->scale_x = 0.25f;
|
||||||
cache->scale_y = 1.0f;
|
cache->scale_y = 1.0f;
|
||||||
real_x >>= 2;
|
real_x >>= 2;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
aspect = GR_ASPECT_LOG2_1x8;
|
aspect = GFX_ASPECT_LOG2_1x8;
|
||||||
cache->scale_x = 0.125f;
|
cache->scale_x = 0.125f;
|
||||||
cache->scale_y = 1.0f;
|
cache->scale_y = 1.0f;
|
||||||
real_x >>= 3;
|
real_x >>= 3;
|
||||||
|
@ -1516,7 +1517,7 @@ void LoadTex(int id, gfxChipID_t tmu)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
cache->t_info.format = LOWORD(result);
|
cache->t_info.format = (gfxTextureFormat_t)LOWORD(result);
|
||||||
|
|
||||||
cache->realwidth = real_x;
|
cache->realwidth = real_x;
|
||||||
cache->realheight = real_y;
|
cache->realheight = real_y;
|
||||||
|
@ -1533,8 +1534,8 @@ void LoadTex(int id, gfxChipID_t tmu)
|
||||||
|
|
||||||
if (ghqTexInfo.data)
|
if (ghqTexInfo.data)
|
||||||
{
|
{
|
||||||
if (ghqTexInfo.aspectRatioLog2 < GR_ASPECT_LOG2_1x8 ||
|
if (ghqTexInfo.aspectRatioLog2 < GFX_ASPECT_LOG2_1x8 ||
|
||||||
ghqTexInfo.aspectRatioLog2 > GR_ASPECT_LOG2_8x1 ||
|
ghqTexInfo.aspectRatioLog2 > GFX_ASPECT_LOG2_8x1 ||
|
||||||
ghqTexInfo.largeLodLog2 > GFX_LOD_LOG2_2048 ||
|
ghqTexInfo.largeLodLog2 > GFX_LOD_LOG2_2048 ||
|
||||||
ghqTexInfo.largeLodLog2 < GFX_LOD_LOG2_1)
|
ghqTexInfo.largeLodLog2 < GFX_LOD_LOG2_1)
|
||||||
{
|
{
|
||||||
|
@ -1543,7 +1544,7 @@ void LoadTex(int id, gfxChipID_t tmu)
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
texture = (uint8_t *)ghqTexInfo.data;
|
texture = (uint8_t *)ghqTexInfo.data;
|
||||||
lod = ghqTexInfo.largeLodLog2;
|
lod = (gfxLOD_t)ghqTexInfo.largeLodLog2;
|
||||||
int splits = cache->splits;
|
int splits = cache->splits;
|
||||||
if (ghqTexInfo.is_hires_tex)
|
if (ghqTexInfo.is_hires_tex)
|
||||||
{
|
{
|
||||||
|
@ -1619,7 +1620,7 @@ void LoadTex(int id, gfxChipID_t tmu)
|
||||||
cache->c_scl_y *= 2.0f;
|
cache->c_scl_y *= 2.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
aspect = ghqTexInfo.aspectRatioLog2;
|
aspect = (gfxAspectRatio_t)ghqTexInfo.aspectRatioLog2;
|
||||||
cache->lod = lod;
|
cache->lod = lod;
|
||||||
cache->aspect = aspect;
|
cache->aspect = aspect;
|
||||||
}
|
}
|
||||||
|
@ -1630,7 +1631,7 @@ void LoadTex(int id, gfxChipID_t tmu)
|
||||||
real_x = ghqTexInfo.width;
|
real_x = ghqTexInfo.width;
|
||||||
real_y = ghqTexInfo.height;
|
real_y = ghqTexInfo.height;
|
||||||
result = (1 << 16) | ghqTexInfo.format;
|
result = (1 << 16) | ghqTexInfo.format;
|
||||||
cache->t_info.format = ghqTexInfo.format;
|
cache->t_info.format = (gfxTextureFormat_t)ghqTexInfo.format;
|
||||||
cache->realwidth = real_x;
|
cache->realwidth = real_x;
|
||||||
cache->realheight = real_y;
|
cache->realheight = real_y;
|
||||||
}
|
}
|
||||||
|
@ -1638,7 +1639,7 @@ void LoadTex(int id, gfxChipID_t tmu)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Load the texture into texture memory
|
// Load the texture into texture memory
|
||||||
GrTexInfo *t_info = &cache->t_info;
|
gfxTexInfo *t_info = &cache->t_info;
|
||||||
t_info->data = texture;
|
t_info->data = texture;
|
||||||
t_info->smallLodLog2 = lod;
|
t_info->smallLodLog2 = lod;
|
||||||
t_info->largeLodLog2 = lod;
|
t_info->largeLodLog2 = lod;
|
||||||
|
|
|
@ -2905,7 +2905,7 @@ void rdp_setcolorimage()
|
||||||
{
|
{
|
||||||
if (g_settings->fb_hwfbe_enabled() && !rdp.copy_ci_index && (rdp.copy_zi_index || g_settings->hacks(CSettings::hack_BAR)))
|
if (g_settings->fb_hwfbe_enabled() && !rdp.copy_ci_index && (rdp.copy_zi_index || g_settings->hacks(CSettings::hack_BAR)))
|
||||||
{
|
{
|
||||||
GrLOD_t LOD = g_scr_res_x > 1024 ? GFX_LOD_LOG2_1024 : GFX_LOD_LOG2_2048;
|
gfxLOD_t LOD = g_scr_res_x > 1024 ? GFX_LOD_LOG2_1024 : GFX_LOD_LOG2_2048;
|
||||||
gfxAuxBufferExt(GFX_BUFFER_TEXTUREAUXBUFFER_EXT);
|
gfxAuxBufferExt(GFX_BUFFER_TEXTUREAUXBUFFER_EXT);
|
||||||
WriteTrace(TraceRDP, TraceDebug, "rdp_setcolorimage - set texture depth buffer to TMU0");
|
WriteTrace(TraceRDP, TraceDebug, "rdp_setcolorimage - set texture depth buffer to TMU0");
|
||||||
}
|
}
|
||||||
|
|
|
@ -254,7 +254,7 @@ typedef struct {
|
||||||
float scale_y;
|
float scale_y;
|
||||||
float scale; // general scale to 256
|
float scale; // general scale to 256
|
||||||
|
|
||||||
GrTexInfo t_info; // texture info (glide)
|
gfxTexInfo t_info; // texture info (glide)
|
||||||
uint32_t tmem_addr; // addres in texture memory (glide)
|
uint32_t tmem_addr; // addres in texture memory (glide)
|
||||||
|
|
||||||
int uses; // 1 triangle that uses this texture
|
int uses; // 1 triangle that uses this texture
|
||||||
|
@ -333,7 +333,7 @@ typedef struct
|
||||||
float u_scale; //used to map vertex u,v coordinates into hires texture
|
float u_scale; //used to map vertex u,v coordinates into hires texture
|
||||||
float v_scale; //used to map vertex u,v coordinates into hires texture
|
float v_scale; //used to map vertex u,v coordinates into hires texture
|
||||||
CACHE_LUT * cache; //pointer to texture cache item
|
CACHE_LUT * cache; //pointer to texture cache item
|
||||||
GrTexInfo info;
|
gfxTexInfo info;
|
||||||
uint16_t t_mem;
|
uint16_t t_mem;
|
||||||
} TBUFF_COLOR_IMAGE;
|
} TBUFF_COLOR_IMAGE;
|
||||||
|
|
||||||
|
@ -582,8 +582,8 @@ void GoToFullScreen();
|
||||||
extern CRDP rdp;
|
extern CRDP rdp;
|
||||||
extern VOODOO voodoo;
|
extern VOODOO voodoo;
|
||||||
|
|
||||||
extern GrTexInfo fontTex;
|
extern gfxTexInfo fontTex;
|
||||||
extern GrTexInfo cursorTex;
|
extern gfxTexInfo cursorTex;
|
||||||
extern uint32_t offset_font;
|
extern uint32_t offset_font;
|
||||||
extern uint32_t offset_cursor;
|
extern uint32_t offset_cursor;
|
||||||
extern uint32_t offset_textures;
|
extern uint32_t offset_textures;
|
||||||
|
|
|
@ -129,12 +129,12 @@ void DrawHiresDepthImage(const DRAWIMAGE & d)
|
||||||
}
|
}
|
||||||
dst += (512 - d.imageW);
|
dst += (512 - d.imageW);
|
||||||
}
|
}
|
||||||
GrTexInfo t_info;
|
gfxTexInfo t_info;
|
||||||
t_info.format = GFX_TEXFMT_RGB_565;
|
t_info.format = GFX_TEXFMT_RGB_565;
|
||||||
t_info.data = image;
|
t_info.data = image;
|
||||||
t_info.smallLodLog2 = GFX_LOD_LOG2_512;
|
t_info.smallLodLog2 = GFX_LOD_LOG2_512;
|
||||||
t_info.largeLodLog2 = GFX_LOD_LOG2_512;
|
t_info.largeLodLog2 = GFX_LOD_LOG2_512;
|
||||||
t_info.aspectRatioLog2 = GR_ASPECT_LOG2_1x1;
|
t_info.aspectRatioLog2 = GFX_ASPECT_LOG2_1x1;
|
||||||
|
|
||||||
gfxTexDownloadMipMap(rdp.texbufs[1].tmu,
|
gfxTexDownloadMipMap(rdp.texbufs[1].tmu,
|
||||||
rdp.texbufs[1].begin,
|
rdp.texbufs[1].begin,
|
||||||
|
@ -175,7 +175,7 @@ void DrawHiresDepthImage(const DRAWIMAGE & d)
|
||||||
gfxDepthBufferFunction(GR_CMP_ALWAYS);
|
gfxDepthBufferFunction(GR_CMP_ALWAYS);
|
||||||
gfxDepthMask(FXFALSE);
|
gfxDepthMask(FXFALSE);
|
||||||
|
|
||||||
GrLOD_t LOD = g_scr_res_x > 1024 ? GFX_LOD_LOG2_2048 : GFX_LOD_LOG2_1024;
|
gfxLOD_t LOD = g_scr_res_x > 1024 ? GFX_LOD_LOG2_2048 : GFX_LOD_LOG2_1024;
|
||||||
|
|
||||||
float lr_x = (float)d.imageW * rdp.scale_x;
|
float lr_x = (float)d.imageW * rdp.scale_x;
|
||||||
float lr_y = (float)d.imageH * rdp.scale_y;
|
float lr_y = (float)d.imageH * rdp.scale_y;
|
||||||
|
@ -194,7 +194,7 @@ void DrawHiresDepthImage(const DRAWIMAGE & d)
|
||||||
v[i].vc(0) = v[i].vc(1) = v[i].v0;
|
v[i].vc(0) = v[i].vc(1) = v[i].v0;
|
||||||
}
|
}
|
||||||
gfxTextureBufferExt(rdp.texbufs[0].tmu, rdp.texbufs[0].begin, LOD, LOD,
|
gfxTextureBufferExt(rdp.texbufs[0].tmu, rdp.texbufs[0].begin, LOD, LOD,
|
||||||
GR_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565, GR_MIPMAPLEVELMASK_BOTH);
|
GFX_ASPECT_LOG2_1x1, GFX_TEXFMT_RGB_565, GR_MIPMAPLEVELMASK_BOTH);
|
||||||
gfxRenderBuffer(GFX_BUFFER_TEXTUREBUFFER_EXT);
|
gfxRenderBuffer(GFX_BUFFER_TEXTUREBUFFER_EXT);
|
||||||
gfxAuxBufferExt(GFX_BUFFER_AUXBUFFER);
|
gfxAuxBufferExt(GFX_BUFFER_AUXBUFFER);
|
||||||
gfxBufferClear(0, 0, 0xFFFF);
|
gfxBufferClear(0, 0, 0xFFFF);
|
||||||
|
|
Loading…
Reference in New Issue