mirror of
https://github.com/baldurk/renderdoc.git
synced 2026-05-05 01:20:42 +00:00
Copy libGL force-inclusion hack from renderdoccmd to qrenderdoc
* Normally Qt uses libGL dynamically so this isn't an issue, but if Qt is statically linked then we need this.
This commit is contained in:
@@ -20,6 +20,18 @@ if(QRENDERDOC_NO_CXX11_REGEX)
|
||||
set(QMAKE_CXXFLAGS "-DNO_CXX11_REGEX=1")
|
||||
endif()
|
||||
|
||||
if(ENABLE_GL)
|
||||
set(QMAKE_CXXFLAGS "${QMAKE_CXXFLAGS} -DRENDERDOC_SUPPORT_GL")
|
||||
endif()
|
||||
|
||||
if(ENABLE_GLES)
|
||||
set(QMAKE_CXXFLAGS "${QMAKE_CXXFLAGS} -DRENDERDOC_SUPPORT_GLES")
|
||||
endif()
|
||||
|
||||
if(ENABLE_VULKAN)
|
||||
set(QMAKE_CXXFLAGS "${QMAKE_CXXFLAGS} -DRENDERDOC_SUPPORT_VULKAN")
|
||||
endif()
|
||||
|
||||
if(APPLE)
|
||||
add_custom_command(OUTPUT RenderDoc.icns
|
||||
COMMAND echo Creating OS X Icon
|
||||
|
||||
@@ -33,6 +33,52 @@
|
||||
#include "Code/Resources.h"
|
||||
#include "Windows/MainWindow.h"
|
||||
|
||||
#if defined(Q_OS_LINUX)
|
||||
|
||||
#if defined(RENDERDOC_SUPPORT_GL)
|
||||
|
||||
// symbol defined in libGL but not librenderdoc.
|
||||
// Forces link of libGL after renderdoc (otherwise all symbols would
|
||||
// be resolved and libGL wouldn't link, meaning dlsym(RTLD_NEXT) would fai
|
||||
extern "C" void glXWaitX();
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(RENDERDOC_SUPPORT_GLES)
|
||||
|
||||
// symbol defined in libEGL but not in librenderdoc.
|
||||
// Forces link of libEGL.
|
||||
extern "C" int eglWaitGL(void);
|
||||
|
||||
#endif
|
||||
|
||||
void linuxlibGLhack()
|
||||
{
|
||||
volatile bool never_run = false;
|
||||
|
||||
#if defined(RENDERDOC_SUPPORT_GL)
|
||||
|
||||
if(never_run)
|
||||
glXWaitX();
|
||||
|
||||
#endif
|
||||
|
||||
#if defined(RENDERDOC_SUPPORT_GLES)
|
||||
|
||||
if(never_run)
|
||||
eglWaitGL();
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
void linuxlibGLhack()
|
||||
{
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
void sharedLogOutput(QtMsgType type, const QMessageLogContext &context, const QString &msg)
|
||||
{
|
||||
LogMessageType logtype = eLogType_Comment;
|
||||
@@ -53,6 +99,8 @@ int main(int argc, char *argv[])
|
||||
{
|
||||
qInstallMessageHandler(sharedLogOutput);
|
||||
|
||||
linuxlibGLhack();
|
||||
|
||||
qInfo() << "QRenderDoc initialising.";
|
||||
|
||||
QString filename = "";
|
||||
|
||||
@@ -96,6 +96,16 @@ win32 {
|
||||
} else {
|
||||
QT += x11extras
|
||||
DEFINES += RENDERDOC_PLATFORM_POSIX RENDERDOC_PLATFORM_LINUX RENDERDOC_WINDOWING_XLIB RENDERDOC_WINDOWING_XCB
|
||||
|
||||
contains(QMAKE_CXXFLAGS, "-DRENDERDOC_SUPPORT_GL") {
|
||||
# Link against GL
|
||||
LIBS += -lGL
|
||||
}
|
||||
|
||||
contains(QMAKE_CXXFLAGS, "-DRENDERDOC_SUPPORT_GLES") {
|
||||
# Link against EGL
|
||||
LIBS += -lEGL
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user