/[pcsx2_0.9.7]/trunk/plugins/zzogl-pg/opengl/ZZLog.h
ViewVC logotype

Diff of /trunk/plugins/zzogl-pg/opengl/ZZLog.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

--- trunk/plugins/zzogl-pg/opengl/ZZLog.h	2010/12/23 11:48:33	279
+++ trunk/plugins/zzogl-pg/opengl/ZZLog.h	2010/12/23 12:02:12	280
@@ -1,193 +1,201 @@
-/*  ZZ Open GL graphics plugin
- *  Copyright (c)2009-2010 zeydlitz@gmail.com, arcum42@gmail.com
- *  Based on Zerofrog's ZeroGS KOSMOS (c)2005-2008
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU General Public License as published by
- *  the Free Software Foundation; either version 2 of the License, or
- *  (at your option) any later version.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU General Public License for more details.
- *
- *  You should have received a copy of the GNU General Public License
- *  along with this program; if not, write to the Free Software
- *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
- */
- 
-#ifndef ZZLOG_H_INCLUDED
-#define ZZLOG_H_INCLUDED
-
-#include "Util.h"
-
-
-//Logging for errors that are called often should have a time counter.
-#ifdef __LINUX__
-static u32 __attribute__((unused)) lasttime = 0;
-static u32 __attribute__((unused)) BigTime = 5000;
-static bool __attribute__((unused)) SPAM_PASS;
-#else
-static u32 lasttime = 0;
-static u32 BigTime = 5000;
-static bool SPAM_PASS;
-#endif
-
-#define ERROR_LOG_SPAM(text) { \
-	if( timeGetTime() - lasttime > BigTime ) { \
-		ZZLog::Error_Log(text); \
-		lasttime = timeGetTime(); \
-	} \
-}
-// The same macro with one-argument substitution.
-#define ERROR_LOG_SPAMA(fmt, value) { \
-	if( timeGetTime() - lasttime > BigTime ) { \
-		ZZLog::Error_Log(fmt, value); \
-		lasttime = timeGetTime(); \
-	} \
-}
-
-#define ERROR_LOG_SPAM_TEST(text) {\
-	if( timeGetTime() - lasttime > BigTime ) { \
-		ZZLog::Error_Log(text); \
-		lasttime = timeGetTime(); \
-		SPAM_PASS = true; \
-	} \
-	else \
-		SPAM_PASS = false; \
-}
-
-#if DEBUG_PROF
-#define FILE_IS_IN_CHECK ((strcmp(__FILE__, "targets.cpp") == 0) || (strcmp(__FILE__, "ZZoglFlush.cpp") == 0))
-
-#define FUNCLOG {\
-	static bool Was_Here = false; \
-	static unsigned long int waslasttime = 0; \
-	if (!Was_Here && FILE_IS_IN_CHECK) { \
-		Was_Here = true;\
-		ZZLog::Error_Log("%s:%d %s", __FILE__, __LINE__, __func__); \
-		waslasttime = timeGetTime(); \
-	} \
-	if (FILE_IS_IN_CHECK && (timeGetTime() - waslasttime > BigTime ))  { \
-		Was_Here = false; \
-	} \
-}
-#else
-#define FUNCLOG
-#endif
-
-//#define WRITE_GREG_LOGS
-//#define WRITE_PRIM_LOGS
-#if defined(_DEBUG) && !defined(ZEROGS_DEVBUILD)
-#define ZEROGS_DEVBUILD
-#endif
-
-
-// sends a message to output window if assert fails
-#define BMSG(x, str)			{ if( !(x) ) { ZZLog::Log(str); ZZLog::Log(str); } }
-#define BMSG_RETURN(x, str)	{ if( !(x) ) { ZZLog::Log(str); ZZLog::Log(str); return; } }
-#define BMSG_RETURNX(x, str, rtype)	{ if( !(x) ) { ZZLog::Log(str); ZZLog::Log(str); return (##rtype); } }
-#define B(x)				{ if( !(x) ) { ZZLog::Log(_#x"\n"); ZZLog::Log(#x"\n"); } }
-#define B_RETURN(x)			{ if( !(x) ) { ZZLog::Error_Log("%s:%d: %s", __FILE__, (u32)__LINE__, #x); return; } }
-#define B_RETURNX(x, rtype)			{ if( !(x) ) { ZZLog::Error_Log("%s:%d: %s", __FILE__, (u32)__LINE__, #x); return (##rtype); } }
-#define B_G(x, action)			{ if( !(x) ) { ZZLog::Error_Log("%s:%d: %s", __FILE__, (u32)__LINE__, #x); action; } }
-
-#define GL_REPORT_ERROR() \
-{ \
-	GLenum err = glGetError(); \
-	if( err != GL_NO_ERROR ) \
-	{ \
-		ZZLog::Error_Log("%s:%d: gl error %s(0x%x)", __FILE__, (int)__LINE__, error_name(err), err); \
-		ZeroGS::HandleGLError(); \
-	} \
-}
-
-#ifdef _DEBUG
-#	define GL_REPORT_ERRORD() \
-{ \
-	GLenum err = glGetError(); \
-	if( err != GL_NO_ERROR ) \
-	{ \
-		ZZLog::Error_Log("%s:%d: gl error %s (0x%x)", __FILE__, (int)__LINE__, error_name(err), err); \
-		ZeroGS::HandleGLError(); \
-	} \
-}
-#else
-#	define GL_REPORT_ERRORD()
-#endif
-
-
-inline const char *error_name(int err)
-{
-	switch (err)
-	{
-		case GL_NO_ERROR:
-			return "GL_NO_ERROR";
-
-		case GL_INVALID_ENUM:
-			return "GL_INVALID_ENUM";
-
-		case GL_INVALID_VALUE:
-			return "GL_INVALID_VALUE";
-
-		case GL_INVALID_OPERATION:
-			return "GL_INVALID_OPERATION";
-
-		case GL_STACK_OVERFLOW:
-			return "GL_STACK_OVERFLOW";
-
-		case GL_STACK_UNDERFLOW:
-			return "GL_STACK_UNDERFLOW";
-
-		case GL_OUT_OF_MEMORY:
-			return "GL_OUT_OF_MEMORY";
-
-		case GL_TABLE_TOO_LARGE:
-			return "GL_TABLE_TOO_LARGE";
-
-		case GL_INVALID_FRAMEBUFFER_OPERATION:
-			return "GL_INVALID_FRAMEBUFFER_OPERATION";
-			
-		default:
-			return "Unknown GL error";
-	}
-}
-
-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 SetAA(int mode);
-extern bool Create(int width, int height);
-extern void Destroy(bool bD3D);
-extern void StartCapture();
-extern void StopCapture();
-}
-
-namespace ZZLog
-{
-extern bool IsLogging();
-void SetDir(const char* dir);
-extern void Open();
-extern void Close();
-extern void Message(const char *fmt, ...);
-extern void Log(const char *fmt, ...);
-void WriteToScreen(const char* pstr, u32 ms = 5000);
-extern void WriteToConsole(const char *fmt, ...);
-extern void Print(const char *fmt, ...);
-extern void WriteLn(const char *fmt, ...);
-
-extern void Greg_Log(const char *fmt, ...);
-extern void Prim_Log(const char *fmt, ...);
-extern void GS_Log(const char *fmt, ...);
-
-extern void Debug_Log(const char *fmt, ...);
-extern void Dev_Log(const char *fmt, ...);
-extern void Warn_Log(const char *fmt, ...);
-extern void Error_Log(const char *fmt, ...);
-};
-
-#endif // ZZLOG_H_INCLUDED
+/*  ZZ Open GL graphics plugin
+ *  Copyright (c)2009-2010 zeydlitz@gmail.com, arcum42@gmail.com
+ *  Based on Zerofrog's ZeroGS KOSMOS (c)2005-2008
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA
+ */
+
+#ifndef ZZLOG_H_INCLUDED
+#define ZZLOG_H_INCLUDED
+
+#include "Util.h"
+#include <cstring>
+
+extern void HandleGLError();
+
+//Logging for errors that are called often should have a time counter.
+#ifdef __LINUX__
+static u32 __attribute__((unused)) lasttime = 0;
+static u32 __attribute__((unused)) BigTime = 5000;
+static bool __attribute__((unused)) SPAM_PASS;
+#else
+static u32 lasttime = 0;
+static u32 BigTime = 5000;
+static bool SPAM_PASS;
+#endif
+
+#define ERROR_LOG_SPAM(text) { \
+	if( timeGetTime() - lasttime > BigTime ) { \
+		ZZLog::Error_Log(text); \
+		lasttime = timeGetTime(); \
+	} \
+}
+// The same macro with one-argument substitution.
+#define ERROR_LOG_SPAMA(fmt, value) { \
+	if( timeGetTime() - lasttime > BigTime ) { \
+		ZZLog::Error_Log(fmt, value); \
+		lasttime = timeGetTime(); \
+	} \
+}
+
+#define ERROR_LOG_SPAM_TEST(text) {\
+	if( timeGetTime() - lasttime > BigTime ) { \
+		ZZLog::Error_Log(text); \
+		lasttime = timeGetTime(); \
+		SPAM_PASS = true; \
+	} \
+	else \
+		SPAM_PASS = false; \
+}
+
+#if DEBUG_PROF
+#define FILE_IS_IN_CHECK ((strcmp(__FILE__, "targets.cpp") == 0) || (strcmp(__FILE__, "ZZoglFlush.cpp") == 0))
+
+#define FUNCLOG {\
+	static bool Was_Here = false; \
+	static unsigned long int waslasttime = 0; \
+	if (!Was_Here && FILE_IS_IN_CHECK) { \
+		Was_Here = true;\
+		ZZLog::Error_Log("%s:%d %s", __FILE__, __LINE__, __func__); \
+		waslasttime = timeGetTime(); \
+	} \
+	if (FILE_IS_IN_CHECK && (timeGetTime() - waslasttime > BigTime ))  { \
+		Was_Here = false; \
+	} \
+}
+#else
+#define FUNCLOG
+#endif
+
+//#define WRITE_GREG_LOGS
+//#define WRITE_PRIM_LOGS
+#if defined(_DEBUG) && !defined(ZEROGS_DEVBUILD)
+#define ZEROGS_DEVBUILD
+#endif
+
+
+// sends a message to output window if assert fails
+#define BMSG(x, str)			{ if( !(x) ) { ZZLog::Log(str); ZZLog::Log(str); } }
+#define BMSG_RETURN(x, str)	{ if( !(x) ) { ZZLog::Log(str); ZZLog::Log(str); return; } }
+#define BMSG_RETURNX(x, str, rtype)	{ if( !(x) ) { ZZLog::Log(str); ZZLog::Log(str); return (##rtype); } }
+#define B(x)				{ if( !(x) ) { ZZLog::Log(_#x"\n"); ZZLog::Log(#x"\n"); } }
+#define B_RETURN(x)			{ if( !(x) ) { ZZLog::Error_Log("%s:%d: %s", __FILE__, (u32)__LINE__, #x); return; } }
+#define B_RETURNX(x, rtype)			{ if( !(x) ) { ZZLog::Error_Log("%s:%d: %s", __FILE__, (u32)__LINE__, #x); return (##rtype); } }
+#define B_G(x, action)			{ if( !(x) ) { ZZLog::Error_Log("%s:%d: %s", __FILE__, (u32)__LINE__, #x); action; } }
+
+#define GL_REPORT_ERROR() \
+{ \
+	GLenum err = glGetError(); \
+	if( err != GL_NO_ERROR ) \
+	{ \
+		ZZLog::Error_Log("%s:%d: gl error %s(0x%x)", __FILE__, (int)__LINE__, error_name(err), err); \
+		HandleGLError(); \
+	} \
+}
+
+#ifdef _DEBUG
+#	define GL_REPORT_ERRORD() \
+{ \
+	GLenum err = glGetError(); \
+	if( err != GL_NO_ERROR ) \
+	{ \
+		ZZLog::Error_Log("%s:%d: gl error %s (0x%x)", __FILE__, (int)__LINE__, error_name(err), err); \
+		/* HandleGLError();*/ \
+	} \
+}
+#else
+#	define GL_REPORT_ERRORD()
+#endif
+
+
+inline const char *error_name(int err)
+{
+	switch (err)
+	{
+		case GL_NO_ERROR:
+			return "GL_NO_ERROR";
+
+		case GL_INVALID_ENUM:
+			return "GL_INVALID_ENUM";
+
+		case GL_INVALID_VALUE:
+			return "GL_INVALID_VALUE";
+
+		case GL_INVALID_OPERATION:
+			return "GL_INVALID_OPERATION";
+
+		case GL_STACK_OVERFLOW:
+			return "GL_STACK_OVERFLOW";
+
+		case GL_STACK_UNDERFLOW:
+			return "GL_STACK_UNDERFLOW";
+
+		case GL_OUT_OF_MEMORY:
+			return "GL_OUT_OF_MEMORY";
+
+		case GL_TABLE_TOO_LARGE:
+			return "GL_TABLE_TOO_LARGE";
+
+		case GL_INVALID_FRAMEBUFFER_OPERATION:
+			return "GL_INVALID_FRAMEBUFFER_OPERATION";
+
+		default:
+			return "Unknown GL error";
+	}
+}
+
+struct MESSAGE
+{
+	MESSAGE() {}
+
+	MESSAGE(const char* p, u32 dw) { strcpy(str, p); dwTimeStamp = dw; }
+
+	char str[255];
+	u32 dwTimeStamp;
+};
+
+extern void DrawText(const char* pstr, int left, int top, u32 color);
+extern void __LogToConsole(const char *fmt, ...);
+
+extern void ZZAddMessage(const char* pstr, u32 ms = 5000);
+extern void StartCapture();
+extern void StopCapture();
+
+
+namespace ZZLog
+{
+extern bool IsLogging();
+void SetDir(const char* dir);
+extern void Open();
+extern void Close();
+extern void Message(const char *fmt, ...);
+extern void Log(const char *fmt, ...);
+void WriteToScreen(const char* pstr, u32 ms = 5000);
+void WriteToScreen2(const char* pstr, ...);
+extern void WriteToConsole(const char *fmt, ...);
+extern void Print(const char *fmt, ...);
+extern void WriteLn(const char *fmt, ...);
+
+extern void Greg_Log(const char *fmt, ...);
+extern void Prim_Log(const char *fmt, ...);
+extern void GS_Log(const char *fmt, ...);
+
+extern void Debug_Log(const char *fmt, ...);
+extern void Dev_Log(const char *fmt, ...);
+extern void Warn_Log(const char *fmt, ...);
+extern void Error_Log(const char *fmt, ...);
+};
+
+#endif // ZZLOG_H_INCLUDED

 

  ViewVC Help
Powered by ViewVC 1.1.22