Commit d64a38b3 by Corentin Wallez

FunctionsGLX: add support for glXWaitX/GL

The functions are not used in the code but are useful during development to try to see where race condition with the X server are. BUG=angleproject:892 Change-Id: Ie1267e46ac251bd9ac62e2a146db68ad84644fb8 Reviewed-on: https://chromium-review.googlesource.com/271177Reviewed-by: 's avatarGeoff Lang <geofflang@chromium.org> Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Tested-by: 's avatarCorentin Wallez <cwallez@chromium.org>
parent 582173d9
...@@ -35,6 +35,8 @@ FunctionsGLX::FunctionsGLX() ...@@ -35,6 +35,8 @@ FunctionsGLX::FunctionsGLX()
mSwapBuffersPtr(nullptr), mSwapBuffersPtr(nullptr),
mQueryExtensionPtr(nullptr), mQueryExtensionPtr(nullptr),
mQueryVersionPtr(nullptr), mQueryVersionPtr(nullptr),
mWaitXPtr(nullptr),
mWaitGLPtr(nullptr),
mQueryExtensionsStringPtr(nullptr), mQueryExtensionsStringPtr(nullptr),
mGetFBConfigsPtr(nullptr), mGetFBConfigsPtr(nullptr),
mChooseFBConfigPtr(nullptr), mChooseFBConfigPtr(nullptr),
...@@ -88,6 +90,8 @@ egl::Error FunctionsGLX::initialize(Display *xDisplay, int screen) ...@@ -88,6 +90,8 @@ egl::Error FunctionsGLX::initialize(Display *xDisplay, int screen)
GET_PROC_OR_ERROR(&mSwapBuffersPtr, "glXSwapBuffers"); GET_PROC_OR_ERROR(&mSwapBuffersPtr, "glXSwapBuffers");
GET_PROC_OR_ERROR(&mQueryExtensionPtr, "glXQueryExtension"); GET_PROC_OR_ERROR(&mQueryExtensionPtr, "glXQueryExtension");
GET_PROC_OR_ERROR(&mQueryVersionPtr, "glXQueryVersion"); GET_PROC_OR_ERROR(&mQueryVersionPtr, "glXQueryVersion");
GET_PROC_OR_ERROR(&mWaitXPtr, "glXWaitX");
GET_PROC_OR_ERROR(&mWaitGLPtr, "glXWaitGL");
// GLX 1.1 // GLX 1.1
GET_PROC_OR_ERROR(&mQueryExtensionsStringPtr, "glXQueryExtensionsString"); GET_PROC_OR_ERROR(&mQueryExtensionsStringPtr, "glXQueryExtensionsString");
...@@ -192,6 +196,14 @@ Bool FunctionsGLX::queryVersion(int *major, int *minor) const ...@@ -192,6 +196,14 @@ Bool FunctionsGLX::queryVersion(int *major, int *minor) const
{ {
return mQueryVersionPtr(mXDisplay, major, minor); return mQueryVersionPtr(mXDisplay, major, minor);
} }
void FunctionsGLX::waitX() const
{
mWaitXPtr();
}
void FunctionsGLX::waitGL() const
{
mWaitGLPtr();
}
// GLX 1.1 // GLX 1.1
const char *FunctionsGLX::queryExtensionsString() const const char *FunctionsGLX::queryExtensionsString() const
......
...@@ -45,6 +45,8 @@ class FunctionsGLX : angle::NonCopyable ...@@ -45,6 +45,8 @@ class FunctionsGLX : angle::NonCopyable
void swapBuffers(GLXDrawable drawable) const; void swapBuffers(GLXDrawable drawable) const;
Bool queryExtension(int *errorBase, int *event) const; Bool queryExtension(int *errorBase, int *event) const;
Bool queryVersion(int *major, int *minor) const; Bool queryVersion(int *major, int *minor) const;
void waitX() const;
void waitGL() const;
// GLX 1.1 // GLX 1.1
const char *queryExtensionsString() const; const char *queryExtensionsString() const;
...@@ -76,6 +78,8 @@ class FunctionsGLX : angle::NonCopyable ...@@ -76,6 +78,8 @@ class FunctionsGLX : angle::NonCopyable
PFNGLXSWAPBUFFERSPROC mSwapBuffersPtr; PFNGLXSWAPBUFFERSPROC mSwapBuffersPtr;
PFNGLXQUERYEXTENSIONPROC mQueryExtensionPtr; PFNGLXQUERYEXTENSIONPROC mQueryExtensionPtr;
PFNGLXQUERYVERSIONPROC mQueryVersionPtr; PFNGLXQUERYVERSIONPROC mQueryVersionPtr;
PFNGLXWAITXPROC mWaitXPtr;
PFNGLXWAITGLPROC mWaitGLPtr;
// GLX 1.1 // GLX 1.1
PFNGLXQUERYEXTENSIONSSTRINGPROC mQueryExtensionsStringPtr; PFNGLXQUERYEXTENSIONSSTRINGPROC mQueryExtensionsStringPtr;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment