[vlc-commits] doc: QtGl: add details on GetProcAddress impl
Alexandre Janniaux
git at videolan.org
Thu Nov 12 15:47:58 CET 2020
vlc | branch: master | Alexandre Janniaux <ajanni at videolabs.io> | Mon Nov 9 18:01:56 2020 +0100| [2fee55a31903d401b1d96acaf39113a358ad1566] | committer: Alexandre Janniaux
doc: QtGl: add details on GetProcAddress impl
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=2fee55a31903d401b1d96acaf39113a358ad1566
---
doc/libvlc/QtGL/qtvlcwidget.cpp | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/doc/libvlc/QtGL/qtvlcwidget.cpp b/doc/libvlc/QtGL/qtvlcwidget.cpp
index e33f6a6c08..134ad06601 100644
--- a/doc/libvlc/QtGL/qtvlcwidget.cpp
+++ b/doc/libvlc/QtGL/qtvlcwidget.cpp
@@ -153,6 +153,14 @@ public:
static void* get_proc_address(void* data, const char* current)
{
VLCVideo* that = static_cast<VLCVideo*>(data);
+ /* Qt usual expects core symbols to be queryable, even though it's not
+ * mentioned in the API. Cf QPlatformOpenGLContext::getProcAddress.
+ * Thus, we don't need to wrap the function symbols here, but it might
+ * fail to work (not crash though) on exotic platforms since Qt doesn't
+ * commit to this behaviour. A way to handle this in a more stable way
+ * would be to store the mContext->functions() table in a thread local
+ * variable, and wrap every call to OpenGL in a function using this
+ * thread local state to call the correct variant. */
return reinterpret_cast<void*>(that->mContext->getProcAddress(current));
}
More information about the vlc-commits
mailing list