summaryrefslogtreecommitdiffstats
path: root/src/opengl
diff options
context:
space:
mode:
Diffstat (limited to 'src/opengl')
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp31
-rw-r--r--src/opengl/gl2paintengineex/qtriangulator.cpp17
-rw-r--r--src/opengl/gl2paintengineex/qtriangulator_p.h12
-rw-r--r--src/opengl/opengl.pro6
-rw-r--r--src/opengl/qgl.cpp38
-rw-r--r--src/opengl/qgl.h10
-rw-r--r--src/opengl/qgl_p.h9
-rw-r--r--src/opengl/qglextensions_p.h8
-rw-r--r--src/opengl/qglfunctions.cpp198
-rw-r--r--src/opengl/qglfunctions.h7
-rw-r--r--src/opengl/qglpaintdevice_p.h2
11 files changed, 224 insertions, 114 deletions
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index 18c684ff1b..673f614c0d 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -1548,6 +1548,14 @@ namespace {
}
+#if defined(Q_WS_WIN)
+static bool fontSmoothingApproximately(qreal target)
+{
+ extern Q_GUI_EXPORT qreal qt_fontsmoothing_gamma; // qapplication_win.cpp
+ return (qAbs(qt_fontsmoothing_gamma - target) < 0.2);
+}
+#endif
+
// #define QT_OPENGL_DRAWCACHEDGLYPHS_INDEX_ARRAY_VBO
void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyphType,
@@ -1786,7 +1794,6 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp
shaderManager->setMaskType(QGLEngineShaderManager::PixelMask);
prepareForDraw(false); // Text always causes src pixels to be transparent
}
- //### TODO: Gamma correction
QGLTextureGlyphCache::FilterMode filterMode = (s->matrix.type() > QTransform::TxTranslate)?QGLTextureGlyphCache::Linear:QGLTextureGlyphCache::Nearest;
if (lastMaskTextureUsed != cache->texture() || cache->filterMode() != filterMode) {
@@ -1809,12 +1816,31 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp
}
}
+ bool srgbFrameBufferEnabled = false;
+ if (ctx->d_ptr->extension_flags & QGLExtensions::SRGBFrameBuffer) {
+#if defined(Q_WS_MAC)
+ if (glyphType == QFontEngineGlyphCache::Raster_RGBMask)
+#elif defined(Q_WS_WIN)
+ if (glyphType != QFontEngineGlyphCache::Raster_RGBMask || fontSmoothingApproximately(2.1))
+#else
+ if (false)
+#endif
+ {
+ glEnable(FRAMEBUFFER_SRGB_EXT);
+ srgbFrameBufferEnabled = true;
+ }
+ }
+
#if defined(QT_OPENGL_DRAWCACHEDGLYPHS_INDEX_ARRAY_VBO)
glDrawElements(GL_TRIANGLE_STRIP, 6 * numGlyphs, GL_UNSIGNED_SHORT, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);
#else
glDrawElements(GL_TRIANGLE_STRIP, 6 * numGlyphs, GL_UNSIGNED_SHORT, elementIndices.data());
#endif
+
+ if (srgbFrameBufferEnabled)
+ glDisable(FRAMEBUFFER_SRGB_EXT);
+
}
void QGL2PaintEngineEx::drawPixmapFragments(const QPainter::PixmapFragment *fragments, int fragmentCount, const QPixmap &pixmap,
@@ -1986,7 +2012,8 @@ bool QGL2PaintEngineEx::begin(QPaintDevice *pdev)
#if !defined(QT_OPENGL_ES_2)
#if defined(Q_WS_WIN)
- if (qt_cleartype_enabled)
+ if (qt_cleartype_enabled
+ && (fontSmoothingApproximately(1.0) || fontSmoothingApproximately(2.1)))
#endif
#if defined(Q_WS_MAC)
if (qt_applefontsmoothing_enabled)
diff --git a/src/opengl/gl2paintengineex/qtriangulator.cpp b/src/opengl/gl2paintengineex/qtriangulator.cpp
index 94024f3d74..a5faa36b4a 100644
--- a/src/opengl/gl2paintengineex/qtriangulator.cpp
+++ b/src/opengl/gl2paintengineex/qtriangulator.cpp
@@ -1564,6 +1564,19 @@ QVertexSet<T> QTriangulator<T>::triangulate()
template <typename T>
QVertexSet<T> QTriangulator<T>::polyline()
{
+ for (int i = 0; i < m_vertices.size(); ++i) {
+ Q_ASSERT(qAbs(m_vertices.at(i).x) < (1 << 21));
+ Q_ASSERT(qAbs(m_vertices.at(i).y) < (1 << 21));
+ }
+
+ if (!(m_hint & (QVectorPath::OddEvenFill | QVectorPath::WindingFill)))
+ m_hint |= QVectorPath::OddEvenFill;
+
+ if (m_hint & QVectorPath::NonConvexShapeMask) {
+ ComplexToSimple c2s(this);
+ c2s.decompose();
+ }
+
QVertexSet<T> result;
result.indices = m_indices;
result.vertices.resize(2 * m_vertices.size());
@@ -3084,7 +3097,7 @@ QPolylineSet qPolyline(const QVectorPath &path,
} else {
QTriangulator<quint16> triangulator;
triangulator.initialize(path, matrix, lod);
- QVertexSet<quint16> vertexSet = triangulator.triangulate();
+ QVertexSet<quint16> vertexSet = triangulator.polyline();
polyLineSet.vertices = vertexSet.vertices;
polyLineSet.indices.setDataUshort(vertexSet.indices);
}
@@ -3104,7 +3117,7 @@ QPolylineSet qPolyline(const QPainterPath &path,
} else {
QTriangulator<quint16> triangulator;
triangulator.initialize(path, matrix, lod);
- QVertexSet<quint16> vertexSet = triangulator.triangulate();
+ QVertexSet<quint16> vertexSet = triangulator.polyline();
polyLineSet.vertices = vertexSet.vertices;
polyLineSet.indices.setDataUshort(vertexSet.indices);
}
diff --git a/src/opengl/gl2paintengineex/qtriangulator_p.h b/src/opengl/gl2paintengineex/qtriangulator_p.h
index a205b923e9..081738addf 100644
--- a/src/opengl/gl2paintengineex/qtriangulator_p.h
+++ b/src/opengl/gl2paintengineex/qtriangulator_p.h
@@ -58,7 +58,7 @@
QT_BEGIN_NAMESPACE
-class QVertexIndexVector
+class Q_OPENGL_EXPORT QVertexIndexVector
{
public:
enum Type {
@@ -111,7 +111,7 @@ private:
QVector<quint16> indices16;
};
-struct QTriangleSet
+struct Q_OPENGL_EXPORT QTriangleSet
{
inline QTriangleSet() { }
inline QTriangleSet(const QTriangleSet &other) : vertices(other.vertices), indices(other.indices) { }
@@ -122,14 +122,14 @@ struct QTriangleSet
QVertexIndexVector indices; // [i[0], j[0], k[0], i[1], j[1], k[1], i[2], ...]
};
-struct QPolylineSet
+struct Q_OPENGL_EXPORT QPolylineSet
{
inline QPolylineSet() { }
inline QPolylineSet(const QPolylineSet &other) : vertices(other.vertices), indices(other.indices) { }
QPolylineSet &operator = (const QPolylineSet &other) {vertices = other.vertices; indices = other.indices; return *this;}
QVector<qreal> vertices; // [x[0], y[0], x[1], y[1], x[2], ...]
- QVertexIndexVector indices;
+ QVertexIndexVector indices; // End of polyline is marked with -1.
};
// The vertex coordinates of the returned triangle set will be rounded to a grid with a mesh size
@@ -139,9 +139,9 @@ struct QPolylineSet
// 'lod' is the level of detail. Default is 1. Curves are split into more lines when 'lod' is higher.
QTriangleSet qTriangulate(const qreal *polygon, int count, uint hint = QVectorPath::PolygonHint | QVectorPath::OddEvenFill, const QTransform &matrix = QTransform());
QTriangleSet qTriangulate(const QVectorPath &path, const QTransform &matrix = QTransform(), qreal lod = 1);
-QTriangleSet qTriangulate(const QPainterPath &path, const QTransform &matrix = QTransform(), qreal lod = 1);
+QTriangleSet Q_OPENGL_EXPORT qTriangulate(const QPainterPath &path, const QTransform &matrix = QTransform(), qreal lod = 1);
QPolylineSet qPolyline(const QVectorPath &path, const QTransform &matrix = QTransform(), qreal lod = 1);
-QPolylineSet qPolyline(const QPainterPath &path, const QTransform &matrix = QTransform(), qreal lod = 1);
+QPolylineSet Q_OPENGL_EXPORT qPolyline(const QPainterPath &path, const QTransform &matrix = QTransform(), qreal lod = 1);
QT_END_NAMESPACE
diff --git a/src/opengl/opengl.pro b/src/opengl/opengl.pro
index 73e0a2ec0b..2aee4333ef 100644
--- a/src/opengl/opengl.pro
+++ b/src/opengl/opengl.pro
@@ -1,6 +1,10 @@
TARGET = QtOpenGL
QPRO_PWD = $$PWD
-QT = core gui
+QT = core-private gui-private
+
+CONFIG += module
+MODULE_PRI = ../modules/qt_opengl.pri
+
DEFINES += QT_BUILD_OPENGL_LIB
DEFINES += QT_NO_USING_NAMESPACE
win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x63000000
diff --git a/src/opengl/qgl.cpp b/src/opengl/qgl.cpp
index 64e711fe00..f64c24b503 100644
--- a/src/opengl/qgl.cpp
+++ b/src/opengl/qgl.cpp
@@ -43,6 +43,7 @@
#include "qplatformdefs.h"
#include "qgl.h"
#include <qdebug.h>
+#include <qglfunctions.h>
#if defined(Q_WS_X11)
#include "private/qt_x11_p.h"
@@ -1663,6 +1664,7 @@ const QGLContext *qt_gl_transfer_context(const QGLContext *ctx)
QGLContextPrivate::QGLContextPrivate(QGLContext *context)
: internal_context(false)
, q_ptr(context)
+ , functions(0)
{
group = new QGLContextGroup(context);
texture_destroyer = new QGLTextureDestroyer;
@@ -1671,6 +1673,8 @@ QGLContextPrivate::QGLContextPrivate(QGLContext *context)
QGLContextPrivate::~QGLContextPrivate()
{
+ delete functions;
+
if (!group->m_refs.deref()) {
Q_ASSERT(group->context() == q_ptr);
delete group;
@@ -2711,6 +2715,19 @@ int QGLContextPrivate::maxTextureSize()
}
/*!
+ Returns a QGLFunctions object that is initialized for this context.
+ */
+QGLFunctions *QGLContext::functions() const
+{
+ QGLContextPrivate *d = const_cast<QGLContextPrivate *>(d_func());
+ if (!d->functions) {
+ d->functions = new QGLFunctions(this);
+ d->functions->initializeGLFunctions(this);
+ }
+ return d->functions;
+}
+
+/*!
Generates and binds a 2D GL texture to the current context, based
on \a image. The generated texture id is returned and can be used in
later \c glBindTexture() calls.
@@ -3792,6 +3809,20 @@ QGLWidget::QGLWidget(QWidget *parent, const QGLWidget* shareWidget, Qt::WindowFl
d->init(new QGLContext(QGLFormat::defaultFormat(), this), shareWidget);
}
+/*!
+ \internal
+ */
+QGLWidget::QGLWidget(QGLWidgetPrivate &dd, const QGLFormat &format, QWidget *parent, const QGLWidget *shareWidget, Qt::WindowFlags f)
+ : QWidget(dd, parent, f | Qt::MSWindowsOwnDC)
+{
+ Q_D(QGLWidget);
+ setAttribute(Qt::WA_PaintOnScreen);
+ setAttribute(Qt::WA_NoSystemBackground);
+ setAutoFillBackground(true); // for compatibility
+ d->init(new QGLContext(format, this), shareWidget);
+
+}
+
/*!
Constructs an OpenGL widget with parent \a parent.
@@ -5490,6 +5521,13 @@ QGLExtensions::Extensions QGLExtensions::currentContextExtensions()
if (extensions.match("GL_EXT_bgra"))
glExtensions |= BGRATextureFormat;
+ {
+ GLboolean srgbCapableFramebuffers;
+ glGetBooleanv(FRAMEBUFFER_SRGB_CAPABLE_EXT, &srgbCapableFramebuffers);
+ if (srgbCapableFramebuffers)
+ glExtensions |= SRGBFrameBuffer;
+ }
+
return glExtensions;
}
diff --git a/src/opengl/qgl.h b/src/opengl/qgl.h
index 55a06b5483..730e52ba8f 100644
--- a/src/opengl/qgl.h
+++ b/src/opengl/qgl.h
@@ -307,6 +307,8 @@ Q_OPENGL_EXPORT bool operator!=(const QGLFormat&, const QGLFormat&);
Q_OPENGL_EXPORT QDebug operator<<(QDebug, const QGLFormat &);
#endif
+class QGLFunctions;
+
class Q_OPENGL_EXPORT QGLContext
{
Q_DECLARE_PRIVATE(QGLContext)
@@ -332,6 +334,8 @@ public:
virtual void swapBuffers() const;
+ QGLFunctions *functions() const;
+
enum BindOption {
NoBindOption = 0x0000,
InvertedYBindOption = 0x0001,
@@ -466,6 +470,7 @@ private:
friend class QX11GLPixmapData;
friend class QX11GLSharedContexts;
friend class QGLContextResourceBase;
+ friend class QSGDistanceFieldGlyphCache;
private:
Q_DISABLE_COPY(QGLContext)
};
@@ -589,6 +594,11 @@ protected:
virtual void glDraw();
int fontDisplayListBase(const QFont & fnt, int listBase = 2000); // ### Qt 5: remove
+ QGLWidget(QGLWidgetPrivate &dd,
+ const QGLFormat &format = QGLFormat(),
+ QWidget *parent = 0,
+ const QGLWidget* shareWidget = 0,
+ Qt::WindowFlags f = 0);
private:
Q_DISABLE_COPY(QGLWidget)
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index 4733a163e5..26b2ab3a90 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -159,7 +159,7 @@ public:
QGLFormat::OpenGLContextProfile profile;
};
-class QGLWidgetPrivate : public QWidgetPrivate
+class Q_OPENGL_EXPORT QGLWidgetPrivate : public QWidgetPrivate
{
Q_DECLARE_PUBLIC(QGLWidget)
public:
@@ -288,7 +288,8 @@ public:
PVRTCTextureCompression = 0x00020000,
FragmentShader = 0x00040000,
ElementIndexUint = 0x00080000,
- Depth24 = 0x00100000
+ Depth24 = 0x00100000,
+ SRGBFrameBuffer = 0x00200000
};
Q_DECLARE_FLAGS(Extensions, Extension)
@@ -441,6 +442,8 @@ public:
QHash<QGLContextResourceBase *, void *> m_resources;
QGLTextureDestroyer *texture_destroyer;
+ QGLFunctions *functions;
+
bool vertexAttributeArraysEnabledState[QT_GL_VERTEX_ARRAY_TRACKED_COUNT];
static inline QGLContextGroup *contextGroup(const QGLContext *ctx) { return ctx->d_ptr->group; }
@@ -499,7 +502,7 @@ private:
QGLContext *m_ctx;
};
-class QGLTextureDestroyer : public QObject
+class Q_OPENGL_EXPORT QGLTextureDestroyer : public QObject
{
Q_OBJECT
public:
diff --git a/src/opengl/qglextensions_p.h b/src/opengl/qglextensions_p.h
index 529c7a1b4e..ac80ce8b96 100644
--- a/src/opengl/qglextensions_p.h
+++ b/src/opengl/qglextensions_p.h
@@ -477,6 +477,14 @@ struct QGLExtensionFuncs
// OpenGL constants
+#ifndef FRAMEBUFFER_SRGB_CAPABLE_EXT
+#define FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA
+#endif
+
+#ifndef FRAMEBUFFER_SRGB_EXT
+#define FRAMEBUFFER_SRGB_EXT 0x8DB9
+#endif
+
#ifndef GL_ARRAY_BUFFER
#define GL_ARRAY_BUFFER 0x8892
#endif
diff --git a/src/opengl/qglfunctions.cpp b/src/opengl/qglfunctions.cpp
index be8219a07f..8027081543 100644
--- a/src/opengl/qglfunctions.cpp
+++ b/src/opengl/qglfunctions.cpp
@@ -1348,7 +1348,7 @@ void QGLFunctions::initializeGLFunctions(const QGLContext *context)
#ifndef QT_OPENGL_ES_2
-static void qglfResolveActiveTexture(GLenum texture)
+static void QGLF_APIENTRY qglfResolveActiveTexture(GLenum texture)
{
typedef void (QGLF_APIENTRYP type_glActiveTexture)(GLenum texture);
@@ -1368,7 +1368,7 @@ static void qglfResolveActiveTexture(GLenum texture)
funcs->activeTexture = qglfResolveActiveTexture;
}
-static void qglfResolveAttachShader(GLuint program, GLuint shader)
+static void QGLF_APIENTRY qglfResolveAttachShader(GLuint program, GLuint shader)
{
typedef void (QGLF_APIENTRYP type_glAttachShader)(GLuint program, GLuint shader);
@@ -1388,7 +1388,7 @@ static void qglfResolveAttachShader(GLuint program, GLuint shader)
funcs->attachShader = qglfResolveAttachShader;
}
-static void qglfResolveBindAttribLocation(GLuint program, GLuint index, const char* name)
+static void QGLF_APIENTRY qglfResolveBindAttribLocation(GLuint program, GLuint index, const char* name)
{
typedef void (QGLF_APIENTRYP type_glBindAttribLocation)(GLuint program, GLuint index, const char* name);
@@ -1408,7 +1408,7 @@ static void qglfResolveBindAttribLocation(GLuint program, GLuint index, const ch
funcs->bindAttribLocation = qglfResolveBindAttribLocation;
}
-static void qglfResolveBindBuffer(GLenum target, GLuint buffer)
+static void QGLF_APIENTRY qglfResolveBindBuffer(GLenum target, GLuint buffer)
{
typedef void (QGLF_APIENTRYP type_glBindBuffer)(GLenum target, GLuint buffer);
@@ -1438,7 +1438,7 @@ static void qglfResolveBindBuffer(GLenum target, GLuint buffer)
funcs->bindBuffer = qglfResolveBindBuffer;
}
-static void qglfResolveBindFramebuffer(GLenum target, GLuint framebuffer)
+static void QGLF_APIENTRY qglfResolveBindFramebuffer(GLenum target, GLuint framebuffer)
{
typedef void (QGLF_APIENTRYP type_glBindFramebuffer)(GLenum target, GLuint framebuffer);
@@ -1468,7 +1468,7 @@ static void qglfResolveBindFramebuffer(GLenum target, GLuint framebuffer)
funcs->bindFramebuffer = qglfResolveBindFramebuffer;
}
-static void qglfResolveBindRenderbuffer(GLenum target, GLuint renderbuffer)
+static void QGLF_APIENTRY qglfResolveBindRenderbuffer(GLenum target, GLuint renderbuffer)
{
typedef void (QGLF_APIENTRYP type_glBindRenderbuffer)(GLenum target, GLuint renderbuffer);
@@ -1498,7 +1498,7 @@ static void qglfResolveBindRenderbuffer(GLenum target, GLuint renderbuffer)
funcs->bindRenderbuffer = qglfResolveBindRenderbuffer;
}
-static void qglfResolveBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
+static void QGLF_APIENTRY qglfResolveBlendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha)
{
typedef void (QGLF_APIENTRYP type_glBlendColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
@@ -1528,7 +1528,7 @@ static void qglfResolveBlendColor(GLclampf red, GLclampf green, GLclampf blue, G
funcs->blendColor = qglfResolveBlendColor;
}
-static void qglfResolveBlendEquation(GLenum mode)
+static void QGLF_APIENTRY qglfResolveBlendEquation(GLenum mode)
{
typedef void (QGLF_APIENTRYP type_glBlendEquation)(GLenum mode);
@@ -1558,7 +1558,7 @@ static void qglfResolveBlendEquation(GLenum mode)
funcs->blendEquation = qglfResolveBlendEquation;
}
-static void qglfResolveBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
+static void QGLF_APIENTRY qglfResolveBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
{
typedef void (QGLF_APIENTRYP type_glBlendEquationSeparate)(GLenum modeRGB, GLenum modeAlpha);
@@ -1588,7 +1588,7 @@ static void qglfResolveBlendEquationSeparate(GLenum modeRGB, GLenum modeAlpha)
funcs->blendEquationSeparate = qglfResolveBlendEquationSeparate;
}
-static void qglfResolveBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
+static void QGLF_APIENTRY qglfResolveBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha)
{
typedef void (QGLF_APIENTRYP type_glBlendFuncSeparate)(GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha);
@@ -1618,7 +1618,7 @@ static void qglfResolveBlendFuncSeparate(GLenum srcRGB, GLenum dstRGB, GLenum sr
funcs->blendFuncSeparate = qglfResolveBlendFuncSeparate;
}
-static void qglfResolveBufferData(GLenum target, qgl_GLsizeiptr size, const void* data, GLenum usage)
+static void QGLF_APIENTRY qglfResolveBufferData(GLenum target, qgl_GLsizeiptr size, const void* data, GLenum usage)
{
typedef void (QGLF_APIENTRYP type_glBufferData)(GLenum target, qgl_GLsizeiptr size, const void* data, GLenum usage);
@@ -1648,7 +1648,7 @@ static void qglfResolveBufferData(GLenum target, qgl_GLsizeiptr size, const void
funcs->bufferData = qglfResolveBufferData;
}
-static void qglfResolveBufferSubData(GLenum target, qgl_GLintptr offset, qgl_GLsizeiptr size, const void* data)
+static void QGLF_APIENTRY qglfResolveBufferSubData(GLenum target, qgl_GLintptr offset, qgl_GLsizeiptr size, const void* data)
{
typedef void (QGLF_APIENTRYP type_glBufferSubData)(GLenum target, qgl_GLintptr offset, qgl_GLsizeiptr size, const void* data);
@@ -1678,7 +1678,7 @@ static void qglfResolveBufferSubData(GLenum target, qgl_GLintptr offset, qgl_GLs
funcs->bufferSubData = qglfResolveBufferSubData;
}
-static GLenum qglfResolveCheckFramebufferStatus(GLenum target)
+static GLenum QGLF_APIENTRY qglfResolveCheckFramebufferStatus(GLenum target)
{
typedef GLenum (QGLF_APIENTRYP type_glCheckFramebufferStatus)(GLenum target);
@@ -1708,7 +1708,7 @@ static GLenum qglfResolveCheckFramebufferStatus(GLenum target)
return GLenum(0);
}
-static void qglfResolveCompileShader(GLuint shader)
+static void QGLF_APIENTRY qglfResolveCompileShader(GLuint shader)
{
typedef void (QGLF_APIENTRYP type_glCompileShader)(GLuint shader);
@@ -1728,7 +1728,7 @@ static void qglfResolveCompileShader(GLuint shader)
funcs->compileShader = qglfResolveCompileShader;
}
-static void qglfResolveCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
+static void QGLF_APIENTRY qglfResolveCompressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data)
{
typedef void (QGLF_APIENTRYP type_glCompressedTexImage2D)(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const void* data);
@@ -1758,7 +1758,7 @@ static void qglfResolveCompressedTexImage2D(GLenum target, GLint level, GLenum i
funcs->compressedTexImage2D = qglfResolveCompressedTexImage2D;
}
-static void qglfResolveCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data)
+static void QGLF_APIENTRY qglfResolveCompressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data)
{
typedef void (QGLF_APIENTRYP type_glCompressedTexSubImage2D)(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void* data);
@@ -1788,7 +1788,7 @@ static void qglfResolveCompressedTexSubImage2D(GLenum target, GLint level, GLint
funcs->compressedTexSubImage2D = qglfResolveCompressedTexSubImage2D;
}
-static GLuint qglfResolveCreateProgram()
+static GLuint QGLF_APIENTRY qglfResolveCreateProgram()
{
typedef GLuint (QGLF_APIENTRYP type_glCreateProgram)();
@@ -1808,7 +1808,7 @@ static GLuint qglfResolveCreateProgram()
return GLuint(0);
}
-static GLuint qglfResolveCreateShader(GLenum type)
+static GLuint QGLF_APIENTRY qglfResolveCreateShader(GLenum type)
{
typedef GLuint (QGLF_APIENTRYP type_glCreateShader)(GLenum type);
@@ -1828,7 +1828,7 @@ static GLuint qglfResolveCreateShader(GLenum type)
return GLuint(0);
}
-static void qglfResolveDeleteBuffers(GLsizei n, const GLuint* buffers)
+static void QGLF_APIENTRY qglfResolveDeleteBuffers(GLsizei n, const GLuint* buffers)
{
typedef void (QGLF_APIENTRYP type_glDeleteBuffers)(GLsizei n, const GLuint* buffers);
@@ -1858,7 +1858,7 @@ static void qglfResolveDeleteBuffers(GLsizei n, const GLuint* buffers)
funcs->deleteBuffers = qglfResolveDeleteBuffers;
}
-static void qglfResolveDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
+static void QGLF_APIENTRY qglfResolveDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
{
typedef void (QGLF_APIENTRYP type_glDeleteFramebuffers)(GLsizei n, const GLuint* framebuffers);
@@ -1888,7 +1888,7 @@ static void qglfResolveDeleteFramebuffers(GLsizei n, const GLuint* framebuffers)
funcs->deleteFramebuffers = qglfResolveDeleteFramebuffers;
}
-static void qglfResolveDeleteProgram(GLuint program)
+static void QGLF_APIENTRY qglfResolveDeleteProgram(GLuint program)
{
typedef void (QGLF_APIENTRYP type_glDeleteProgram)(GLuint program);
@@ -1908,7 +1908,7 @@ static void qglfResolveDeleteProgram(GLuint program)
funcs->deleteProgram = qglfResolveDeleteProgram;
}
-static void qglfResolveDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
+static void QGLF_APIENTRY qglfResolveDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffers)
{
typedef void (QGLF_APIENTRYP type_glDeleteRenderbuffers)(GLsizei n, const GLuint* renderbuffers);
@@ -1938,7 +1938,7 @@ static void qglfResolveDeleteRenderbuffers(GLsizei n, const GLuint* renderbuffer
funcs->deleteRenderbuffers = qglfResolveDeleteRenderbuffers;
}
-static void qglfResolveDeleteShader(GLuint shader)
+static void QGLF_APIENTRY qglfResolveDeleteShader(GLuint shader)
{
typedef void (QGLF_APIENTRYP type_glDeleteShader)(GLuint shader);
@@ -1958,7 +1958,7 @@ static void qglfResolveDeleteShader(GLuint shader)
funcs->deleteShader = qglfResolveDeleteShader;
}
-static void qglfResolveDetachShader(GLuint program, GLuint shader)
+static void QGLF_APIENTRY qglfResolveDetachShader(GLuint program, GLuint shader)
{
typedef void (QGLF_APIENTRYP type_glDetachShader)(GLuint program, GLuint shader);
@@ -1978,7 +1978,7 @@ static void qglfResolveDetachShader(GLuint program, GLuint shader)
funcs->detachShader = qglfResolveDetachShader;
}
-static void qglfResolveDisableVertexAttribArray(GLuint index)
+static void QGLF_APIENTRY qglfResolveDisableVertexAttribArray(GLuint index)
{
typedef void (QGLF_APIENTRYP type_glDisableVertexAttribArray)(GLuint index);
@@ -1998,7 +1998,7 @@ static void qglfResolveDisableVertexAttribArray(GLuint index)
funcs->disableVertexAttribArray = qglfResolveDisableVertexAttribArray;
}
-static void qglfResolveEnableVertexAttribArray(GLuint index)
+static void QGLF_APIENTRY qglfResolveEnableVertexAttribArray(GLuint index)
{
typedef void (QGLF_APIENTRYP type_glEnableVertexAttribArray)(GLuint index);
@@ -2018,7 +2018,7 @@ static void qglfResolveEnableVertexAttribArray(GLuint index)
funcs->enableVertexAttribArray = qglfResolveEnableVertexAttribArray;
}
-static void qglfResolveFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
+static void QGLF_APIENTRY qglfResolveFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer)
{
typedef void (QGLF_APIENTRYP type_glFramebufferRenderbuffer)(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer);
@@ -2048,7 +2048,7 @@ static void qglfResolveFramebufferRenderbuffer(GLenum target, GLenum attachment,
funcs->framebufferRenderbuffer = qglfResolveFramebufferRenderbuffer;
}
-static void qglfResolveFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
+static void QGLF_APIENTRY qglfResolveFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level)
{
typedef void (QGLF_APIENTRYP type_glFramebufferTexture2D)(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level);
@@ -2078,7 +2078,7 @@ static void qglfResolveFramebufferTexture2D(GLenum target, GLenum attachment, GL
funcs->framebufferTexture2D = qglfResolveFramebufferTexture2D;
}
-static void qglfResolveGenBuffers(GLsizei n, GLuint* buffers)
+static void QGLF_APIENTRY qglfResolveGenBuffers(GLsizei n, GLuint* buffers)
{
typedef void (QGLF_APIENTRYP type_glGenBuffers)(GLsizei n, GLuint* buffers);
@@ -2108,7 +2108,7 @@ static void qglfResolveGenBuffers(GLsizei n, GLuint* buffers)
funcs->genBuffers = qglfResolveGenBuffers;
}
-static void qglfResolveGenerateMipmap(GLenum target)
+static void QGLF_APIENTRY qglfResolveGenerateMipmap(GLenum target)
{
typedef void (QGLF_APIENTRYP type_glGenerateMipmap)(GLenum target);
@@ -2138,7 +2138,7 @@ static void qglfResolveGenerateMipmap(GLenum target)
funcs->generateMipmap = qglfResolveGenerateMipmap;
}
-static void qglfResolveGenFramebuffers(GLsizei n, GLuint* framebuffers)
+static void QGLF_APIENTRY qglfResolveGenFramebuffers(GLsizei n, GLuint* framebuffers)
{
typedef void (QGLF_APIENTRYP type_glGenFramebuffers)(GLsizei n, GLuint* framebuffers);
@@ -2168,7 +2168,7 @@ static void qglfResolveGenFramebuffers(GLsizei n, GLuint* framebuffers)
funcs->genFramebuffers = qglfResolveGenFramebuffers;
}
-static void qglfResolveGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
+static void QGLF_APIENTRY qglfResolveGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
{
typedef void (QGLF_APIENTRYP type_glGenRenderbuffers)(GLsizei n, GLuint* renderbuffers);
@@ -2198,7 +2198,7 @@ static void qglfResolveGenRenderbuffers(GLsizei n, GLuint* renderbuffers)
funcs->genRenderbuffers = qglfResolveGenRenderbuffers;
}
-static void qglfResolveGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
+static void QGLF_APIENTRY qglfResolveGetActiveAttrib(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
{
typedef void (QGLF_APIENTRYP type_glGetActiveAttrib)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
@@ -2218,7 +2218,7 @@ static void qglfResolveGetActiveAttrib(GLuint program, GLuint index, GLsizei buf
funcs->getActiveAttrib = qglfResolveGetActiveAttrib;
}
-static void qglfResolveGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
+static void QGLF_APIENTRY qglfResolveGetActiveUniform(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name)
{
typedef void (QGLF_APIENTRYP type_glGetActiveUniform)(GLuint program, GLuint index, GLsizei bufsize, GLsizei* length, GLint* size, GLenum* type, char* name);
@@ -2238,7 +2238,7 @@ static void qglfResolveGetActiveUniform(GLuint program, GLuint index, GLsizei bu
funcs->getActiveUniform = qglfResolveGetActiveUniform;
}
-static void qglfResolveGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
+static void QGLF_APIENTRY qglfResolveGetAttachedShaders(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders)
{
typedef void (QGLF_APIENTRYP type_glGetAttachedShaders)(GLuint program, GLsizei maxcount, GLsizei* count, GLuint* shaders);
@@ -2258,7 +2258,7 @@ static void qglfResolveGetAttachedShaders(GLuint program, GLsizei maxcount, GLsi
funcs->getAttachedShaders = qglfResolveGetAttachedShaders;
}
-static int qglfResolveGetAttribLocation(GLuint program, const char* name)
+static int QGLF_APIENTRY qglfResolveGetAttribLocation(GLuint program, const char* name)
{
typedef int (QGLF_APIENTRYP type_glGetAttribLocation)(GLuint program, const char* name);
@@ -2278,7 +2278,7 @@ static int qglfResolveGetAttribLocation(GLuint program, const char* name)
return int(0);
}
-static void qglfResolveGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
+static void QGLF_APIENTRY qglfResolveGetBufferParameteriv(GLenum target, GLenum pname, GLint* params)
{
typedef void (QGLF_APIENTRYP type_glGetBufferParameteriv)(GLenum target, GLenum pname, GLint* params);
@@ -2308,7 +2308,7 @@ static void qglfResolveGetBufferParameteriv(GLenum target, GLenum pname, GLint*
funcs->getBufferParameteriv = qglfResolveGetBufferParameteriv;
}
-static void qglfResolveGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
+static void QGLF_APIENTRY qglfResolveGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint* params)
{
typedef void (QGLF_APIENTRYP type_glGetFramebufferAttachmentParameteriv)(GLenum target, GLenum attachment, GLenum pname, GLint* params);
@@ -2338,7 +2338,7 @@ static void qglfResolveGetFramebufferAttachmentParameteriv(GLenum target, GLenum
funcs->getFramebufferAttachmentParameteriv = qglfResolveGetFramebufferAttachmentParameteriv;
}
-static void qglfResolveGetProgramiv(GLuint program, GLenum pname, GLint* params)
+static void QGLF_APIENTRY qglfResolveGetProgramiv(GLuint program, GLenum pname, GLint* params)
{
typedef void (QGLF_APIENTRYP type_glGetProgramiv)(GLuint program, GLenum pname, GLint* params);
@@ -2358,7 +2358,7 @@ static void qglfResolveGetProgramiv(GLuint program, GLenum pname, GLint* params)
funcs->getProgramiv = qglfResolveGetProgramiv;
}
-static void qglfResolveGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog)
+static void QGLF_APIENTRY qglfResolveGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog)
{
typedef void (QGLF_APIENTRYP type_glGetProgramInfoLog)(GLuint program, GLsizei bufsize, GLsizei* length, char* infolog);
@@ -2378,7 +2378,7 @@ static void qglfResolveGetProgramInfoLog(GLuint program, GLsizei bufsize, GLsize
funcs->getProgramInfoLog = qglfResolveGetProgramInfoLog;
}
-static void qglfResolveGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
+static void QGLF_APIENTRY qglfResolveGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint* params)
{
typedef void (QGLF_APIENTRYP type_glGetRenderbufferParameteriv)(GLenum target, GLenum pname, GLint* params);
@@ -2408,7 +2408,7 @@ static void qglfResolveGetRenderbufferParameteriv(GLenum target, GLenum pname, G
funcs->getRenderbufferParameteriv = qglfResolveGetRenderbufferParameteriv;
}
-static void qglfResolveGetShaderiv(GLuint shader, GLenum pname, GLint* params)
+static void QGLF_APIENTRY qglfResolveGetShaderiv(GLuint shader, GLenum pname, GLint* params)
{
typedef void (QGLF_APIENTRYP type_glGetShaderiv)(GLuint shader, GLenum pname, GLint* params);
@@ -2428,7 +2428,7 @@ static void qglfResolveGetShaderiv(GLuint shader, GLenum pname, GLint* params)
funcs->getShaderiv = qglfResolveGetShaderiv;
}
-static void qglfResolveGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog)
+static void QGLF_APIENTRY qglfResolveGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog)
{
typedef void (QGLF_APIENTRYP type_glGetShaderInfoLog)(GLuint shader, GLsizei bufsize, GLsizei* length, char* infolog);
@@ -2448,14 +2448,14 @@ static void qglfResolveGetShaderInfoLog(GLuint shader, GLsizei bufsize, GLsizei*
funcs->getShaderInfoLog = qglfResolveGetShaderInfoLog;
}
-static void qglfSpecialGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
+static void QGLF_APIENTRY qglfSpecialGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
{
Q_UNUSED(shadertype);
Q_UNUSED(precisiontype);
range[0] = range[1] = precision[0] = 0;
}
-static void qglfResolveGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
+static void QGLF_APIENTRY qglfResolveGetShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision)
{
typedef void (QGLF_APIENTRYP type_glGetShaderPrecisionFormat)(GLenum shadertype, GLenum precisiontype, GLint* range, GLint* precision);
@@ -2485,7 +2485,7 @@ static void qglfResolveGetShaderPrecisionFormat(GLenum shadertype, GLenum precis
funcs->getShaderPrecisionFormat(shadertype, precisiontype, range, precision);
}
-static void qglfResolveGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source)
+static void QGLF_APIENTRY qglfResolveGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei* length, char* source)
{
typedef void (QGLF_APIENTRYP type_glGetShaderSource)(GLuint shader, GLsizei bufsize, GLsizei* length, char* source);
@@ -2505,7 +2505,7 @@ static void qglfResolveGetShaderSource(GLuint shader, GLsizei bufsize, GLsizei*
funcs->getShaderSource = qglfResolveGetShaderSource;
}
-static void qglfResolveGetUniformfv(GLuint program, GLint location, GLfloat* params)
+static void QGLF_APIENTRY qglfResolveGetUniformfv(GLuint program, GLint location, GLfloat* params)
{
typedef void (QGLF_APIENTRYP type_glGetUniformfv)(GLuint program, GLint location, GLfloat* params);
@@ -2525,7 +2525,7 @@ static void qglfResolveGetUniformfv(GLuint program, GLint location, GLfloat* par
funcs->getUniformfv = qglfResolveGetUniformfv;
}
-static void qglfResolveGetUniformiv(GLuint program, GLint location, GLint* params)
+static void QGLF_APIENTRY qglfResolveGetUniformiv(GLuint program, GLint location, GLint* params)
{
typedef void (QGLF_APIENTRYP type_glGetUniformiv)(GLuint program, GLint location, GLint* params);
@@ -2545,7 +2545,7 @@ static void qglfResolveGetUniformiv(GLuint program, GLint location, GLint* param
funcs->getUniformiv = qglfResolveGetUniformiv;
}
-static int qglfResolveGetUniformLocation(GLuint program, const char* name)
+static int QGLF_APIENTRY qglfResolveGetUniformLocation(GLuint program, const char* name)
{
typedef int (QGLF_APIENTRYP type_glGetUniformLocation)(GLuint program, const char* name);
@@ -2565,7 +2565,7 @@ static int qglfResolveGetUniformLocation(GLuint program, const char* name)
return int(0);
}
-static void qglfResolveGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
+static void QGLF_APIENTRY qglfResolveGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* params)
{
typedef void (QGLF_APIENTRYP type_glGetVertexAttribfv)(GLuint index, GLenum pname, GLfloat* params);
@@ -2585,7 +2585,7 @@ static void qglfResolveGetVertexAttribfv(GLuint index, GLenum pname, GLfloat* pa
funcs->getVertexAttribfv = qglfResolveGetVertexAttribfv;
}
-static void qglfResolveGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
+static void QGLF_APIENTRY qglfResolveGetVertexAttribiv(GLuint index, GLenum pname, GLint* params)
{
typedef void (QGLF_APIENTRYP type_glGetVertexAttribiv)(GLuint index, GLenum pname, GLint* params);
@@ -2605,7 +2605,7 @@ static void qglfResolveGetVertexAttribiv(GLuint index, GLenum pname, GLint* para
funcs->getVertexAttribiv = qglfResolveGetVertexAttribiv;
}
-static void qglfResolveGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer)
+static void QGLF_APIENTRY qglfResolveGetVertexAttribPointerv(GLuint index, GLenum pname, void** pointer)
{
typedef void (QGLF_APIENTRYP type_glGetVertexAttribPointerv)(GLuint index, GLenum pname, void** pointer);
@@ -2625,7 +2625,7 @@ static void qglfResolveGetVertexAttribPointerv(GLuint index, GLenum pname, void*
funcs->getVertexAttribPointerv = qglfResolveGetVertexAttribPointerv;
}
-static GLboolean qglfResolveIsBuffer(GLuint buffer)
+static GLboolean QGLF_APIENTRY qglfResolveIsBuffer(GLuint buffer)
{
typedef GLboolean (QGLF_APIENTRYP type_glIsBuffer)(GLuint buffer);
@@ -2655,7 +2655,7 @@ static GLboolean qglfResolveIsBuffer(GLuint buffer)
return GLboolean(0);
}
-static GLboolean qglfResolveIsFramebuffer(GLuint framebuffer)
+static GLboolean QGLF_APIENTRY qglfResolveIsFramebuffer(GLuint framebuffer)
{
typedef GLboolean (QGLF_APIENTRYP type_glIsFramebuffer)(GLuint framebuffer);
@@ -2685,12 +2685,12 @@ static GLboolean qglfResolveIsFramebuffer(GLuint framebuffer)
return GLboolean(0);
}
-static GLboolean qglfSpecialIsProgram(GLuint program)
+static GLboolean QGLF_APIENTRY qglfSpecialIsProgram(GLuint program)
{
return program != 0;
}
-static GLboolean qglfResolveIsProgram(GLuint program)
+static GLboolean QGLF_APIENTRY qglfResolveIsProgram(GLuint program)
{
typedef GLboolean (QGLF_APIENTRYP type_glIsProgram)(GLuint program);
@@ -2710,7 +2710,7 @@ static GLboolean qglfResolveIsProgram(GLuint program)
return funcs->isProgram(program);
}
-static GLboolean qglfResolveIsRenderbuffer(GLuint renderbuffer)
+static GLboolean QGLF_APIENTRY qglfResolveIsRenderbuffer(GLuint renderbuffer)
{
typedef GLboolean (QGLF_APIENTRYP type_glIsRenderbuffer)(GLuint renderbuffer);
@@ -2740,12 +2740,12 @@ static GLboolean qglfResolveIsRenderbuffer(GLuint renderbuffer)
return GLboolean(0);
}
-static GLboolean qglfSpecialIsShader(GLuint shader)
+static GLboolean QGLF_APIENTRY qglfSpecialIsShader(GLuint shader)
{
return shader != 0;
}
-static GLboolean qglfResolveIsShader(GLuint shader)
+static GLboolean QGLF_APIENTRY qglfResolveIsShader(GLuint shader)
{
typedef GLboolean (QGLF_APIENTRYP type_glIsShader)(GLuint shader);
@@ -2765,7 +2765,7 @@ static GLboolean qglfResolveIsShader(GLuint shader)
return funcs->isShader(shader);
}
-static void qglfResolveLinkProgram(GLuint program)
+static void QGLF_APIENTRY qglfResolveLinkProgram(GLuint program)
{
typedef void (QGLF_APIENTRYP type_glLinkProgram)(GLuint program);
@@ -2785,11 +2785,11 @@ static void qglfResolveLinkProgram(GLuint program)
funcs->linkProgram = qglfResolveLinkProgram;
}
-static void qglfSpecialReleaseShaderCompiler()
+static void QGLF_APIENTRY qglfSpecialReleaseShaderCompiler()
{
}
-static void qglfResolveReleaseShaderCompiler()
+static void QGLF_APIENTRY qglfResolveReleaseShaderCompiler()
{
typedef void (QGLF_APIENTRYP type_glReleaseShaderCompiler)();
@@ -2809,7 +2809,7 @@ static void qglfResolveReleaseShaderCompiler()
funcs->releaseShaderCompiler();
}
-static void qglfResolveRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
+static void QGLF_APIENTRY qglfResolveRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height)
{
typedef void (QGLF_APIENTRYP type_glRenderbufferStorage)(GLenum target, GLenum internalformat, GLsizei width, GLsizei height);
@@ -2839,7 +2839,7 @@ static void qglfResolveRenderbufferStorage(GLenum target, GLenum internalformat,
funcs->renderbufferStorage = qglfResolveRenderbufferStorage;
}
-static void qglfResolveSampleCoverage(GLclampf value, GLboolean invert)
+static void QGLF_APIENTRY qglfResolveSampleCoverage(GLclampf value, GLboolean invert)
{
typedef void (QGLF_APIENTRYP type_glSampleCoverage)(GLclampf value, GLboolean invert);
@@ -2869,7 +2869,7 @@ static void qglfResolveSampleCoverage(GLclampf value, GLboolean invert)
funcs->sampleCoverage = qglfResolveSampleCoverage;
}
-static void qglfResolveShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length)
+static void QGLF_APIENTRY qglfResolveShaderBinary(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length)
{
typedef void (QGLF_APIENTRYP type_glShaderBinary)(GLint n, const GLuint* shaders, GLenum binaryformat, const void* binary, GLint length);
@@ -2889,7 +2889,7 @@ static void qglfResolveShaderBinary(GLint n, const GLuint* shaders, GLenum binar
funcs->shaderBinary = qglfResolveShaderBinary;
}
-static void qglfResolveShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
+static void QGLF_APIENTRY qglfResolveShaderSource(GLuint shader, GLsizei count, const char** string, const GLint* length)
{
typedef void (QGLF_APIENTRYP type_glShaderSource)(GLuint shader, GLsizei count, const char** string, const GLint* length);
@@ -2909,7 +2909,7 @@ static void qglfResolveShaderSource(GLuint shader, GLsizei count, const char** s
funcs->shaderSource = qglfResolveShaderSource;
}
-static void qglfResolveStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
+static void QGLF_APIENTRY qglfResolveStencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
{
typedef void (QGLF_APIENTRYP type_glStencilFuncSeparate)(GLenum face, GLenum func, GLint ref, GLuint mask);
@@ -2939,7 +2939,7 @@ static void qglfResolveStencilFuncSeparate(GLenum face, GLenum func, GLint ref,
funcs->stencilFuncSeparate = qglfResolveStencilFuncSeparate;
}
-static void qglfResolveStencilMaskSeparate(GLenum face, GLuint mask)
+static void QGLF_APIENTRY qglfResolveStencilMaskSeparate(GLenum face, GLuint mask)
{
typedef void (QGLF_APIENTRYP type_glStencilMaskSeparate)(GLenum face, GLuint mask);
@@ -2969,7 +2969,7 @@ static void qglfResolveStencilMaskSeparate(GLenum face, GLuint mask)
funcs->stencilMaskSeparate = qglfResolveStencilMaskSeparate;
}
-static void qglfResolveStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
+static void QGLF_APIENTRY qglfResolveStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass)
{
typedef void (QGLF_APIENTRYP type_glStencilOpSeparate)(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
@@ -2999,7 +2999,7 @@ static void qglfResolveStencilOpSeparate(GLenum face, GLenum fail, GLenum zfail,
funcs->stencilOpSeparate = qglfResolveStencilOpSeparate;
}
-static void qglfResolveUniform1f(GLint location, GLfloat x)
+static void QGLF_APIENTRY qglfResolveUniform1f(GLint location, GLfloat x)
{
typedef void (QGLF_APIENTRYP type_glUniform1f)(GLint location, GLfloat x);
@@ -3019,7 +3019,7 @@ static void qglfResolveUniform1f(GLint location, GLfloat x)
funcs->uniform1f = qglfResolveUniform1f;
}
-static void qglfResolveUniform1fv(GLint location, GLsizei count, const GLfloat* v)
+static void QGLF_APIENTRY qglfResolveUniform1fv(GLint location, GLsizei count, const GLfloat* v)
{
typedef void (QGLF_APIENTRYP type_glUniform1fv)(GLint location, GLsizei count, const GLfloat* v);
@@ -3039,7 +3039,7 @@ static void qglfResolveUniform1fv(GLint location, GLsizei count, const GLfloat*
funcs->uniform1fv = qglfResolveUniform1fv;
}
-static void qglfResolveUniform1i(GLint location, GLint x)
+static void QGLF_APIENTRY qglfResolveUniform1i(GLint location, GLint x)
{
typedef void (QGLF_APIENTRYP type_glUniform1i)(GLint location, GLint x);
@@ -3059,7 +3059,7 @@ static void qglfResolveUniform1i(GLint location, GLint x)
funcs->uniform1i = qglfResolveUniform1i;
}
-static void qglfResolveUniform1iv(GLint location, GLsizei count, const GLint* v)
+static void QGLF_APIENTRY qglfResolveUniform1iv(GLint location, GLsizei count, const GLint* v)
{
typedef void (QGLF_APIENTRYP type_glUniform1iv)(GLint location, GLsizei count, const GLint* v);
@@ -3079,7 +3079,7 @@ static void qglfResolveUniform1iv(GLint location, GLsizei count, const GLint* v)
funcs->uniform1iv = qglfResolveUniform1iv;
}
-static void qglfResolveUniform2f(GLint location, GLfloat x, GLfloat y)
+static void QGLF_APIENTRY qglfResolveUniform2f(GLint location, GLfloat x, GLfloat y)
{
typedef void (QGLF_APIENTRYP type_glUniform2f)(GLint location, GLfloat x, GLfloat y);
@@ -3099,7 +3099,7 @@ static void qglfResolveUniform2f(GLint location, GLfloat x, GLfloat y)
funcs->uniform2f = qglfResolveUniform2f;
}
-static void qglfResolveUniform2fv(GLint location, GLsizei count, const GLfloat* v)
+static void QGLF_APIENTRY qglfResolveUniform2fv(GLint location, GLsizei count, const GLfloat* v)
{
typedef void (QGLF_APIENTRYP type_glUniform2fv)(GLint location, GLsizei count, const GLfloat* v);
@@ -3119,7 +3119,7 @@ static void qglfResolveUniform2fv(GLint location, GLsizei count, const GLfloat*
funcs->uniform2fv = qglfResolveUniform2fv;
}
-static void qglfResolveUniform2i(GLint location, GLint x, GLint y)
+static void QGLF_APIENTRY qglfResolveUniform2i(GLint location, GLint x, GLint y)
{
typedef void (QGLF_APIENTRYP type_glUniform2i)(GLint location, GLint x, GLint y);
@@ -3139,7 +3139,7 @@ static void qglfResolveUniform2i(GLint location, GLint x, GLint y)
funcs->uniform2i = qglfResolveUniform2i;
}
-static void qglfResolveUniform2iv(GLint location, GLsizei count, const GLint* v)
+static void QGLF_APIENTRY qglfResolveUniform2iv(GLint location, GLsizei count, const GLint* v)
{
typedef void (QGLF_APIENTRYP type_glUniform2iv)(GLint location, GLsizei count, const GLint* v);
@@ -3159,7 +3159,7 @@ static void qglfResolveUniform2iv(GLint location, GLsizei count, const GLint* v)
funcs->uniform2iv = qglfResolveUniform2iv;
}
-static void qglfResolveUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
+static void QGLF_APIENTRY qglfResolveUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z)
{
typedef void (QGLF_APIENTRYP type_glUniform3f)(GLint location, GLfloat x, GLfloat y, GLfloat z);
@@ -3179,7 +3179,7 @@ static void qglfResolveUniform3f(GLint location, GLfloat x, GLfloat y, GLfloat z
funcs->uniform3f = qglfResolveUniform3f;
}
-static void qglfResolveUniform3fv(GLint location, GLsizei count, const GLfloat* v)
+static void QGLF_APIENTRY qglfResolveUniform3fv(GLint location, GLsizei count, const GLfloat* v)
{
typedef void (QGLF_APIENTRYP type_glUniform3fv)(GLint location, GLsizei count, const GLfloat* v);
@@ -3199,7 +3199,7 @@ static void qglfResolveUniform3fv(GLint location, GLsizei count, const GLfloat*
funcs->uniform3fv = qglfResolveUniform3fv;
}
-static void qglfResolveUniform3i(GLint location, GLint x, GLint y, GLint z)
+static void QGLF_APIENTRY qglfResolveUniform3i(GLint location, GLint x, GLint y, GLint z)
{
typedef void (QGLF_APIENTRYP type_glUniform3i)(GLint location, GLint x, GLint y, GLint z);
@@ -3219,7 +3219,7 @@ static void qglfResolveUniform3i(GLint location, GLint x, GLint y, GLint z)
funcs->uniform3i = qglfResolveUniform3i;
}
-static void qglfResolveUniform3iv(GLint location, GLsizei count, const GLint* v)
+static void QGLF_APIENTRY qglfResolveUniform3iv(GLint location, GLsizei count, const GLint* v)
{
typedef void (QGLF_APIENTRYP type_glUniform3iv)(GLint location, GLsizei count, const GLint* v);
@@ -3239,7 +3239,7 @@ static void qglfResolveUniform3iv(GLint location, GLsizei count, const GLint* v)
funcs->uniform3iv = qglfResolveUniform3iv;
}
-static void qglfResolveUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+static void QGLF_APIENTRY qglfResolveUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
{
typedef void (QGLF_APIENTRYP type_glUniform4f)(GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
@@ -3259,7 +3259,7 @@ static void qglfResolveUniform4f(GLint location, GLfloat x, GLfloat y, GLfloat z
funcs->uniform4f = qglfResolveUniform4f;
}
-static void qglfResolveUniform4fv(GLint location, GLsizei count, const GLfloat* v)
+static void QGLF_APIENTRY qglfResolveUniform4fv(GLint location, GLsizei count, const GLfloat* v)
{
typedef void (QGLF_APIENTRYP type_glUniform4fv)(GLint location, GLsizei count, const GLfloat* v);
@@ -3279,7 +3279,7 @@ static void qglfResolveUniform4fv(GLint location, GLsizei count, const GLfloat*
funcs->uniform4fv = qglfResolveUniform4fv;
}
-static void qglfResolveUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
+static void QGLF_APIENTRY qglfResolveUniform4i(GLint location, GLint x, GLint y, GLint z, GLint w)
{
typedef void (QGLF_APIENTRYP type_glUniform4i)(GLint location, GLint x, GLint y, GLint z, GLint w);
@@ -3299,7 +3299,7 @@ static void qglfResolveUniform4i(GLint location, GLint x, GLint y, GLint z, GLin
funcs->uniform4i = qglfResolveUniform4i;
}
-static void qglfResolveUniform4iv(GLint location, GLsizei count, const GLint* v)
+static void QGLF_APIENTRY qglfResolveUniform4iv(GLint location, GLsizei count, const GLint* v)
{
typedef void (QGLF_APIENTRYP type_glUniform4iv)(GLint location, GLsizei count, const GLint* v);
@@ -3319,7 +3319,7 @@ static void qglfResolveUniform4iv(GLint location, GLsizei count, const GLint* v)
funcs->uniform4iv = qglfResolveUniform4iv;
}
-static void qglfResolveUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+static void QGLF_APIENTRY qglfResolveUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
typedef void (QGLF_APIENTRYP type_glUniformMatrix2fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
@@ -3339,7 +3339,7 @@ static void qglfResolveUniformMatrix2fv(GLint location, GLsizei count, GLboolean
funcs->uniformMatrix2fv = qglfResolveUniformMatrix2fv;
}
-static void qglfResolveUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+static void QGLF_APIENTRY qglfResolveUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
typedef void (QGLF_APIENTRYP type_glUniformMatrix3fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
@@ -3359,7 +3359,7 @@ static void qglfResolveUniformMatrix3fv(GLint location, GLsizei count, GLboolean
funcs->uniformMatrix3fv = qglfResolveUniformMatrix3fv;
}
-static void qglfResolveUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
+static void QGLF_APIENTRY qglfResolveUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value)
{
typedef void (QGLF_APIENTRYP type_glUniformMatrix4fv)(GLint location, GLsizei count, GLboolean transpose, const GLfloat* value);
@@ -3379,7 +3379,7 @@ static void qglfResolveUniformMatrix4fv(GLint location, GLsizei count, GLboolean
funcs->uniformMatrix4fv = qglfResolveUniformMatrix4fv;
}
-static void qglfResolveUseProgram(GLuint program)
+static void QGLF_APIENTRY qglfResolveUseProgram(GLuint program)
{
typedef void (QGLF_APIENTRYP type_glUseProgram)(GLuint program);
@@ -3399,7 +3399,7 @@ static void qglfResolveUseProgram(GLuint program)
funcs->useProgram = qglfResolveUseProgram;
}
-static void qglfResolveValidateProgram(GLuint program)
+static void QGLF_APIENTRY qglfResolveValidateProgram(GLuint program)
{
typedef void (QGLF_APIENTRYP type_glValidateProgram)(GLuint program);
@@ -3419,7 +3419,7 @@ static void qglfResolveValidateProgram(GLuint program)
funcs->validateProgram = qglfResolveValidateProgram;
}
-static void qglfResolveVertexAttrib1f(GLuint indx, GLfloat x)
+static void QGLF_APIENTRY qglfResolveVertexAttrib1f(GLuint indx, GLfloat x)
{
typedef void (QGLF_APIENTRYP type_glVertexAttrib1f)(GLuint indx, GLfloat x);
@@ -3439,7 +3439,7 @@ static void qglfResolveVertexAttrib1f(GLuint indx, GLfloat x)
funcs->vertexAttrib1f = qglfResolveVertexAttrib1f;
}
-static void qglfResolveVertexAttrib1fv(GLuint indx, const GLfloat* values)
+static void QGLF_APIENTRY qglfResolveVertexAttrib1fv(GLuint indx, const GLfloat* values)
{
typedef void (QGLF_APIENTRYP type_glVertexAttrib1fv)(GLuint indx, const GLfloat* values);
@@ -3459,7 +3459,7 @@ static void qglfResolveVertexAttrib1fv(GLuint indx, const GLfloat* values)
funcs->vertexAttrib1fv = qglfResolveVertexAttrib1fv;
}
-static void qglfResolveVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
+static void QGLF_APIENTRY qglfResolveVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
{
typedef void (QGLF_APIENTRYP type_glVertexAttrib2f)(GLuint indx, GLfloat x, GLfloat y);
@@ -3479,7 +3479,7 @@ static void qglfResolveVertexAttrib2f(GLuint indx, GLfloat x, GLfloat y)
funcs->vertexAttrib2f = qglfResolveVertexAttrib2f;
}
-static void qglfResolveVertexAttrib2fv(GLuint indx, const GLfloat* values)
+static void QGLF_APIENTRY qglfResolveVertexAttrib2fv(GLuint indx, const GLfloat* values)
{
typedef void (QGLF_APIENTRYP type_glVertexAttrib2fv)(GLuint indx, const GLfloat* values);
@@ -3499,7 +3499,7 @@ static void qglfResolveVertexAttrib2fv(GLuint indx, const GLfloat* values)
funcs->vertexAttrib2fv = qglfResolveVertexAttrib2fv;
}
-static void qglfResolveVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
+static void QGLF_APIENTRY qglfResolveVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z)
{
typedef void (QGLF_APIENTRYP type_glVertexAttrib3f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
@@ -3519,7 +3519,7 @@ static void qglfResolveVertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat
funcs->vertexAttrib3f = qglfResolveVertexAttrib3f;
}
-static void qglfResolveVertexAttrib3fv(GLuint indx, const GLfloat* values)
+static void QGLF_APIENTRY qglfResolveVertexAttrib3fv(GLuint indx, const GLfloat* values)
{
typedef void (QGLF_APIENTRYP type_glVertexAttrib3fv)(GLuint indx, const GLfloat* values);
@@ -3539,7 +3539,7 @@ static void qglfResolveVertexAttrib3fv(GLuint indx, const GLfloat* values)
funcs->vertexAttrib3fv = qglfResolveVertexAttrib3fv;
}
-static void qglfResolveVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
+static void QGLF_APIENTRY qglfResolveVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w)
{
typedef void (QGLF_APIENTRYP type_glVertexAttrib4f)(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
@@ -3559,7 +3559,7 @@ static void qglfResolveVertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat
funcs->vertexAttrib4f = qglfResolveVertexAttrib4f;
}
-static void qglfResolveVertexAttrib4fv(GLuint indx, const GLfloat* values)
+static void QGLF_APIENTRY qglfResolveVertexAttrib4fv(GLuint indx, const GLfloat* values)
{
typedef void (QGLF_APIENTRYP type_glVertexAttrib4fv)(GLuint indx, const GLfloat* values);
@@ -3579,7 +3579,7 @@ static void qglfResolveVertexAttrib4fv(GLuint indx, const GLfloat* values)
funcs->vertexAttrib4fv = qglfResolveVertexAttrib4fv;
}
-static void qglfResolveVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr)
+static void QGLF_APIENTRY qglfResolveVertexAttribPointer(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr)
{
typedef void (QGLF_APIENTRYP type_glVertexAttribPointer)(GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr);
diff --git a/src/opengl/qglfunctions.h b/src/opengl/qglfunctions.h
index 44d9bad9fa..759af4f939 100644
--- a/src/opengl/qglfunctions.h
+++ b/src/opengl/qglfunctions.h
@@ -59,6 +59,10 @@ QT_MODULE(OpenGL)
typedef ptrdiff_t qgl_GLintptr;
typedef ptrdiff_t qgl_GLsizeiptr;
+#ifdef Q_WS_WIN
+# define QGLF_APIENTRY APIENTRY
+#endif
+
#ifndef Q_WS_MAC
# ifndef QGLF_APIENTRYP
# ifdef QGLF_APIENTRY
@@ -1945,6 +1949,9 @@ inline void QGLFunctions::glVertexAttribPointer(GLuint indx, GLint size, GLenum
#ifndef GL_RGBA4
#define GL_RGBA4 0x8056
#endif
+#ifndef GL_BGRA
+#define GL_BGRA 0x80E1
+#endif
#ifndef GL_SAMPLE_ALPHA_TO_COVERAGE
#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E
#endif
diff --git a/src/opengl/qglpaintdevice_p.h b/src/opengl/qglpaintdevice_p.h
index f4176fb2e7..241e3091c6 100644
--- a/src/opengl/qglpaintdevice_p.h
+++ b/src/opengl/qglpaintdevice_p.h
@@ -90,7 +90,7 @@ protected:
// Wraps a QGLWidget
class QGLWidget;
-class QGLWidgetGLPaintDevice : public QGLPaintDevice
+class Q_OPENGL_EXPORT QGLWidgetGLPaintDevice : public QGLPaintDevice
{
public:
QGLWidgetGLPaintDevice();