| 1 | /**************************************************************************** | 
| 2 | ** | 
| 3 | ** Copyright (C) 2016 The Qt Company Ltd. | 
| 4 | ** Contact: https://www.qt.io/licensing/ | 
| 5 | ** | 
| 6 | ** This file is part of the QtQuick module of the Qt Toolkit. | 
| 7 | ** | 
| 8 | ** $QT_BEGIN_LICENSE:LGPL$ | 
| 9 | ** Commercial License Usage | 
| 10 | ** Licensees holding valid commercial Qt licenses may use this file in | 
| 11 | ** accordance with the commercial license agreement provided with the | 
| 12 | ** Software or, alternatively, in accordance with the terms contained in | 
| 13 | ** a written agreement between you and The Qt Company. For licensing terms | 
| 14 | ** and conditions see https://www.qt.io/terms-conditions. For further | 
| 15 | ** information use the contact form at https://www.qt.io/contact-us. | 
| 16 | ** | 
| 17 | ** GNU Lesser General Public License Usage | 
| 18 | ** Alternatively, this file may be used under the terms of the GNU Lesser | 
| 19 | ** General Public License version 3 as published by the Free Software | 
| 20 | ** Foundation and appearing in the file LICENSE.LGPL3 included in the | 
| 21 | ** packaging of this file. Please review the following information to | 
| 22 | ** ensure the GNU Lesser General Public License version 3 requirements | 
| 23 | ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. | 
| 24 | ** | 
| 25 | ** GNU General Public License Usage | 
| 26 | ** Alternatively, this file may be used under the terms of the GNU | 
| 27 | ** General Public License version 2.0 or (at your option) the GNU General | 
| 28 | ** Public license version 3 or any later version approved by the KDE Free | 
| 29 | ** Qt Foundation. The licenses are as published by the Free Software | 
| 30 | ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 | 
| 31 | ** included in the packaging of this file. Please review the following | 
| 32 | ** information to ensure the GNU General Public License requirements will | 
| 33 | ** be met: https://www.gnu.org/licenses/gpl-2.0.html and | 
| 34 | ** https://www.gnu.org/licenses/gpl-3.0.html. | 
| 35 | ** | 
| 36 | ** $QT_END_LICENSE$ | 
| 37 | ** | 
| 38 | ****************************************************************************/ | 
| 39 |  | 
| 40 | #ifndef QQUICKNVPRFUNCTIONS_P_H | 
| 41 | #define QQUICKNVPRFUNCTIONS_P_H | 
| 42 |  | 
| 43 | // | 
| 44 | //  W A R N I N G | 
| 45 | //  ------------- | 
| 46 | // | 
| 47 | // This file is not part of the Qt API.  It exists for the convenience | 
| 48 | // of a number of Qt sources files.  This header file may change from | 
| 49 | // version to version without notice, or even be removed. | 
| 50 | // | 
| 51 | // We mean it. | 
| 52 | // | 
| 53 |  | 
| 54 | #include <QtQuickShapes/private/qquickshapesglobal_p.h> | 
| 55 | #include <qopengl.h> | 
| 56 | #include <QtGui/qsurfaceformat.h> | 
| 57 |  | 
| 58 | #if QT_CONFIG(opengl) | 
| 59 |  | 
| 60 | QT_BEGIN_NAMESPACE | 
| 61 |  | 
| 62 | // note: fixed pipeline specific functions are removed - modern ES ext | 
| 63 | // headers have all this, but not the fixed stuff | 
| 64 |  | 
| 65 | #ifndef GL_NV_path_rendering | 
| 66 | #define GL_PATH_FORMAT_SVG_NV             0x9070 | 
| 67 | #define GL_PATH_FORMAT_PS_NV              0x9071 | 
| 68 | #define GL_STANDARD_FONT_NAME_NV          0x9072 | 
| 69 | #define GL_SYSTEM_FONT_NAME_NV            0x9073 | 
| 70 | #define GL_FILE_NAME_NV                   0x9074 | 
| 71 | #define GL_PATH_STROKE_WIDTH_NV           0x9075 | 
| 72 | #define GL_PATH_END_CAPS_NV               0x9076 | 
| 73 | #define GL_PATH_INITIAL_END_CAP_NV        0x9077 | 
| 74 | #define GL_PATH_TERMINAL_END_CAP_NV       0x9078 | 
| 75 | #define GL_PATH_JOIN_STYLE_NV             0x9079 | 
| 76 | #define GL_PATH_MITER_LIMIT_NV            0x907A | 
| 77 | #define GL_PATH_DASH_CAPS_NV              0x907B | 
| 78 | #define GL_PATH_INITIAL_DASH_CAP_NV       0x907C | 
| 79 | #define GL_PATH_TERMINAL_DASH_CAP_NV      0x907D | 
| 80 | #define GL_PATH_DASH_OFFSET_NV            0x907E | 
| 81 | #define GL_PATH_CLIENT_LENGTH_NV          0x907F | 
| 82 | #define GL_PATH_FILL_MODE_NV              0x9080 | 
| 83 | #define GL_PATH_FILL_MASK_NV              0x9081 | 
| 84 | #define GL_PATH_FILL_COVER_MODE_NV        0x9082 | 
| 85 | #define GL_PATH_STROKE_COVER_MODE_NV      0x9083 | 
| 86 | #define GL_PATH_STROKE_MASK_NV            0x9084 | 
| 87 | #define GL_COUNT_UP_NV                    0x9088 | 
| 88 | #define GL_COUNT_DOWN_NV                  0x9089 | 
| 89 | #define GL_PATH_OBJECT_BOUNDING_BOX_NV    0x908A | 
| 90 | #define GL_CONVEX_HULL_NV                 0x908B | 
| 91 | #define GL_BOUNDING_BOX_NV                0x908D | 
| 92 | #define GL_TRANSLATE_X_NV                 0x908E | 
| 93 | #define GL_TRANSLATE_Y_NV                 0x908F | 
| 94 | #define GL_TRANSLATE_2D_NV                0x9090 | 
| 95 | #define GL_TRANSLATE_3D_NV                0x9091 | 
| 96 | #define GL_AFFINE_2D_NV                   0x9092 | 
| 97 | #define GL_AFFINE_3D_NV                   0x9094 | 
| 98 | #define GL_TRANSPOSE_AFFINE_2D_NV         0x9096 | 
| 99 | #define GL_TRANSPOSE_AFFINE_3D_NV         0x9098 | 
| 100 | #define GL_UTF8_NV                        0x909A | 
| 101 | #define GL_UTF16_NV                       0x909B | 
| 102 | #define GL_BOUNDING_BOX_OF_BOUNDING_BOXES_NV 0x909C | 
| 103 | #define GL_PATH_COMMAND_COUNT_NV          0x909D | 
| 104 | #define GL_PATH_COORD_COUNT_NV            0x909E | 
| 105 | #define GL_PATH_DASH_ARRAY_COUNT_NV       0x909F | 
| 106 | #define GL_PATH_COMPUTED_LENGTH_NV        0x90A0 | 
| 107 | #define GL_PATH_FILL_BOUNDING_BOX_NV      0x90A1 | 
| 108 | #define GL_PATH_STROKE_BOUNDING_BOX_NV    0x90A2 | 
| 109 | #define GL_SQUARE_NV                      0x90A3 | 
| 110 | #define GL_ROUND_NV                       0x90A4 | 
| 111 | #define GL_TRIANGULAR_NV                  0x90A5 | 
| 112 | #define GL_BEVEL_NV                       0x90A6 | 
| 113 | #define GL_MITER_REVERT_NV                0x90A7 | 
| 114 | #define GL_MITER_TRUNCATE_NV              0x90A8 | 
| 115 | #define GL_SKIP_MISSING_GLYPH_NV          0x90A9 | 
| 116 | #define GL_USE_MISSING_GLYPH_NV           0x90AA | 
| 117 | #define GL_PATH_ERROR_POSITION_NV         0x90AB | 
| 118 | #define GL_PATH_FOG_GEN_MODE_NV           0x90AC | 
| 119 | #define GL_ACCUM_ADJACENT_PAIRS_NV        0x90AD | 
| 120 | #define GL_ADJACENT_PAIRS_NV              0x90AE | 
| 121 | #define GL_FIRST_TO_REST_NV               0x90AF | 
| 122 | #define GL_PATH_GEN_MODE_NV               0x90B0 | 
| 123 | #define GL_PATH_GEN_COEFF_NV              0x90B1 | 
| 124 | #define GL_PATH_GEN_COLOR_FORMAT_NV       0x90B2 | 
| 125 | #define GL_PATH_GEN_COMPONENTS_NV         0x90B3 | 
| 126 | #define GL_PATH_STENCIL_FUNC_NV           0x90B7 | 
| 127 | #define GL_PATH_STENCIL_REF_NV            0x90B8 | 
| 128 | #define GL_PATH_STENCIL_VALUE_MASK_NV     0x90B9 | 
| 129 | #define GL_PATH_STENCIL_DEPTH_OFFSET_FACTOR_NV 0x90BD | 
| 130 | #define GL_PATH_STENCIL_DEPTH_OFFSET_UNITS_NV 0x90BE | 
| 131 | #define GL_PATH_COVER_DEPTH_FUNC_NV       0x90BF | 
| 132 | #define GL_PATH_DASH_OFFSET_RESET_NV      0x90B4 | 
| 133 | #define GL_MOVE_TO_RESETS_NV              0x90B5 | 
| 134 | #define GL_MOVE_TO_CONTINUES_NV           0x90B6 | 
| 135 | #define GL_CLOSE_PATH_NV                  0x00 | 
| 136 | #define GL_MOVE_TO_NV                     0x02 | 
| 137 | #define GL_RELATIVE_MOVE_TO_NV            0x03 | 
| 138 | #define GL_LINE_TO_NV                     0x04 | 
| 139 | #define GL_RELATIVE_LINE_TO_NV            0x05 | 
| 140 | #define GL_HORIZONTAL_LINE_TO_NV          0x06 | 
| 141 | #define GL_RELATIVE_HORIZONTAL_LINE_TO_NV 0x07 | 
| 142 | #define GL_VERTICAL_LINE_TO_NV            0x08 | 
| 143 | #define GL_RELATIVE_VERTICAL_LINE_TO_NV   0x09 | 
| 144 | #define GL_QUADRATIC_CURVE_TO_NV          0x0A | 
| 145 | #define GL_RELATIVE_QUADRATIC_CURVE_TO_NV 0x0B | 
| 146 | #define GL_CUBIC_CURVE_TO_NV              0x0C | 
| 147 | #define GL_RELATIVE_CUBIC_CURVE_TO_NV     0x0D | 
| 148 | #define GL_SMOOTH_QUADRATIC_CURVE_TO_NV   0x0E | 
| 149 | #define GL_RELATIVE_SMOOTH_QUADRATIC_CURVE_TO_NV 0x0F | 
| 150 | #define GL_SMOOTH_CUBIC_CURVE_TO_NV       0x10 | 
| 151 | #define GL_RELATIVE_SMOOTH_CUBIC_CURVE_TO_NV 0x11 | 
| 152 | #define GL_SMALL_CCW_ARC_TO_NV            0x12 | 
| 153 | #define GL_RELATIVE_SMALL_CCW_ARC_TO_NV   0x13 | 
| 154 | #define GL_SMALL_CW_ARC_TO_NV             0x14 | 
| 155 | #define GL_RELATIVE_SMALL_CW_ARC_TO_NV    0x15 | 
| 156 | #define GL_LARGE_CCW_ARC_TO_NV            0x16 | 
| 157 | #define GL_RELATIVE_LARGE_CCW_ARC_TO_NV   0x17 | 
| 158 | #define GL_LARGE_CW_ARC_TO_NV             0x18 | 
| 159 | #define GL_RELATIVE_LARGE_CW_ARC_TO_NV    0x19 | 
| 160 | #define GL_RESTART_PATH_NV                0xF0 | 
| 161 | #define GL_DUP_FIRST_CUBIC_CURVE_TO_NV    0xF2 | 
| 162 | #define GL_DUP_LAST_CUBIC_CURVE_TO_NV     0xF4 | 
| 163 | #define GL_RECT_NV                        0xF6 | 
| 164 | #define GL_CIRCULAR_CCW_ARC_TO_NV         0xF8 | 
| 165 | #define GL_CIRCULAR_CW_ARC_TO_NV          0xFA | 
| 166 | #define GL_CIRCULAR_TANGENT_ARC_TO_NV     0xFC | 
| 167 | #define GL_ARC_TO_NV                      0xFE | 
| 168 | #define GL_RELATIVE_ARC_TO_NV             0xFF | 
| 169 | #define GL_BOLD_BIT_NV                    0x01 | 
| 170 | #define GL_ITALIC_BIT_NV                  0x02 | 
| 171 | #define GL_GLYPH_WIDTH_BIT_NV             0x01 | 
| 172 | #define GL_GLYPH_HEIGHT_BIT_NV            0x02 | 
| 173 | #define GL_GLYPH_HORIZONTAL_BEARING_X_BIT_NV 0x04 | 
| 174 | #define GL_GLYPH_HORIZONTAL_BEARING_Y_BIT_NV 0x08 | 
| 175 | #define GL_GLYPH_HORIZONTAL_BEARING_ADVANCE_BIT_NV 0x10 | 
| 176 | #define GL_GLYPH_VERTICAL_BEARING_X_BIT_NV 0x20 | 
| 177 | #define GL_GLYPH_VERTICAL_BEARING_Y_BIT_NV 0x40 | 
| 178 | #define GL_GLYPH_VERTICAL_BEARING_ADVANCE_BIT_NV 0x80 | 
| 179 | #define GL_GLYPH_HAS_KERNING_BIT_NV       0x100 | 
| 180 | #define GL_FONT_X_MIN_BOUNDS_BIT_NV       0x00010000 | 
| 181 | #define GL_FONT_Y_MIN_BOUNDS_BIT_NV       0x00020000 | 
| 182 | #define GL_FONT_X_MAX_BOUNDS_BIT_NV       0x00040000 | 
| 183 | #define GL_FONT_Y_MAX_BOUNDS_BIT_NV       0x00080000 | 
| 184 | #define GL_FONT_UNITS_PER_EM_BIT_NV       0x00100000 | 
| 185 | #define GL_FONT_ASCENDER_BIT_NV           0x00200000 | 
| 186 | #define GL_FONT_DESCENDER_BIT_NV          0x00400000 | 
| 187 | #define GL_FONT_HEIGHT_BIT_NV             0x00800000 | 
| 188 | #define GL_FONT_MAX_ADVANCE_WIDTH_BIT_NV  0x01000000 | 
| 189 | #define GL_FONT_MAX_ADVANCE_HEIGHT_BIT_NV 0x02000000 | 
| 190 | #define GL_FONT_UNDERLINE_POSITION_BIT_NV 0x04000000 | 
| 191 | #define GL_FONT_UNDERLINE_THICKNESS_BIT_NV 0x08000000 | 
| 192 | #define GL_FONT_HAS_KERNING_BIT_NV        0x10000000 | 
| 193 | #define GL_PRIMARY_COLOR_NV               0x852C | 
| 194 | #define GL_SECONDARY_COLOR_NV             0x852D | 
| 195 | #define GL_ROUNDED_RECT_NV                0xE8 | 
| 196 | #define GL_RELATIVE_ROUNDED_RECT_NV       0xE9 | 
| 197 | #define GL_ROUNDED_RECT2_NV               0xEA | 
| 198 | #define GL_RELATIVE_ROUNDED_RECT2_NV      0xEB | 
| 199 | #define GL_ROUNDED_RECT4_NV               0xEC | 
| 200 | #define GL_RELATIVE_ROUNDED_RECT4_NV      0xED | 
| 201 | #define GL_ROUNDED_RECT8_NV               0xEE | 
| 202 | #define GL_RELATIVE_ROUNDED_RECT8_NV      0xEF | 
| 203 | #define GL_RELATIVE_RECT_NV               0xF7 | 
| 204 | #define GL_FONT_GLYPHS_AVAILABLE_NV       0x9368 | 
| 205 | #define GL_FONT_TARGET_UNAVAILABLE_NV     0x9369 | 
| 206 | #define GL_FONT_UNAVAILABLE_NV            0x936A | 
| 207 | #define GL_FONT_UNINTELLIGIBLE_NV         0x936B | 
| 208 | #define GL_CONIC_CURVE_TO_NV              0x1A | 
| 209 | #define GL_RELATIVE_CONIC_CURVE_TO_NV     0x1B | 
| 210 | #define GL_FONT_NUM_GLYPH_INDICES_BIT_NV  0x20000000 | 
| 211 | #define GL_STANDARD_FONT_FORMAT_NV        0x936C | 
| 212 | #define GL_2_BYTES_NV                     0x1407 | 
| 213 | #define GL_3_BYTES_NV                     0x1408 | 
| 214 | #define GL_4_BYTES_NV                     0x1409 | 
| 215 | #define GL_EYE_LINEAR_NV                  0x2400 | 
| 216 | #define GL_OBJECT_LINEAR_NV               0x2401 | 
| 217 | #define GL_CONSTANT_NV                    0x8576 | 
| 218 | #define GL_PATH_PROJECTION_NV             0x1701 | 
| 219 | #define GL_PATH_MODELVIEW_NV              0x1700 | 
| 220 | #define GL_PATH_MODELVIEW_STACK_DEPTH_NV  0x0BA3 | 
| 221 | #define GL_PATH_MODELVIEW_MATRIX_NV       0x0BA6 | 
| 222 | #define GL_PATH_MAX_MODELVIEW_STACK_DEPTH_NV 0x0D36 | 
| 223 | #define GL_PATH_TRANSPOSE_MODELVIEW_MATRIX_NV 0x84E3 | 
| 224 | #define GL_PATH_PROJECTION_STACK_DEPTH_NV 0x0BA4 | 
| 225 | #define GL_PATH_PROJECTION_MATRIX_NV      0x0BA7 | 
| 226 | #define GL_PATH_MAX_PROJECTION_STACK_DEPTH_NV 0x0D38 | 
| 227 | #define GL_PATH_TRANSPOSE_PROJECTION_MATRIX_NV 0x84E4 | 
| 228 | #define GL_FRAGMENT_INPUT_NV              0x936D | 
| 229 |  | 
| 230 | typedef GLuint (QOPENGLF_APIENTRYP PFNGLGENPATHSNVPROC) (GLsizei range); | 
| 231 | typedef void (QOPENGLF_APIENTRYP PFNGLDELETEPATHSNVPROC) (GLuint path, GLsizei range); | 
| 232 | typedef GLboolean (QOPENGLF_APIENTRYP PFNGLISPATHNVPROC) (GLuint path); | 
| 233 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHCOMMANDSNVPROC) (GLuint path, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); | 
| 234 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHCOORDSNVPROC) (GLuint path, GLsizei numCoords, GLenum coordType, const void *coords); | 
| 235 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHSUBCOMMANDSNVPROC) (GLuint path, GLsizei commandStart, GLsizei commandsToDelete, GLsizei numCommands, const GLubyte *commands, GLsizei numCoords, GLenum coordType, const void *coords); | 
| 236 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHSUBCOORDSNVPROC) (GLuint path, GLsizei coordStart, GLsizei numCoords, GLenum coordType, const void *coords); | 
| 237 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHSTRINGNVPROC) (GLuint path, GLenum format, GLsizei length, const void *pathString); | 
| 238 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHGLYPHSNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLsizei numGlyphs, GLenum type, const void *charcodes, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); | 
| 239 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHGLYPHRANGENVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyph, GLsizei numGlyphs, GLenum handleMissingGlyphs, GLuint pathParameterTemplate, GLfloat emScale); | 
| 240 | typedef void (QOPENGLF_APIENTRYP PFNGLWEIGHTPATHSNVPROC) (GLuint resultPath, GLsizei numPaths, const GLuint *paths, const GLfloat *weights); | 
| 241 | typedef void (QOPENGLF_APIENTRYP PFNGLCOPYPATHNVPROC) (GLuint resultPath, GLuint srcPath); | 
| 242 | typedef void (QOPENGLF_APIENTRYP PFNGLINTERPOLATEPATHSNVPROC) (GLuint resultPath, GLuint pathA, GLuint pathB, GLfloat weight); | 
| 243 | typedef void (QOPENGLF_APIENTRYP PFNGLTRANSFORMPATHNVPROC) (GLuint resultPath, GLuint srcPath, GLenum transformType, const GLfloat *transformValues); | 
| 244 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, const GLint *value); | 
| 245 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHPARAMETERINVPROC) (GLuint path, GLenum pname, GLint value); | 
| 246 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, const GLfloat *value); | 
| 247 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHPARAMETERFNVPROC) (GLuint path, GLenum pname, GLfloat value); | 
| 248 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHDASHARRAYNVPROC) (GLuint path, GLsizei dashCount, const GLfloat *dashArray); | 
| 249 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHSTENCILFUNCNVPROC) (GLenum func, GLint ref, GLuint mask); | 
| 250 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHSTENCILDEPTHOFFSETNVPROC) (GLfloat factor, GLfloat units); | 
| 251 | typedef void (QOPENGLF_APIENTRYP PFNGLSTENCILFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask); | 
| 252 | typedef void (QOPENGLF_APIENTRYP PFNGLSTENCILSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask); | 
| 253 | typedef void (QOPENGLF_APIENTRYP PFNGLSTENCILFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum transformType, const GLfloat *transformValues); | 
| 254 | typedef void (QOPENGLF_APIENTRYP PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum transformType, const GLfloat *transformValues); | 
| 255 | typedef void (QOPENGLF_APIENTRYP PFNGLPATHCOVERDEPTHFUNCNVPROC) (GLenum func); | 
| 256 | typedef void (QOPENGLF_APIENTRYP PFNGLCOVERFILLPATHNVPROC) (GLuint path, GLenum coverMode); | 
| 257 | typedef void (QOPENGLF_APIENTRYP PFNGLCOVERSTROKEPATHNVPROC) (GLuint path, GLenum coverMode); | 
| 258 | typedef void (QOPENGLF_APIENTRYP PFNGLCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); | 
| 259 | typedef void (QOPENGLF_APIENTRYP PFNGLCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); | 
| 260 | typedef void (QOPENGLF_APIENTRYP PFNGLGETPATHPARAMETERIVNVPROC) (GLuint path, GLenum pname, GLint *value); | 
| 261 | typedef void (QOPENGLF_APIENTRYP PFNGLGETPATHPARAMETERFVNVPROC) (GLuint path, GLenum pname, GLfloat *value); | 
| 262 | typedef void (QOPENGLF_APIENTRYP PFNGLGETPATHCOMMANDSNVPROC) (GLuint path, GLubyte *commands); | 
| 263 | typedef void (QOPENGLF_APIENTRYP PFNGLGETPATHCOORDSNVPROC) (GLuint path, GLfloat *coords); | 
| 264 | typedef void (QOPENGLF_APIENTRYP PFNGLGETPATHDASHARRAYNVPROC) (GLuint path, GLfloat *dashArray); | 
| 265 | typedef void (QOPENGLF_APIENTRYP PFNGLGETPATHMETRICSNVPROC) (GLbitfield metricQueryMask, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLsizei stride, GLfloat *metrics); | 
| 266 | typedef void (QOPENGLF_APIENTRYP PFNGLGETPATHMETRICRANGENVPROC) (GLbitfield metricQueryMask, GLuint firstPathName, GLsizei numPaths, GLsizei stride, GLfloat *metrics); | 
| 267 | typedef void (QOPENGLF_APIENTRYP PFNGLGETPATHSPACINGNVPROC) (GLenum pathListMode, GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLfloat advanceScale, GLfloat kerningScale, GLenum transformType, GLfloat *returnedSpacing); | 
| 268 | typedef GLboolean (QOPENGLF_APIENTRYP PFNGLISPOINTINFILLPATHNVPROC) (GLuint path, GLuint mask, GLfloat x, GLfloat y); | 
| 269 | typedef GLboolean (QOPENGLF_APIENTRYP PFNGLISPOINTINSTROKEPATHNVPROC) (GLuint path, GLfloat x, GLfloat y); | 
| 270 | typedef GLfloat (QOPENGLF_APIENTRYP PFNGLGETPATHLENGTHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments); | 
| 271 | typedef GLboolean (QOPENGLF_APIENTRYP PFNGLPOINTALONGPATHNVPROC) (GLuint path, GLsizei startSegment, GLsizei numSegments, GLfloat distance, GLfloat *x, GLfloat *y, GLfloat *tangentX, GLfloat *tangentY); | 
| 272 | typedef void (QOPENGLF_APIENTRYP PFNGLMATRIXLOAD3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); | 
| 273 | typedef void (QOPENGLF_APIENTRYP PFNGLMATRIXLOAD3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); | 
| 274 | typedef void (QOPENGLF_APIENTRYP PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); | 
| 275 | typedef void (QOPENGLF_APIENTRYP PFNGLMATRIXMULT3X2FNVPROC) (GLenum matrixMode, const GLfloat *m); | 
| 276 | typedef void (QOPENGLF_APIENTRYP PFNGLMATRIXMULT3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); | 
| 277 | typedef void (QOPENGLF_APIENTRYP PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC) (GLenum matrixMode, const GLfloat *m); | 
| 278 | typedef void (QOPENGLF_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHNVPROC) (GLuint path, GLenum fillMode, GLuint mask, GLenum coverMode); | 
| 279 | typedef void (QOPENGLF_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC) (GLuint path, GLint reference, GLuint mask, GLenum coverMode); | 
| 280 | typedef void (QOPENGLF_APIENTRYP PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLenum fillMode, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); | 
| 281 | typedef void (QOPENGLF_APIENTRYP PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC) (GLsizei numPaths, GLenum pathNameType, const void *paths, GLuint pathBase, GLint reference, GLuint mask, GLenum coverMode, GLenum transformType, const GLfloat *transformValues); | 
| 282 | typedef GLenum (QOPENGLF_APIENTRYP PFNGLPATHGLYPHINDEXRANGENVPROC) (GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint pathParameterTemplate, GLfloat emScale, GLuint baseAndCount[2]); | 
| 283 | typedef GLenum (QOPENGLF_APIENTRYP PFNGLPATHGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, const void *fontName, GLbitfield fontStyle, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); | 
| 284 | typedef GLenum (QOPENGLF_APIENTRYP PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC) (GLuint firstPathName, GLenum fontTarget, GLsizeiptr fontSize, const void *fontData, GLsizei faceIndex, GLuint firstGlyphIndex, GLsizei numGlyphs, GLuint pathParameterTemplate, GLfloat emScale); | 
| 285 | typedef void (QOPENGLF_APIENTRYP PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC) (GLuint program, GLint location, GLenum genMode, GLint components, const GLfloat *coeffs); | 
| 286 | typedef void (QOPENGLF_APIENTRYP PFNGLGETPROGRAMRESOURCEFVNVPROC) (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLfloat *params); | 
| 287 | #endif | 
| 288 |  | 
| 289 | #ifndef GL_FLAT | 
| 290 | #define GL_FLAT                           0x1D00 | 
| 291 | #endif | 
| 292 |  | 
| 293 | #ifndef GL_INVERT | 
| 294 | #define GL_INVERT                         0x150A | 
| 295 | #endif | 
| 296 |  | 
| 297 | // this one originates from fixed pipeline so may not be in GLES ext headers, but we need it still | 
| 298 | #ifndef GL_OBJECT_LINEAR_NV | 
| 299 | #define GL_OBJECT_LINEAR_NV               0x2401 | 
| 300 | #endif | 
| 301 |  | 
| 302 | #ifndef GL_EXT_direct_state_access | 
| 303 | typedef void (QOPENGLF_APIENTRYP PFNGLMATRIXLOADFEXTPROC) (GLenum mode, const GLfloat *m); | 
| 304 | typedef void (QOPENGLF_APIENTRYP PFNGLMATRIXLOADIDENTITYEXTPROC) (GLenum mode); | 
| 305 | #endif | 
| 306 |  | 
| 307 | // When building on a system with GLES 2.0 or 3.0, we may still compile the NVPR | 
| 308 | // code path even though it's never used. Keep it compiling by defining the | 
| 309 | // necessary ES 3.1 separable program constants. | 
| 310 | #ifndef GL_FRAGMENT_SHADER_BIT | 
| 311 | #define GL_FRAGMENT_SHADER_BIT            0x00000002 | 
| 312 | #endif | 
| 313 | #ifndef GL_UNIFORM | 
| 314 | #define GL_UNIFORM                        0x92E1 | 
| 315 | #endif | 
| 316 |  | 
| 317 | class QQuickNvprFunctionsPrivate; | 
| 318 |  | 
| 319 | class QQuickNvprFunctions | 
| 320 | { | 
| 321 | public: | 
| 322 |     QQuickNvprFunctions(); | 
| 323 |     ~QQuickNvprFunctions(); | 
| 324 |  | 
| 325 |     static QSurfaceFormat format(); | 
| 326 |     static bool isSupported(); | 
| 327 |  | 
| 328 |     bool create(); | 
| 329 |  | 
| 330 |     bool createFragmentOnlyPipeline(const char *fragmentShaderSource, GLuint *pipeline, GLuint *program); | 
| 331 |  | 
| 332 |     PFNGLGENPATHSNVPROC genPaths = nullptr; | 
| 333 |     PFNGLDELETEPATHSNVPROC deletePaths = nullptr; | 
| 334 |     PFNGLISPATHNVPROC isPath = nullptr; | 
| 335 |     PFNGLPATHCOMMANDSNVPROC pathCommands = nullptr; | 
| 336 |     PFNGLPATHCOORDSNVPROC pathCoords = nullptr; | 
| 337 |     PFNGLPATHSUBCOMMANDSNVPROC pathSubCommands = nullptr; | 
| 338 |     PFNGLPATHSUBCOORDSNVPROC pathSubCoords = nullptr; | 
| 339 |     PFNGLPATHSTRINGNVPROC pathString = nullptr; | 
| 340 |     PFNGLPATHGLYPHSNVPROC pathGlyphs = nullptr; | 
| 341 |     PFNGLPATHGLYPHRANGENVPROC pathGlyphRange = nullptr; | 
| 342 |     PFNGLWEIGHTPATHSNVPROC weightPaths = nullptr; | 
| 343 |     PFNGLCOPYPATHNVPROC copyPath = nullptr; | 
| 344 |     PFNGLINTERPOLATEPATHSNVPROC interpolatePaths = nullptr; | 
| 345 |     PFNGLTRANSFORMPATHNVPROC transformPath = nullptr; | 
| 346 |     PFNGLPATHPARAMETERIVNVPROC pathParameteriv = nullptr; | 
| 347 |     PFNGLPATHPARAMETERINVPROC pathParameteri = nullptr; | 
| 348 |     PFNGLPATHPARAMETERFVNVPROC pathParameterfv = nullptr; | 
| 349 |     PFNGLPATHPARAMETERFNVPROC pathParameterf = nullptr; | 
| 350 |     PFNGLPATHDASHARRAYNVPROC pathDashArray = nullptr; | 
| 351 |     PFNGLPATHSTENCILFUNCNVPROC pathStencilFunc = nullptr; | 
| 352 |     PFNGLPATHSTENCILDEPTHOFFSETNVPROC pathStencilDepthOffset = nullptr; | 
| 353 |     PFNGLSTENCILFILLPATHNVPROC stencilFillPath = nullptr; | 
| 354 |     PFNGLSTENCILSTROKEPATHNVPROC stencilStrokePath = nullptr; | 
| 355 |     PFNGLSTENCILFILLPATHINSTANCEDNVPROC stencilFillPathInstanced = nullptr; | 
| 356 |     PFNGLSTENCILSTROKEPATHINSTANCEDNVPROC stencilStrokePathInstanced = nullptr; | 
| 357 |     PFNGLPATHCOVERDEPTHFUNCNVPROC pathCoverDepthFunc = nullptr; | 
| 358 |     PFNGLCOVERFILLPATHNVPROC coverFillPath = nullptr; | 
| 359 |     PFNGLCOVERSTROKEPATHNVPROC coverStrokePath = nullptr; | 
| 360 |     PFNGLCOVERFILLPATHINSTANCEDNVPROC coverFillPathInstanced = nullptr; | 
| 361 |     PFNGLCOVERSTROKEPATHINSTANCEDNVPROC coverStrokePathInstanced = nullptr; | 
| 362 |     PFNGLGETPATHPARAMETERIVNVPROC getPathParameteriv = nullptr; | 
| 363 |     PFNGLGETPATHPARAMETERFVNVPROC getPathParameterfv = nullptr; | 
| 364 |     PFNGLGETPATHCOMMANDSNVPROC getPathCommands = nullptr; | 
| 365 |     PFNGLGETPATHCOORDSNVPROC getPathCoords = nullptr; | 
| 366 |     PFNGLGETPATHDASHARRAYNVPROC getPathDashArray = nullptr; | 
| 367 |     PFNGLGETPATHMETRICSNVPROC getPathMetrics = nullptr; | 
| 368 |     PFNGLGETPATHMETRICRANGENVPROC getPathMetricRange = nullptr; | 
| 369 |     PFNGLGETPATHSPACINGNVPROC getPathSpacing = nullptr; | 
| 370 |     PFNGLISPOINTINFILLPATHNVPROC isPointInFillPath = nullptr; | 
| 371 |     PFNGLISPOINTINSTROKEPATHNVPROC isPointInStrokePath = nullptr; | 
| 372 |     PFNGLGETPATHLENGTHNVPROC getPathLength = nullptr; | 
| 373 |     PFNGLPOINTALONGPATHNVPROC getPointAlongPath = nullptr; | 
| 374 |     PFNGLMATRIXLOAD3X2FNVPROC matrixLoad3x2f = nullptr; | 
| 375 |     PFNGLMATRIXLOAD3X3FNVPROC matrixLoad3x3f = nullptr; | 
| 376 |     PFNGLMATRIXLOADTRANSPOSE3X3FNVPROC matrixLoadTranspose3x3f = nullptr; | 
| 377 |     PFNGLMATRIXMULT3X2FNVPROC matrixMult3x2f = nullptr; | 
| 378 |     PFNGLMATRIXMULT3X3FNVPROC matrixMult3x3f = nullptr; | 
| 379 |     PFNGLMATRIXMULTTRANSPOSE3X3FNVPROC matrixMultTranspose3x3f = nullptr; | 
| 380 |     PFNGLSTENCILTHENCOVERFILLPATHNVPROC stencilThenCoverFillPath = nullptr; | 
| 381 |     PFNGLSTENCILTHENCOVERSTROKEPATHNVPROC stencilThenCoverStrokePath = nullptr; | 
| 382 |     PFNGLSTENCILTHENCOVERFILLPATHINSTANCEDNVPROC stencilThenCoverFillPathInstanced = nullptr; | 
| 383 |     PFNGLSTENCILTHENCOVERSTROKEPATHINSTANCEDNVPROC stencilThenCoverStrokePathInstanced = nullptr; | 
| 384 |     PFNGLPATHGLYPHINDEXRANGENVPROC pathGlyphIndexRange = nullptr; | 
| 385 |     PFNGLPATHGLYPHINDEXARRAYNVPROC pathGlyphIndexArray = nullptr; | 
| 386 |     PFNGLPATHMEMORYGLYPHINDEXARRAYNVPROC pathMemoryGlyphIndexArray = nullptr; | 
| 387 |     PFNGLPROGRAMPATHFRAGMENTINPUTGENNVPROC programPathFragmentInputGen = nullptr; | 
| 388 |     PFNGLGETPROGRAMRESOURCEFVNVPROC getProgramResourcefv = nullptr; | 
| 389 |  | 
| 390 |     PFNGLMATRIXLOADFEXTPROC matrixLoadf = nullptr; | 
| 391 |     PFNGLMATRIXLOADIDENTITYEXTPROC matrixLoadIdentity = nullptr; | 
| 392 |  | 
| 393 | private: | 
| 394 |     QQuickNvprFunctionsPrivate *d; | 
| 395 | }; | 
| 396 |  | 
| 397 | QT_END_NAMESPACE | 
| 398 |  | 
| 399 | #endif // QT_CONFIG(opengl) | 
| 400 |  | 
| 401 | #endif // QQUICKNVPRFUNCTIONS_P_H | 
| 402 |  |