209 lines
6.1 KiB
Plaintext
209 lines
6.1 KiB
Plaintext
|
/****************************************************************************
|
||
|
**
|
||
|
** Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
|
||
|
** Contact: http://www.qt-project.org/legal
|
||
|
**
|
||
|
** This file is part of the QtGui module of the Qt Toolkit.
|
||
|
**
|
||
|
** $QT_BEGIN_LICENSE:LGPL$
|
||
|
** Commercial License Usage
|
||
|
** Licensees holding valid commercial Qt licenses may use this file in
|
||
|
** accordance with the commercial license agreement provided with the
|
||
|
** Software or, alternatively, in accordance with the terms contained in
|
||
|
** a written agreement between you and Digia. For licensing terms and
|
||
|
** conditions see http://qt.digia.com/licensing. For further information
|
||
|
** use the contact form at http://qt.digia.com/contact-us.
|
||
|
**
|
||
|
** GNU Lesser General Public License Usage
|
||
|
** Alternatively, this file may be used under the terms of the GNU Lesser
|
||
|
** General Public License version 2.1 as published by the Free Software
|
||
|
** Foundation and appearing in the file LICENSE.LGPL included in the
|
||
|
** packaging of this file. Please review the following information to
|
||
|
** ensure the GNU Lesser General Public License version 2.1 requirements
|
||
|
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||
|
**
|
||
|
** In addition, as a special exception, Digia gives you certain additional
|
||
|
** rights. These rights are described in the Digia Qt LGPL Exception
|
||
|
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
|
||
|
**
|
||
|
** GNU General Public License Usage
|
||
|
** Alternatively, this file may be used under the terms of the GNU
|
||
|
** General Public License version 3.0 as published by the Free Software
|
||
|
** Foundation and appearing in the file LICENSE.GPL included in the
|
||
|
** packaging of this file. Please review the following information to
|
||
|
** ensure the GNU General Public License version 3.0 requirements will be
|
||
|
** met: http://www.gnu.org/copyleft/gpl.html.
|
||
|
**
|
||
|
**
|
||
|
** $QT_END_LICENSE$
|
||
|
**
|
||
|
**
|
||
|
** This file was generated by glgen version 0.1
|
||
|
** Command line was: glgen
|
||
|
**
|
||
|
** glgen is Copyright (C) 2013 Klaralvdalens Datakonsult AB (KDAB)
|
||
|
**
|
||
|
** This is an auto-generated file.
|
||
|
** Do not edit! All changes made to it will be lost.
|
||
|
**
|
||
|
****************************************************************************/
|
||
|
|
||
|
#ifndef QOPENGLEXTENSIONS_H
|
||
|
#define QOPENGLEXTENSIONS_H
|
||
|
|
||
|
#ifndef QT_NO_OPENGL
|
||
|
|
||
|
#include <QtCore/QtGlobal>
|
||
|
#include <QtGui/qopengl.h>
|
||
|
|
||
|
class QOpenGLContext;
|
||
|
|
||
|
QT_BEGIN_NAMESPACE
|
||
|
|
||
|
#if 0
|
||
|
// silence syncqt warnings
|
||
|
#pragma qt_class(QOpenGLExtensions)
|
||
|
#pragma qt_sync_stop_processing
|
||
|
#endif
|
||
|
|
||
|
#if !defined(QT_OPENGL_ES_2)
|
||
|
// This block is copied from glext.h and defines the types needed by
|
||
|
// a few extension classes. This may need updating in glgen when a new
|
||
|
// OpenGL release is made and this file is regenerated.
|
||
|
|
||
|
#include <stddef.h>
|
||
|
#ifndef GL_VERSION_2_0
|
||
|
/* GL type for program/shader text */
|
||
|
typedef char GLchar;
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_VERSION_1_5
|
||
|
/* GL types for handling large vertex buffer objects */
|
||
|
typedef ptrdiff_t GLintptr;
|
||
|
typedef ptrdiff_t GLsizeiptr;
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_ARB_vertex_buffer_object
|
||
|
/* GL types for handling large vertex buffer objects */
|
||
|
typedef ptrdiff_t GLintptrARB;
|
||
|
typedef ptrdiff_t GLsizeiptrARB;
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_ARB_shader_objects
|
||
|
/* GL types for program/shader text and shader object handles */
|
||
|
typedef char GLcharARB;
|
||
|
typedef unsigned int GLhandleARB;
|
||
|
#endif
|
||
|
|
||
|
/* GL type for "half" precision (s10e5) float data in host memory */
|
||
|
#ifndef GL_ARB_half_float_pixel
|
||
|
typedef unsigned short GLhalfARB;
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_NV_half_float
|
||
|
typedef unsigned short GLhalfNV;
|
||
|
#endif
|
||
|
|
||
|
#ifndef GLEXT_64_TYPES_DEFINED
|
||
|
/* This code block is duplicated in glxext.h, so must be protected */
|
||
|
#define GLEXT_64_TYPES_DEFINED
|
||
|
/* Define int32_t, int64_t, and uint64_t types for UST/MSC */
|
||
|
/* (as used in the GL_EXT_timer_query extension). */
|
||
|
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
|
||
|
#include <inttypes.h>
|
||
|
#elif defined(__sun__) || defined(__digital__)
|
||
|
#include <inttypes.h>
|
||
|
#if defined(__STDC__)
|
||
|
#if defined(__arch64__) || defined(_LP64)
|
||
|
typedef long int int64_t;
|
||
|
typedef unsigned long int uint64_t;
|
||
|
#else
|
||
|
typedef long long int int64_t;
|
||
|
typedef unsigned long long int uint64_t;
|
||
|
#endif /* __arch64__ */
|
||
|
#endif /* __STDC__ */
|
||
|
#elif defined( __VMS ) || defined(__sgi)
|
||
|
#include <inttypes.h>
|
||
|
#elif defined(__SCO__) || defined(__USLC__)
|
||
|
#include <stdint.h>
|
||
|
#elif defined(__UNIXOS2__) || defined(__SOL64__)
|
||
|
typedef long int int32_t;
|
||
|
typedef long long int int64_t;
|
||
|
typedef unsigned long long int uint64_t;
|
||
|
#elif defined(_WIN32) && defined(__GNUC__)
|
||
|
#include <stdint.h>
|
||
|
#elif defined(_WIN32)
|
||
|
typedef __int32 int32_t;
|
||
|
typedef __int64 int64_t;
|
||
|
typedef unsigned __int64 uint64_t;
|
||
|
#else
|
||
|
/* Fallback if nothing above works */
|
||
|
#include <inttypes.h>
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_EXT_timer_query
|
||
|
typedef int64_t GLint64EXT;
|
||
|
typedef uint64_t GLuint64EXT;
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_ARB_sync
|
||
|
typedef int64_t GLint64;
|
||
|
typedef uint64_t GLuint64;
|
||
|
typedef struct __GLsync *GLsync;
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_ARB_cl_event
|
||
|
/* These incomplete types let us declare types compatible with OpenCL's cl_context and cl_event */
|
||
|
struct _cl_context;
|
||
|
struct _cl_event;
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_ARB_debug_output
|
||
|
typedef void (APIENTRY *GLDEBUGPROCARB)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_AMD_debug_output
|
||
|
typedef void (APIENTRY *GLDEBUGPROCAMD)(GLuint id,GLenum category,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_KHR_debug
|
||
|
typedef void (APIENTRY *GLDEBUGPROC)(GLenum source,GLenum type,GLuint id,GLenum severity,GLsizei length,const GLchar *message,GLvoid *userParam);
|
||
|
#endif
|
||
|
|
||
|
#ifndef GL_NV_vdpau_interop
|
||
|
typedef GLintptr GLvdpauSurfaceNV;
|
||
|
#endif
|
||
|
|
||
|
// End of block copied from glext.h
|
||
|
#endif
|
||
|
|
||
|
struct QOpenGLFunctionsPrivate;
|
||
|
|
||
|
class QAbstractOpenGLExtensionPrivate
|
||
|
{
|
||
|
public:
|
||
|
QAbstractOpenGLExtensionPrivate() : initialized(false) {}
|
||
|
bool initialized;
|
||
|
};
|
||
|
|
||
|
class QAbstractOpenGLExtension
|
||
|
{
|
||
|
public:
|
||
|
virtual ~QAbstractOpenGLExtension();
|
||
|
|
||
|
virtual bool initializeOpenGLFunctions();
|
||
|
|
||
|
Q_DECLARE_PRIVATE(QAbstractOpenGLExtension)
|
||
|
|
||
|
protected:
|
||
|
bool isInitialized() const;
|
||
|
|
||
|
QAbstractOpenGLExtension() {}
|
||
|
QAbstractOpenGLExtension(QAbstractOpenGLExtensionPrivate &dd) : d_ptr(&dd) {}
|
||
|
QAbstractOpenGLExtensionPrivate *d_ptr;
|
||
|
};
|
||
|
|
||
|
#if !defined(QT_OPENGL_ES_2)
|
||
|
|