mirror of https://github.com/PCSX2/pcsx2.git
zzogl-pg: Hack and slash at zerogs.h.
git-svn-id: http://pcsx2.googlecode.com/svn/trunk@3379 96395faa-99c1-11dd-bbfe-3dabce05a288
This commit is contained in:
parent
d7748ffcd0
commit
84c5073b7c
|
@ -21,6 +21,9 @@
|
||||||
|
|
||||||
#ifdef GL_WIN32_WINDOW
|
#ifdef GL_WIN32_WINDOW
|
||||||
|
|
||||||
|
HDC hDC = NULL; // Private GDI Device Context
|
||||||
|
HGLRC hRC = NULL; // Permanent Rendering Context
|
||||||
|
|
||||||
LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
LRESULT WINAPI MsgProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
static int nWindowWidth = 0, nWindowHeight = 0;
|
static int nWindowWidth = 0, nWindowHeight = 0;
|
||||||
|
|
|
@ -146,6 +146,7 @@
|
||||||
<Unit filename="../../ZZoglShaders.cpp" />
|
<Unit filename="../../ZZoglShaders.cpp" />
|
||||||
<Unit filename="../../ZZoglShoots.cpp" />
|
<Unit filename="../../ZZoglShoots.cpp" />
|
||||||
<Unit filename="../../ZZoglVB.cpp" />
|
<Unit filename="../../ZZoglVB.cpp" />
|
||||||
|
<Unit filename="../../ZeroGSShaders/zerogsshaders.h" />
|
||||||
<Unit filename="../../common.h" />
|
<Unit filename="../../common.h" />
|
||||||
<Unit filename="../../glprocs.c">
|
<Unit filename="../../glprocs.c">
|
||||||
<Option compilerVar="CC" />
|
<Option compilerVar="CC" />
|
||||||
|
|
|
@ -215,8 +215,6 @@ void __fastcall GIFPackedRegHandlerNOP(u32* data)
|
||||||
FUNCLOG
|
FUNCLOG
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int g_PrevBitwiseTexX, g_PrevBitwiseTexY;
|
|
||||||
|
|
||||||
void tex0Write(int i, u32 *data)
|
void tex0Write(int i, u32 *data)
|
||||||
{
|
{
|
||||||
FUNCLOG
|
FUNCLOG
|
||||||
|
|
|
@ -31,7 +31,9 @@ inline void* wglGetProcAddress(const char* x)
|
||||||
#include <Cg/cgGL.h>
|
#include <Cg/cgGL.h>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include "zerogsmath.h"
|
#include "zerogsmath.h"
|
||||||
|
#include "ZeroGSShaders/zerogsshaders.h"
|
||||||
|
|
||||||
|
extern u32 s_stencilfunc, s_stencilref, s_stencilmask;
|
||||||
// Defines
|
// Defines
|
||||||
|
|
||||||
#ifndef GL_DEPTH24_STENCIL8_EXT // allows FBOs to support stencils
|
#ifndef GL_DEPTH24_STENCIL8_EXT // allows FBOs to support stencils
|
||||||
|
@ -59,9 +61,20 @@ inline void* wglGetProcAddress(const char* x)
|
||||||
glVertexPointer(4, GL_SHORT, sizeof(VertexGPU), (void*)0); \
|
glVertexPointer(4, GL_SHORT, sizeof(VertexGPU), (void*)0); \
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// global alpha blending settings
|
||||||
|
extern GLenum g_internalFloatFmt;
|
||||||
|
extern GLenum g_internalRGBAFloatFmt;
|
||||||
|
extern GLenum g_internalRGBAFloat16Fmt;
|
||||||
|
|
||||||
|
extern CGprogram g_vsprog, g_psprog;
|
||||||
|
extern CGparameter g_vparamPosXY[2], g_fparamFogColor;
|
||||||
|
|
||||||
extern const char* ShaderCallerName;
|
extern const char* ShaderCallerName;
|
||||||
extern const char* ShaderHandleName;
|
extern const char* ShaderHandleName;
|
||||||
|
|
||||||
|
extern const GLenum primtype[8];
|
||||||
|
|
||||||
inline void SetShaderCaller(const char* Name)
|
inline void SetShaderCaller(const char* Name)
|
||||||
{
|
{
|
||||||
ShaderCallerName = Name;
|
ShaderCallerName = Name;
|
||||||
|
@ -202,6 +215,11 @@ struct FRAGMENTSHADER
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/////////////////////
|
||||||
|
// graphics resources
|
||||||
|
extern map<string, GLbyte> mapGLExtensions;
|
||||||
|
//extern map<int, SHADERHEADER*> mapShaderResources;
|
||||||
|
|
||||||
struct VERTEXSHADER
|
struct VERTEXSHADER
|
||||||
{
|
{
|
||||||
VERTEXSHADER() : prog(0), sBitBltPos(0), sBitBltTex(0) {}
|
VERTEXSHADER() : prog(0), sBitBltPos(0), sBitBltTex(0) {}
|
||||||
|
@ -210,6 +228,12 @@ struct VERTEXSHADER
|
||||||
CGparameter sBitBltPos, sBitBltTex, fBitBltTrans; // vertex shader constants
|
CGparameter sBitBltPos, sBitBltTex, fBitBltTrans; // vertex shader constants
|
||||||
};
|
};
|
||||||
|
|
||||||
|
extern CGprofile cgvProf, cgfProf;
|
||||||
|
extern CGprogram pvs[16];
|
||||||
|
extern FRAGMENTSHADER ppsRegular[4], ppsTexture[NUM_SHADERS];
|
||||||
|
extern FRAGMENTSHADER ppsCRTC[2], ppsCRTC24[2], ppsCRTCTarg[2];
|
||||||
|
extern GLenum s_srcrgb, s_dstrgb, s_srcalpha, s_dstalpha; // set by zgsBlendFuncSeparateEXT
|
||||||
|
|
||||||
// GL prototypes
|
// GL prototypes
|
||||||
extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
|
extern PFNGLISRENDERBUFFEREXTPROC glIsRenderbufferEXT;
|
||||||
extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
|
extern PFNGLBINDRENDERBUFFEREXTPROC glBindRenderbufferEXT;
|
||||||
|
|
|
@ -34,12 +34,18 @@ bool g_bSaveFrame = 0; // saves the current psurfTarget
|
||||||
bool g_bSaveFinalFrame = 0; // saves the input to the CRTC
|
bool g_bSaveFinalFrame = 0; // saves the input to the CRTC
|
||||||
#endif // !defined(ZEROGS_DEVBUILD)
|
#endif // !defined(ZEROGS_DEVBUILD)
|
||||||
|
|
||||||
|
extern int maxmin;
|
||||||
bool g_bCRTCBilinear = true, g_bDisplayFPS = false;
|
extern bool g_bCRTCBilinear;
|
||||||
|
bool g_bDisplayFPS = false;
|
||||||
int g_nFrameRender = 10, g_nFramesSkipped = 0, s_nResolved = 0; // s_nResolved == number of targets resolved this frame
|
int g_nFrameRender = 10, g_nFramesSkipped = 0, s_nResolved = 0; // s_nResolved == number of targets resolved this frame
|
||||||
// Helper for skip frames.
|
// Helper for skip frames.
|
||||||
int TimeLastSkip = 0;
|
int TimeLastSkip = 0;
|
||||||
|
|
||||||
|
vector<u32> s_vecTempTextures; // temporary textures, released at the end of every frame
|
||||||
|
|
||||||
|
// Snapshot variables.
|
||||||
extern bool g_bMakeSnapshot;
|
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.
|
// Adjusts vertex shader BitBltPos vector v to preserve aspect ratio. It used to emulate 4:3 or 16:9.
|
||||||
void ZeroGS::AdjustTransToAspect(Vector& v)
|
void ZeroGS::AdjustTransToAspect(Vector& v)
|
||||||
|
@ -656,6 +662,9 @@ inline void AfterRenderSwapBuffers()
|
||||||
// SnapeShoot helper
|
// SnapeShoot helper
|
||||||
inline void AfterRenderMadeSnapshoot()
|
inline void AfterRenderMadeSnapshoot()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (!g_bMakeSnapshot) return;
|
||||||
|
|
||||||
char str[64];
|
char str[64];
|
||||||
int left = 200, top = 15;
|
int left = 200, top = 15;
|
||||||
sprintf(str, "ZeroGS %d.%d.%d - %.1f fps %s", zgsrevision, zgsbuild, zgsminor, fFPS, s_frameskipping ? " - frameskipping" : "");
|
sprintf(str, "ZeroGS %d.%d.%d - %.1f fps %s", zgsrevision, zgsbuild, zgsminor, fFPS, s_frameskipping ? " - frameskipping" : "");
|
||||||
|
@ -669,6 +678,8 @@ inline void AfterRenderMadeSnapshoot()
|
||||||
sprintf(str, "saved %s\n", strSnapshot.c_str());
|
sprintf(str, "saved %s\n", strSnapshot.c_str());
|
||||||
AddMessage(str, 500);
|
AddMessage(str, 500);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
g_bMakeSnapshot = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If needed reset
|
// If needed reset
|
||||||
|
@ -728,7 +739,6 @@ inline void AfterRendererUnimportantJob()
|
||||||
g_bMakeSnapshot = false;
|
g_bMakeSnapshot = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (s_avicapturing)
|
|
||||||
CaptureFrame();
|
CaptureFrame();
|
||||||
|
|
||||||
AfterRenderCountStatistics();
|
AfterRenderCountStatistics();
|
||||||
|
|
|
@ -35,11 +35,10 @@ extern int s_nResolveCounts[30]; // resolve counts for last 30 frames
|
||||||
static int s_nCurResolveIndex = 0;
|
static int s_nCurResolveIndex = 0;
|
||||||
extern int g_nDepthUsed; // ffx2 pal movies
|
extern int g_nDepthUsed; // ffx2 pal movies
|
||||||
|
|
||||||
extern vector<u32> s_vecTempTextures; // temporary textures, released at the end of every frame
|
|
||||||
|
|
||||||
|
|
||||||
//------------------ Namespace
|
//------------------ Namespace
|
||||||
|
|
||||||
|
extern u32 s_ptexInterlace; // holds interlace fields
|
||||||
|
|
||||||
namespace ZeroGS
|
namespace ZeroGS
|
||||||
{
|
{
|
||||||
extern int s_nNewWidth, s_nNewHeight;
|
extern int s_nNewWidth, s_nNewHeight;
|
||||||
|
|
|
@ -140,7 +140,7 @@ void (APIENTRY *zgsBlendFuncSeparateEXT)(GLenum, GLenum, GLenum, GLenum) = NULL;
|
||||||
// State parameters
|
// State parameters
|
||||||
float fiRendWidth, fiRendHeight;
|
float fiRendWidth, fiRendHeight;
|
||||||
|
|
||||||
u8* s_lpShaderResources = NULL;
|
extern u8* s_lpShaderResources;
|
||||||
CGprogram pvs[16] = {NULL};
|
CGprogram pvs[16] = {NULL};
|
||||||
|
|
||||||
// String's for shader file in developer mode
|
// String's for shader file in developer mode
|
||||||
|
@ -173,7 +173,7 @@ int g_nPixelShaderVer = 0; // default
|
||||||
|
|
||||||
RasterFont* font_p = NULL;
|
RasterFont* font_p = NULL;
|
||||||
float g_fBlockMult = 1;
|
float g_fBlockMult = 1;
|
||||||
int s_nFullscreen = 0;
|
//int s_nFullscreen = 0;
|
||||||
|
|
||||||
u32 ptexBlocks = 0, ptexConv16to32 = 0; // holds information on block tiling
|
u32 ptexBlocks = 0, ptexConv16to32 = 0; // holds information on block tiling
|
||||||
u32 ptexBilinearBlocks = 0;
|
u32 ptexBilinearBlocks = 0;
|
||||||
|
@ -199,7 +199,7 @@ ZeroGS::Create_Window(int _width, int _height)
|
||||||
|
|
||||||
if (!GLWin.DisplayWindow(_width, _height)) return false;
|
if (!GLWin.DisplayWindow(_width, _height)) return false;
|
||||||
|
|
||||||
s_nFullscreen = (conf.fullscreen()) ? 1 : 0;
|
//s_nFullscreen = (conf.fullscreen()) ? 1 : 0;
|
||||||
|
|
||||||
conf.mrtdepth = 0; // for now
|
conf.mrtdepth = 0; // for now
|
||||||
|
|
||||||
|
@ -899,13 +899,7 @@ bool ZeroGS::Create(int _width, int _height)
|
||||||
|
|
||||||
void ZeroGS::Destroy(bool bD3D)
|
void ZeroGS::Destroy(bool bD3D)
|
||||||
{
|
{
|
||||||
if (s_aviinit)
|
Delete_Avi_Capture();
|
||||||
{
|
|
||||||
StopCapture();
|
|
||||||
Stop_Avi();
|
|
||||||
ZZLog::Error_Log("zerogs.avi stopped.");
|
|
||||||
s_aviinit = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
g_MemTargs.Destroy();
|
g_MemTargs.Destroy();
|
||||||
|
|
||||||
|
|
|
@ -118,6 +118,8 @@ void Draw(const VB& curvb)
|
||||||
//------------------ variables
|
//------------------ variables
|
||||||
|
|
||||||
extern bool g_bIsLost;
|
extern bool g_bIsLost;
|
||||||
|
extern int g_nDepthBias;
|
||||||
|
extern float g_fBlockMult;
|
||||||
bool g_bUpdateStencil = 1;
|
bool g_bUpdateStencil = 1;
|
||||||
u32 g_SaveFrameNum = 0; // ZZ
|
u32 g_SaveFrameNum = 0; // ZZ
|
||||||
|
|
||||||
|
@ -144,8 +146,8 @@ static const u32 g_dwZCmp[] = { GL_NEVER, GL_ALWAYS, GL_GEQUAL, GL_GREATER };
|
||||||
u32 s_ptexCurSet[2] = {0};
|
u32 s_ptexCurSet[2] = {0};
|
||||||
static u32 s_ptexNextSet[2] = {0}; // ZZ
|
static u32 s_ptexNextSet[2] = {0}; // ZZ
|
||||||
|
|
||||||
vector<u32> s_vecTempTextures; // temporary textures, released at the end of every frame
|
|
||||||
|
|
||||||
|
extern vector<u32> s_vecTempTextures; // temporary textures, released at the end of every frame
|
||||||
extern bool s_bTexFlush;
|
extern bool s_bTexFlush;
|
||||||
bool s_bWriteDepth = false;
|
bool s_bWriteDepth = false;
|
||||||
bool s_bDestAlphaTest = false;
|
bool s_bDestAlphaTest = false;
|
||||||
|
@ -188,6 +190,8 @@ static alphaInfo s_alphaInfo; // ZZ
|
||||||
extern u8* g_pbyGSClut;
|
extern u8* g_pbyGSClut;
|
||||||
extern int ppf;
|
extern int ppf;
|
||||||
|
|
||||||
|
int s_nWireframeCount = 0;
|
||||||
|
|
||||||
//------------------ Namespace
|
//------------------ Namespace
|
||||||
|
|
||||||
namespace ZeroGS
|
namespace ZeroGS
|
||||||
|
|
|
@ -41,6 +41,13 @@ FRAGMENTSHADER ppsBaseTexture, ppsConvert16to32, ppsConvert32to16;
|
||||||
const char* ShaderCallerName = "";
|
const char* ShaderCallerName = "";
|
||||||
const char* ShaderHandleName = "";
|
const char* ShaderHandleName = "";
|
||||||
|
|
||||||
|
extern u32 ptexBlocks; // holds information on block tiling
|
||||||
|
extern u32 ptexConv16to32;
|
||||||
|
extern u32 ptexConv32to16;
|
||||||
|
bool g_bCRTCBilinear = true;
|
||||||
|
u8* s_lpShaderResources = NULL;
|
||||||
|
map<int, SHADERHEADER*> mapShaderResources;
|
||||||
|
|
||||||
//------------------ Code
|
//------------------ Code
|
||||||
|
|
||||||
// Error handler. Setup in ZZogl_Create once.
|
// Error handler. Setup in ZZogl_Create once.
|
||||||
|
|
|
@ -31,8 +31,10 @@
|
||||||
#include "targets.h"
|
#include "targets.h"
|
||||||
#include "Mem.h"
|
#include "Mem.h"
|
||||||
|
|
||||||
|
// AVI Capture
|
||||||
|
int s_avicapturing = 0;
|
||||||
bool g_bMakeSnapshot = false;
|
bool g_bMakeSnapshot = false;
|
||||||
|
|
||||||
extern "C"
|
extern "C"
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
|
@ -58,6 +60,8 @@ extern "C"
|
||||||
int TexNumber = 0;
|
int TexNumber = 0;
|
||||||
int s_aviinit = 0;
|
int s_aviinit = 0;
|
||||||
|
|
||||||
|
string strSnapshot;
|
||||||
|
|
||||||
//------------------ Code
|
//------------------ Code
|
||||||
|
|
||||||
// Set variables need to made a snapshoot when it's possible
|
// Set variables need to made a snapshoot when it's possible
|
||||||
|
@ -345,7 +349,7 @@ void ZeroGS::StopCapture()
|
||||||
// And capture frame does not work on linux.
|
// And capture frame does not work on linux.
|
||||||
void ZeroGS::CaptureFrame()
|
void ZeroGS::CaptureFrame()
|
||||||
{
|
{
|
||||||
assert(s_avicapturing && s_aviinit);
|
if ((!s_avicapturing) || (!s_aviinit)) return;
|
||||||
|
|
||||||
vector<u32> data(nBackbufferWidth*nBackbufferHeight);
|
vector<u32> data(nBackbufferWidth*nBackbufferHeight);
|
||||||
glReadPixels(0, 0, nBackbufferWidth, nBackbufferHeight, GL_RGBA, GL_UNSIGNED_BYTE, &data[0]);
|
glReadPixels(0, 0, nBackbufferWidth, nBackbufferHeight, GL_RGBA, GL_UNSIGNED_BYTE, &data[0]);
|
||||||
|
@ -635,3 +639,14 @@ void ZeroGS::Stop_Avi()
|
||||||
// Does not support yet
|
// Does not support yet
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void ZeroGS::Delete_Avi_Capture()
|
||||||
|
{
|
||||||
|
if (s_aviinit)
|
||||||
|
{
|
||||||
|
StopCapture();
|
||||||
|
Stop_Avi();
|
||||||
|
ZZLog::Error_Log("zerogs.avi stopped.");
|
||||||
|
s_aviinit = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -5,6 +5,11 @@
|
||||||
#include <Cg/cgGL.h>
|
#include <Cg/cgGL.h>
|
||||||
#include "PS2Edefs.h"
|
#include "PS2Edefs.h"
|
||||||
|
|
||||||
|
#include <cstdio>
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
#define NUM_FILTERS 2 // texture filtering
|
#define NUM_FILTERS 2 // texture filtering
|
||||||
#define NUM_TYPES 5 // types of texture read modes
|
#define NUM_TYPES 5 // types of texture read modes
|
||||||
#define NUM_TEXWRAPS 4 // texture wrapping
|
#define NUM_TEXWRAPS 4 // texture wrapping
|
||||||
|
|
|
@ -34,7 +34,6 @@ using namespace ZeroGS;
|
||||||
extern int g_TransferredToGPU;
|
extern int g_TransferredToGPU;
|
||||||
extern bool g_bIsLost;
|
extern bool g_bIsLost;
|
||||||
extern bool g_bUpdateStencil;
|
extern bool g_bUpdateStencil;
|
||||||
extern u32 s_uFramebuffer;
|
|
||||||
|
|
||||||
#if !defined(ZEROGS_DEVBUILD)
|
#if !defined(ZEROGS_DEVBUILD)
|
||||||
# define INC_RESOLVE()
|
# define INC_RESOLVE()
|
||||||
|
@ -58,8 +57,6 @@ CMemoryTargetMngr g_MemTargs;
|
||||||
}
|
}
|
||||||
|
|
||||||
extern u32 s_ptexCurSet[2];
|
extern u32 s_ptexCurSet[2];
|
||||||
extern u32 ptexBilinearBlocks;
|
|
||||||
extern u32 ptexConv32to16;
|
|
||||||
bool g_bSaveZUpdate = 0;
|
bool g_bSaveZUpdate = 0;
|
||||||
|
|
||||||
int VALIDATE_THRESH = 8;
|
int VALIDATE_THRESH = 8;
|
||||||
|
@ -959,8 +956,6 @@ void ZeroGS::CDepthTarget::Resolve(int startrange, int endrange)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extern int g_nDepthUpdateCount;
|
|
||||||
|
|
||||||
void ZeroGS::CDepthTarget::Update(int context, ZeroGS::CRenderTarget* prndr)
|
void ZeroGS::CDepthTarget::Update(int context, ZeroGS::CRenderTarget* prndr)
|
||||||
{
|
{
|
||||||
FUNCLOG
|
FUNCLOG
|
||||||
|
|
|
@ -44,21 +44,15 @@ extern u32 g_nGenVars, g_nTexVars, g_nAlphaVars, g_nResolve;
|
||||||
extern char *libraryName;
|
extern char *libraryName;
|
||||||
extern int g_nFrame, g_nRealFrame;
|
extern int g_nFrame, g_nRealFrame;
|
||||||
|
|
||||||
|
//extern int s_nFullscreen;
|
||||||
//-------------------------- Variables
|
//-------------------------- Variables
|
||||||
|
|
||||||
#ifdef _WIN32
|
// Context is lost -- could not draw.
|
||||||
HDC hDC = NULL; // Private GDI Device Context
|
// Setting this variable to true is also lost. Fixme.
|
||||||
HGLRC hRC = NULL; // Permanent Rendering Context
|
|
||||||
#endif
|
|
||||||
|
|
||||||
// This is always false? Fixme.
|
|
||||||
bool g_bIsLost = false;
|
bool g_bIsLost = false;
|
||||||
|
|
||||||
string strSnapshot;
|
|
||||||
primInfo *prim;
|
primInfo *prim;
|
||||||
CGprogram g_vsprog = 0, g_psprog = 0; // 2 -- ZZ
|
CGprogram g_vsprog = 0, g_psprog = 0; // 2 -- ZZ
|
||||||
// AVI Capture
|
|
||||||
int s_avicapturing = 0;
|
|
||||||
|
|
||||||
inline u32 FtoDW(float f) { return (*((u32*)&f)); }
|
inline u32 FtoDW(float f) { return (*((u32*)&f)); }
|
||||||
|
|
||||||
|
@ -91,11 +85,8 @@ PFNGLDRAWBUFFERSPROC glDrawBuffers = NULL;
|
||||||
// graphics resources
|
// graphics resources
|
||||||
CGparameter g_vparamPosXY[2] = {0}, g_fparamFogColor = 0;
|
CGparameter g_vparamPosXY[2] = {0}, g_fparamFogColor = 0;
|
||||||
|
|
||||||
map<int, SHADERHEADER*> mapShaderResources;
|
|
||||||
|
|
||||||
bool s_bTexFlush = false;
|
bool s_bTexFlush = false;
|
||||||
int s_nLastResolveReset = 0;
|
int s_nLastResolveReset = 0;
|
||||||
int s_nWireframeCount = 0;
|
|
||||||
int s_nResolveCounts[30] = {0}; // resolve counts for last 30 frames
|
int s_nResolveCounts[30] = {0}; // resolve counts for last 30 frames
|
||||||
|
|
||||||
////////////////////
|
////////////////////
|
||||||
|
@ -354,6 +345,7 @@ void ZeroGS::AddMessage(const char* pstr, u32 ms)
|
||||||
ZZLog::Log("%s\n", pstr);
|
ZZLog::Log("%s\n", pstr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extern RasterFont* font_p;
|
||||||
void ZeroGS::DrawText(const char* pstr, int left, int top, u32 color)
|
void ZeroGS::DrawText(const char* pstr, int left, int top, u32 color)
|
||||||
{
|
{
|
||||||
FUNCLOG
|
FUNCLOG
|
||||||
|
@ -1132,7 +1124,7 @@ bool ZeroGS::CheckChangeInClut(u32 highdword, u32 psm)
|
||||||
void ZeroGS::texClutWrite(int ctx)
|
void ZeroGS::texClutWrite(int ctx)
|
||||||
{
|
{
|
||||||
FUNCLOG
|
FUNCLOG
|
||||||
s_bTexFlush = 0;
|
s_bTexFlush = false;
|
||||||
|
|
||||||
if (g_bIsLost) return;
|
if (g_bIsLost) return;
|
||||||
|
|
||||||
|
|
|
@ -85,92 +85,34 @@ extern float g_fiGPU_TEXWIDTH;
|
||||||
#define MASKDIVISOR 0
|
#define MASKDIVISOR 0
|
||||||
#define GPU_TEXMASKWIDTH (1024 >> MASKDIVISOR) // bitwise mask width for region repeat mode
|
#define GPU_TEXMASKWIDTH (1024 >> MASKDIVISOR) // bitwise mask width for region repeat mode
|
||||||
|
|
||||||
#ifdef _WIN32
|
|
||||||
extern HDC hDC; // Private GDI Device Context
|
|
||||||
extern HGLRC hRC; // Permanent Rendering Context
|
|
||||||
#endif
|
|
||||||
|
|
||||||
extern bool g_bIsLost; // Context is lost -- could not draw
|
|
||||||
|
|
||||||
extern u32 ptexBlocks; // holds information on block tiling
|
|
||||||
extern u32 ptexConv16to32;
|
|
||||||
extern u32 ptexBilinearBlocks;
|
extern u32 ptexBilinearBlocks;
|
||||||
extern u32 ptexConv32to16;
|
|
||||||
extern int g_MaxTexWidth, g_MaxTexHeight;
|
|
||||||
extern float g_fBlockMult;
|
|
||||||
extern bool g_bDisplayMsg;
|
|
||||||
extern bool g_bDisplayFPS;
|
|
||||||
|
|
||||||
extern int g_nDepthBias;
|
// this is currently *not* used as a bool, in spite of its moniker --air
|
||||||
extern u32 g_bSaveFlushedFrame; // this is currently *not* used as a bool, in spite of its moniker --air
|
// Actually, the only thing written to it is 1 or 0, which makes the (g_bSaveFlushedFrame & 0x80000000) check rather bizzare.
|
||||||
extern u8* s_lpShaderResources;
|
extern u32 g_bSaveFlushedFrame;
|
||||||
extern u32 g_SaveFrameNum;
|
|
||||||
extern int s_nWriteDepthCount;
|
|
||||||
extern int s_nWireframeCount;
|
|
||||||
extern int s_nWriteDestAlphaTest;
|
|
||||||
|
|
||||||
//////////////////////////
|
//////////////////////////
|
||||||
// State parameters
|
// State parameters
|
||||||
extern float fiRendWidth, fiRendHeight;
|
|
||||||
extern int g_PrevBitwiseTexX, g_PrevBitwiseTexY; // textures stored in SAMP_BITWISEANDX and SAMP_BITWISEANDY
|
|
||||||
extern bool s_bDestAlphaTest;
|
|
||||||
extern int s_ClutResolve;
|
|
||||||
extern int s_nLastResolveReset;
|
|
||||||
extern int g_nDepthUpdateCount;
|
|
||||||
extern int s_nResolveCounts[30]; // resolve counts for last 30 frames
|
|
||||||
extern int g_nDepthUsed; // ffx2 pal movies
|
|
||||||
|
|
||||||
/////////////////////
|
|
||||||
// graphics resources
|
|
||||||
extern map<string, GLbyte> mapGLExtensions;
|
|
||||||
extern map<int, SHADERHEADER*> mapShaderResources;
|
|
||||||
|
|
||||||
#ifdef DEVBUILD
|
#ifdef DEVBUILD
|
||||||
extern char* EFFECT_NAME;
|
extern char* EFFECT_NAME;
|
||||||
extern char* EFFECT_DIR;
|
extern char* EFFECT_DIR;
|
||||||
extern u32 g_nGenVars, g_nTexVars, g_nAlphaVars, g_nResolve;
|
extern u32 g_nGenVars, g_nTexVars, g_nAlphaVars, g_nResolve;
|
||||||
extern bool g_bSaveTrans, g_bUpdateEffect, g_bSaveTex, g_bSaveResolved;
|
extern bool g_bSaveTrans, g_bUpdateEffect, g_bSaveTex, g_bSaveResolved;
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern RasterFont* font_p;
|
|
||||||
extern u32 s_uFramebuffer;
|
extern u32 s_uFramebuffer;
|
||||||
extern CGprofile cgvProf, cgfProf;
|
|
||||||
extern int g_nPixelShaderVer;
|
extern int g_nPixelShaderVer;
|
||||||
extern CGprogram pvs[16];
|
|
||||||
extern FRAGMENTSHADER ppsRegular[4], ppsTexture[NUM_SHADERS];
|
|
||||||
extern FRAGMENTSHADER ppsCRTC[2], ppsCRTC24[2], ppsCRTCTarg[2];
|
|
||||||
extern GLenum s_srcrgb, s_dstrgb, s_srcalpha, s_dstalpha; // set by zgsBlendFuncSeparateEXT
|
|
||||||
extern u32 s_stencilfunc, s_stencilref, s_stencilmask;
|
|
||||||
extern GLenum s_drawbuffers[];
|
|
||||||
extern bool s_bTexFlush;
|
|
||||||
extern bool s_bWriteDepth;
|
extern bool s_bWriteDepth;
|
||||||
|
|
||||||
extern int maxmin;
|
|
||||||
extern const GLenum primtype[8];
|
|
||||||
extern u32 ptexLogo;
|
extern u32 ptexLogo;
|
||||||
extern int nLogoWidth, nLogoHeight;
|
extern int nLogoWidth, nLogoHeight;
|
||||||
extern u32 s_ptexInterlace; // holds interlace fields
|
|
||||||
extern int s_nFullscreen;
|
|
||||||
|
|
||||||
extern vector<u32> s_vecTempTextures; // temporary textures, released at the end of every frame
|
|
||||||
// global alpha blending settings
|
|
||||||
extern GLenum g_internalFloatFmt;
|
|
||||||
extern GLenum g_internalRGBAFloatFmt;
|
|
||||||
extern GLenum g_internalRGBAFloat16Fmt;
|
|
||||||
|
|
||||||
extern CGprogram g_vsprog, g_psprog;
|
|
||||||
extern string strSnapshot;
|
|
||||||
extern bool g_bCRTCBilinear;
|
|
||||||
|
|
||||||
// AVI Capture
|
|
||||||
extern int s_aviinit;
|
|
||||||
extern int s_avicapturing;
|
|
||||||
|
|
||||||
extern int nBackbufferWidth, nBackbufferHeight;
|
extern int nBackbufferWidth, nBackbufferHeight;
|
||||||
|
|
||||||
extern u8* g_pbyGSMemory;
|
extern u8* g_pbyGSMemory;
|
||||||
extern u8* g_pbyGSClut; // the temporary clut buffer
|
extern u8* g_pbyGSClut; // the temporary clut buffer
|
||||||
extern CGparameter g_vparamPosXY[2], g_fparamFogColor;
|
|
||||||
|
|
||||||
namespace ZeroGS
|
namespace ZeroGS
|
||||||
{
|
{
|
||||||
|
@ -584,6 +526,7 @@ bool SaveTexture(const char* filename, u32 textarget, u32 tex, int width, int he
|
||||||
bool SaveJPEG(const char* filename, int width, int height, const void* pdata, int quality);
|
bool SaveJPEG(const char* filename, int width, int height, const void* pdata, int quality);
|
||||||
bool SaveTGA(const char* filename, int width, int height, void* pdata);
|
bool SaveTGA(const char* filename, int width, int height, void* pdata);
|
||||||
void Stop_Avi();
|
void Stop_Avi();
|
||||||
|
void Delete_Avi_Capture();
|
||||||
|
|
||||||
// private methods
|
// private methods
|
||||||
void FlushSysMem(const RECT* prc);
|
void FlushSysMem(const RECT* prc);
|
||||||
|
|
Loading…
Reference in New Issue