1 // This implements support common to all glGet functions. 2 // 3 // Copyright (c) 2021 Riverbank Computing Limited <info@riverbankcomputing.com> 4 // 5 // This file is part of PyQt5. 6 // 7 // This file may be used under the terms of the GNU General Public License 8 // version 3.0 as published by the Free Software Foundation and appearing in 9 // the file LICENSE included in the packaging of this file. Please review the 10 // following information to ensure the GNU General Public License version 3.0 11 // requirements will be met: http://www.gnu.org/copyleft/gpl.html. 12 // 13 // If you do not wish to use this file under the terms of the GPL version 3.0 14 // then you may purchase a commercial license. For more information contact 15 // info@riverbankcomputing.com. 16 // 17 // This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 18 // WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 19 20 21 #include "sipAPIQtGui.h" 22 23 #if defined(SIP_FEATURE_PyQt_OpenGL) 24 25 #include "qpyopengl_api.h" 26 27 28 #if QT_VERSION >= 0x050100 29 30 // Return the number of values returned for a particular parameter, or the 31 // subsequent query needed to obtain the number of values. qpyopengl_get(GLenum pname,GLenum * query)32GLint qpyopengl_get(GLenum pname, GLenum *query) 33 { 34 GLint nr_params = 0; 35 36 switch (pname) 37 { 38 #if defined(GL_COMPRESSED_TEXTURE_FORMATS) 39 case GL_COMPRESSED_TEXTURE_FORMATS: 40 *query = GL_NUM_COMPRESSED_TEXTURE_FORMATS; 41 break; 42 #endif 43 44 #if defined(GL_PROGRAM_BINARY_FORMATS) 45 case GL_PROGRAM_BINARY_FORMATS: 46 *query = GL_NUM_PROGRAM_BINARY_FORMATS; 47 break; 48 #endif 49 50 #if defined(GL_SHADER_BINARY_FORMATS) 51 case GL_SHADER_BINARY_FORMATS: 52 *query = GL_NUM_SHADER_BINARY_FORMATS; 53 break; 54 #endif 55 56 #if defined(GL_COLOR_MATRIX) 57 case GL_COLOR_MATRIX: 58 #endif 59 #if defined(GL_MODELVIEW_MATRIX) 60 case GL_MODELVIEW_MATRIX: 61 #endif 62 #if defined(GL_PROJECTION_MATRIX) 63 case GL_PROJECTION_MATRIX: 64 #endif 65 #if defined(GL_TEXTURE_MATRIX) 66 case GL_TEXTURE_MATRIX: 67 #endif 68 #if defined(GL_TRANSPOSE_COLOR_MATRIX) 69 case GL_TRANSPOSE_COLOR_MATRIX: 70 #endif 71 #if defined(GL_TRANSPOSE_MODELVIEW_MATRIX) 72 case GL_TRANSPOSE_MODELVIEW_MATRIX: 73 #endif 74 #if defined(GL_TRANSPOSE_PROJECTION_MATRIX) 75 case GL_TRANSPOSE_PROJECTION_MATRIX: 76 #endif 77 #if defined(GL_TRANSPOSE_TEXTURE_MATRIX) 78 case GL_TRANSPOSE_TEXTURE_MATRIX: 79 #endif 80 nr_params = 16; 81 break; 82 83 #if defined(GL_ACCUM_CLEAR_VALUE) 84 case GL_ACCUM_CLEAR_VALUE: 85 #endif 86 #if defined(GL_BLEND_COLOR) 87 case GL_BLEND_COLOR: 88 #endif 89 #if defined(GL_COLOR_CLEAR_VALUE) 90 case GL_COLOR_CLEAR_VALUE: 91 #endif 92 #if defined(GL_COLOR_WRITEMASK) 93 case GL_COLOR_WRITEMASK: 94 #endif 95 #if defined(GL_CURRENT_COLOR) 96 case GL_CURRENT_COLOR: 97 #endif 98 #if defined(GL_CURRENT_RASTER_COLOR) 99 case GL_CURRENT_RASTER_COLOR: 100 #endif 101 #if defined(GL_CURRENT_RASTER_POSITION) 102 case GL_CURRENT_RASTER_POSITION: 103 #endif 104 #if defined(GL_CURRENT_RASTER_SECONDARY_COLOR) 105 case GL_CURRENT_RASTER_SECONDARY_COLOR: 106 #endif 107 #if defined(GL_CURRENT_RASTER_TEXTURE_COORDS) 108 case GL_CURRENT_RASTER_TEXTURE_COORDS: 109 #endif 110 #if defined(GL_CURRENT_SECONDARY_COLOR) 111 case GL_CURRENT_SECONDARY_COLOR: 112 #endif 113 #if defined(GL_CURRENT_TEXTURE_COORDS) 114 case GL_CURRENT_TEXTURE_COORDS: 115 #endif 116 #if defined(GL_FOG_COLOR) 117 case GL_FOG_COLOR: 118 #endif 119 #if defined(GL_LIGHT_MODEL_AMBIENT) 120 case GL_LIGHT_MODEL_AMBIENT: 121 #endif 122 #if defined(GL_MAP2_GRID_DOMAIN) 123 case GL_MAP2_GRID_DOMAIN: 124 #endif 125 #if defined(GL_SCISSOR_BOX) 126 case GL_SCISSOR_BOX: 127 #endif 128 #if defined(GL_VIEWPORT) 129 case GL_VIEWPORT: 130 #endif 131 nr_params = 4; 132 break; 133 134 #if defined(GL_SMOOTH_POINT_SIZE_RANGE) 135 case GL_SMOOTH_POINT_SIZE_RANGE: 136 #endif 137 #if defined(GL_POINT_SIZE_RANGE) && (!defined(GL_SMOOTH_POINT_SIZE_RANGE) || GL_SMOOTH_POINT_SIZE_RANGE != GL_POINT_SIZE_RANGE) 138 case GL_POINT_SIZE_RANGE: 139 #endif 140 141 #if defined(GL_SMOOTH_LINE_WIDTH_RANGE) 142 case GL_SMOOTH_LINE_WIDTH_RANGE: 143 #endif 144 #if defined(GL_LINE_WIDTH_RANGE) && (!defined(GL_SMOOTH_LINE_WIDTH_RANGE) || GL_SMOOTH_LINE_WIDTH_RANGE != GL_LINE_WIDTH_RANGE) 145 case GL_LINE_WIDTH_RANGE: 146 #endif 147 148 #if defined(GL_ALIASED_POINT_SIZE_RANGE) 149 case GL_ALIASED_POINT_SIZE_RANGE: 150 #endif 151 #if defined(GL_ALIASED_LINE_WIDTH_RANGE) 152 case GL_ALIASED_LINE_WIDTH_RANGE: 153 #endif 154 #if defined(GL_DEPTH_RANGE) 155 case GL_DEPTH_RANGE: 156 #endif 157 #if defined(GL_MAP1_GRID_DOMAIN) 158 case GL_MAP1_GRID_DOMAIN: 159 #endif 160 #if defined(GL_MAP2_GRID_SEGMENTS) 161 case GL_MAP2_GRID_SEGMENTS: 162 #endif 163 #if defined(GL_MAX_VIEWPORT_DIMS) 164 case GL_MAX_VIEWPORT_DIMS: 165 #endif 166 #if defined(GL_POLYGON_MODE) 167 case GL_POLYGON_MODE: 168 #endif 169 #if defined(GL_VIEWPORT_BOUNDS_RANGE) 170 case GL_VIEWPORT_BOUNDS_RANGE: 171 #endif 172 nr_params = 2; 173 break; 174 175 default: 176 nr_params = 1; 177 } 178 179 return nr_params; 180 } 181 182 #endif 183 184 #endif 185