4#ifndef QWINDOWSGLCONTEXT_H
5#define QWINDOWSGLCONTEXT_H
7#include <QtCore/qt_windows.h>
10#include <QtGui/qopenglcontext.h>
59#ifndef QT_NO_DEBUG_STREAM
67 bool init(
bool softwareRendering);
79 HGLRC (WINAPI * wglGetCurrentContext)();
80 HDC (WINAPI * wglGetCurrentDC)();
81 PROC (WINAPI * wglGetProcAddress)(LPCSTR
name);
96 BOOL (WINAPI * wglSwapBuffers)(
HDC dc);
97 BOOL (WINAPI * wglSetPixelFormat)(
HDC dc,
int pf,
const PIXELFORMATDESCRIPTOR *pfd);
98 int (WINAPI * wglDescribePixelFormat)(
HDC dc,
int pf, UINT
size, PIXELFORMATDESCRIPTOR *pfd);
115 (HDC hdc,
int iPixelFormat,
int iLayerPlane,
116 uint nAttributes,
const int *piAttributes,
int *piValues);
120 const float *pfAttribFList,
uint nMaxFormats,
int *piFormats,
175 bool isValid()
const override {
return m_renderingContext && !m_lost; }
194 inline void releaseDCs();
195 bool updateObtainedParams(HDC hdc,
int *obtainedSwapInterval =
nullptr);
199 HGLRC m_renderingContext =
nullptr;
200 std::vector<QOpenGLContextData> m_windowContexts;
201 PIXELFORMATDESCRIPTOR m_obtainedPixelFormatDescriptor;
202 int m_pixelFormat = 0;
203 bool m_extensionsUsed =
false;
204 int m_swapInterval = -1;
205 bool m_ownsContext =
true;
206 GlGetGraphicsResetStatusArbType m_getGraphicsResetStatus =
nullptr;
\inheaderfile QOpenGLContext
OpenGLModuleType
This enum defines the type of the underlying OpenGL implementation.
QPlatformOpenGLContext * shareHandle() const
Returns the underlying platform context with which this context is sharing.
Static Open GL context containing version information, extension function pointers,...
BOOL(APIENTRY * WglSwapInternalExt)(int interval)
const QWindowsOpenGLContextFormat defaultFormat
void * moduleHandle() const override
WglChoosePixelFormatARB wglChoosePixelFormatARB
const char *(APIENTRY * WglGetExtensionsStringARB)(HDC)
WglCreateContextAttribsARB wglCreateContextAttribsARB
static QByteArray getGlString(unsigned int which)
QOpenGLContext::OpenGLModuleType moduleType() const override
HGLRC(APIENTRY * WglCreateContextAttribsARB)(HDC, HGLRC, const int *)
WglGetExtensionsStringARB wglGetExtensionsStringARB
WglGetSwapInternalExt wglGetSwapInternalExt
const QByteArray renderer
bool hasExtensions() const
QWindowsOpenGLContext * createContext(QOpenGLContext *context) override
WglGetPixelFormatAttribIVARB wglGetPixelFormatAttribIVARB
bool(APIENTRY * WglGetPixelFormatAttribIVARB)(HDC hdc, int iPixelFormat, int iLayerPlane, uint nAttributes, const int *piAttributes, int *piValues)
WglSwapInternalExt wglSwapInternalExt
bool supportsThreadedOpenGL() const override
bool(APIENTRY * WglChoosePixelFormatARB)(HDC hdc, const int *piAttribList, const float *pfAttribFList, uint nMaxFormats, int *piFormats, UINT *nNumFormats)
int(APIENTRY * WglGetSwapInternalExt)(void)
const QByteArray extensionNames
static QWindowsOpengl32DLL opengl32
QOpenGLContext * context() const
bool isValid() const override
HGLRC nativeContext() const override
void doneCurrent() override
bool makeCurrent(QPlatformSurface *surface) override
QSurfaceFormat format() const override
void swapBuffers(QPlatformSurface *surface) override
Reimplement in subclass to native swap buffers calls.
bool isSharing() const override
HGLRC renderingContext() const
~QWindowsGLContext() override
static QWindowsStaticOpenGLContext * create()
Combined button and popup list for selecting options.
DBusConnection const char DBusError DBusBusType DBusError return DBusConnection DBusHandleMessageFunction void DBusFreeFunction return DBusConnection return DBusConnection return const char DBusError return DBusConnection DBusMessage dbus_uint32_t return DBusConnection dbus_bool_t DBusConnection DBusAddWatchFunction DBusRemoveWatchFunction DBusWatchToggledFunction void DBusFreeFunction return DBusConnection DBusDispatchStatusFunction void DBusFreeFunction DBusTimeout return DBusTimeout return DBusWatch return DBusWatch unsigned int return DBusError const DBusError return const DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessage return DBusMessageIter int const void return DBusMessageIter DBusMessageIter return DBusMessageIter void DBusMessageIter void int return DBusMessage DBusMessageIter return DBusMessageIter return DBusMessageIter DBusMessageIter const char const char const char const char return DBusMessage return DBusMessage const char return DBusMessage dbus_bool_t return DBusMessage dbus_uint32_t return DBusMessage void
typedef GLint(GL_APIENTRYP PFNGLGETPROGRAMRESOURCELOCATIONINDEXEXTPROC)(GLuint program
GLenum GLuint GLintptr GLsizeiptr size
[1]
typedef GLenum(GL_APIENTRYP PFNGLGETGRAPHICSRESETSTATUSKHRPROC)(void)
GLint GLsizei GLsizei GLenum format
GLfloat GLfloat GLfloat GLfloat h
const void * getProcAddress
QDebug operator<<(QDebug d, const PIXELFORMATDESCRIPTOR &)
@ QWindowsGLDirectRendering
@ QWindowsGLRenderToPixmap
QOpenGLContextData(HGLRC r, HWND h, HDC d)
QSurfaceFormat::FormatOptions options
majorVersion<<8 + minorVersion
QSurfaceFormat::OpenGLContextProfile profile
static QWindowsOpenGLContextFormat current()
void apply(QSurfaceFormat *format) const
bool init(bool softwareRendering)
int describePixelFormat(HDC dc, int pf, UINT size, PIXELFORMATDESCRIPTOR *pfd)
BOOL(WINAPI *wglDeleteContext)(HGLRC context)
GLenum(APIENTRY *glGetError)()
PROC(WINAPI *wglGetProcAddress)(LPCSTR name)
HGLRC(WINAPI *wglCreateContext)(HDC dc)
BOOL(WINAPI *wglMakeCurrent)(HDC dc
QFunctionPointer resolve(const char *name)
void * moduleHandle() const
const GLubyte *APIENTRY * glGetString(GLenum name)
HGLRC(WINAPI *wglGetCurrentContext)()
HDC(WINAPI *wglGetCurrentDC)()
BOOL(WINAPI *wglShareLists)(HGLRC context1
bool moduleIsNotOpengl32() const
BOOL setPixelFormat(HDC dc, int pf, const PIXELFORMATDESCRIPTOR *pfd)