/usr/include/qt5/QtGui/qopenglshaderprogram.h is in qtbase5-dev 5.2.1+dfsg-1ubuntu14.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 | /****************************************************************************
**
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
** 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$
**
****************************************************************************/
#ifndef QOPENGLSHADERPROGRAM_H
#define QOPENGLSHADERPROGRAM_H
#include <QtCore/qglobal.h>
#ifndef QT_NO_OPENGL
#include <QtGui/qopengl.h>
#include <QtGui/qvector2d.h>
#include <QtGui/qvector3d.h>
#include <QtGui/qvector4d.h>
#include <QtGui/qmatrix4x4.h>
QT_BEGIN_NAMESPACE
class QOpenGLContext;
class QOpenGLShaderProgram;
class QOpenGLShaderPrivate;
class Q_GUI_EXPORT QOpenGLShader : public QObject
{
Q_OBJECT
public:
enum ShaderTypeBit
{
Vertex = 0x0001,
Fragment = 0x0002,
Geometry = 0x0004,
TessellationControl = 0x0008,
TessellationEvaluation = 0x0010,
Compute = 0x0020
};
Q_DECLARE_FLAGS(ShaderType, ShaderTypeBit)
explicit QOpenGLShader(QOpenGLShader::ShaderType type, QObject *parent = 0);
virtual ~QOpenGLShader();
QOpenGLShader::ShaderType shaderType() const;
bool compileSourceCode(const char *source);
bool compileSourceCode(const QByteArray& source);
bool compileSourceCode(const QString& source);
bool compileSourceFile(const QString& fileName);
QByteArray sourceCode() const;
bool isCompiled() const;
QString log() const;
GLuint shaderId() const;
static bool hasOpenGLShaders(ShaderType type, QOpenGLContext *context = 0);
private:
friend class QOpenGLShaderProgram;
Q_DISABLE_COPY(QOpenGLShader)
Q_DECLARE_PRIVATE(QOpenGLShader)
};
Q_DECLARE_OPERATORS_FOR_FLAGS(QOpenGLShader::ShaderType)
class QOpenGLShaderProgramPrivate;
class Q_GUI_EXPORT QOpenGLShaderProgram : public QObject
{
Q_OBJECT
public:
explicit QOpenGLShaderProgram(QObject *parent = 0);
virtual ~QOpenGLShaderProgram();
bool addShader(QOpenGLShader *shader);
void removeShader(QOpenGLShader *shader);
QList<QOpenGLShader *> shaders() const;
bool addShaderFromSourceCode(QOpenGLShader::ShaderType type, const char *source);
bool addShaderFromSourceCode(QOpenGLShader::ShaderType type, const QByteArray& source);
bool addShaderFromSourceCode(QOpenGLShader::ShaderType type, const QString& source);
bool addShaderFromSourceFile(QOpenGLShader::ShaderType type, const QString& fileName);
void removeAllShaders();
virtual bool link();
bool isLinked() const;
QString log() const;
bool bind();
void release();
GLuint programId() const;
int maxGeometryOutputVertices() const;
void setPatchVertexCount(int count);
int patchVertexCount() const;
void setDefaultOuterTessellationLevels(const QVector<float> &levels);
QVector<float> defaultOuterTessellationLevels() const;
void setDefaultInnerTessellationLevels(const QVector<float> &levels);
QVector<float> defaultInnerTessellationLevels() const;
void bindAttributeLocation(const char *name, int location);
void bindAttributeLocation(const QByteArray& name, int location);
void bindAttributeLocation(const QString& name, int location);
int attributeLocation(const char *name) const;
int attributeLocation(const QByteArray& name) const;
int attributeLocation(const QString& name) const;
void setAttributeValue(int location, GLfloat value);
void setAttributeValue(int location, GLfloat x, GLfloat y);
void setAttributeValue(int location, GLfloat x, GLfloat y, GLfloat z);
void setAttributeValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
void setAttributeValue(int location, const QVector2D& value);
void setAttributeValue(int location, const QVector3D& value);
void setAttributeValue(int location, const QVector4D& value);
void setAttributeValue(int location, const QColor& value);
void setAttributeValue(int location, const GLfloat *values, int columns, int rows);
void setAttributeValue(const char *name, GLfloat value);
void setAttributeValue(const char *name, GLfloat x, GLfloat y);
void setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z);
void setAttributeValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
void setAttributeValue(const char *name, const QVector2D& value);
void setAttributeValue(const char *name, const QVector3D& value);
void setAttributeValue(const char *name, const QVector4D& value);
void setAttributeValue(const char *name, const QColor& value);
void setAttributeValue(const char *name, const GLfloat *values, int columns, int rows);
void setAttributeArray
(int location, const GLfloat *values, int tupleSize, int stride = 0);
void setAttributeArray
(int location, const QVector2D *values, int stride = 0);
void setAttributeArray
(int location, const QVector3D *values, int stride = 0);
void setAttributeArray
(int location, const QVector4D *values, int stride = 0);
void setAttributeArray
(int location, GLenum type, const void *values, int tupleSize, int stride = 0);
void setAttributeArray
(const char *name, const GLfloat *values, int tupleSize, int stride = 0);
void setAttributeArray
(const char *name, const QVector2D *values, int stride = 0);
void setAttributeArray
(const char *name, const QVector3D *values, int stride = 0);
void setAttributeArray
(const char *name, const QVector4D *values, int stride = 0);
void setAttributeArray
(const char *name, GLenum type, const void *values, int tupleSize, int stride = 0);
void setAttributeBuffer
(int location, GLenum type, int offset, int tupleSize, int stride = 0);
void setAttributeBuffer
(const char *name, GLenum type, int offset, int tupleSize, int stride = 0);
void enableAttributeArray(int location);
void enableAttributeArray(const char *name);
void disableAttributeArray(int location);
void disableAttributeArray(const char *name);
int uniformLocation(const char *name) const;
int uniformLocation(const QByteArray& name) const;
int uniformLocation(const QString& name) const;
void setUniformValue(int location, GLfloat value);
void setUniformValue(int location, GLint value);
void setUniformValue(int location, GLuint value);
void setUniformValue(int location, GLfloat x, GLfloat y);
void setUniformValue(int location, GLfloat x, GLfloat y, GLfloat z);
void setUniformValue(int location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
void setUniformValue(int location, const QVector2D& value);
void setUniformValue(int location, const QVector3D& value);
void setUniformValue(int location, const QVector4D& value);
void setUniformValue(int location, const QColor& color);
void setUniformValue(int location, const QPoint& point);
void setUniformValue(int location, const QPointF& point);
void setUniformValue(int location, const QSize& size);
void setUniformValue(int location, const QSizeF& size);
void setUniformValue(int location, const QMatrix2x2& value);
void setUniformValue(int location, const QMatrix2x3& value);
void setUniformValue(int location, const QMatrix2x4& value);
void setUniformValue(int location, const QMatrix3x2& value);
void setUniformValue(int location, const QMatrix3x3& value);
void setUniformValue(int location, const QMatrix3x4& value);
void setUniformValue(int location, const QMatrix4x2& value);
void setUniformValue(int location, const QMatrix4x3& value);
void setUniformValue(int location, const QMatrix4x4& value);
void setUniformValue(int location, const GLfloat value[2][2]);
void setUniformValue(int location, const GLfloat value[3][3]);
void setUniformValue(int location, const GLfloat value[4][4]);
void setUniformValue(int location, const QTransform& value);
void setUniformValue(const char *name, GLfloat value);
void setUniformValue(const char *name, GLint value);
void setUniformValue(const char *name, GLuint value);
void setUniformValue(const char *name, GLfloat x, GLfloat y);
void setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z);
void setUniformValue(const char *name, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
void setUniformValue(const char *name, const QVector2D& value);
void setUniformValue(const char *name, const QVector3D& value);
void setUniformValue(const char *name, const QVector4D& value);
void setUniformValue(const char *name, const QColor& color);
void setUniformValue(const char *name, const QPoint& point);
void setUniformValue(const char *name, const QPointF& point);
void setUniformValue(const char *name, const QSize& size);
void setUniformValue(const char *name, const QSizeF& size);
void setUniformValue(const char *name, const QMatrix2x2& value);
void setUniformValue(const char *name, const QMatrix2x3& value);
void setUniformValue(const char *name, const QMatrix2x4& value);
void setUniformValue(const char *name, const QMatrix3x2& value);
void setUniformValue(const char *name, const QMatrix3x3& value);
void setUniformValue(const char *name, const QMatrix3x4& value);
void setUniformValue(const char *name, const QMatrix4x2& value);
void setUniformValue(const char *name, const QMatrix4x3& value);
void setUniformValue(const char *name, const QMatrix4x4& value);
void setUniformValue(const char *name, const GLfloat value[2][2]);
void setUniformValue(const char *name, const GLfloat value[3][3]);
void setUniformValue(const char *name, const GLfloat value[4][4]);
void setUniformValue(const char *name, const QTransform& value);
void setUniformValueArray(int location, const GLfloat *values, int count, int tupleSize);
void setUniformValueArray(int location, const GLint *values, int count);
void setUniformValueArray(int location, const GLuint *values, int count);
void setUniformValueArray(int location, const QVector2D *values, int count);
void setUniformValueArray(int location, const QVector3D *values, int count);
void setUniformValueArray(int location, const QVector4D *values, int count);
void setUniformValueArray(int location, const QMatrix2x2 *values, int count);
void setUniformValueArray(int location, const QMatrix2x3 *values, int count);
void setUniformValueArray(int location, const QMatrix2x4 *values, int count);
void setUniformValueArray(int location, const QMatrix3x2 *values, int count);
void setUniformValueArray(int location, const QMatrix3x3 *values, int count);
void setUniformValueArray(int location, const QMatrix3x4 *values, int count);
void setUniformValueArray(int location, const QMatrix4x2 *values, int count);
void setUniformValueArray(int location, const QMatrix4x3 *values, int count);
void setUniformValueArray(int location, const QMatrix4x4 *values, int count);
void setUniformValueArray(const char *name, const GLfloat *values, int count, int tupleSize);
void setUniformValueArray(const char *name, const GLint *values, int count);
void setUniformValueArray(const char *name, const GLuint *values, int count);
void setUniformValueArray(const char *name, const QVector2D *values, int count);
void setUniformValueArray(const char *name, const QVector3D *values, int count);
void setUniformValueArray(const char *name, const QVector4D *values, int count);
void setUniformValueArray(const char *name, const QMatrix2x2 *values, int count);
void setUniformValueArray(const char *name, const QMatrix2x3 *values, int count);
void setUniformValueArray(const char *name, const QMatrix2x4 *values, int count);
void setUniformValueArray(const char *name, const QMatrix3x2 *values, int count);
void setUniformValueArray(const char *name, const QMatrix3x3 *values, int count);
void setUniformValueArray(const char *name, const QMatrix3x4 *values, int count);
void setUniformValueArray(const char *name, const QMatrix4x2 *values, int count);
void setUniformValueArray(const char *name, const QMatrix4x3 *values, int count);
void setUniformValueArray(const char *name, const QMatrix4x4 *values, int count);
static bool hasOpenGLShaderPrograms(QOpenGLContext *context = 0);
private Q_SLOTS:
void shaderDestroyed();
private:
Q_DISABLE_COPY(QOpenGLShaderProgram)
Q_DECLARE_PRIVATE(QOpenGLShaderProgram)
bool init();
};
QT_END_NAMESPACE
#endif // QT_NO_OPENGL
#endif
|