GregMiscellaneous: zzogl-pg: Remove the ZeroGS namespace.

git-svn-id: http://pcsx2.googlecode.com/svn/branches/GregMiscellaneous@3924 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
arcum42 2010-10-16 11:54:46 +00:00
parent 87054c5452
commit 465f786dee
26 changed files with 407 additions and 465 deletions

View File

@ -47,14 +47,14 @@ LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
case WM_SIZE:
nWindowWidth = lParam & 0xffff;
nWindowHeight = lParam >> 16;
ZeroGS::ChangeWindowSize(nWindowWidth, nWindowHeight);
ChangeWindowSize(nWindowWidth, nWindowHeight);
break;
case WM_SIZING:
// if button is 0, then just released so can resize
if (GetSystemMetrics(SM_SWAPBUTTON) ? !GetAsyncKeyState(VK_RBUTTON) : !GetAsyncKeyState(VK_LBUTTON))
{
ZeroGS::SetChangeDeviceSize(nWindowWidth, nWindowHeight);
SetChangeDeviceSize(nWindowWidth, nWindowHeight);
}
break;

View File

@ -135,7 +135,7 @@ void GLWindow::GetWindowSize()
XUnlockDisplay(glDisplay);
// update the gl buffer size
ZeroGS::ChangeWindowSize(width, height);
ChangeWindowSize(width, height);
ZZLog::Error_Log("Resolution %dx%d. Depth %d bpp. Position (%d,%d)", width, height, depth, conf.x, conf.y);
}
@ -336,7 +336,7 @@ void GLWindow::ResizeCheck()
width = event.xconfigure.width;
height = event.xconfigure.height;
Force43Ratio();
ZeroGS::ChangeWindowSize(width, height);
ChangeWindowSize(width, height);
}
if (!fullScreen) {

View File

@ -296,12 +296,12 @@ void CALLBACK GSsetFrameSkip(int frameskip)
void CALLBACK GSreset()
{
ZeroGS::GSReset();
ZZGSReset();
}
void CALLBACK GSgifSoftReset(u32 mask)
{
ZeroGS::GSSoftReset(mask);
ZZGSSoftReset(mask);
}
s32 CALLBACK GSinit()
@ -359,7 +359,7 @@ s32 CALLBACK GSopen(void *pDsp, char *Title, int multithread)
ZZLog::GS_Log("Using %s:%d.%d.%d.", libraryName, zgsrevision, zgsbuild, zgsminor);
ZZLog::WriteLn("Creating ZZOgl window.");
if (!ZeroGS::Create(conf.width, conf.height)) return -1;
if (!ZZCreate(conf.width, conf.height)) return -1;
ZZLog::WriteLn("Initialization successful.");
@ -382,7 +382,7 @@ void CALLBACK GSclose()
{
FUNCLOG
ZeroGS::Destroy(1);
ZZDestroy(1);
GLWin.CloseWindow();
SaveStateFile = NULL;
@ -414,7 +414,7 @@ void CALLBACK GSchangeSaveState(int newstate, const char* filename)
char str[255];
sprintf(str, "save state %d", newstate);
ZeroGS::AddMessage(str);
ZZAddMessage(str);
CurrentSavestate = newstate;
SaveStateFile = filename;
@ -463,7 +463,7 @@ void CALLBACK GSmakeSnapshot(char *path)
fclose(bmpfile);
// get the bits
ZeroGS::SaveSnapshot(filename);
SaveSnapshot(filename);
}
// I'll probably move this somewhere else later, but it's got a ton of dependencies.
@ -491,7 +491,7 @@ static __forceinline void SetGSTitle()
100*g_nFramesSkipped / g_nFrame,
g_nGenVars / (float)UPDATE_FRAMES, g_nTexVars / (float)UPDATE_FRAMES, g_nAlphaVars / (float)UPDATE_FRAMES,
g_nResolve / (float)UPDATE_FRAMES, (ppf&0xfffff) / (float)UPDATE_FRAMES,
ZeroGS::g_MemTargs.listTargets.size(), ZeroGS::g_MemTargs.listClearedTargets.size(), g_TransferredToGPU >> 10);
g_MemTargs.listTargets.size(), g_MemTargs.listClearedTargets.size(), g_TransferredToGPU >> 10);
//_snprintf(strtitle, 512, "%x %x", *(int*)(g_pbyGSMemory + 256 * 0x3e0c + 4), *(int*)(g_pbyGSMemory + 256 * 0x3e04 + 4));
#endif
@ -517,7 +517,7 @@ void CALLBACK GSvsync(int interlace)
g_nRealFrame++;
// !interlace? Hmmm... Fixme.
ZeroGS::RenderCRTC(!interlace);
RenderCRTC(!interlace);
ProcessEvents();
@ -571,7 +571,7 @@ void CALLBACK GSreadFIFO(u64 *pMem)
//ZZLog::GS_Log("Calling GSreadFIFO.");
ZeroGS::TransferLocalHost((u32*)pMem, 1);
TransferLocalHost((u32*)pMem, 1);
}
void CALLBACK GSreadFIFO2(u64 *pMem, int qwc)
@ -580,7 +580,7 @@ void CALLBACK GSreadFIFO2(u64 *pMem, int qwc)
//ZZLog::GS_Log("Calling GSreadFIFO2.");
ZeroGS::TransferLocalHost((u32*)pMem, qwc);
TransferLocalHost((u32*)pMem, qwc);
}
int CALLBACK GSsetupRecording(int start, void* pData)
@ -588,9 +588,9 @@ int CALLBACK GSsetupRecording(int start, void* pData)
FUNCLOG
if (start)
ZeroGS::StartCapture();
StartCapture();
else
ZeroGS::StopCapture();
StopCapture();
return 1;
}
@ -602,16 +602,16 @@ s32 CALLBACK GSfreeze(int mode, freezeData *data)
switch (mode)
{
case FREEZE_LOAD:
if (!ZeroGS::Load(data->data)) ZZLog::Error_Log("GS: Bad load format!");
if (!ZZLoad(data->data)) ZZLog::Error_Log("GS: Bad load format!");
g_nRealFrame += 100;
break;
case FREEZE_SAVE:
ZeroGS::Save(data->data);
ZZSave(data->data);
break;
case FREEZE_SIZE:
data->size = ZeroGS::Save(NULL);
data->size = ZZSave(NULL);
break;
default:

View File

@ -168,7 +168,7 @@ template<int index> void _GSgifTransfer(const u32 *pMem, u32 size)
switch (gs.imageTransfer)
{
case 0:
ZeroGS::TransferHostLocal(pMem, len * 4);
TransferHostLocal(pMem, len * 4);
break;
case 1:
@ -176,11 +176,11 @@ template<int index> void _GSgifTransfer(const u32 *pMem, u32 size)
// a GIFtag operation. They're an entirely separate process that can only be
// done through the ReverseFIFO transfer (aka ReadFIFO). --air
assert(0);
//ZeroGS::TransferLocalHost(pMem, len);
//TransferLocalHost(pMem, len);
break;
case 2:
//ZeroGS::TransferLocalLocal();
//TransferLocalLocal();
break;
case 3:

View File

@ -71,8 +71,6 @@
extern _getPixelAddress getPixelFun[64];
namespace ZeroGS
{
extern CRangeManager s_RangeMngr; // manages overwritten memory
extern void ResolveInRange(int start, int end);
@ -535,5 +533,3 @@ __forceinline void _TransferLocalLocal_4()
#endif
}
}

View File

@ -158,8 +158,8 @@ static __forceinline int FinishTransfer(TransferData data, int nLeftOver)
assert(gs.imageTransfer == -1 || tempY == gs.imageEndY);
gs.imageTransfer = -1;
/*int start, end;
ZeroGS::GetRectMemAddress(start, end, gs.dstbuf.psm, gs.trxpos.dx, gs.trxpos.dy, gs.imageWnew, gs.imageHnew, gs.dstbuf.bp, gs.dstbuf.bw);
ZeroGS::g_MemTargs.ClearRange(start, end);*/
GetRectMemAddress(start, end, gs.dstbuf.psm, gs.trxpos.dx, gs.trxpos.dy, gs.imageWnew, gs.imageHnew, gs.dstbuf.bp, gs.dstbuf.bw);
g_MemTargs.ClearRange(start, end);*/
}
else
{

View File

@ -58,14 +58,14 @@ inline bool NoHighlights(int i)
u32 resultA = prim->iip + (2 * (prim->tme)) + (4 * (prim->fge)) + (8 * (prim->abe)) + (16 * (prim->aa1)) + (32 * (prim->fst)) + (64 * (prim->ctxt)) + (128 * (prim->fix));
const pixTest curtest = ZeroGS::vb[i].test;
const pixTest curtest = vb[i].test;
u32 result = curtest.ate + ((curtest.atst) << 1) +((curtest.afail) << 4) + ((curtest.date) << 6) + ((curtest.datm) << 7) + ((curtest.zte) << 8) + ((curtest.ztst)<< 9);
if ((resultA == 0x310a) && (result == 0x0)) return false; // Radiata Stories
//Old code
return (!(conf.settings().xenosaga_spec) || !ZeroGS::vb[i].zbuf.zmsk || prim->iip) ;
return (!(conf.settings().xenosaga_spec) || !vb[i].zbuf.zmsk || prim->iip) ;
}
void __gifCall GIFPackedRegHandlerNull(const u32* data)
@ -132,7 +132,7 @@ void __gifCall KickVertex(bool adc)
FUNCLOG
if (++gs.primC >= (int)g_primmult[prim->prim])
{
if (!adc && NoHighlights(prim->ctxt)) (*ZeroGS::drawfn[prim->prim])();
if (!adc && NoHighlights(prim->ctxt)) (*drawfn[prim->prim])();
gs.primC -= g_primsub[prim->prim];
@ -275,22 +275,22 @@ void __gifCall GIFRegHandlerTEX0(const u32* data)
}
// Order is important.
ZeroGS::vb[i].uNextTex0Data[0] = r->ai32[0];
ZeroGS::vb[i].uNextTex0Data[1] = r->ai32[1];
ZeroGS::vb[i].bNeedTexCheck = 1;
vb[i].uNextTex0Data[0] = r->ai32[0];
vb[i].uNextTex0Data[1] = r->ai32[1];
vb[i].bNeedTexCheck = 1;
// don't update unless necessary
if (PSMT_ISCLUT(psm))
{
if (ZeroGS::CheckChangeInClut(data[1], psm))
if (CheckChangeInClut(data[1], psm))
{
// loading clut, so flush whole texture
ZeroGS::vb[i].FlushTexData();
vb[i].FlushTexData();
}
else if (r->CSA != (ZeroGS::vb[i].uCurTex0.CSA))
else if (r->CSA != (vb[i].uCurTex0.CSA))
{
// check if csa is the same!! (ffx bisaid island, grass)
ZeroGS::Flush(i); // flush any previous entries
Flush(i); // flush any previous entries
}
}
}
@ -299,7 +299,7 @@ template <u32 i>
void __gifCall GIFRegHandlerCLAMP(const u32* data)
{
FUNCLOG
clampInfo& clamp = ZeroGS::vb[i].clamp;
clampInfo& clamp = vb[i].clamp;
GIFRegCLAMP* r = (GIFRegCLAMP*)(data);
// Worry about this later.
@ -307,9 +307,9 @@ void __gifCall GIFRegHandlerCLAMP(const u32* data)
if ((s_uClampData[i] != data[0]) || (((clamp.minv >> 8) | (clamp.maxv << 2)) != (data[1]&0x0fff)))
{
ZeroGS::Flush(i);
Flush(i);
ZeroGS::vb[i].bTexConstsSync = false;
vb[i].bTexConstsSync = false;
}
s_uClampData[i] = data[0];
@ -361,15 +361,15 @@ void __fastcall GIFRegHandlerTEX1(const u32* data)
{
FUNCLOG
GIFRegTEX1* r = (GIFRegTEX1*)(data);
tex1Info& tex1 = ZeroGS::vb[i].tex1;
tex1Info& tex1 = vb[i].tex1;
// Worry about this later.
if (!NoHighlights(i)) return;
if (conf.bilinear == 1 && (tex1.mmag != r->MMAG || tex1.mmin != r->MMIN))
{
ZeroGS::Flush(i);
ZeroGS::vb[i].bVarsTexSync = false;
Flush(i);
vb[i].bVarsTexSync = false;
}
tex1.lcm = r->LCM;
@ -387,13 +387,13 @@ template <u32 i>
void __gifCall GIFRegHandlerTEX2(const u32* data)
{
FUNCLOG
tex0Info& tex0 = ZeroGS::vb[i].tex0;
tex0Info& tex0 = vb[i].tex0;
ZeroGS::vb[i].FlushTexData();
vb[i].FlushTexData();
u32 psm = ZZOglGet_psm_TexBitsFix(data[0]);
u32* s_uTex0Data = ZeroGS::vb[i].uCurTex0Data;
u32* s_uTex0Data = vb[i].uCurTex0Data;
// don't update unless necessary
// if( ZZOglGet_psm_TexBitsFix(*s_uTex0Data) == ZZOglGet_psm_TexBitsFix(data[0]) ) { // psm is the same
@ -408,26 +408,26 @@ void __gifCall GIFRegHandlerTEX2(const u32* data)
if (tex0.cld != 0)
{
ZeroGS::texClutWrite(i);
texClutWrite(i);
// invalidate to make sure target didn't change!
ZeroGS::vb[i].bVarsTexSync = false;
vb[i].bVarsTexSync = false;
}
return;
}
}
ZeroGS::Flush(i);
Flush(i);
ZeroGS::vb[i].bVarsTexSync = false;
ZeroGS::vb[i].bTexConstsSync = false;
vb[i].bVarsTexSync = false;
vb[i].bTexConstsSync = false;
s_uTex0Data[0] = (s_uTex0Data[0] & ~0x03f00000) | (psm << 20);
s_uTex0Data[1] = (s_uTex0Data[1] & 0x1f) | (data[1] & ~0x1f);
tex0.psm = ZZOglGet_psm_TexBitsFix(data[0]);
if (PSMT_ISCLUT(tex0.psm)) ZeroGS::CluttingForFlushedTex(&tex0, data[1], i);
if (PSMT_ISCLUT(tex0.psm)) CluttingForFlushedTex(&tex0, data[1], i);
ZZLog::Greg_Log("TEX2_%d: 0x%x", i, data);
}
@ -437,8 +437,8 @@ void __gifCall GIFRegHandlerXYOFFSET(const u32* data)
FUNCLOG
// Affects that Mana Khemia opening dialog (when i == 0).
GIFRegXYOFFSET* r = (GIFRegXYOFFSET*)(data);
ZeroGS::vb[i].offset.x = r->OFX;
ZeroGS::vb[i].offset.y = r->OFY;
vb[i].offset.x = r->OFX;
vb[i].offset.y = r->OFY;
ZZLog::Greg_Log("XYOFFSET_%d: 0x%x, 0x%x", i, r->OFX, r->OFY);
}
@ -462,7 +462,7 @@ void __gifCall GIFRegHandlerPRIM(const u32 *data)
gs._prim[1].prim = r->PRIM;
gs._prim[1]._val = (data[0] >> 3) & 0xff; // Setting the next 8 flags after prim at once.
ZeroGS::Prim();
Prim();
ZZLog::Greg_Log("PRIM");
}
@ -474,7 +474,7 @@ void __gifCall GIFRegHandlerPRMODE(const u32* data)
// Re-examine all code dealing with PRIMs in a bit.
gs._prim[0]._val = (data[0] >> 3) & 0xff;
if (gs.prac == 0) ZeroGS::Prim();
if (gs.prac == 0) Prim();
ZZLog::Greg_Log("PRMODE");
}
@ -487,7 +487,7 @@ void __gifCall GIFRegHandlerPRMODECONT(const u32* data)
gs.prac = r->AC;
prim = &gs._prim[gs.prac];
ZeroGS::Prim();
Prim();
ZZLog::Greg_Log("PRMODECONT");
}
@ -497,8 +497,8 @@ void __gifCall GIFRegHandlerTEXCLUT(const u32* data)
// Affects background coloration of initial Mana Khemia dialog.
GIFRegTEXCLUT* r = (GIFRegTEXCLUT*)(data);
ZeroGS::vb[0].FlushTexData();
ZeroGS::vb[1].FlushTexData();
vb[0].FlushTexData();
vb[1].FlushTexData();
// Fixme.
gs.clut.cbw = r->CBW << 6;
@ -514,9 +514,9 @@ void __gifCall GIFRegHandlerSCANMSK(const u32* data)
if(r->MSK != gs.smask)
{
ZeroGS::FlushBoth();
// ZeroGS::ResolveC(&ZeroGS::vb[0]);
// ZeroGS::ResolveZ(&ZeroGS::vb[0]);
FlushBoth();
// ResolveC(&vb[0]);
// ResolveZ(&vb[0]);
}
gs.smask = r->MSK;
@ -533,7 +533,7 @@ void __gifCall GIFRegHandlerMIPTBP1(const u32* data)
Flush();
}*/
miptbpInfo& miptbp0 = ZeroGS::vb[i].miptbp0;
miptbpInfo& miptbp0 = vb[i].miptbp0;
miptbp0.tbp[0] = r->TBP1;
miptbp0.tbw[0] = r->TBW1;
miptbp0.tbp[1] = r->TBP2;
@ -550,7 +550,7 @@ void __gifCall GIFRegHandlerMIPTBP2(const u32* data)
GIFRegMIPTBP2* r = (GIFRegMIPTBP2*)(data);
// Yep.
miptbpInfo& miptbp1 = ZeroGS::vb[i].miptbp1;
miptbpInfo& miptbp1 = vb[i].miptbp1;
miptbp1.tbp[0] = r->TBP4;
miptbp1.tbw[0] = r->TBW4;
miptbp1.tbp[1] = r->TBP5;
@ -568,10 +568,10 @@ void __gifCall GIFRegHandlerTEXA(const u32* data)
if ((r->AEM != gs.texa.aem) || (r->TA0 != gs.texa.ta[0]) || (r->TA1 != gs.texa.ta[1]))
{
ZeroGS::FlushBoth();
FlushBoth();
ZeroGS::vb[0].bTexConstsSync = false;
ZeroGS::vb[1].bTexConstsSync = false;
vb[0].bTexConstsSync = false;
vb[1].bTexConstsSync = false;
}
gs.texa.aem = r->AEM;
@ -589,10 +589,10 @@ void __gifCall GIFRegHandlerFOGCOL(const u32* data)
if (gs.fogcol != r->ai32[0])
{
ZeroGS::FlushBoth();
FlushBoth();
}
ZeroGS::SetFogColor(r);
SetFogColor(r);
gs.fogcol = r->ai32[0];
ZZLog::Greg_Log("FOGCOL: 0x%x", r->ai32[0]);
}
@ -601,7 +601,7 @@ void __gifCall GIFRegHandlerTEXFLUSH(const u32* data)
{
FUNCLOG
// GSdx doesn't even do anything here.
ZeroGS::SetTexFlush();
SetTexFlush();
ZZLog::Greg_Log("TEXFLUSH");
}
@ -610,7 +610,7 @@ void __gifCall GIFRegHandlerSCISSOR(const u32* data)
{
FUNCLOG
GIFRegSCISSOR* r = (GIFRegSCISSOR*)(data);
Rect2& scissor = ZeroGS::vb[i].scissor;
Rect2& scissor = vb[i].scissor;
Rect2 newscissor;
@ -623,10 +623,10 @@ void __gifCall GIFRegHandlerSCISSOR(const u32* data)
if (newscissor.x1 != scissor.x1 || newscissor.y1 != scissor.y1 ||
newscissor.x0 != scissor.x0 || newscissor.y0 != scissor.y0)
{
ZeroGS::Flush(i);
Flush(i);
// flush everything
ZeroGS::vb[i].bNeedFrameCheck = 1;
vb[i].bNeedFrameCheck = 1;
}
scissor = newscissor;
@ -663,12 +663,12 @@ void __gifCall GIFRegHandlerALPHA(const u32* data)
if (newalpha.c == 3) newalpha.c = 0;
if (newalpha.d == 3) newalpha.d = 0;
if ((newalpha.abcd != ZeroGS::vb[i].alpha.abcd) || (newalpha.fix != ZeroGS::vb[i].alpha.fix))
if ((newalpha.abcd != vb[i].alpha.abcd) || (newalpha.fix != vb[i].alpha.fix))
{
ZeroGS::Flush(i);
Flush(i);
}
ZeroGS::vb[i].alpha = newalpha;
vb[i].alpha = newalpha;
ZZLog::Greg_Log("ALPHA%d: A:0x%x B:0x%x C:0x%x D:0x%x FIX:0x%x ", i, r->A, r->B, r->C, r->D, r->FIX);
}
@ -682,7 +682,7 @@ void __gifCall GIFRegHandlerDIMX(const u32* data)
if (r->i64 != gs.dimx.i64)
{
ZeroGS::FlushBoth();
FlushBoth();
update = true;
}
@ -703,7 +703,7 @@ void __gifCall GIFRegHandlerDTHE(const u32* data)
if (r->DTHE != gs.dthe)
{
ZeroGS::FlushBoth();
FlushBoth();
}
gs.dthe = r->DTHE;
@ -717,7 +717,7 @@ void __gifCall GIFRegHandlerCOLCLAMP(const u32* data)
if (r->CLAMP != gs.colclamp)
{
ZeroGS::FlushBoth();
FlushBoth();
}
gs.colclamp = r->CLAMP;
@ -728,12 +728,12 @@ template <u32 i>
void __gifCall GIFRegHandlerTEST(const u32* data)
{
FUNCLOG
pixTest* test = &ZeroGS::vb[i].test;
pixTest* test = &vb[i].test;
GIFRegTEST* r = (GIFRegTEST*)(data);
if (test->_val != r->ai32[0])
{
ZeroGS::Flush(i);
Flush(i);
}
test->_val = r->ai32[0];
@ -747,9 +747,9 @@ void __gifCall GIFRegHandlerPABE(const u32* data)
if (gs.pabe != r->PABE)
{
ZeroGS::FlushBoth();
// ZeroGS::SetAlphaChanged(0, GPUREG_PABE);
// ZeroGS::SetAlphaChanged(1, GPUREG_PABE);
FlushBoth();
// SetAlphaChanged(0, GPUREG_PABE);
// SetAlphaChanged(1, GPUREG_PABE);
}
gs.pabe = r->PABE;
@ -762,12 +762,12 @@ void __gifCall GIFRegHandlerFBA(const u32* data)
FUNCLOG
GIFRegFBA* r = (GIFRegFBA*)(data);
if (r->FBA != ZeroGS::vb[i].fba.fba)
if (r->FBA != vb[i].fba.fba)
{
ZeroGS::FlushBoth();
FlushBoth();
}
ZeroGS::vb[i].fba.fba = r->FBA;
vb[i].fba.fba = r->FBA;
ZZLog::Greg_Log("FBA%d: 0x%x ", i, r->FBA);
}
@ -778,7 +778,7 @@ void __gifCall GIFRegHandlerFRAME(const u32* data)
// Affects opening dialogs, movie, and menu on Mana Khemia.
GIFRegFRAME* r = (GIFRegFRAME*)(data);
frameInfo& gsfb = ZeroGS::vb[i].gsfb;
frameInfo& gsfb = vb[i].gsfb;
int fbw = r->FBW * 64;
int fbp = r->FBP * 32;
@ -798,7 +798,7 @@ void __gifCall GIFRegHandlerFRAME(const u32* data)
return;
}
ZeroGS::FlushBoth();
FlushBoth();
if (r->FBW > 0) fbh = ZZOgl_fbh_Calc(r->FBP, r->FBW, r->PSM);
gsfb.fbp = fbp;
@ -808,7 +808,7 @@ void __gifCall GIFRegHandlerFRAME(const u32* data)
gsfb.fbm = ZZOglGet_fbm_FrameBitsFix(data[0], data[1]);
ZeroGS::vb[i].bNeedFrameCheck = 1;
vb[i].bNeedFrameCheck = 1;
ZZLog::Greg_Log("FRAME_%d", i);
}
@ -820,7 +820,7 @@ void __gifCall GIFRegHandlerZBUF(const u32* data)
GIFRegZBUF* r = (GIFRegZBUF*)(data);
ZZLog::Greg_Log("ZBUF_1");
zbufInfo& zbuf = ZeroGS::vb[i].zbuf;
zbufInfo& zbuf = vb[i].zbuf;
int psm = (0x30 | r->PSM);
int zbp = r->ZBP * 32;
@ -834,17 +834,17 @@ void __gifCall GIFRegHandlerZBUF(const u32* data)
// error detection
if (m_Blocks[psm].bpp == 0) return;
ZeroGS::FlushBoth();
FlushBoth();
zbuf.zbp = zbp;
zbuf.psm = psm;
zbuf.zmsk = r->ZMSK;
ZeroGS::vb[i].zprimmask = 0xffffffff;
vb[i].zprimmask = 0xffffffff;
if (zbuf.psm > 0x31) ZeroGS::vb[i].zprimmask = 0xffff;
if (zbuf.psm > 0x31) vb[i].zprimmask = 0xffff;
ZeroGS::vb[i].bNeedZCheck = 1;
vb[i].bNeedZCheck = 1;
}
void __gifCall GIFRegHandlerBITBLTBUF(const u32* data)
@ -915,7 +915,7 @@ void __gifCall GIFRegHandlerTRXDIR(const u32* data)
break;
case 1: // loc->host
ZeroGS::TerminateLocalHost();
TerminateLocalHost();
break;
}
@ -932,15 +932,15 @@ void __gifCall GIFRegHandlerTRXDIR(const u32* data)
switch (gs.imageTransfer)
{
case 0: // host->loc
ZeroGS::InitTransferHostLocal();
InitTransferHostLocal();
break;
case 1: // loc->host
ZeroGS::InitTransferLocalHost();
InitTransferLocalHost();
break;
case 2:
ZeroGS::TransferLocalLocal();
TransferLocalLocal();
break;
case 3:
@ -967,7 +967,7 @@ void __gifCall GIFRegHandlerHWREG(const u32* data)
if (gs.imageTransfer == 0)
{
ZeroGS::TransferHostLocal(data, 2);
TransferHostLocal(data, 2);
}
else
{

View File

@ -57,9 +57,9 @@ inline bool NoHighlights(int i)
// results[resultA] = 1;
// ZZLog::Error_Log("%x = %d %d %d %d %d %d %d %d \n", resultA, prim->iip, (prim->tme), (prim->fge), (prim->abe) , (prim->aa1) ,(prim->fst), (prim->ctxt), (prim->fix)) ;
// }
// if (resultA == 0xb && ZeroGS::vb[i].zbuf.zmsk ) return false; //ATF
// if (resultA == 0xb && vb[i].zbuf.zmsk ) return false; //ATF
const pixTest curtest = ZeroGS::vb[i].test;
const pixTest curtest = vb[i].test;
u32 result = curtest.ate + ((curtest.atst) << 1) +((curtest.afail) << 4) + ((curtest.date) << 6) + ((curtest.datm) << 7) + ((curtest.zte) << 8) + ((curtest.ztst)<< 9);
// if (resultA == 0xb)
@ -68,18 +68,18 @@ inline bool NoHighlights(int i)
// ZZLog::Error_Log("0x%x = %d %d %d %d %d %d %d %d ", result, curtest.ate, curtest.atst, curtest.aref, curtest.afail, curtest.date, curtest.datm, curtest.zte, curtest.ztst);
// }
//if (result == 0x50b && ZeroGS::vb[i].zbuf.zmsk ) return false; //ATF
//if ((resultA == 0x3a2a || resultA == 0x312a) && (result == 0x302 || result == 0x700) && (ZeroGS::vb[i].zbuf.zmsk)) return false; // Silent Hill:SM and Front Mission 5, result != 0x300
//if (((resultA == 0x3100) || (resultA == 0x3108)) && ((result == 0x54c) || (result == 0x50c)) && (ZeroGS::vb[i].zbuf.zmsk)) return false; // Okage
//if (result == 0x50b && vb[i].zbuf.zmsk ) return false; //ATF
//if ((resultA == 0x3a2a || resultA == 0x312a) && (result == 0x302 || result == 0x700) && (vb[i].zbuf.zmsk)) return false; // Silent Hill:SM and Front Mission 5, result != 0x300
//if (((resultA == 0x3100) || (resultA == 0x3108)) && ((result == 0x54c) || (result == 0x50c)) && (vb[i].zbuf.zmsk)) return false; // Okage
if ((resultA == 0x310a) && (result == 0x0)) return false; // Radiata Stories
//if (resultA == 0x3a6a && (result == 0x300 || result == 0x500) && ZeroGS::vb[i].zbuf.zmsk) return false; // Okami, result != 0x30d
//if (resultA == 0x3a6a && (result == 0x300 || result == 0x500) && vb[i].zbuf.zmsk) return false; // Okami, result != 0x30d
//if ((resultA == 0x300b) && (result == 0x300) && ZeroGS::vb[i].zbuf.zmsk) return false; // ATF, but no Melty Blood
//if ((resultA == 0x300b) && (result == 0x300) && vb[i].zbuf.zmsk) return false; // ATF, but no Melty Blood
// Old code
return (!(conf.settings().xenosaga_spec) || !ZeroGS::vb[i].zbuf.zmsk || prim->iip) ;
return (!(conf.settings().xenosaga_spec) || !vb[i].zbuf.zmsk || prim->iip) ;
}
void __gifCall GIFPackedRegHandlerNull(const u32* data)
@ -130,7 +130,7 @@ void __forceinline KICK_VERTEX2()
if (++gs.primC >= (int)g_primmult[prim->prim])
{
if (NoHighlights(prim->ctxt)) (*ZeroGS::drawfn[prim->prim])();
if (NoHighlights(prim->ctxt)) (*drawfn[prim->prim])();
gs.primC -= g_primsub[prim->prim];
}
@ -224,24 +224,24 @@ void tex0Write(int i, const u32 *data)
return;
}
ZeroGS::vb[i].uNextTex0Data[0] = data[0];
ZeroGS::vb[i].uNextTex0Data[1] = data[1];
ZeroGS::vb[i].bNeedTexCheck = 1;
vb[i].uNextTex0Data[0] = data[0];
vb[i].uNextTex0Data[1] = data[1];
vb[i].bNeedTexCheck = 1;
// don't update unless necessary
if (PSMT_ISCLUT(psm))
{
if (ZeroGS::CheckChangeInClut(data[1], psm))
if (CheckChangeInClut(data[1], psm))
{
// loading clut, so flush whole texture
ZeroGS::vb[i].FlushTexData();
vb[i].FlushTexData();
}
// check if csa is the same!! (ffx bisaid island, grass)
else if ((data[1] & CPSM_CSA_BITMASK) != (ZeroGS::vb[i].uCurTex0Data[1] & CPSM_CSA_BITMASK))
else if ((data[1] & CPSM_CSA_BITMASK) != (vb[i].uCurTex0Data[1] & CPSM_CSA_BITMASK))
{
ZeroGS::Flush(i); // flush any previous entries
Flush(i); // flush any previous entries
}
}
}
@ -249,13 +249,13 @@ void tex0Write(int i, const u32 *data)
void tex2Write(int i, const u32 *data)
{
FUNCLOG
tex0Info& tex0 = ZeroGS::vb[i].tex0;
tex0Info& tex0 = vb[i].tex0;
ZeroGS::vb[i].FlushTexData();
vb[i].FlushTexData();
u32 psm = ZZOglGet_psm_TexBitsFix(data[0]);
u32* s_uTex0Data = ZeroGS::vb[i].uCurTex0Data;
u32* s_uTex0Data = vb[i].uCurTex0Data;
// don't update unless necessary
// if( ZZOglGet_psm_TexBitsFix(*s_uTex0Data) == ZZOglGet_psm_TexBitsFix(data[0]) ) { // psm is the same
@ -270,32 +270,32 @@ void tex2Write(int i, const u32 *data)
if (tex0.cld != 0)
{
ZeroGS::texClutWrite(i);
texClutWrite(i);
// invalidate to make sure target didn't change!
ZeroGS::vb[i].bVarsTexSync = false;
vb[i].bVarsTexSync = false;
}
return;
}
}
ZeroGS::Flush(i);
Flush(i);
ZeroGS::vb[i].bVarsTexSync = false;
ZeroGS::vb[i].bTexConstsSync = false;
vb[i].bVarsTexSync = false;
vb[i].bTexConstsSync = false;
s_uTex0Data[0] = (s_uTex0Data[0] & ~0x03f00000) | (psm << 20);
s_uTex0Data[1] = (s_uTex0Data[1] & 0x1f) | (data[1] & ~0x1f);
tex0.psm = ZZOglGet_psm_TexBitsFix(data[0]);
if (PSMT_ISCLUT(tex0.psm)) ZeroGS::CluttingForFlushedTex(&tex0, data[1], i);
if (PSMT_ISCLUT(tex0.psm)) CluttingForFlushedTex(&tex0, data[1], i);
}
__forceinline void frameWrite(int i, const u32 *data)
{
FUNCLOG
frameInfo& gsfb = ZeroGS::vb[i].gsfb;
frameInfo& gsfb = vb[i].gsfb;
if ((gsfb.fbp == ZZOglGet_fbp_FrameBitsMult(data[0])) &&
(gsfb.fbw == ZZOglGet_fbw_FrameBitsMult(data[0])) &&
@ -305,7 +305,7 @@ __forceinline void frameWrite(int i, const u32 *data)
return;
}
ZeroGS::FlushBoth();
FlushBoth();
gsfb.fbp = ZZOglGet_fbp_FrameBitsMult(data[0]);
gsfb.fbw = ZZOglGet_fbw_FrameBitsMult(data[0]);
@ -314,17 +314,17 @@ __forceinline void frameWrite(int i, const u32 *data)
gsfb.fbh = ZZOglGet_fbh_FrameBitsCalc(data[0]);
// gsfb.fbhCalc = gsfb.fbh;
ZeroGS::vb[i].bNeedFrameCheck = 1;
vb[i].bNeedFrameCheck = 1;
}
__forceinline void testWrite(int i, const u32 *data)
{
FUNCLOG
pixTest* test = &ZeroGS::vb[i].test;
pixTest* test = &vb[i].test;
if ((*(u32*)test & 0x0007ffff) == (data[0] & 0x0007ffff)) return;
ZeroGS::Flush(i);
Flush(i);
*(u32*)test = data[0];
@ -344,11 +344,11 @@ __forceinline
void clampWrite(int i, const u32 *data)
{
FUNCLOG
clampInfo& clamp = ZeroGS::vb[i].clamp;
clampInfo& clamp = vb[i].clamp;
if ((s_uClampData[i] != data[0]) || (((clamp.minv >> 8) | (clamp.maxv << 2)) != (data[1]&0x0fff)))
{
ZeroGS::Flush(i);
Flush(i);
s_uClampData[i] = data[0];
clamp.wms = (data[0]) & 0x3;
@ -358,7 +358,7 @@ void clampWrite(int i, const u32 *data)
clamp.minv = ((data[0] >> 24) & 0xff) | ((data[1] & 0x3) << 8);
clamp.maxv = (data[1] >> 2) & 0x3ff;
ZeroGS::vb[i].bTexConstsSync = false;
vb[i].bTexConstsSync = false;
}
}
@ -395,7 +395,7 @@ void __gifCall GIFRegHandlerPRIM(const u32 *data)
gs._prim[1].prim = (data[0]) & 0x7;
gs._prim[1]._val = (data[0] >> 3) & 0xff;
ZeroGS::Prim();
Prim();
}
void __gifCall GIFRegHandlerRGBAQ(const u32* data)
@ -522,12 +522,12 @@ void __gifCall GIFRegHandlerNOP(const u32* data)
void tex1Write(int i, const u32* data)
{
FUNCLOG
tex1Info& tex1 = ZeroGS::vb[i].tex1;
tex1Info& tex1 = vb[i].tex1;
if (conf.bilinear == 1 && (tex1.mmag != ((data[0] >> 5) & 0x1) || tex1.mmin != ((data[0] >> 6) & 0x7)))
{
ZeroGS::Flush(i);
ZeroGS::vb[i].bVarsTexSync = false;
Flush(i);
vb[i].bVarsTexSync = false;
}
tex1.lcm = (data[0]) & 0x1;
@ -574,24 +574,24 @@ void __gifCall GIFRegHandlerXYOFFSET_1(const u32* data)
{
FUNCLOG
// eliminator low 4 bits for now
ZeroGS::vb[0].offset.x = (data[0]) & 0xffff;
ZeroGS::vb[0].offset.y = (data[1]) & 0xffff;
vb[0].offset.x = (data[0]) & 0xffff;
vb[0].offset.y = (data[1]) & 0xffff;
// if( !conf.interlace ) {
// ZeroGS::vb[0].offset.x &= ~15;
// ZeroGS::vb[0].offset.y &= ~15;
// vb[0].offset.x &= ~15;
// vb[0].offset.y &= ~15;
// }
}
void __gifCall GIFRegHandlerXYOFFSET_2(const u32* data)
{
FUNCLOG
ZeroGS::vb[1].offset.x = (data[0]) & 0xffff;
ZeroGS::vb[1].offset.y = (data[1]) & 0xffff;
vb[1].offset.x = (data[0]) & 0xffff;
vb[1].offset.y = (data[1]) & 0xffff;
// if( !conf.interlace ) {
// ZeroGS::vb[1].offset.x &= ~15;
// ZeroGS::vb[1].offset.y &= ~15;
// vb[1].offset.x &= ~15;
// vb[1].offset.y &= ~15;
// }
}
@ -601,7 +601,7 @@ void __gifCall GIFRegHandlerPRMODECONT(const u32* data)
gs.prac = data[0] & 0x1;
prim = &gs._prim[gs.prac];
ZeroGS::Prim();
Prim();
}
void __gifCall GIFRegHandlerPRMODE(const u32* data)
@ -609,15 +609,15 @@ void __gifCall GIFRegHandlerPRMODE(const u32* data)
FUNCLOG
gs._prim[0]._val = (data[0] >> 3) & 0xff;
if (gs.prac == 0) ZeroGS::Prim();
if (gs.prac == 0) Prim();
}
void __gifCall GIFRegHandlerTEXCLUT(const u32* data)
{
FUNCLOG
ZeroGS::vb[0].FlushTexData();
ZeroGS::vb[1].FlushTexData();
vb[0].FlushTexData();
vb[1].FlushTexData();
gs.clut.cbw = ((data[0]) & 0x3f) * 64;
gs.clut.cou = ((data[0] >> 6) & 0x3f) * 16;
@ -627,9 +627,9 @@ void __gifCall GIFRegHandlerTEXCLUT(const u32* data)
void __gifCall GIFRegHandlerSCANMSK(const u32* data)
{
FUNCLOG
// ZeroGS::FlushBoth();
// ZeroGS::ResolveC(&ZeroGS::vb[0]);
// ZeroGS::ResolveZ(&ZeroGS::vb[0]);
// FlushBoth();
// ResolveC(&vb[0]);
// ResolveZ(&vb[0]);
gs.smask = data[0] & 0x3;
}
@ -637,7 +637,7 @@ void __gifCall GIFRegHandlerSCANMSK(const u32* data)
void __gifCall GIFRegHandlerMIPTBP1_1(const u32* data)
{
FUNCLOG
miptbpInfo& miptbp0 = ZeroGS::vb[0].miptbp0;
miptbpInfo& miptbp0 = vb[0].miptbp0;
miptbp0.tbp[0] = (data[0]) & 0x3fff;
miptbp0.tbw[0] = (data[0] >> 14) & 0x3f;
miptbp0.tbp[1] = ((data[0] >> 20) & 0xfff) | ((data[1] & 0x3) << 12);
@ -649,7 +649,7 @@ void __gifCall GIFRegHandlerMIPTBP1_1(const u32* data)
void __gifCall GIFRegHandlerMIPTBP1_2(const u32* data)
{
FUNCLOG
miptbpInfo& miptbp0 = ZeroGS::vb[1].miptbp0;
miptbpInfo& miptbp0 = vb[1].miptbp0;
miptbp0.tbp[0] = (data[0]) & 0x3fff;
miptbp0.tbw[0] = (data[0] >> 14) & 0x3f;
miptbp0.tbp[1] = ((data[0] >> 20) & 0xfff) | ((data[1] & 0x3) << 12);
@ -661,7 +661,7 @@ void __gifCall GIFRegHandlerMIPTBP1_2(const u32* data)
void __gifCall GIFRegHandlerMIPTBP2_1(const u32* data)
{
FUNCLOG
miptbpInfo& miptbp1 = ZeroGS::vb[0].miptbp1;
miptbpInfo& miptbp1 = vb[0].miptbp1;
miptbp1.tbp[0] = (data[0]) & 0x3fff;
miptbp1.tbw[0] = (data[0] >> 14) & 0x3f;
miptbp1.tbp[1] = ((data[0] >> 20) & 0xfff) | ((data[1] & 0x3) << 12);
@ -673,7 +673,7 @@ void __gifCall GIFRegHandlerMIPTBP2_1(const u32* data)
void __gifCall GIFRegHandlerMIPTBP2_2(const u32* data)
{
FUNCLOG
miptbpInfo& miptbp1 = ZeroGS::vb[1].miptbp1;
miptbpInfo& miptbp1 = vb[1].miptbp1;
miptbp1.tbp[0] = (data[0]) & 0x3fff;
miptbp1.tbw[0] = (data[0] >> 14) & 0x3f;
miptbp1.tbp[1] = ((data[0] >> 20) & 0xfff) | ((data[1] & 0x3) << 12);
@ -692,34 +692,34 @@ void __gifCall GIFRegHandlerTEXA(const u32* data)
if (*(u32*)&newinfo != *(u32*)&gs.texa)
{
ZeroGS::FlushBoth();
FlushBoth();
*(u32*)&gs.texa = *(u32*) & newinfo;
gs.texa.fta[0] = newinfo.ta[0] / 255.0f;
gs.texa.fta[1] = newinfo.ta[1] / 255.0f;
ZeroGS::vb[0].bTexConstsSync = false;
ZeroGS::vb[1].bTexConstsSync = false;
vb[0].bTexConstsSync = false;
vb[1].bTexConstsSync = false;
}
}
void __gifCall GIFRegHandlerFOGCOL(const u32* data)
{
FUNCLOG
ZeroGS::SetFogColor(data[0]&0xffffff);
SetFogColor(data[0]&0xffffff);
}
void __gifCall GIFRegHandlerTEXFLUSH(const u32* data)
{
FUNCLOG
ZeroGS::SetTexFlush();
SetTexFlush();
}
void __gifCall GIFRegHandlerSCISSOR_1(const u32* data)
{
FUNCLOG
Rect2& scissor = ZeroGS::vb[0].scissor;
Rect2& scissor = vb[0].scissor;
Rect2 newscissor;
@ -731,16 +731,16 @@ void __gifCall GIFRegHandlerSCISSOR_1(const u32* data)
if (newscissor.x1 != scissor.x1 || newscissor.y1 != scissor.y1 ||
newscissor.x0 != scissor.x0 || newscissor.y0 != scissor.y0)
{
ZeroGS::Flush(0);
Flush(0);
scissor = newscissor;
ZeroGS::vb[0].bNeedFrameCheck = 1;
vb[0].bNeedFrameCheck = 1;
}
}
void __gifCall GIFRegHandlerSCISSOR_2(const u32* data)
{
FUNCLOG
Rect2& scissor = ZeroGS::vb[1].scissor;
Rect2& scissor = vb[1].scissor;
Rect2 newscissor;
@ -752,11 +752,11 @@ void __gifCall GIFRegHandlerSCISSOR_2(const u32* data)
if (newscissor.x1 != scissor.x1 || newscissor.y1 != scissor.y1 ||
newscissor.x0 != scissor.x0 || newscissor.y0 != scissor.y0)
{
ZeroGS::Flush(1);
Flush(1);
scissor = newscissor;
// flush everything
ZeroGS::vb[1].bNeedFrameCheck = 1;
vb[1].bNeedFrameCheck = 1;
}
}
@ -767,16 +767,16 @@ void __gifCall GIFRegHandlerALPHA_1(const u32* data)
newalpha.abcd = *(u8*)data;
newalpha.fix = *(u8*)(data + 1);
if (*(u16*)&newalpha != *(u16*)&ZeroGS::vb[0].alpha)
if (*(u16*)&newalpha != *(u16*)&vb[0].alpha)
{
ZeroGS::Flush(0);
Flush(0);
if (newalpha.a == 3) newalpha.a = 0;
if (newalpha.b == 3) newalpha.b = 0;
if (newalpha.c == 3) newalpha.c = 0;
if (newalpha.d == 3) newalpha.d = 0;
*(u16*)&ZeroGS::vb[0].alpha = *(u16*) & newalpha;
*(u16*)&vb[0].alpha = *(u16*) & newalpha;
}
}
@ -787,16 +787,16 @@ void __gifCall GIFRegHandlerALPHA_2(const u32* data)
newalpha.abcd = *(u8*)data;
newalpha.fix = *(u8*)(data + 1);
if (*(u16*)&newalpha != *(u16*)&ZeroGS::vb[1].alpha)
if (*(u16*)&newalpha != *(u16*)&vb[1].alpha)
{
ZeroGS::Flush(1);
Flush(1);
if (newalpha.a == 3) newalpha.a = 0;
if (newalpha.b == 3) newalpha.b = 0;
if (newalpha.c == 3) newalpha.c = 0;
if (newalpha.d == 3) newalpha.d = 0;
*(u16*)&ZeroGS::vb[1].alpha = *(u16*) & newalpha;
*(u16*)&vb[1].alpha = *(u16*) & newalpha;
}
}
@ -832,9 +832,9 @@ void __gifCall GIFRegHandlerTEST_2(const u32* data)
void __gifCall GIFRegHandlerPABE(const u32* data)
{
FUNCLOG
//ZeroGS::SetAlphaChanged(0, GPUREG_PABE);
//ZeroGS::SetAlphaChanged(1, GPUREG_PABE);
ZeroGS::FlushBoth();
//SetAlphaChanged(0, GPUREG_PABE);
//SetAlphaChanged(1, GPUREG_PABE);
FlushBoth();
gs.pabe = *data & 0x1;
}
@ -843,17 +843,17 @@ void __gifCall GIFRegHandlerFBA_1(const u32* data)
{
FUNCLOG
ZeroGS::FlushBoth();
ZeroGS::vb[0].fba.fba = *data & 0x1;
FlushBoth();
vb[0].fba.fba = *data & 0x1;
}
void __gifCall GIFRegHandlerFBA_2(const u32* data)
{
FUNCLOG
ZeroGS::FlushBoth();
FlushBoth();
ZeroGS::vb[1].fba.fba = *data & 0x1;
vb[1].fba.fba = *data & 0x1;
}
void __gifCall GIFRegHandlerFRAME_1(const u32* data)
@ -871,7 +871,7 @@ void __gifCall GIFRegHandlerFRAME_2(const u32* data)
void __gifCall GIFRegHandlerZBUF_1(const u32* data)
{
FUNCLOG
zbufInfo& zbuf = ZeroGS::vb[0].zbuf;
zbufInfo& zbuf = vb[0].zbuf;
int psm = (0x30 | ((data[0] >> 24) & 0xf));
@ -885,23 +885,23 @@ void __gifCall GIFRegHandlerZBUF_1(const u32* data)
// error detection
if (m_Blocks[psm].bpp == 0) return;
ZeroGS::FlushBoth();
FlushBoth();
zbuf.zbp = (data[0] & 0x1ff) * 32;
zbuf.psm = 0x30 | ((data[0] >> 24) & 0xf);
zbuf.zmsk = data[1] & 0x1;
ZeroGS::vb[0].zprimmask = 0xffffffff;
vb[0].zprimmask = 0xffffffff;
if (zbuf.psm > 0x31) ZeroGS::vb[0].zprimmask = 0xffff;
if (zbuf.psm > 0x31) vb[0].zprimmask = 0xffff;
ZeroGS::vb[0].bNeedZCheck = 1;
vb[0].bNeedZCheck = 1;
}
void __gifCall GIFRegHandlerZBUF_2(const u32* data)
{
FUNCLOG
zbufInfo& zbuf = ZeroGS::vb[1].zbuf;
zbufInfo& zbuf = vb[1].zbuf;
int psm = (0x30 | ((data[0] >> 24) & 0xf));
@ -915,7 +915,7 @@ void __gifCall GIFRegHandlerZBUF_2(const u32* data)
// error detection
if (m_Blocks[psm].bpp == 0) return;
ZeroGS::FlushBoth();
FlushBoth();
zbuf.zbp = (data[0] & 0x1ff) * 32;
@ -923,10 +923,10 @@ void __gifCall GIFRegHandlerZBUF_2(const u32* data)
zbuf.zmsk = data[1] & 0x1;
ZeroGS::vb[1].bNeedZCheck = 1;
ZeroGS::vb[1].zprimmask = 0xffffffff;
vb[1].bNeedZCheck = 1;
vb[1].zprimmask = 0xffffffff;
if (zbuf.psm > 0x31) ZeroGS::vb[1].zprimmask = 0xffff;
if (zbuf.psm > 0x31) vb[1].zprimmask = 0xffff;
}
void __gifCall GIFRegHandlerBITBLTBUF(const u32* data)
@ -973,7 +973,7 @@ void __gifCall GIFRegHandlerTRXDIR(const u32* data)
break;
case 1: // loc->host
ZeroGS::TerminateLocalHost();
TerminateLocalHost();
break;
}
@ -990,15 +990,15 @@ void __gifCall GIFRegHandlerTRXDIR(const u32* data)
switch (gs.imageTransfer)
{
case 0: // host->loc
ZeroGS::InitTransferHostLocal();
InitTransferHostLocal();
break;
case 1: // loc->host
ZeroGS::InitTransferLocalHost();
InitTransferLocalHost();
break;
case 2:
ZeroGS::TransferLocalLocal();
TransferLocalLocal();
break;
case 3:
@ -1024,7 +1024,7 @@ void __gifCall GIFRegHandlerHWREG(const u32* data)
if (gs.imageTransfer == 0)
{
ZeroGS::TransferHostLocal(data, 2);
TransferHostLocal(data, 2);
}
else
{

View File

@ -86,7 +86,7 @@ void ProcessAASetting(bool reverse)
conf.incAA();
sprintf(strtitle, "anti-aliasing - %s", s_aa[conf.aa]);
ZeroGS::SetAA(conf.aa);
SetAA(conf.aa);
ZZLog::WriteToScreen(strtitle);
SaveConfig();
@ -286,7 +286,7 @@ void ProcessEvents()
{
// destroy that msg
conf.setFullscreen(false);
ZeroGS::ChangeDeviceSize(conf.width, conf.height);
ChangeDeviceSize(conf.width, conf.height);
UpdateWindow(GShwnd);
continue; // so that msg doesn't get sent
}
@ -315,7 +315,7 @@ void ProcessEvents()
{
conf.zz_options.fullscreen = !conf.zz_options.fullscreen;
ZeroGS::SetChangeDeviceSize(
SetChangeDeviceSize(
(conf.fullscreen()) ? 1280 : conf.width,
(conf.fullscreen()) ? 960 : conf.height);
}

View File

@ -68,7 +68,7 @@ void SetDir(const char* dir)
void WriteToScreen(const char* pstr, u32 ms)
{
ZeroGS::AddMessage(pstr, ms);
ZZAddMessage(pstr, ms);
}
void _Message(const char *str)

View File

@ -99,7 +99,7 @@ static bool SPAM_PASS;
if( err != GL_NO_ERROR ) \
{ \
ZZLog::Error_Log("%s:%d: gl error %s(0x%x)", __FILE__, (int)__LINE__, error_name(err), err); \
ZeroGS::HandleGLError(); \
HandleGLError(); \
} \
}
@ -110,7 +110,7 @@ static bool SPAM_PASS;
if( err != GL_NO_ERROR ) \
{ \
ZZLog::Error_Log("%s:%d: gl error %s (0x%x)", __FILE__, (int)__LINE__, error_name(err), err); \
ZeroGS::HandleGLError(); \
HandleGLError(); \
} \
}
#else
@ -156,16 +156,13 @@ inline const char *error_name(int err)
extern void __LogToConsole(const char *fmt, ...);
// Subset of zerogs, to avoid that whole huge header.
namespace ZeroGS
{
extern void AddMessage(const char* pstr, u32 ms);
extern void ZZAddMessage(const char* pstr, u32 ms);
extern void SetAA(int mode);
extern bool Create(int width, int height);
extern void Destroy(bool bD3D);
extern bool ZZCreate(int width, int height);
extern void ZZDestroy(bool bD3D);
extern void StartCapture();
extern void StopCapture();
}
namespace ZZLog
{

View File

@ -25,8 +25,6 @@
#include "GLWin.h"
#include "ZZoglShaders.h"
using namespace ZeroGS;
//------------------ Defines
#if !defined(ZEROGS_DEVBUILD)
#define g_bSaveFrame 0
@ -50,7 +48,7 @@ extern bool g_bMakeSnapshot;
extern string strSnapshot;
// Adjusts vertex shader BitBltPos vector v to preserve aspect ratio. It used to emulate 4:3 or 16:9.
void ZeroGS::AdjustTransToAspect(float4& v)
void AdjustTransToAspect(float4& v)
{
double temp;
float f;
@ -670,7 +668,7 @@ inline void AfterRenderMadeSnapshoot()
{
char str[255];
sprintf(str, "saved %s\n", strSnapshot.c_str());
AddMessage(str, 500);
ZZAddMessage(str, 500);
}
g_bMakeSnapshot = false;
@ -679,7 +677,7 @@ inline void AfterRenderMadeSnapshoot()
// If needed reset
inline void AfterRendererResizeWindow()
{
Reset();
ZZReset();
ChangeDeviceSize(s_nNewWidth, s_nNewHeight);
s_nNewWidth = s_nNewHeight = -1;
}
@ -823,7 +821,7 @@ inline void AfterRendererAutoresetTargets()
int count = 0;
// The main renderer function
void ZeroGS::RenderCRTC(int interlace)
void RenderCRTC(int interlace)
{
if (FrameSkippingHelper()) return;

View File

@ -56,8 +56,6 @@ extern int g_nDepthUsed; // ffx2 pal movies
extern u32 s_ptexInterlace; // holds interlace fields
namespace ZeroGS
{
extern int s_nNewWidth, s_nNewHeight;
extern CRangeManager s_RangeMngr; // manages overwritten memory
@ -95,6 +93,5 @@ inline u32 CreateInterlaceTex(int width)
return s_ptexInterlace;
}
}
#endif // ZZOGLCRTC_H_INCLUDED

View File

@ -73,8 +73,6 @@ typedef void (APIENTRYP _PFNSWAPINTERVAL)(int);
map<string, GLbyte> mapGLExtensions;
namespace ZeroGS
{
extern void KickPoint();
extern void KickLine();
extern void KickTriangle();
@ -92,7 +90,6 @@ int g_nCurVBOIndex = 0;
inline bool CreateImportantCheck();
inline void CreateOtherCheck();
inline bool CreateOpenShadersFile();
}
//------------------ Dummies
#ifdef _WIN32
@ -136,8 +133,6 @@ char* EFFECT_DIR = "";
/////////////////////
// graphics resources
FRAGMENTSHADER ppsRegular[4], ppsTexture[NUM_SHADERS];
FRAGMENTSHADER ppsCRTC[2], ppsCRTC24[2], ppsCRTCTarg[2];
GLenum s_srcrgb, s_dstrgb, s_srcalpha, s_dstalpha; // set by zgsBlendFuncSeparateEXT
u32 s_stencilfunc, s_stencilref, s_stencilmask;
GLenum s_drawbuffers[] = { GL_COLOR_ATTACHMENT0_EXT, GL_COLOR_ATTACHMENT1_EXT };
@ -168,12 +163,12 @@ int g_nDepthBias = 0;
//------------------ Code
bool ZeroGS::IsGLExt(const char* szTargetExtension)
bool IsGLExt(const char* szTargetExtension)
{
return mapGLExtensions.find(string(szTargetExtension)) != mapGLExtensions.end();
}
inline bool ZeroGS::Create_Window(int _width, int _height)
inline bool Create_Window(int _width, int _height)
{
nBackbufferWidth = _width;
nBackbufferHeight = _height;
@ -188,7 +183,7 @@ inline bool ZeroGS::Create_Window(int _width, int _height)
}
// Function asks about different OGL extensions, that are required to setup accordingly. Return false if checks failed
inline bool ZeroGS::CreateImportantCheck()
inline bool CreateImportantCheck()
{
bool bSuccess = true;
#ifndef _WIN32
@ -220,7 +215,7 @@ inline bool ZeroGS::CreateImportantCheck()
}
// This is a check for less important open gl extensions.
inline void ZeroGS::CreateOtherCheck()
inline void CreateOtherCheck()
{
if (!IsGLExt("GL_EXT_blend_equation_separate") || glBlendEquationSeparateEXT == NULL)
{
@ -294,7 +289,7 @@ inline void ZeroGS::CreateOtherCheck()
// open shader file according to build target
inline bool ZeroGS::CreateOpenShadersFile()
inline bool CreateOpenShadersFile()
{
#ifndef DEVBUILD
# ifdef _WIN32
@ -445,20 +440,20 @@ inline bool TryBlinearFormat(GLint fmt32, GLint fmt16, const GLvoid* vBilinearDa
}
bool ZeroGS::Create(int _width, int _height)
bool ZZCreate(int _width, int _height)
{
GLenum err = GL_NO_ERROR;
bool bSuccess = true;
int i;
Destroy(1);
GSStateReset();
ZZDestroy(1);
ZZGSStateReset();
if (!Create_Window(_width, _height)) return false;
if (!CreateFillExtensionsMap()) return false;
if (!CreateImportantCheck()) return false;
ZeroGS::CreateOtherCheck();
CreateOtherCheck();
// check the max texture width and height
glGetIntegerv(GL_MAX_TEXTURE_SIZE, &g_MaxTexWidth);
@ -793,7 +788,7 @@ bool ZeroGS::Create(int _width, int _height)
}
}
void ZeroGS::Destroy(bool bD3D)
void ZZDestroy(bool bD3D)
{
Delete_Avi_Capture();

View File

@ -28,8 +28,6 @@
#include "ZZoglFlushHack.h"
#include "ZZoglShaders.h"
using namespace ZeroGS;
//------------------ Defines
#ifndef ZEROGS_DEVBUILD
@ -193,9 +191,6 @@ int s_nWireframeCount = 0;
//------------------ Namespace
namespace ZeroGS
{
VB vb[2];
float fiTexWidth[2], fiTexHeight[2]; // current tex width and height
@ -221,9 +216,6 @@ inline void ProcessStencil(const VB& curvb);
inline void RenderFBA(const VB& curvb, ZZshParameter sOneColor);
inline void ProcessFBA(const VB& curvb, ZZshParameter sOneColor); // zz
}
//------------------ Code
inline float AlphaReferedValue(int aref)
@ -299,7 +291,7 @@ int GetTexFilter(const tex1Info& tex1)
return texfilter;
}
void ZeroGS::ReloadEffects()
void ReloadEffects()
{
#ifdef ZEROGS_DEVBUILD
@ -321,7 +313,7 @@ inline void VisualBufferMessage(int context)
{
#if defined(WRITE_PRIM_LOGS) && defined(_DEBUG)
BufferNumber++;
ZeroGS::VB& curvb = vb[context];
VB& curvb = vb[context];
static const char* patst[8] = { "NEVER", "ALWAYS", "LESS", "LEQUAL", "EQUAL", "GEQUAL", "GREATER", "NOTEQUAL"};
static const char* pztst[4] = { "NEVER", "ALWAYS", "GEQUAL", "GREATER" };
static const char* pafail[4] = { "KEEP", "FB_ONLY", "ZB_ONLY", "RGB_ONLY" };
@ -1477,7 +1469,7 @@ inline void FlushUndoFiter(u32 dwFilterOpts)
}
// This is the most important function! It draws all collected info onscreen.
void ZeroGS::Flush(int context)
void Flush(int context)
{
FUNCLOG
VB& curvb = vb[context];
@ -1535,13 +1527,13 @@ void ZeroGS::Flush(int context)
GL_REPORT_ERRORD();
}
void ZeroGS::FlushBoth()
void FlushBoth()
{
Flush(0);
Flush(1);
}
inline void ZeroGS::RenderFBA(const VB& curvb, ZZshParameter sOneColor)
inline void RenderFBA(const VB& curvb, ZZshParameter sOneColor)
{
// add fba to all pixels
GL_STENCILFUNC(GL_ALWAYS, STENCIL_FBA, 0xff);
@ -1585,7 +1577,7 @@ inline void ZeroGS::RenderFBA(const VB& curvb, ZZshParameter sOneColor)
GL_ZTEST(curvb.test.zte);
}
__forceinline void ZeroGS::RenderAlphaTest(const VB& curvb, ZZshParameter sOneColor)
__forceinline void RenderAlphaTest(const VB& curvb, ZZshParameter sOneColor)
{
if (!g_bUpdateStencil) return;
@ -1653,7 +1645,7 @@ __forceinline void ZeroGS::RenderAlphaTest(const VB& curvb, ZZshParameter sOneCo
}
}
inline void ZeroGS::RenderStencil(const VB& curvb, u32 dwUsingSpecialTesting)
inline void RenderStencil(const VB& curvb, u32 dwUsingSpecialTesting)
{
//NOTE: This stencil hack for dest alpha testing ONLY works when
// the geometry in one DrawPrimitive call does not overlap
@ -1670,7 +1662,7 @@ inline void ZeroGS::RenderStencil(const VB& curvb, u32 dwUsingSpecialTesting)
GL_STENCILFUNC_SET();
}
inline void ZeroGS::ProcessStencil(const VB& curvb)
inline void ProcessStencil(const VB& curvb)
{
assert(!curvb.fba.fba);
@ -1723,7 +1715,7 @@ inline void ZeroGS::ProcessStencil(const VB& curvb)
glStencilOp(GL_KEEP, GL_KEEP, GL_KEEP);
}
__forceinline void ZeroGS::ProcessFBA(const VB& curvb, ZZshParameter sOneColor)
__forceinline void ProcessFBA(const VB& curvb, ZZshParameter sOneColor)
{
if ((curvb.frame.fbm&0x80000000)) return;
@ -1784,7 +1776,7 @@ __forceinline void ZeroGS::ProcessFBA(const VB& curvb, ZZshParameter sOneColor)
GL_ZTEST(curvb.test.zte);
}
void ZeroGS::SetContextTarget(int context)
void SetContextTarget(int context)
{
FUNCLOG
VB& curvb = vb[context];
@ -1859,7 +1851,7 @@ void ZeroGS::SetContextTarget(int context)
//if( bSetTarg && ((vb[0].pdepth != vb[1].pdepth && vb[!context].bVarsSetTarg) || !vb[context].bVarsSetTarg) )
curvb.pdepth->SetDepthStencilSurface();
if (conf.mrtdepth && ZeroGS::IsWriteDepth()) curvb.pdepth->SetRenderTarget(1);
if (conf.mrtdepth && IsWriteDepth()) curvb.pdepth->SetRenderTarget(1);
if (s_ptexCurSet[0] == curvb.prndr->ptex) s_ptexCurSet[0] = 0;
if (s_ptexCurSet[1] == curvb.prndr->ptex) s_ptexCurSet[1] = 0;
@ -1892,7 +1884,7 @@ void ZeroGS::SetContextTarget(int context)
}
void ZeroGS::SetTexInt(int context, FRAGMENTSHADER* pfragment, int settexint)
void SetTexInt(int context, FRAGMENTSHADER* pfragment, int settexint)
{
FUNCLOG
@ -1929,14 +1921,14 @@ void SetTexClamping(int context, FRAGMENTSHADER* pfragment)
{
FUNCLOG
SetShaderCaller("SetTexClamping");
clampInfo* pclamp = &ZeroGS::vb[context].clamp;
clampInfo* pclamp = &vb[context].clamp;
float4 v, v2;
v.x = v.y = 0;
u32* ptex = ZeroGS::vb[context].ptexClamp;
u32* ptex = vb[context].ptexClamp;
ptex[0] = ptex[1] = 0;
float fw = ZeroGS::vb[context].tex0.tw ;
float fh = ZeroGS::vb[context].tex0.th ;
float fw = vb[context].tex0.tw ;
float fh = vb[context].tex0.th ;
switch (pclamp->wms)
{
@ -1966,7 +1958,7 @@ void SetTexClamping(int context, FRAGMENTSHADER* pfragment)
if (correctMinu != g_PrevBitwiseTexX)
{
g_PrevBitwiseTexX = correctMinu;
ptex[0] = ZeroGS::s_BitwiseTextures.GetTex(correctMinu, 0);
ptex[0] = s_BitwiseTextures.GetTex(correctMinu, 0);
}
break;
@ -2001,7 +1993,7 @@ void SetTexClamping(int context, FRAGMENTSHADER* pfragment)
if (correctMinv != g_PrevBitwiseTexY)
{
g_PrevBitwiseTexY = correctMinv;
ptex[1] = ZeroGS::s_BitwiseTextures.GetTex(correctMinv, ptex[0]);
ptex[1] = s_BitwiseTextures.GetTex(correctMinv, ptex[0]);
}
break;
}
@ -2025,7 +2017,7 @@ inline bool equal_vectors(float4 a, float4 b)
}
int CheckTexArray[4][2][2][2] = {{{{0, }}}};
void ZeroGS::SetTexVariables(int context, FRAGMENTSHADER* pfragment)
void SetTexVariables(int context, FRAGMENTSHADER* pfragment)
{
FUNCLOG
@ -2203,7 +2195,7 @@ void ZeroGS::SetTexVariables(int context, FRAGMENTSHADER* pfragment)
}
}
void ZeroGS::SetTexVariablesInt(int context, int bilinear, const tex0Info& tex0, bool CheckVB, FRAGMENTSHADER* pfragment, int force)
void SetTexVariablesInt(int context, int bilinear, const tex0Info& tex0, bool CheckVB, FRAGMENTSHADER* pfragment, int force)
{
FUNCLOG
float4 v;
@ -2368,11 +2360,11 @@ void ZeroGS::SetTexVariablesInt(int context, int bilinear, const tex0Info& tex0,
// } \
// else { \
void ZeroGS::ResetAlphaVariables() {
void ResetAlphaVariables() {
FUNCLOG
}
inline void ZeroGS::NeedFactor(int w)
inline void NeedFactor(int w)
{
if (bDestAlphaColor == 2)
{
@ -2384,7 +2376,7 @@ inline void ZeroGS::NeedFactor(int w)
//static int CheckArray[48][2] = {{0,}};
void ZeroGS::SetAlphaVariables(const alphaInfo& a)
void SetAlphaVariables(const alphaInfo& a)
{
FUNCLOG
bool alphaenable = true;
@ -2877,7 +2869,7 @@ void ZeroGS::SetAlphaVariables(const alphaInfo& a)
INC_ALPHAVARS();
}
void ZeroGS::SetWriteDepth()
void SetWriteDepth()
{
FUNCLOG
@ -2888,26 +2880,26 @@ void ZeroGS::SetWriteDepth()
}
}
bool ZeroGS::IsWriteDepth()
bool IsWriteDepth()
{
FUNCLOG
return s_bWriteDepth;
}
bool ZeroGS::IsWriteDestAlphaTest()
bool IsWriteDestAlphaTest()
{
FUNCLOG
return s_bDestAlphaTest;
}
void ZeroGS::SetDestAlphaTest()
void SetDestAlphaTest()
{
FUNCLOG
s_bDestAlphaTest = true;
s_nWriteDestAlphaTest = 4;
}
void ZeroGS::SetTexFlush()
void SetTexFlush()
{
FUNCLOG
s_bTexFlush = true;

View File

@ -464,7 +464,7 @@ static const u32 MAX_FRAMES = 500;
static GSFrameInfo FrameAppear[MAX_FRAMES];
static u32 Rec_Numbers = 0;
void RecordNewFrames(ZeroGS::VB& curvb, GSFrameInfo fi) {
void RecordNewFrames(VB& curvb, GSFrameInfo fi) {
if (Rec_Numbers >= MAX_FRAMES)
return;
@ -486,12 +486,12 @@ void RecordNewFrames(ZeroGS::VB& curvb, GSFrameInfo fi) {
// Dump a nice picture of the frame
char filename[255];
sprintf(filename, "SkipFlushFrame_%d__%d.tga", g_SkipFlushFrame, Rec_Numbers);
ZeroGS::SaveRenderTarget(filename, curvb.prndr->fbw, curvb.prndr->fbh, 0);
SaveRenderTarget(filename, curvb.prndr->fbw, curvb.prndr->fbh, 0);
}
}
#endif
__forceinline bool IsBadFrame(ZeroGS::VB& curvb)
__forceinline bool IsBadFrame(VB& curvb)
{
GSFrameInfo fi;

View File

@ -79,5 +79,5 @@ void GSC_StarOcean3(const GSFrameInfo& fi, int& skip);
void GSC_ValkyrieProfile2(const GSFrameInfo& fi, int& skip);
void GSC_RadiataStories(const GSFrameInfo& fi, int& skip);
extern bool IsBadFrame(ZeroGS::VB& curvb);
extern bool IsBadFrame(VB& curvb);
#endif

View File

@ -44,7 +44,7 @@ char *libraryNameX = "ZeroGS Playground OpenGL ";
extern char *libraryName;
extern u32 s_uTex1Data[2][2], s_uClampData[2];
int ZeroGS::Save(s8* pbydata)
int ZZSave(s8* pbydata)
{
if (pbydata == NULL)
return 40 + MEMORY_END + sizeof(gs) + 2*VBSAVELIMIT + 2*sizeof(frameInfo) + 4 + 256*4;
@ -85,7 +85,7 @@ int ZeroGS::Save(s8* pbydata)
return 0;
}
bool ZeroGS::Load(s8* pbydata)
bool ZZLoad(s8* pbydata)
{
memset(s_uTex1Data, 0, sizeof(s_uTex1Data));
memset(s_uClampData, 0, sizeof(s_uClampData));
@ -99,7 +99,7 @@ bool ZeroGS::Load(s8* pbydata)
{
g_MemTargs.Destroy();
GSStateReset();
ZZGSStateReset();
pbydata += 32;
//int context = *(int*)pbydata;

View File

@ -33,8 +33,6 @@ extern HINSTANCE hInst;
// ----------------- Defines
using namespace ZeroGS;
#define TEXWRAP_REPEAT 0
#define TEXWRAP_CLAMP 1
#define TEXWRAP_REGION_REPEAT 2
@ -87,7 +85,6 @@ char* EFFECT_DIR;
bool g_bCRTCBilinear = true;
namespace ZeroGS {
float4 g_vdepth, vlogz;
FRAGMENTSHADER ppsBitBlt[2], ppsBitBltDepth, ppsOne;
FRAGMENTSHADER ppsBaseTexture, ppsConvert16to32, ppsConvert32to16;
@ -96,7 +93,6 @@ namespace ZeroGS {
VERTEXSHADER pvsBitBlt;
inline bool LoadEffects();
}
struct SHADERHEADER
{
@ -506,7 +502,7 @@ void SetupVertexProgramParameters(ZZshProgram prog, int context)
SetupFragmentProgramParameters(&fragment, !!(Index&SH_CONTEXT1), 0); \
} \
inline bool ZeroGS::LoadEffects()
inline bool LoadEffects()
{
assert( s_lpShaderResources != NULL );
@ -711,7 +707,7 @@ FRAGMENTSHADER* ZZshLoadShadeEffect(int type, int texfilter, int fog, int testae
SET_PSFILENAME(fragment, name); \
} \
inline bool ZeroGS::LoadEffects()
inline bool LoadEffects()
{
// clear the textures
for(int i = 0; i < ARRAY_SIZE(ppsTexture); ++i) {

View File

@ -174,7 +174,6 @@ struct VERTEXSHADER
int ParametersStart, ParametersFinish;
};
namespace ZeroGS {
extern float4 g_vdepth;
extern float4 vlogz;
extern VERTEXSHADER pvsBitBlt;
@ -183,7 +182,6 @@ namespace ZeroGS {
extern FRAGMENTSHADER ppsRegular[4], ppsTexture[NUM_SHADERS];
extern FRAGMENTSHADER ppsCRTC[2], ppsCRTC24[2], ppsCRTCTarg[2];
}
// ------------------------- Functions -------------------------------
@ -225,8 +223,7 @@ extern bool ZZshLoadExtraEffects();
extern FRAGMENTSHADER* ZZshLoadShadeEffect(int type, int texfilter, int fog, int testaem, int exactcolor, const clampInfo& clamp, int context, bool* pbFailed);
namespace ZeroGS {
// only sets a limited amount of state (for Update)
void SetTexVariablesInt(int context, int bilinear, const tex0Info& tex0, bool CheckVB, FRAGMENTSHADER* pfragment, int force);
}
#endif

View File

@ -65,14 +65,14 @@ string strSnapshot;
//------------------ Code
// Set variables need to made a snapshoot when it's possible
void ZeroGS::SaveSnapshot(const char* filename)
void SaveSnapshot(const char* filename)
{
g_bMakeSnapshot = true;
strSnapshot = filename;
}
// Save curent renderer in jpeg or TGA format
bool ZeroGS::SaveRenderTarget(const char* filename, int width, int height, int jpeg)
bool SaveRenderTarget(const char* filename, int width, int height, int jpeg)
{
bool bflip = height < 0;
height = abs(height);
@ -100,7 +100,7 @@ bool ZeroGS::SaveRenderTarget(const char* filename, int width, int height, int j
}
// Save selected texture as TGA
bool ZeroGS::SaveTexture(const char* filename, u32 textarget, u32 tex, int width, int height)
bool SaveTexture(const char* filename, u32 textarget, u32 tex, int width, int height)
{
vector<u32> data(width*height);
glBindTexture(textarget, tex);
@ -112,7 +112,7 @@ bool ZeroGS::SaveTexture(const char* filename, u32 textarget, u32 tex, int width
}
// save image as JPEG
bool ZeroGS::SaveJPEG(const char* filename, int image_width, int image_height, const void* pdata, int quality)
bool SaveJPEG(const char* filename, int image_width, int image_height, const void* pdata, int quality)
{
u8* image_buffer = new u8[image_width * image_height * 3];
u8* psrc = (u8*)pdata;
@ -286,7 +286,7 @@ __attribute__((packed));
#endif
// Save image as TGA
bool ZeroGS::SaveTGA(const char* filename, int width, int height, void* pdata)
bool SaveTGA(const char* filename, int width, int height, void* pdata)
{
int err = 0;
TGA_HEADER hdr;
@ -314,7 +314,7 @@ bool ZeroGS::SaveTGA(const char* filename, int width, int height, void* pdata)
// AVI capture stuff
// AVI start -- set needed global variables
void ZeroGS::StartCapture()
void StartCapture()
{
if (conf.captureAvi()) return;
if (!s_aviinit)
@ -338,7 +338,7 @@ void ZeroGS::StartCapture()
}
// Stop.
void ZeroGS::StopCapture()
void StopCapture()
{
if (!conf.captureAvi()) return;
s_avicapturing = 0;
@ -347,7 +347,7 @@ void ZeroGS::StopCapture()
}
// And capture frame does not work on linux.
void ZeroGS::CaptureFrame()
void CaptureFrame()
{
if ((!s_avicapturing) || (!s_aviinit)) return;
@ -365,7 +365,7 @@ void ZeroGS::CaptureFrame()
{
s_avicapturing = 0;
STOP_AVI();
ZeroGS::AddMessage("Failed to create avi");
ZZAddMessage("Failed to create avi");
return;
}
@ -376,7 +376,7 @@ void ZeroGS::CaptureFrame()
// It's nearly the same as save texture
void
ZeroGS::SaveTex(tex0Info* ptex, int usevid)
SaveTex(tex0Info* ptex, int usevid)
{
vector<u32> data(ptex->tw*ptex->th);
vector<u8> srcdata;
@ -617,7 +617,7 @@ ZeroGS::SaveTex(tex0Info* ptex, int usevid)
// Do the save texture and return file name of it
// Do not forget to call free(), other wise there would be memory leak!
char* ZeroGS::NamedSaveTex(tex0Info* ptex, int usevid)
char* NamedSaveTex(tex0Info* ptex, int usevid)
{
SaveTex(ptex, usevid);
char* Name = (char*)malloc(TGA_FILE_NAME_MAX_LENGTH);
@ -631,7 +631,7 @@ char* ZeroGS::NamedSaveTex(tex0Info* ptex, int usevid)
}
// Special function, which is safe to call from any other file, without aviutils problems.
void ZeroGS::Stop_Avi()
void Stop_Avi()
{
#ifdef _WIN32
STOP_AVI();
@ -640,7 +640,7 @@ void ZeroGS::Stop_Avi()
#endif
}
void ZeroGS::Delete_Avi_Capture()
void Delete_Avi_Capture()
{
if (s_aviinit)
{

View File

@ -26,7 +26,6 @@
#include "GS.h"
#include "Mem.h"
using namespace ZeroGS;
// ----------------- Defines
#define MINMAX_SHIFT 3
@ -37,20 +36,20 @@ int maxmin = 608;
// ----------------- Code
// Constructor. Set width and height to 1
ZeroGS::VB::VB()
VB::VB()
{
memset(this, 0, sizeof(ZeroGS::VB));
memset(this, 0, sizeof(VB));
tex0.tw = 1;
tex0.th = 1;
}
// Destructor
ZeroGS::VB::~VB()
VB::~VB()
{
Destroy();
}
void ZeroGS::VB::Destroy()
void VB::Destroy()
{
_aligned_free(pBufferData);
pBufferData = NULL;
@ -65,7 +64,7 @@ int ConstraintReason;
// Return number of 64-pixels block, that guaranted could be hold in memory
// from gsfb.fbp and tbp (textrure pase), zbuf.zbp (Z-buffer), frame.fbp
// (previous frame).
inline int ZeroGS::VB::FindMinimalMemoryConstrain(int tbp, int maxpos)
inline int VB::FindMinimalMemoryConstrain(int tbp, int maxpos)
{
int MinConstraint = maxpos;
@ -116,7 +115,7 @@ inline int ZeroGS::VB::FindMinimalMemoryConstrain(int tbp, int maxpos)
// Return number of 64 pizel words that could be placed in Z-Buffer
// If no Z-buffer present return old constraint
inline int ZeroGS::VB::FindZbufferMemoryConstrain(int tbp, int maxpos)
inline int VB::FindZbufferMemoryConstrain(int tbp, int maxpos)
{
int MinConstraint = maxpos;
@ -147,7 +146,7 @@ inline int GetScissorY(int y)
//There is several reasons to limit a height of frame: maximum buffer size, calculated size
//from fbw and fbh and scissoring.
inline int ZeroGS::VB::FindMinimalHeightConstrain(int maxpos)
inline int VB::FindMinimalHeightConstrain(int maxpos)
{
int MinConstraint = maxpos;
@ -176,7 +175,7 @@ inline int ZeroGS::VB::FindMinimalHeightConstrain(int maxpos)
// 32 bit frames have additional constraints to frame
// maxpos was maximum length of frame at normal constraints
inline void ZeroGS::VB::CheckFrame32bitRes(int maxpos)
inline void VB::CheckFrame32bitRes(int maxpos)
{
int fbh = frame.fbh;
@ -215,7 +214,7 @@ inline void ZeroGS::VB::CheckFrame32bitRes(int maxpos)
// 4Mb memory in 64 bit (4 bytes) words.
// |------------------------|---------------------|----------|----------|---------------------|
// 0 gsfb.fbp zbuff.zpb tbp frame.fbp 2^20/64
inline int ZeroGS::VB::CheckFrameAddConstraints(int tbp)
inline int VB::CheckFrameAddConstraints(int tbp)
{
if (gsfb.fbw <= 0)
{
@ -263,7 +262,7 @@ inline int ZeroGS::VB::CheckFrameAddConstraints(int tbp)
// Check if after resizing new depth target is needed to be used.
// it returns 2 if a new depth target is used.
inline int ZeroGS::VB::CheckFrameResolveDepth(int tbp)
inline int VB::CheckFrameResolveDepth(int tbp)
{
int result = 0;
CDepthTarget* pprevdepth = pdepth;
@ -289,7 +288,7 @@ inline int ZeroGS::VB::CheckFrameResolveDepth(int tbp)
// Check if after resizing, a new render target is needed to be used. Also perform deptarget check.
// Returns 1 if only 1 render target is changed and 3 -- if both.
inline int ZeroGS::VB::CheckFrameResolveRender(int tbp)
inline int VB::CheckFrameResolveRender(int tbp)
{
int result = 0;
@ -335,7 +334,7 @@ inline int ZeroGS::VB::CheckFrameResolveRender(int tbp)
}
// After frame resetting, it is possible that 16 to 32 or 32 to 16 (color bits) conversion should be made.
inline void ZeroGS::VB::CheckFrame16vs32Conversion()
inline void VB::CheckFrame16vs32Conversion()
{
if (prndr->status & CRenderTarget::TS_NeedConvert32)
{
@ -357,7 +356,7 @@ inline void ZeroGS::VB::CheckFrame16vs32Conversion()
// A lot of times, the target is too big and overwrites the texture.
// If tbp != 0, use it to bound.
void ZeroGS::VB::CheckFrame(int tbp)
void VB::CheckFrame(int tbp)
{
GL_REPORT_ERRORD();
@ -407,11 +406,11 @@ void ZeroGS::VB::CheckFrame(int tbp)
}
// This is the case, most easy to perform, when nothing was changed
inline void ZeroGS::VB::FlushTexUnchangedClutDontUpdate()
inline void VB::FlushTexUnchangedClutDontUpdate()
{
if (ZZOglGet_cld_TexBits(uNextTex0Data[1]))
{
ZeroGS::texClutWrite(ictx);
texClutWrite(ictx);
// invalidate to make sure target didn't change!
bVarsTexSync = false;
}
@ -419,9 +418,9 @@ inline void ZeroGS::VB::FlushTexUnchangedClutDontUpdate()
// The second of easy branch. We does not change storage model, so we don't need to
// update anything except texture itself
inline void ZeroGS::VB::FlushTexClutDontUpdate()
inline void VB::FlushTexClutDontUpdate()
{
if (!ZZOglClutStorageUnchanged(uCurTex0Data, uNextTex0Data)) ZeroGS::Flush(ictx);
if (!ZZOglClutStorageUnchanged(uCurTex0Data, uNextTex0Data)) Flush(ictx);
// clut memory isn't going to be loaded so can ignore, but at least update CSA and CPSM!
uCurTex0Data[1] = (uCurTex0Data[1] & CPSM_CSA_NOTMASK) | (uNextTex0Data[1] & CPSM_CSA_BITMASK);
@ -429,14 +428,14 @@ inline void ZeroGS::VB::FlushTexClutDontUpdate()
tex0.csa = ZZOglGet_csa_TexBits(uNextTex0Data[1]);
tex0.cpsm = ZZOglGet_cpsm_TexBits(uNextTex0Data[1]);
ZeroGS::texClutWrite(ictx);
texClutWrite(ictx);
bVarsTexSync = false;
}
// Set texture variables after big change
inline void ZeroGS::VB::FlushTexSetNewVars(u32 psm)
inline void VB::FlushTexSetNewVars(u32 psm)
{
tex0.tbp0 = ZZOglGet_tbp0_TexBits(uNextTex0Data[0]);
tex0.tbw = ZZOglGet_tbw_TexBitsMult(uNextTex0Data[0]);
@ -447,13 +446,13 @@ inline void ZeroGS::VB::FlushTexSetNewVars(u32 psm)
tex0.tcc = ZZOglGet_tcc_TexBits(uNextTex0Data[1]);
tex0.tfx = ZZOglGet_tfx_TexBits(uNextTex0Data[1]);
ZeroGS::fiTexWidth[ictx] = (1 / 16.0f) / tex0.tw;
ZeroGS::fiTexHeight[ictx] = (1 / 16.0f) / tex0.th;
fiTexWidth[ictx] = (1 / 16.0f) / tex0.tw;
fiTexHeight[ictx] = (1 / 16.0f) / tex0.th;
}
// Flush == draw on screen
// This function made VB state consistant before real Flush.
void ZeroGS::VB::FlushTexData()
void VB::FlushTexData()
{
GL_REPORT_ERRORD();
@ -487,7 +486,7 @@ void ZeroGS::VB::FlushTexData()
}
// Made the full update
ZeroGS::Flush(ictx);
Flush(ictx);
bVarsTexSync = false;
bTexConstsSync = false;
@ -497,7 +496,7 @@ void ZeroGS::VB::FlushTexData()
FlushTexSetNewVars(psm);
if (PSMT_ISCLUT(psm)) ZeroGS::CluttingForFlushedTex(&tex0, uNextTex0Data[1], ictx) ;
if (PSMT_ISCLUT(psm)) CluttingForFlushedTex(&tex0, uNextTex0Data[1], ictx) ;
GL_REPORT_ERRORD();
}
}

View File

@ -33,7 +33,6 @@
#define RHA
//#define RW
using namespace ZeroGS;
extern int g_TransferredToGPU;
extern bool g_bUpdateStencil;
@ -47,12 +46,9 @@ extern int s_nResolved;
extern u32 g_nResolve;
extern bool g_bSaveTrans;
namespace ZeroGS
{
CRenderTargetMngr s_RTs, s_DepthRTs;
CBitwiseTextureMngr s_BitwiseTextures;
CMemoryTargetMngr g_MemTargs;
}
//extern u32 s_ptexCurSet[2];
bool g_bSaveZUpdate = 0;
@ -91,7 +87,7 @@ inline void DestroyAllTargetsHelper(void* ptr)
// returns false if creating texture was unsuccessful
// fbh and fdb should be properly shifted before calling this!
// We should ignore framebuffer trouble here, as we put textures of different sizes to it.
inline bool ZeroGS::CRenderTarget::InitialiseDefaultTexture(u32 *ptr_p, int fbw, int fbh)
inline bool CRenderTarget::InitialiseDefaultTexture(u32 *ptr_p, int fbw, int fbh)
{
glGenTextures(1, ptr_p);
glBindTexture(GL_TEXTURE_RECTANGLE_NV, *ptr_p);
@ -109,7 +105,7 @@ inline bool ZeroGS::CRenderTarget::InitialiseDefaultTexture(u32 *ptr_p, int fbw,
// Draw 4 triangles from binded array using only stencil buffer
inline void FillOnlyStencilBuffer()
{
if (ZeroGS::IsWriteDestAlphaTest() && !(conf.settings().no_stencil))
if (IsWriteDestAlphaTest() && !(conf.settings().no_stencil))
{
glColorMask(0, 0, 0, 0);
glEnable(GL_ALPHA_TEST);
@ -125,7 +121,7 @@ inline void FillOnlyStencilBuffer()
// used for transformation from vertex position in GS window.coords (I hope)
// to view coordinates (in range 0, 1).
inline float4 ZeroGS::CRenderTarget::DefaultBitBltPos()
inline float4 CRenderTarget::DefaultBitBltPos()
{
float4 v = float4(1, -1, 0.5f / (float)RW(fbw), 0.5f / (float)RH(fbh));
v *= 1.0f / 32767.0f;
@ -135,7 +131,7 @@ inline float4 ZeroGS::CRenderTarget::DefaultBitBltPos()
// Used to transform texture coordinates from GS (when 0,0 is upper left) to
// OpenGL (0,0 - lower left).
inline float4 ZeroGS::CRenderTarget::DefaultBitBltTex()
inline float4 CRenderTarget::DefaultBitBltTex()
{
// I really sure that -0.5 is correct, because OpenGL have no half-offset
// issue, DirectX known for.
@ -153,19 +149,19 @@ inline void BindToSample(u32 *p_ptr)
////////////////////
// Render Targets //
////////////////////
ZeroGS::CRenderTarget::CRenderTarget() : ptex(0), ptexFeedback(0), psys(NULL)
CRenderTarget::CRenderTarget() : ptex(0), ptexFeedback(0), psys(NULL)
{
FUNCLOG
nUpdateTarg = 0;
}
ZeroGS::CRenderTarget::~CRenderTarget()
CRenderTarget::~CRenderTarget()
{
FUNCLOG
Destroy();
}
bool ZeroGS::CRenderTarget::Create(const frameInfo& frame)
bool CRenderTarget::Create(const frameInfo& frame)
{
FUNCLOG
Resolve();
@ -208,7 +204,7 @@ bool ZeroGS::CRenderTarget::Create(const frameInfo& frame)
return true;
}
void ZeroGS::CRenderTarget::Destroy()
void CRenderTarget::Destroy()
{
FUNCLOG
created = 1;
@ -218,7 +214,7 @@ void ZeroGS::CRenderTarget::Destroy()
SAFE_RELEASE_TEX(ptexFeedback);
}
void ZeroGS::CRenderTarget::SetTarget(int fbplocal, const Rect2& scissor, int context)
void CRenderTarget::SetTarget(int fbplocal, const Rect2& scissor, int context)
{
FUNCLOG
int dy = 0;
@ -261,7 +257,7 @@ void ZeroGS::CRenderTarget::SetTarget(int fbplocal, const Rect2& scissor, int co
scissorrect.h = RH(scissorrect.h);
}
void ZeroGS::CRenderTarget::SetViewport()
void CRenderTarget::SetViewport()
{
FUNCLOG
glViewport(0, 0, RW(fbw), RH(fbh));
@ -272,7 +268,7 @@ inline bool NotResolveHelper()
return ((s_nResolved > 8 && (2 * s_nResolved > fFPS - 10)) || (conf.settings().no_target_resolve));
}
void ZeroGS::CRenderTarget::Resolve()
void CRenderTarget::Resolve()
{
FUNCLOG
@ -281,7 +277,7 @@ void ZeroGS::CRenderTarget::Resolve()
// flush if necessary
FlushIfNecesary(this) ;
if ((IsDepth() && !ZeroGS::IsWriteDepth()) || NotResolveHelper())
if ((IsDepth() && !IsWriteDepth()) || NotResolveHelper())
{
// don't resolve if depths aren't used
status = TS_Resolved;
@ -314,7 +310,7 @@ void ZeroGS::CRenderTarget::Resolve()
}
}
void ZeroGS::CRenderTarget::Resolve(int startrange, int endrange)
void CRenderTarget::Resolve(int startrange, int endrange)
{
FUNCLOG
@ -387,7 +383,7 @@ void ZeroGS::CRenderTarget::Resolve(int startrange, int endrange)
}
}
void ZeroGS::CRenderTarget::Update(int context, ZeroGS::CRenderTarget* pdepth)
void CRenderTarget::Update(int context, CRenderTarget* pdepth)
{
FUNCLOG
@ -488,7 +484,7 @@ void ZeroGS::CRenderTarget::Update(int context, ZeroGS::CRenderTarget* pdepth)
if (conf.wireframe()) glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
if (ZeroGS::IsWriteDestAlphaTest())
if (IsWriteDestAlphaTest())
{
glEnable(GL_STENCIL_TEST);
glStencilFunc(GL_ALWAYS, 0, 0xff);
@ -510,17 +506,17 @@ void ZeroGS::CRenderTarget::Update(int context, ZeroGS::CRenderTarget* pdepth)
glEnable(GL_SCISSOR_TEST);
if (conf.wireframe()) glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
if (conf.mrtdepth && pdepth != NULL && ZeroGS::IsWriteDepth()) pdepth->SetRenderTarget(1);
if (conf.mrtdepth && pdepth != NULL && IsWriteDepth()) pdepth->SetRenderTarget(1);
status = TS_Resolved;
// reset since settings changed
vb[0].bVarsTexSync = 0;
ZeroGS::ResetAlphaVariables();
ResetAlphaVariables();
}
void ZeroGS::CRenderTarget::ConvertTo32()
void CRenderTarget::ConvertTo32()
{
FUNCLOG
@ -568,7 +564,7 @@ void ZeroGS::CRenderTarget::ConvertTo32()
// assume depth already set !?
FBTexture(0, ptexConv);
ZeroGS::ResetRenderTarget(1);
ResetRenderTarget(1);
BindToSample(&ptex);
ZZshGLSetTextureParameter(ppsConvert16to32.prog, ppsConvert16to32.sFinal, ptex, "Convert 16 to 32.Final");
@ -613,7 +609,7 @@ void ZeroGS::CRenderTarget::ConvertTo32()
status = TS_Resolved;
// TODO, reset depth?
if (ZeroGS::icurctx >= 0)
if (icurctx >= 0)
{
// reset since settings changed
vb[icurctx].bVarsTexSync = 0;
@ -623,7 +619,7 @@ void ZeroGS::CRenderTarget::ConvertTo32()
vb[0].bVarsTexSync = 0;
}
void ZeroGS::CRenderTarget::ConvertTo16()
void CRenderTarget::ConvertTo16()
{
FUNCLOG
@ -669,7 +665,7 @@ void ZeroGS::CRenderTarget::ConvertTo16()
// assume depth already set !?
FBTexture(0, ptexConv);
ZeroGS::ResetRenderTarget(1);
ResetRenderTarget(1);
GL_REPORT_ERRORD();
BindToSample(&ptex);
@ -719,7 +715,7 @@ void ZeroGS::CRenderTarget::ConvertTo16()
status = TS_Resolved;
// TODO, reset depth?
if (ZeroGS::icurctx >= 0)
if (icurctx >= 0)
{
// reset since settings changed
vb[icurctx].bVarsTexSync = 0;
@ -729,7 +725,7 @@ void ZeroGS::CRenderTarget::ConvertTo16()
vb[0].bVarsTexSync = 0;
}
void ZeroGS::CRenderTarget::_CreateFeedback()
void CRenderTarget::_CreateFeedback()
{
FUNCLOG
@ -797,7 +793,7 @@ void ZeroGS::CRenderTarget::_CreateFeedback()
status |= TS_FeedbackReady;
// TODO, reset depth?
if (ZeroGS::icurctx >= 0)
if (icurctx >= 0)
{
// reset since settings changed
vb[icurctx].bVarsTexSync = 0;
@ -806,7 +802,7 @@ void ZeroGS::CRenderTarget::_CreateFeedback()
GL_REPORT_ERRORD();
}
void ZeroGS::CRenderTarget::SetRenderTarget(int targ)
void CRenderTarget::SetRenderTarget(int targ)
{
FUNCLOG
@ -817,16 +813,16 @@ void ZeroGS::CRenderTarget::SetRenderTarget(int targ)
//ERROR_LOG_SPAM("The Framebuffer is not complete. Glitches could appear onscreen.\n");
}
ZeroGS::CDepthTarget::CDepthTarget() : CRenderTarget(), pdepth(0), pstencil(0), icount(0) {}
CDepthTarget::CDepthTarget() : CRenderTarget(), pdepth(0), pstencil(0), icount(0) {}
ZeroGS::CDepthTarget::~CDepthTarget()
CDepthTarget::~CDepthTarget()
{
FUNCLOG
Destroy();
}
bool ZeroGS::CDepthTarget::Create(const frameInfo& frame)
bool CDepthTarget::Create(const frameInfo& frame)
{
FUNCLOG
@ -871,7 +867,7 @@ bool ZeroGS::CDepthTarget::Create(const frameInfo& frame)
return true;
}
void ZeroGS::CDepthTarget::Destroy()
void CDepthTarget::Destroy()
{
FUNCLOG
@ -903,11 +899,11 @@ void ZeroGS::CDepthTarget::Destroy()
extern int g_nDepthUsed; // > 0 if depth is used
void ZeroGS::CDepthTarget::Resolve()
void CDepthTarget::Resolve()
{
FUNCLOG
if (g_nDepthUsed > 0 && conf.mrtdepth && !(status&TS_Virtual) && ZeroGS::IsWriteDepth() && !(conf.settings().no_depth_resolve))
if (g_nDepthUsed > 0 && conf.mrtdepth && !(status&TS_Virtual) && IsWriteDepth() && !(conf.settings().no_depth_resolve))
CRenderTarget::Resolve();
else
{
@ -919,15 +915,15 @@ void ZeroGS::CDepthTarget::Resolve()
if (!(status&TS_Virtual))
{
ZeroGS::SetWriteDepth();
SetWriteDepth();
}
}
void ZeroGS::CDepthTarget::Resolve(int startrange, int endrange)
void CDepthTarget::Resolve(int startrange, int endrange)
{
FUNCLOG
if (g_nDepthUsed > 0 && conf.mrtdepth && !(status&TS_Virtual) && ZeroGS::IsWriteDepth())
if (g_nDepthUsed > 0 && conf.mrtdepth && !(status&TS_Virtual) && IsWriteDepth())
{
CRenderTarget::Resolve(startrange, endrange);
}
@ -942,11 +938,11 @@ void ZeroGS::CDepthTarget::Resolve(int startrange, int endrange)
if (!(status&TS_Virtual))
{
ZeroGS::SetWriteDepth();
SetWriteDepth();
}
}
void ZeroGS::CDepthTarget::Update(int context, ZeroGS::CRenderTarget* prndr)
void CDepthTarget::Update(int context, CRenderTarget* prndr)
{
FUNCLOG
@ -963,7 +959,7 @@ void ZeroGS::CDepthTarget::Update(int context, ZeroGS::CRenderTarget* prndr)
DisableAllgl();
ZeroGS::VB& curvb = vb[context];
VB& curvb = vb[context];
if (curvb.test.zte == 0) return;
@ -1036,7 +1032,7 @@ void ZeroGS::CDepthTarget::Update(int context, ZeroGS::CRenderTarget* prndr)
status = TS_Resolved;
if (!ZeroGS::IsWriteDepth())
if (!IsWriteDepth())
{
ResetRenderTarget(1);
}
@ -1054,7 +1050,7 @@ void ZeroGS::CDepthTarget::Update(int context, ZeroGS::CRenderTarget* prndr)
#endif
}
void ZeroGS::CDepthTarget::SetDepthStencilSurface()
void CDepthTarget::SetDepthStencilSurface()
{
FUNCLOG
TextureRect(GL_DEPTH_ATTACHMENT_EXT, pdepth);
@ -1085,7 +1081,7 @@ void ZeroGS::CDepthTarget::SetDepthStencilSurface()
}
}
void ZeroGS::CRenderTargetMngr::Destroy()
void CRenderTargetMngr::Destroy()
{
FUNCLOG
@ -1104,7 +1100,7 @@ void ZeroGS::CRenderTargetMngr::Destroy()
mapDummyTargs.clear();
}
void ZeroGS::CRenderTargetMngr::DestroyAllTargs(int start, int end, int fbw)
void CRenderTargetMngr::DestroyAllTargs(int start, int end, int fbw)
{
FUNCLOG
@ -1166,14 +1162,14 @@ void ZeroGS::CRenderTargetMngr::DestroyAllTargs(int start, int end, int fbw)
}
}
void ZeroGS::CRenderTargetMngr::DestroyTarg(CRenderTarget* ptarg)
void CRenderTargetMngr::DestroyTarg(CRenderTarget* ptarg)
{
FUNCLOG
DestroyAllTargetsHelper(ptarg) ;
delete ptarg;
}
void ZeroGS::CRenderTargetMngr::DestroyIntersecting(CRenderTarget* prndr)
void CRenderTargetMngr::DestroyIntersecting(CRenderTarget* prndr)
{
FUNCLOG
assert(prndr != NULL);
@ -1221,7 +1217,7 @@ inline bool CheckWidthIsSame(const frameInfo& frame, CRenderTarget* ptarg)
return (2 * frame.fbw == ptarg->fbw);
}
void ZeroGS::CRenderTargetMngr::PrintTargets()
void CRenderTargetMngr::PrintTargets()
{
#ifdef _DEBUG
for (MAPTARGETS::iterator it1 = mapDummyTargs.begin(); it1 != mapDummyTargs.end(); ++it1)
@ -1232,7 +1228,7 @@ void ZeroGS::CRenderTargetMngr::PrintTargets()
#endif
}
bool ZeroGS::CRenderTargetMngr::isFound(const frameInfo& frame, MAPTARGETS::iterator& it, u32 opts, u32 key, int maxposheight)
bool CRenderTargetMngr::isFound(const frameInfo& frame, MAPTARGETS::iterator& it, u32 opts, u32 key, int maxposheight)
{
// only enforce height if frame.fbh <= 0x1c0
bool bfound = it != mapTargets.end();
@ -1286,7 +1282,7 @@ bool ZeroGS::CRenderTargetMngr::isFound(const frameInfo& frame, MAPTARGETS::iter
return bfound;
}
CRenderTarget* ZeroGS::CRenderTargetMngr::GetTarg(const frameInfo& frame, u32 opts, int maxposheight)
CRenderTarget* CRenderTargetMngr::GetTarg(const frameInfo& frame, u32 opts, int maxposheight)
{
FUNCLOG
@ -1594,7 +1590,7 @@ CRenderTarget* ZeroGS::CRenderTargetMngr::GetTarg(const frameInfo& frame, u32 op
return ptarg;
}
ZeroGS::CRenderTargetMngr::MAPTARGETS::iterator ZeroGS::CRenderTargetMngr::GetOldestTarg(MAPTARGETS& m)
CRenderTargetMngr::MAPTARGETS::iterator CRenderTargetMngr::GetOldestTarg(MAPTARGETS& m)
{
FUNCLOG
@ -1614,7 +1610,7 @@ ZeroGS::CRenderTargetMngr::MAPTARGETS::iterator ZeroGS::CRenderTargetMngr::GetOl
return itmaxtarg;
}
void ZeroGS::CRenderTargetMngr::GetTargs(int start, int end, list<ZeroGS::CRenderTarget*>& listTargets) const
void CRenderTargetMngr::GetTargs(int start, int end, list<CRenderTarget*>& listTargets) const
{
FUNCLOG
@ -1624,7 +1620,7 @@ void ZeroGS::CRenderTargetMngr::GetTargs(int start, int end, list<ZeroGS::CRende
}
}
void ZeroGS::CRenderTargetMngr::Resolve(int start, int end)
void CRenderTargetMngr::Resolve(int start, int end)
{
FUNCLOG
@ -1635,7 +1631,7 @@ void ZeroGS::CRenderTargetMngr::Resolve(int start, int end)
}
}
void ZeroGS::CMemoryTargetMngr::Destroy()
void CMemoryTargetMngr::Destroy()
{
FUNCLOG
listTargets.clear();
@ -1689,7 +1685,7 @@ int memcmp_clut16(u16* pSavedBuffer, u16* pClutBuffer, int clutsize)
}
#if 0
bool ZeroGS::CMemoryTarget::ValidateClut(const tex0Info& tex0)
bool CMemoryTarget::ValidateClut(const tex0Info& tex0)
{
FUNCLOG
assert(tex0.psm == psm && PSMT_ISCLUT(psm) && cpsm == tex0.cpsm);
@ -1723,7 +1719,7 @@ bool ZeroGS::CMemoryTarget::ValidateClut(const tex0Info& tex0)
}
#endif
bool ZeroGS::CMemoryTarget::ValidateTex(const tex0Info& tex0, int starttex, int endtex, bool bDeleteBadTex)
bool CMemoryTarget::ValidateTex(const tex0Info& tex0, int starttex, int endtex, bool bDeleteBadTex)
{
FUNCLOG
@ -1895,7 +1891,7 @@ static __forceinline void BuildClut(u32 psm, u32 height, T* pclut, u8* psrc, T*
extern int g_MaxTexWidth, g_MaxTexHeight; // Maximum height & width of supported texture.
//#define SORT_TARGETS
inline list<CMemoryTarget>::iterator ZeroGS::CMemoryTargetMngr::DestroyTargetIter(list<CMemoryTarget>::iterator& it)
inline list<CMemoryTarget>::iterator CMemoryTargetMngr::DestroyTargetIter(list<CMemoryTarget>::iterator& it)
{
// find the target and destroy
list<CMemoryTarget>::iterator itprev = it;
@ -1910,7 +1906,7 @@ inline list<CMemoryTarget>::iterator ZeroGS::CMemoryTargetMngr::DestroyTargetIte
return it;
}
int ZeroGS::CMemoryTargetMngr::CompareTarget(list<CMemoryTarget>::iterator& it, const tex0Info& tex0, int clutsize, int nClutOffset)
int CMemoryTargetMngr::CompareTarget(list<CMemoryTarget>::iterator& it, const tex0Info& tex0, int clutsize, int nClutOffset)
{
if (PSMT_ISCLUT(it->psm) != PSMT_ISCLUT(tex0.psm))
{
@ -1951,7 +1947,7 @@ int ZeroGS::CMemoryTargetMngr::CompareTarget(list<CMemoryTarget>::iterator& it,
return 0;
}
void ZeroGS::CMemoryTargetMngr::GetClutVariables(int& nClutOffset, int& clutsize, const tex0Info& tex0)
void CMemoryTargetMngr::GetClutVariables(int& nClutOffset, int& clutsize, const tex0Info& tex0)
{
nClutOffset = 0;
clutsize = 0;
@ -1973,7 +1969,7 @@ void ZeroGS::CMemoryTargetMngr::GetClutVariables(int& nClutOffset, int& clutsize
}
}
void ZeroGS::CMemoryTargetMngr::GetMemAddress(int& start, int& end, const tex0Info& tex0)
void CMemoryTargetMngr::GetMemAddress(int& start, int& end, const tex0Info& tex0)
{
int nbStart, nbEnd;
GetRectMemAddress(nbStart, nbEnd, tex0.psm, 0, 0, tex0.tw, tex0.th, tex0.tbp0, tex0.tbw);
@ -1986,7 +1982,7 @@ void ZeroGS::CMemoryTargetMngr::GetMemAddress(int& start, int& end, const tex0I
}
ZeroGS::CMemoryTarget* ZeroGS::CMemoryTargetMngr::SearchExistTarget(int start, int end, int nClutOffset, int clutsize, const tex0Info& tex0, int forcevalidate)
CMemoryTarget* CMemoryTargetMngr::SearchExistTarget(int start, int end, int nClutOffset, int clutsize, const tex0Info& tex0, int forcevalidate)
{
for (list<CMemoryTarget>::iterator it = listTargets.begin(); it != listTargets.end();)
{
@ -2057,7 +2053,7 @@ ZeroGS::CMemoryTarget* ZeroGS::CMemoryTargetMngr::SearchExistTarget(int start, i
return NULL;
}
ZeroGS::CMemoryTarget* ZeroGS::CMemoryTargetMngr::ClearedTargetsSearch(int fmt, int widthmult, int channels, int height)
CMemoryTarget* CMemoryTargetMngr::ClearedTargetsSearch(int fmt, int widthmult, int channels, int height)
{
CMemoryTarget* targ = NULL;
@ -2098,7 +2094,7 @@ ZeroGS::CMemoryTarget* ZeroGS::CMemoryTargetMngr::ClearedTargetsSearch(int fmt,
return targ;
}
ZeroGS::CMemoryTarget* ZeroGS::CMemoryTargetMngr::GetMemoryTarget(const tex0Info& tex0, int forcevalidate)
CMemoryTarget* CMemoryTargetMngr::GetMemoryTarget(const tex0Info& tex0, int forcevalidate)
{
FUNCLOG
int start, end, nClutOffset, clutsize;
@ -2106,7 +2102,7 @@ ZeroGS::CMemoryTarget* ZeroGS::CMemoryTargetMngr::GetMemoryTarget(const tex0Info
GetClutVariables(nClutOffset, clutsize, tex0);
GetMemAddress(start, end, tex0);
ZeroGS::CMemoryTarget* it = SearchExistTarget(start, end, nClutOffset, clutsize, tex0, forcevalidate);
CMemoryTarget* it = SearchExistTarget(start, end, nClutOffset, clutsize, tex0, forcevalidate);
if (it != NULL) return it;
@ -2383,7 +2379,7 @@ ZeroGS::CMemoryTarget* ZeroGS::CMemoryTargetMngr::GetMemoryTarget(const tex0Info
return targ;
}
void ZeroGS::CMemoryTargetMngr::ClearRange(int nbStartY, int nbEndY)
void CMemoryTargetMngr::ClearRange(int nbStartY, int nbEndY)
{
FUNCLOG
int starty = nbStartY / (4 * GPU_TEXWIDTH);
@ -2455,7 +2451,7 @@ void ZeroGS::CMemoryTargetMngr::ClearRange(int nbStartY, int nbEndY)
// }
}
void ZeroGS::CMemoryTargetMngr::DestroyCleared()
void CMemoryTargetMngr::DestroyCleared()
{
FUNCLOG
@ -2488,7 +2484,7 @@ void ZeroGS::CMemoryTargetMngr::DestroyCleared()
++curstamp;
}
void ZeroGS::CMemoryTargetMngr::DestroyOldest()
void CMemoryTargetMngr::DestroyOldest()
{
FUNCLOG
@ -2511,7 +2507,7 @@ void ZeroGS::CMemoryTargetMngr::DestroyOldest()
//////////////////////////////////////
// Texture Mngr For Bitwise AND Ops //
//////////////////////////////////////
void ZeroGS::CBitwiseTextureMngr::Destroy()
void CBitwiseTextureMngr::Destroy()
{
FUNCLOG
@ -2523,7 +2519,7 @@ void ZeroGS::CBitwiseTextureMngr::Destroy()
mapTextures.clear();
}
u32 ZeroGS::CBitwiseTextureMngr::GetTexInt(u32 bitvalue, u32 ptexDoNotDelete)
u32 CBitwiseTextureMngr::GetTexInt(u32 bitvalue, u32 ptexDoNotDelete)
{
FUNCLOG
@ -2593,7 +2589,7 @@ u32 ZeroGS::CBitwiseTextureMngr::GetTexInt(u32 bitvalue, u32 ptexDoNotDelete)
return ptex;
}
void ZeroGS::CRangeManager::RangeSanityCheck()
void CRangeManager::RangeSanityCheck()
{
#ifdef _DEBUG
// sanity check
@ -2606,7 +2602,7 @@ void ZeroGS::CRangeManager::RangeSanityCheck()
#endif
}
void ZeroGS::CRangeManager::Insert(int start, int end)
void CRangeManager::Insert(int start, int end)
{
FUNCLOG
int imin = 0, imax = (int)ranges.size(), imid;
@ -2759,9 +2755,6 @@ void ZeroGS::CRangeManager::Insert(int start, int end)
RangeSanityCheck();
}
namespace ZeroGS
{
CRangeManager s_RangeMngr; // manages overwritten memory
void ResolveInRange(int start, int end)
@ -2892,7 +2885,7 @@ void FlushTransferRanges(const tex0Info* ptex)
// get start of left-most boundry page
int targstart, targend;
ZeroGS::GetRectMemAddress(targstart, targend, ptarg->psm, 0, 0, ptarg->fbw, ptarg->fbh & ~(m_Blocks[ptarg->psm].height - 1), ptarg->fbp, ptarg->fbw);
GetRectMemAddress(targstart, targend, ptarg->psm, 0, 0, ptarg->fbw, ptarg->fbh & ~(m_Blocks[ptarg->psm].height - 1), ptarg->fbp, ptarg->fbw);
if (start >= targend)
{
@ -2932,7 +2925,7 @@ void FlushTransferRanges(const tex0Info* ptex)
}
}
ZeroGS::g_MemTargs.ClearRange(start, end);
g_MemTargs.ClearRange(start, end);
}
s_RangeMngr.Clear();
@ -3756,5 +3749,3 @@ void _Resolve(const void* psrc, int fbp, int fbw, int fbh, int psm, u32 fbm, boo
}
#endif
} // End of namespece ZeroGS

View File

@ -27,9 +27,6 @@
#define GL_TEXTURE_RECTANGLE GL_TEXTURE_RECTANGLE_NV
#endif
namespace ZeroGS
{
inline u32 GetFrameKey(int fbp, int fbw, VB& curvb);
// manages render targets
@ -69,7 +66,7 @@ class CRenderTargetMngr
}
// gets all targets with a range
void GetTargs(int start, int end, list<ZeroGS::CRenderTarget*>& listTargets) const;
void GetTargs(int start, int end, list<CRenderTarget*>& listTargets) const;
// resolves all targets within a range
__forceinline void Resolve(int start, int end);
@ -218,15 +215,15 @@ inline int RH(int tbh)
return (tbh << AA.y);
}
/* inline void CreateTargetsList(int start, int end, list<ZeroGS::CRenderTarget*>& listTargs) {
/* inline void CreateTargetsList(int start, int end, list<CRenderTarget*>& listTargs) {
s_DepthRTs.GetTargs(start, end, listTargs);
s_RTs.GetTargs(start, end, listTargs);
}*/
// This pattern of functions is called 3 times, so I add creating Targets list into one.
inline list<ZeroGS::CRenderTarget*> CreateTargetsList(int start, int end)
inline list<CRenderTarget*> CreateTargetsList(int start, int end)
{
list<ZeroGS::CRenderTarget*> listTargs;
list<CRenderTarget*> listTargs;
s_DepthRTs.GetTargs(start, end, listTargs);
s_RTs.GetTargs(start, end, listTargs);
return listTargs;
@ -290,8 +287,6 @@ inline u32 GetFrameKeyDummy(CRenderTarget* frame)
return GetFrameKeyDummy(frame->fbp, frame->fbw, frame->fbh, frame->psm);
}
} // End of namespace
#include "Mem.h"
static __forceinline void DrawTriangleArray()

View File

@ -43,8 +43,6 @@ typedef void (APIENTRYP _PFNSWAPINTERVAL)(int);
//-------------------------- Extern variables
using namespace ZeroGS;
extern u32 g_nGenVars, g_nTexVars, g_nAlphaVars, g_nResolve;
extern char *libraryName;
extern int g_nFrame, g_nRealFrame;
@ -92,8 +90,6 @@ int s_nResolveCounts[30] = {0}; // resolve counts for last 30 frames
// State parameters
int nBackbufferWidth, nBackbufferHeight; // ZZ
namespace ZeroGS
{
// = float4( 255.0 /256.0f, 255.0/65536.0f, 255.0f/(65535.0f*256.0f), 1.0f/(65536.0f*65536.0f));
// float4 g_vdepth = float4( 65536.0f*65536.0f, 256.0f*65536.0f, 65536.0f, 256.0f);
@ -144,8 +140,6 @@ DrawFn drawfn[8] = { KickDummy, KickDummy, KickDummy, KickDummy,
KickDummy, KickDummy, KickDummy, KickDummy
};
}; // end namespace
// does one time only initializing/destruction
class ZeroGSInit
@ -180,7 +174,7 @@ static ZeroGSInit s_ZeroGSInit;
#define GL_FRAMEBUFFER_INCOMPLETE_DUPLICATE_ATTACHMENT_EXT 0x8CD8
#endif
void ZeroGS::HandleGLError()
void HandleGLError()
{
FUNCLOG
// check the error status of this framebuffer */
@ -241,7 +235,7 @@ void ZeroGS::HandleGLError()
}
}
void ZeroGS::GSStateReset()
void ZZGSStateReset()
{
FUNCLOG
icurctx = -1;
@ -249,7 +243,7 @@ void ZeroGS::GSStateReset()
for (int i = 0; i < 2; ++i)
{
vb[i].Destroy();
memset(&vb[i], 0, sizeof(ZeroGS::VB));
memset(&vb[i], 0, sizeof(VB));
vb[i].tex0.tw = 1;
vb[i].tex0.th = 1;
@ -270,7 +264,7 @@ void ZeroGS::GSStateReset()
vb[1].ictx = 1;
}
void ZeroGS::Reset()
void ZZReset()
{
FUNCLOG
s_RTs.ResolveAll();
@ -285,8 +279,8 @@ void ZeroGS::Reset()
icurctx = -1;
g_vsprog = g_psprog = 0;
GSStateReset();
Destroy(0);
ZZGSStateReset();
ZZDestroy(0);
drawfn[0] = KickDummy;
drawfn[1] = KickDummy;
@ -298,13 +292,13 @@ void ZeroGS::Reset()
drawfn[7] = KickDummy;
}
void ZeroGS::GSReset()
void ZZGSReset()
{
FUNCLOG
memset(&gs, 0, sizeof(gs));
ZeroGS::GSStateReset();
ZZGSStateReset();
gs.prac = 1;
prim = &gs._prim[0];
@ -313,7 +307,7 @@ void ZeroGS::GSReset()
gs.q = 1;
}
void ZeroGS::GSSoftReset(u32 mask)
void ZZGSSoftReset(u32 mask)
{
FUNCLOG
@ -326,7 +320,7 @@ void ZeroGS::GSSoftReset(u32 mask)
gs.nTriFanVert = -1;
}
void ZeroGS::AddMessage(const char* pstr, u32 ms)
void ZZAddMessage(const char* pstr, u32 ms)
{
FUNCLOG
listMsgs.push_back(MESSAGE(pstr, timeGetTime() + ms));
@ -334,7 +328,7 @@ void ZeroGS::AddMessage(const char* pstr, u32 ms)
}
extern RasterFont* font_p;
void ZeroGS::DrawText(const char* pstr, int left, int top, u32 color)
void DrawText(const char* pstr, int left, int top, u32 color)
{
FUNCLOG
ZZshGLDisableProfile();
@ -348,7 +342,7 @@ void ZeroGS::DrawText(const char* pstr, int left, int top, u32 color)
ZZshGLEnableProfile();
}
void ZeroGS::ChangeWindowSize(int nNewWidth, int nNewHeight)
void ChangeWindowSize(int nNewWidth, int nNewHeight)
{
FUNCLOG
nBackbufferWidth = max(nNewWidth, 16);
@ -361,7 +355,7 @@ void ZeroGS::ChangeWindowSize(int nNewWidth, int nNewHeight)
}
}
void ZeroGS::SetChangeDeviceSize(int nNewWidth, int nNewHeight)
void SetChangeDeviceSize(int nNewWidth, int nNewHeight)
{
FUNCLOG
s_nNewWidth = nNewWidth;
@ -374,18 +368,18 @@ void ZeroGS::SetChangeDeviceSize(int nNewWidth, int nNewHeight)
}
}
void ZeroGS::ChangeDeviceSize(int nNewWidth, int nNewHeight)
void ChangeDeviceSize(int nNewWidth, int nNewHeight)
{
FUNCLOG
//int oldscreen = s_nFullscreen;
int oldwidth = nBackbufferWidth, oldheight = nBackbufferHeight;
if (!Create(nNewWidth&~7, nNewHeight&~7))
if (!ZZCreate(nNewWidth&~7, nNewHeight&~7))
{
ZZLog::Error_Log("Failed to recreate, changing to old device.");
if (Create(oldwidth, oldheight))
if (ZZCreate(oldwidth, oldheight))
{
SysMessage("Failed to create device, exiting...");
exit(0);
@ -401,7 +395,7 @@ void ZeroGS::ChangeDeviceSize(int nNewWidth, int nNewHeight)
assert(vb[0].pBufferData != NULL && vb[1].pBufferData != NULL);
}
void ZeroGS::SetAA(int mode)
void SetAA(int mode)
{
FUNCLOG
float f = 1.0f;
@ -437,7 +431,7 @@ void ZeroGS::SetAA(int mode)
glPointSize(f);
}
void ZeroGS::Prim()
void Prim()
{
FUNCLOG
@ -449,7 +443,7 @@ void ZeroGS::Prim()
curvb.curprim.prim = prim->prim;
}
void ZeroGS::ProcessMessages()
void ProcessMessages()
{
FUNCLOG
@ -471,7 +465,7 @@ void ZeroGS::ProcessMessages()
}
}
void ZeroGS::RenderCustom(float fAlpha)
void RenderCustom(float fAlpha)
{
FUNCLOG
GL_REPORT_ERROR();
@ -591,7 +585,7 @@ static __forceinline void OUTPUT_VERT(VertexGPU vert, u32 id)
#endif
}
void ZeroGS::KickPoint()
void KickPoint()
{
FUNCLOG
assert(gs.primC >= 1);
@ -617,7 +611,7 @@ void ZeroGS::KickPoint()
OUTPUT_VERT(p[0], 0);
}
void ZeroGS::KickLine()
void KickLine()
{
FUNCLOG
assert(gs.primC >= 2);
@ -646,7 +640,7 @@ void ZeroGS::KickLine()
OUTPUT_VERT(p[1], 1);
}
void ZeroGS::KickTriangle()
void KickTriangle()
{
FUNCLOG
assert(gs.primC >= 3);
@ -674,7 +668,7 @@ void ZeroGS::KickTriangle()
OUTPUT_VERT(p[2], 2);
}
void ZeroGS::KickTriangleFan()
void KickTriangleFan()
{
FUNCLOG
assert(gs.primC >= 3);
@ -713,7 +707,7 @@ void SetKickVertex(VertexGPU *p, Vertex v, int next, const VB& curvb)
MOVFOG(p, v);
}
void ZeroGS::KickSprite()
void KickSprite()
{
FUNCLOG
assert(gs.primC >= 2);
@ -761,13 +755,13 @@ void ZeroGS::KickSprite()
OUTPUT_VERT(p[1], 1);
}
void ZeroGS::KickDummy()
void KickDummy()
{
FUNCLOG
//ZZLog::Greg_Log("Kicking bad primitive: %.8x\n", *(u32*)prim);
}
void ZeroGS::SetFogColor(u32 fog)
void SetFogColor(u32 fog)
{
FUNCLOG
@ -776,7 +770,7 @@ void ZeroGS::SetFogColor(u32 fog)
// {
gs.fogcol = fog;
ZeroGS::FlushBoth();
FlushBoth();
SetShaderCaller("SetFogColor");
float4 v;
@ -788,7 +782,7 @@ void ZeroGS::SetFogColor(u32 fog)
// }
}
void ZeroGS::SetFogColor(GIFRegFOGCOL* fog)
void SetFogColor(GIFRegFOGCOL* fog)
{
FUNCLOG
@ -801,7 +795,7 @@ void ZeroGS::SetFogColor(GIFRegFOGCOL* fog)
ZZshSetParameter4fv(g_fparamFogColor, v, "g_fParamFogColor");
}
void ZeroGS::ExtWrite()
void ExtWrite()
{
FUNCLOG
ZZLog::Warn_Log("A hollow voice says 'EXTWRITE'! Nothing happens.");
@ -1053,7 +1047,7 @@ Return:
// 101 - cbp1 is compared with cbp. if different, clut data is loaded.
// GSdx sets cbp0 & cbp1 when checking for clut changes. ZeroGS sets them in texClutWrite.
bool ZeroGS::CheckChangeInClut(u32 highdword, u32 psm)
bool CheckChangeInClut(u32 highdword, u32 psm)
{
FUNCLOG
int cld = ZZOglGet_cld_TexBits(highdword);
@ -1096,7 +1090,7 @@ bool ZeroGS::CheckChangeInClut(u32 highdword, u32 psm)
return IsDirty(highdword, psm, cld, cbp);
}
void ZeroGS::texClutWrite(int ctx)
void texClutWrite(int ctx)
{
FUNCLOG
s_bTexFlush = false;

View File

@ -96,9 +96,6 @@ extern u32 ptexLogo;
extern int nLogoWidth, nLogoHeight;
extern int nBackbufferWidth, nBackbufferHeight;
namespace ZeroGS
{
typedef void (*DrawFn)();
// managers render-to-texture targets
@ -419,7 +416,7 @@ extern vector<GLuint> g_vboBuffers; // VBOs for all drawing commands
extern GLuint vboRect;
extern int g_nCurVBOIndex;
void AddMessage(const char* pstr, u32 ms = 5000);
void ZZAddMessage(const char* pstr, u32 ms = 5000);
void DrawText(const char* pstr, int left, int top, u32 color);
void ChangeWindowSize(int nNewWidth, int nNewHeight);
void SetChangeDeviceSize(int nNewWidth, int nNewHeight);
@ -432,13 +429,13 @@ void ReloadEffects();
// Methods //
bool IsGLExt(const char* szTargetExtension); ///< returns true if the the opengl extension is supported
inline bool Create_Window(int _width, int _height);
bool Create(int width, int height);
void Destroy(bool bD3D);
bool ZZCreate(int width, int height);
void ZZDestroy(bool bD3D);
void Reset(); // call to destroy video resources
void GSStateReset();
void GSReset();
void GSSoftReset(u32 mask);
void ZZReset(); // call to destroy video resources
void ZZGSStateReset();
void ZZGSReset();
void ZZGSSoftReset(u32 mask);
void HandleGLError();
@ -482,8 +479,8 @@ bool CheckChangeInClut(u32 highdword, u32 psm); // returns true if clut will cha
// call to load CLUT data (depending on CLD)
void texClutWrite(int ctx);
int Save(s8* pbydata);
bool Load(s8* pbydata);
int ZZSave(s8* pbydata);
bool ZZLoad(s8* pbydata);
void SaveSnapshot(const char* filename);
bool SaveRenderTarget(const char* filename, int width, int height, int jpeg);
@ -522,7 +519,7 @@ inline void CluttingForFlushedTex(tex0Info* tex0, u32 Data, int ictx)
tex0->csa = ZZOglGet_csa_TexBits(Data);
tex0->cld = ZZOglGet_cld_TexBits(Data);
ZeroGS::texClutWrite(ictx);
texClutWrite(ictx);
};
// The size in bytes of x strings (of texture).
@ -542,6 +539,4 @@ inline u8* _MemoryAddress(int x)
{
return g_pbyGSMemory + mult * x;
}
};
#endif