PowerVR Software Development Kit


Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

PVRTglesExt.h

Go to the documentation of this file.
00001 /*!***************************************************************************
00002  @File          OGLES/PVRTglesExt.h
00003 
00004  @Brief         GL extensions.
00005 
00006  @Author        PowerVR
00007 
00008  @Date          June 2004
00009 
00010  @Copyright     Copyright 2003-2004 by Imagination Technologies Limited.
00011                 All rights reserved. No part of this software, either
00012                 material or conceptual may be copied or distributed,
00013                 transmitted, transcribed, stored in a retrieval system
00014                 or translated into any human or computer language in any
00015                 form by any means, electronic, mechanical, manual or
00016                 other-wise, or disclosed to third parties without the
00017                 express written permission of Imagination Technologies
00018                 Limited, Unit 8, HomePark Industrial Estate,
00019                 King's Langley, Hertfordshire, WD4 8LZ, U.K.
00020 
00021  @Platform      Independant
00022 
00023  @Description   GL extensions.
00024 
00025  $Revision: 1.14 $
00026 *****************************************************************************/
00027 #ifndef _PVRTGLESEXT_H_
00028 #define _PVRTGLESEXT_H_
00029 
00030 /****************************************************************************
00031 ** Build options
00032 ****************************************************************************/
00033 
00034 #ifndef APIENTRY
00035 #define APIENTRY
00036 #endif
00037 #ifndef GL_APIENTRY
00038 #define GL_APIENTRY
00039 #endif
00040 
00041 #define GL_PVRTGLESEXT_VERSION 1
00042 
00043 /**************************************************************************
00044 ****************************** GL EXTENSIONS ******************************
00045 **************************************************************************/
00046 
00047 class CPVRTglesExt
00048 {
00049 public:
00050     /*
00051         GL_OES_matrix_palette
00052     */
00053     typedef void (GL_APIENTRY * PFNGLCURRENTPALETTEMATRIXOES) (GLuint matrixpaletteindex);
00054     typedef void (GL_APIENTRY * PFNGLLOADPALETTEFROMMODELVIEWMATRIXOES) (void);
00055     typedef void (GL_APIENTRY * PFNGLMATRIXINDEXPOINTEROES) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
00056     typedef void (GL_APIENTRY * PFNGLWEIGHTPOINTEROES) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer);
00057 
00058     /* Function pointers */
00059     PFNGLCURRENTPALETTEMATRIXOES            glCurrentPaletteMatrixOES;
00060     PFNGLLOADPALETTEFROMMODELVIEWMATRIXOES  glLoadPaletteFromModelViewMatrixOES;
00061     PFNGLMATRIXINDEXPOINTEROES              glMatrixIndexPointerOES;
00062     PFNGLWEIGHTPOINTEROES                   glWeightPointerOES;
00063 
00064     /*
00065         GL_IMG_texture_env_enhanced_fixed_function
00066     */
00067     /* Tokens */
00068     #define GL_MODULATE_COLOR_IMG                       0x8C04
00069     #define GL_RECIP_ADD_SIGNED_ALPHA_IMG               0x8C05
00070     #define GL_TEXTURE_ALPHA_MODULATE_IMG               0x8C06
00071     #define GL_FACTOR_ALPHA_MODULATE_IMG                0x8C07
00072     #define GL_FRAGMENT_ALPHA_MODULATE_IMG              0x8C08
00073     #define GL_ADD_BLEND_IMG                            0x8C09
00074     #ifndef GL_DOT3_RGBA
00075     #define GL_DOT3_RGBA                                0x86AF
00076     #endif
00077 
00078 
00079     /*
00080         GL_IMG_texture_compression_pvrtc
00081     */
00082     /* Tokens */
00083     #define GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG          0x8C00
00084     #define GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG          0x8C01
00085     #define GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG         0x8C02
00086     #define GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG         0x8C03
00087 
00088 
00089     /*
00090         GL_ARB_texture_env_combine
00091     */
00092     /* Tokens */
00093     #define GL_COMBINE                                  0x8570
00094     #define GL_COMBINE_RGB                              0x8571
00095     #define GL_COMBINE_ALPHA                            0x8572
00096     #define GL_RGB_SCALE                                0x8573
00097     #define GL_ADD_SIGNED                               0x8574
00098     #define GL_INTERPOLATE                              0x8575
00099     #define GL_CONSTANT                                 0x8576
00100     #define GL_PRIMARY_COLOR                            0x8577
00101     #define GL_PREVIOUS                                 0x8578
00102     #define GL_SOURCE0_RGB                              0x8580
00103     #define GL_SOURCE1_RGB                              0x8581
00104     #define GL_SOURCE2_RGB                              0x8582
00105     #define GL_SOURCE0_ALPHA                            0x8588
00106     #define GL_SOURCE1_ALPHA                            0x8589
00107     #define GL_SOURCE2_ALPHA                            0x858A
00108     #define GL_OPERAND0_RGB                             0x8590
00109     #define GL_OPERAND1_RGB                             0x8591
00110     #define GL_OPERAND2_RGB                             0x8592
00111     #define GL_OPERAND0_ALPHA                           0x8598
00112     #define GL_OPERAND1_ALPHA                           0x8599
00113     #define GL_OPERAND2_ALPHA                           0x859A
00114     #define GL_SUBTRACT                                 0x84E7
00115 
00116 
00117     /*
00118         GL_ARB_texture_env_dot3
00119     */
00120     /* Tokens */
00121     #define GL_DOT3_RGB                                 0x86AE
00122     #ifndef GL_DOT3_RGBA
00123     #define GL_DOT3_RGBA                                0x86AF
00124     #endif
00125 
00126 
00127     /*
00128         GL_IMG_user_clip_plane
00129     */
00130     /* Tokens */
00131     #define GL_MAX_CLIP_PLANES                          0x0D32
00132     #define GL_CLIP_PLANE0                              0x3000
00133     #define GL_CLIP_PLANE1                              0x3001
00134     #define GL_CLIP_PLANE2                              0x3002
00135     #define GL_CLIP_PLANE3                              0x3003
00136     #define GL_CLIP_PLANE4                              0x3004
00137     #define GL_CLIP_PLANE5                              0x3005
00138 
00139     /* Typedefs */
00140     typedef void (APIENTRY * PFNGLCLIPPLANEFIMG) (GLenum p, GLfloat eqn[4]);
00141     typedef void (APIENTRY * PFNGLCLIPPLANEXIMG) (GLenum p, GLfixed eqn[4]);
00142 
00143     /* Function pointers */
00144     PFNGLCLIPPLANEFIMG  glClipPlanefIMG;
00145     PFNGLCLIPPLANEXIMG  glClipPlanexIMG;
00146 
00147 
00148     /*
00149         GL_IMG_vertex_program
00150     */
00151     /* Tokens */
00152     #define GL_VERTEX_PROGRAM_ARB                       0x8620
00153     #define GL_PROGRAM_STRING_ARB                       0x8628
00154     #define GL_PROGRAM_ERROR_STRING_ARB                 0x8874
00155     #define GL_MAX_PROGRAM_ATTRIBS_ARB                  0x88AD
00156     #define GL_MAX_PROGRAM_PARAMETERS_ARB               0x88A9
00157     #define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB         0x88B4
00158     #define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB           0x88B5
00159     #define GL_MAX_VERTEX_ATTRIBS_ARB                   0x8869
00160     #define GL_MAX_PROGRAM_MATRICES_ARB                 0x862F
00161     #define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB       0x862E
00162     #define GL_MATRIX0_ARB                              0x88C0
00163     #define GL_MATRIX1_ARB                              0x88C1
00164     #define GL_MATRIX2_ARB                              0x88C2
00165     #define GL_MATRIX3_ARB                              0x88C3
00166     #define GL_MATRIX4_ARB                              0x88C4
00167     #define GL_MATRIX5_ARB                              0x88C5
00168     #define GL_MATRIX6_ARB                              0x88C6
00169     #define GL_MATRIX7_ARB                              0x88C7
00170     #define GL_PROGRAM_FORMAT_BINARY_IMG                0x8C0B
00171     #define GL_UNSIGNED_BYTE_NORM_IMG                   0x8C0C
00172     /* IMG_texture_stream */
00173     #define GL_TEXTURE_STREAM_IMG                       0x8C0D
00174     #define GL_TEXTURE_NUM_STREAM_DEVICES_IMG           0x8C0E
00175     #define GL_TEXTURE_STREAM_DEVICE_WIDTH_IMG          0x8C0F
00176     #define GL_TEXTURE_STREAM_DEVICE_HEIGHT_IMG         0x8C10
00177     #define GL_TEXTURE_STREAM_DEVICE_FORMAT_IMG         0x8C11
00178     #define GL_TEXTURE_STREAM_DEVICE_NUM_BUFFERS_IMG    0x8C12
00179 
00180     /* Typedefs */
00181     typedef void (APIENTRY * PFNGLVERTEXATTRIBPOINTERARB) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer);
00182     typedef void (APIENTRY * PFNGLENABLEVERTEXATTRIBARRAYARB) (GLuint index);
00183     typedef void (APIENTRY * PFNGLDISABLEVERTEXATTRIBARRAYARB) (GLuint index);
00184     typedef void (APIENTRY * PFNGLPROGRAMSTRINGARB) (GLenum target, GLenum format, GLsizei len, const GLvoid *string);
00185     typedef void (APIENTRY * PFNGLBINDPROGRAMARB) (GLenum target, GLuint program);
00186     typedef void (APIENTRY * PFNGLDELETEPROGRAMSARB) (GLsizei n, const GLuint *programs);
00187     typedef void (APIENTRY * PFNGLGENPROGRAMSARB) (GLsizei n, GLuint *programs);
00188     typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4FARB) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00189     typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4FVARB) (GLenum target, GLuint index, const GLfloat *params);
00190     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FARB) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
00191     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4FVARB) (GLenum target, GLuint index, const GLfloat *params);
00192     typedef GLboolean (APIENTRY * PFNGLISPROGRAMARB) (GLuint program);
00193     typedef void (APIENTRY * PFNGLVERTEXATTRIB4FVARB) (GLuint index, const float *v);
00194     typedef void (APIENTRY * PFNGLVERTEXATTRIB4XVIMG) (GLuint index, const GLfixed *v);
00195     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4XIMG) (GLenum target, GLuint index, GLfixed x, GLfixed y, GLfixed z, GLfixed w);
00196     typedef void (APIENTRY * PFNGLPROGRAMLOCALPARAMETER4XVIMG) (GLenum target, GLuint index, const GLfixed *params);
00197     typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4XIMG) (GLenum target, GLuint index, GLfixed x, GLfixed y, GLfixed z, GLfixed w);
00198     typedef void (APIENTRY * PFNGLPROGRAMENVPARAMETER4XVIMG) (GLenum target, GLuint index, const GLfixed *params);
00199     typedef void (APIENTRY * PFNGLDRAWTEXIOES) (GLint x, GLint y, GLint z, GLint width, GLint height);
00200     typedef void (APIENTRY * PFNGLDRAWTEXIVOES) (const GLint* coords);
00201     typedef void (APIENTRY * PFNGLDRAWTEXSOES) (GLshort x, GLshort y, GLshort z, GLshort width, GLshort height);
00202     typedef void (APIENTRY * PFNGLDRAWTEXSVOES) (const GLshort* coords);
00203     typedef void (APIENTRY * PFNGLDRAWTEXXOES) (GLfixed x, GLfixed y, GLfixed z, GLfixed width, GLfixed height);
00204     typedef void (APIENTRY * PFNGLDRAWTEXXVOES) (const GLfixed* coords);
00205     typedef void (APIENTRY * PFNGLDRAWTEXFOES) (GLfloat x, GLfloat y, GLfloat z, GLfloat width, GLfloat height);
00206     typedef void (APIENTRY * PFNGLDRAWTEXFVOES) (const GLfloat* coords);
00207     /* IMG_texture_stream */
00208     typedef void (APIENTRY * PFNGLGETTEXSTREAMDEVICEATTRIBIVIMG)(GLint device, GLenum pname, GLint *params);
00209     typedef void (APIENTRY * PFNGLTEXBINDSTREAMIMG)(GLint device, GLint deviceoffset);
00210     typedef const GLubyte * (APIENTRY * PFNGLGETTEXSTREAMDEVICENAMEIMG)(GLint device);
00211     /* GL_EXT_multi_draw_arrays */
00212     typedef void (APIENTRY * PFNGLMULTIDRAWELEMENTS) (GLenum mode, GLsizei *count, GLenum type, const GLvoid **indices, GLsizei primcount); // glvoid
00213 
00214 
00215     /* Function pointers */
00216     PFNGLVERTEXATTRIBPOINTERARB         glVertexAttribPointerARB;
00217     PFNGLENABLEVERTEXATTRIBARRAYARB     glEnableVertexAttribArrayARB;
00218     PFNGLDISABLEVERTEXATTRIBARRAYARB    glDisableVertexAttribArrayARB;
00219     PFNGLPROGRAMSTRINGARB               glProgramStringARB;
00220     PFNGLBINDPROGRAMARB                 glBindProgramARB;
00221     PFNGLDELETEPROGRAMSARB              glDeleteProgramsARB;
00222     PFNGLGENPROGRAMSARB                 glGenProgramsARB;
00223     PFNGLISPROGRAMARB                   glIsProgramARB;
00224     PFNGLPROGRAMENVPARAMETER4FARB       glProgramEnvParameter4fARB;
00225     PFNGLPROGRAMENVPARAMETER4FVARB      glProgramEnvParameter4fvARB;
00226     PFNGLPROGRAMLOCALPARAMETER4FARB     glProgramLocalParameter4fARB;
00227     PFNGLPROGRAMLOCALPARAMETER4FVARB    glProgramLocalParameter4fvARB;
00228     PFNGLVERTEXATTRIB4FVARB             glVertexAttrib4fvARB;
00229     PFNGLVERTEXATTRIB4XVIMG             glVertexAttrib4xvIMG;
00230     PFNGLPROGRAMLOCALPARAMETER4XIMG     glProgramLocalParameter4xIMG;
00231     PFNGLPROGRAMLOCALPARAMETER4XVIMG    glProgramLocalParameter4xvIMG;
00232     PFNGLPROGRAMENVPARAMETER4XIMG       glProgramEnvParameter4xIMG;
00233     PFNGLPROGRAMENVPARAMETER4XVIMG      glProgramEnvParameter4xvIMG;
00234     PFNGLDRAWTEXIOES                    glDrawTexiOES;
00235     PFNGLDRAWTEXIVOES                   glDrawTexivOES;
00236     PFNGLDRAWTEXSOES                    glDrawTexsOES;
00237     PFNGLDRAWTEXSVOES                   glDrawTexsvOES;
00238     PFNGLDRAWTEXXOES                    glDrawTexxOES;
00239     PFNGLDRAWTEXXVOES                   glDrawTexxvOES;
00240     PFNGLDRAWTEXFOES                    glDrawTexfOES;
00241     PFNGLDRAWTEXFVOES                   glDrawTexfvOES;
00242     /* IMG_texture_stream */
00243     PFNGLGETTEXSTREAMDEVICEATTRIBIVIMG  glGetTexStreamDeviceAttribivIMG;
00244     PFNGLTEXBINDSTREAMIMG               glTexBindStreamIMG;
00245     PFNGLGETTEXSTREAMDEVICENAMEIMG      glGetTexStreamDeviceNameIMG;
00246     /* GL_EXT_multi_draw_arrays */
00247     PFNGLMULTIDRAWELEMENTS              glMultiDrawElementsEXT;
00248 
00249 
00250     /**************************************************************************
00251     ****************************** EGL EXTENSIONS *****************************
00252     **************************************************************************/
00253 
00254     /*
00255         EGL_IMG_power_management
00256     */
00257     /* Tokens */
00258     #define EGL_CONTEXT_LOST_IMG                        0x300E
00259 
00260 public:
00261     /*!***********************************************************************
00262      @Function          Init
00263      @Description       Initialises IMG extensions
00264     *************************************************************************/
00265     void Init();
00266 
00267     // The recommended technique for querying OpenGL extensions;
00268     // from http://opengl.org/resources/features/OGLextensions/
00269     static bool IsGLExtensionSupported(const char *extension);
00270 };
00271 
00272 
00273 /****************************************************************************
00274 ** Functions
00275 ****************************************************************************/
00276 
00277 
00278 #endif /* _PVRTGLESEXT_H_ */
00279 
00280 /*****************************************************************************
00281  End of file (PVRTglesExt.h)
00282 *****************************************************************************/


Copyright © 1999-2006, PowerVR Technologies and partners. PowerVR Technologies is a division of Imagination Technologies Ltd.


Generated by DOXYGEN 1.3.6