mirror of
https://github.com/libretro/RetroArch
synced 2025-03-17 10:21:26 +00:00
(GX More inlined functions
This commit is contained in:
parent
cee116d5b8
commit
b27f3242c0
@ -246,7 +246,7 @@ void gx_set_video_mode(void *data, unsigned fbWidth, unsigned lines)
|
||||
VIDEO_SetBlack(false);
|
||||
VIDEO_Flush();
|
||||
|
||||
GX_SetViewport(0, 0, gx_mode.fbWidth, gx_mode.efbHeight, 0, 1);
|
||||
__GX_SetViewportJitter(0, 0, gx_mode.fbWidth, gx_mode.efbHeight, 0, 1, 1);
|
||||
__GX_SetDispCopySrc(__gx, 0, 0, gx_mode.fbWidth, gx_mode.efbHeight);
|
||||
|
||||
f32 y_scale = GX_GetYScaleFactor(gx_mode.efbHeight, gx_mode.xfbHeight);
|
||||
@ -386,9 +386,9 @@ static void init_vtx(struct __gx_regdef *__gx, void *data)
|
||||
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_POS, GX_POS_XYZ, GX_F32, 0);
|
||||
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_TEX0, GX_TEX_ST, GX_F32, 0);
|
||||
GX_SetVtxAttrFmt(GX_VTXFMT0, GX_VA_CLR0, GX_CLR_RGBA, GX_RGBA8, 0);
|
||||
GX_SetArray(GX_VA_POS, verts, 3 * sizeof(float));
|
||||
GX_SetArray(GX_VA_TEX0, vertex_ptr, 2 * sizeof(float));
|
||||
GX_SetArray(GX_VA_CLR0, color_ptr, 4 * sizeof(u8));
|
||||
__GX_SetArray(__gx, GX_VA_POS, verts, 3 * sizeof(float));
|
||||
__GX_SetArray(__gx, GX_VA_TEX0, vertex_ptr, 2 * sizeof(float));
|
||||
__GX_SetArray(__gx, GX_VA_CLR0, color_ptr, 4 * sizeof(u8));
|
||||
|
||||
__GX_SetNumTexGens(__gx, 1);
|
||||
__GX_SetNumChans(__gx, 1);
|
||||
@ -787,7 +787,7 @@ static void gx_resize(struct __gx_regdef *__gx, void *data)
|
||||
gx->vp.width = width;
|
||||
gx->vp.height = height;
|
||||
|
||||
GX_SetViewport(x, y, width, height, 0, 1);
|
||||
__GX_SetViewportJitter(x, y, width, height, 0, 1, 1);
|
||||
|
||||
Mtx44 m1, m2;
|
||||
float top = 1, bottom = -1, left = -1, right = 1;
|
||||
@ -1199,7 +1199,7 @@ static void gx_render_overlay(void *data)
|
||||
{
|
||||
GX_LoadTexObj(&gx->overlay[i].tex, GX_TEXMAP0);
|
||||
|
||||
GX_Begin(GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
|
||||
__GX_Begin(__gx, GX_TRIANGLESTRIP, GX_VTXFMT0, 4);
|
||||
GX_Position3f32(gx->overlay[i].vertex_coord[0], gx->overlay[i].vertex_coord[1], -0.5);
|
||||
GX_Color4u8(255, 255, 255, (u8)(gx->overlay[i].alpha_mod * 255.0f));
|
||||
GX_TexCoord2f32(gx->overlay[i].tex_coord[0], gx->overlay[i].tex_coord[1]);
|
||||
|
@ -341,6 +341,19 @@ static void __SETVCDATTR(struct __gx_regdef *__gx, u8 attr,u8 type)
|
||||
GX_LOAD_XF_REG(0x1019,__gx->mtxIdxHi); \
|
||||
}
|
||||
|
||||
#define __GX_SetArray(__gx, attr, ptr, stride) \
|
||||
if(attr>=GX_VA_POS && attr<=GX_LIGHTARRAY) \
|
||||
{ \
|
||||
GX_LOAD_CP_REG((0xA0 +((attr) - GX_VA_POS)),(u32)MEM_VIRTUAL_TO_PHYSICAL(ptr)); \
|
||||
GX_LOAD_CP_REG((0xB0 +((attr) - GX_VA_POS)),(u32)(stride)); \
|
||||
}
|
||||
|
||||
#define __GX_Begin(__vtx, primitive, vtxfmt, vtxcnt) \
|
||||
if(__gx->dirtyState) \
|
||||
__GX_SetDirtyState(__gx); \
|
||||
wgPipe->U8 = primitive | (vtxfmt & 7); \
|
||||
wgPipe->U16 = vtxcnt
|
||||
|
||||
#ifdef HW_DOL
|
||||
static inline void __GX_UpdateBPMask(struct __gx_regdef *__gx)
|
||||
{
|
||||
@ -672,15 +685,6 @@ static void __GX_SendFlushPrim(struct __gx_regdef *__gx)
|
||||
__gx->genMode = (__gx->genMode & ~0xf)|(nr & 0xf); \
|
||||
__gx->dirtyState |= 0x02000004
|
||||
|
||||
#define __GX_Begin(__gx, primitve, vtxfmt, vtxcnt) \
|
||||
{ \
|
||||
u8 reg = primitve|(vtxfmt&7); \
|
||||
if(__gx->dirtyState) \
|
||||
__GX_SetDirtyState(__gx); \
|
||||
wgPipe->U8 = reg; \
|
||||
wgPipe->U16 = vtxcnt; \
|
||||
}
|
||||
|
||||
#define __GX_PokeARGB(x, y, color) \
|
||||
{ \
|
||||
u32 regval; \
|
||||
@ -713,6 +717,19 @@ static void __GX_SendFlushPrim(struct __gx_regdef *__gx)
|
||||
__gx->peZMode = (__gx->peZMode&~0x10)|(_SHIFTL(update_enable,4,1)); \
|
||||
GX_LOAD_BP_REG(__gx->peZMode)
|
||||
|
||||
#define X_FACTOR 0.5
|
||||
#define Y_FACTOR 342.0
|
||||
#define ZFACTOR 16777215.0
|
||||
|
||||
#define __GX_SetViewportJitter(xOrig, yOrig, wd, ht, nearZ, farZ, field) \
|
||||
GX_LOAD_XF_REGS(0x101a,6); \
|
||||
wgPipe->F32 = wd* X_FACTOR; /* x0 */ \
|
||||
wgPipe->F32 = (-ht)* X_FACTOR; /* y0 */ \
|
||||
wgPipe->F32 = (ZFACTOR * farZ)-(ZFACTOR * nearZ); /* z */ \
|
||||
wgPipe->F32 = (xOrig+(wd * X_FACTOR))+ Y_FACTOR; /* x1 */ \
|
||||
wgPipe->F32 = (yOrig+(ht * X_FACTOR))+ Y_FACTOR; /* y1 */ \
|
||||
wgPipe->F32 = ZFACTOR * farZ /* f */
|
||||
|
||||
static void __GX_SetCopyFilter(u8 aa,u8 sample_pattern[12][2],u8 vf,u8 vfilter[7])
|
||||
{
|
||||
u32 reg01=0,reg02=0,reg03=0,reg04=0,reg53=0,reg54=0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user