diff --git a/code/nel/src/3d/driver/opengl/driver_opengl.cpp b/code/nel/src/3d/driver/opengl/driver_opengl.cpp index b01f58ba3..fa2894229 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl.cpp @@ -1293,6 +1293,17 @@ sint CDriverGL::getTotalVideoMemory() const { nlerror("3D: Unable to get current renderer ID (%s)", CGLErrorString(error)); } +#else + if (_Extensions.GLXMESAQueryRenderer) + { + uint32 memoryInMiB = 0; + + if (nglXQueryCurrentRendererIntegerMESA(GLX_RENDERER_VIDEO_MEMORY_MESA, &memoryInMiB)) + { + nlinfo("3D: GLX_RENDERER_VIDEO_MEMORY_MESA returned %u MiB", memoryInMiB); + return memoryInMiB * 1024; + } + } #endif return -1; diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp b/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp index 700780077..59ca38a57 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp +++ b/code/nel/src/3d/driver/opengl/driver_opengl_extension.cpp @@ -536,11 +536,14 @@ PFNGLXFREEMEMORYNVPROC nglXFreeMemoryNV; // Swap control extensions PFNGLXSWAPINTERVALEXTPROC nglXSwapIntervalEXT; -PFNGLXSWAPINTERVALSGIPROC nglXSwapIntervalSGI; +PFNGLXSWAPINTERVALSGIPROC nglXSwapIntervalSGI; PFNGLXSWAPINTERVALMESAPROC nglXSwapIntervalMESA; PFNGLXGETSWAPINTERVALMESAPROC nglXGetSwapIntervalMESA; +// GLX_MESA_query_renderer +// ======================= +PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC nglXQueryCurrentRendererIntegerMESA; #endif #endif // USE_OPENGLES @@ -1888,6 +1891,19 @@ static bool setupGLXMESASwapControl(const char *glext) return true; } +// ********************************* +static bool setupGLXMESAQueryRenderer(const char *glext) +{ + H_AUTO_OGL(setupGLXMESAQueryRenderer); + CHECK_EXT("GLX_MESA_query_renderer"); + +#if defined(NL_OS_UNIX) && !defined(NL_OS_MAC) + CHECK_ADDRESS(PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC, glXQueryCurrentRendererIntegerMESA); +#endif + + return true; +} + #ifdef USE_OPENGLES // *************************************************************************** bool registerEGlExtensions(CGlExtensions &ext, EGLDisplay dpy) @@ -2030,6 +2046,9 @@ bool registerGlXExtensions(CGlExtensions &ext, Display *dpy, sint screen) ext.GLXSGISwapControl= setupGLXSGISwapControl(glext); ext.GLXMESASwapControl= setupGLXMESASwapControl(glext); + // check for renderer information + ext.GLXMESAQueryRenderer= setupGLXMESAQueryRenderer(glext); + return true; } #endif // USE_OPENGLES diff --git a/code/nel/src/3d/driver/opengl/driver_opengl_extension.h b/code/nel/src/3d/driver/opengl/driver_opengl_extension.h index d5556ef64..5338ff999 100644 --- a/code/nel/src/3d/driver/opengl/driver_opengl_extension.h +++ b/code/nel/src/3d/driver/opengl/driver_opengl_extension.h @@ -87,6 +87,7 @@ struct CGlExtensions bool GLXEXTSwapControl; bool GLXSGISwapControl; bool GLXMESASwapControl; + bool GLXMESAQueryRenderer; // ATI Extensions. bool ATIVertexArrayObject; @@ -164,6 +165,7 @@ public: GLXEXTSwapControl= false; GLXSGISwapControl= false; GLXMESASwapControl= false; + GLXMESAQueryRenderer= false; EXTBlendColor= false; ATIVertexArrayObject= false; ATIEnvMapBumpMap = false; @@ -264,6 +266,7 @@ public: result += GLXEXTSwapControl ? "GLXEXTSwapControl " : ""; result += GLXSGISwapControl ? "GLXSGISwapControl " : ""; result += GLXMESASwapControl ? "GLXMESASwapControl " : ""; + result += GLXMESAQueryRenderer ? "GLXMESAQueryRenderer " : ""; #endif result += "\n Array/VBO: "; @@ -816,6 +819,10 @@ extern PFNGLXSWAPINTERVALSGIPROC nglXSwapIntervalSGI; extern PFNGLXSWAPINTERVALMESAPROC nglXSwapIntervalMESA; extern PFNGLXGETSWAPINTERVALMESAPROC nglXGetSwapIntervalMESA; +// GLX_MESA_query_renderer +// ======================= +extern PFNGLXQUERYCURRENTRENDERERINTEGERMESAPROC nglXQueryCurrentRendererIntegerMESA; + #endif // GL_EXT_framebuffer_object diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index d2d2e5cb0..698f9d9ee 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -687,24 +687,6 @@ bool launchProgram(const std::string &programName, const std::string &arguments, si.cb = sizeof(si); -/* SECURITY_ATTRIBUTES sa; - sa.nLength = sizeof (sa); - sa.lpSecurityDescriptor = NULL; - sa.bInheritHandle = FALSE; - - STARTUPINFO si; - si.cb = sizeof (si); - si.lpReserved = NULL; - si.lpDesktop = NULL; - si.lpTitle = NULL; - si.dwFlags = STARTF_USESHOWWINDOW; - si.cbReserved2 = 0; - si.wShowWindow = SW_MINIMIZE; - si.lpReserved2 = NULL; - - PROCESS_INFORMATION pi; -*/ - // Enable nlassert/nlstop to display the error reason & callstack const TCHAR *SE_TRANSLATOR_IN_MAIN_MODULE = _T("NEL_SE_TRANS"); TCHAR envBuf [2]; diff --git a/code/nel/src/misc/displayer.cpp b/code/nel/src/misc/displayer.cpp index e1738592c..60fa244b6 100644 --- a/code/nel/src/misc/displayer.cpp +++ b/code/nel/src/misc/displayer.cpp @@ -520,10 +520,7 @@ void CFileDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *mes // in release "" void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *message) { -//#ifdef NL_OS_WINDOWS - bool needSpace = false; -// stringstream ss; string str; // create the string for the clipboard @@ -536,7 +533,6 @@ void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *m if (args.LogType != CLog::LOG_NO) { - //if (needSpace) { ss << " "; needSpace = false; } if (needSpace) { str += " "; needSpace = false; } str += logTypeToString(args.LogType); needSpace = true; @@ -544,7 +540,6 @@ void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *m if (!args.ProcessName.empty()) { - //if (needSpace) { ss << " "; needSpace = false; } if (needSpace) { str += " "; needSpace = false; } str += args.ProcessName; needSpace = true; @@ -552,7 +547,6 @@ void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *m if (args.FileName != NULL) { - //if (needSpace) { ss << " "; needSpace = false; } if (needSpace) { str += " "; needSpace = false; } str += CFile::getFilename(args.FileName); needSpace = true; @@ -560,7 +554,6 @@ void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *m if (args.Line != -1) { - //if (needSpace) { ss << " "; needSpace = false; } if (needSpace) { str += " "; needSpace = false; } str += NLMISC::toString(args.Line); needSpace = true; @@ -568,7 +561,6 @@ void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *m if (args.FuncName != NULL) { - //if (needSpace) { ss << " "; needSpace = false; } if (needSpace) { str += " "; needSpace = false; } str += args.FuncName; needSpace = true; @@ -582,7 +574,6 @@ void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *m // create the string on the screen needSpace = false; -// stringstream ss2; string str2; #ifdef NL_DEBUG @@ -709,8 +700,6 @@ void CMsgBoxDisplayer::doDisplay ( const CLog::TDisplayInfo& args, const char *m setCrashAlreadyReported(true); } } - -//#endif } diff --git a/code/ryzom/client/data/gamedev/interfaces_v3/interaction.xml b/code/ryzom/client/data/gamedev/interfaces_v3/interaction.xml index e81173dfa..f0ad3ac28 100644 --- a/code/ryzom/client/data/gamedev/interfaces_v3/interaction.xml +++ b/code/ryzom/client/data/gamedev/interfaces_v3/interaction.xml @@ -1125,7 +1125,7 @@ target="tab1:active" /> + target="tab6:active" />