2014-05-31 04:04:06 +10:00
|
|
|
#pragma once
|
2012-11-26 20:27:35 +10:00
|
|
|
|
2013-10-23 14:55:20 +10:00
|
|
|
#ifdef IOS
|
2014-04-30 11:34:15 +08:00
|
|
|
#include <OpenGLES/ES3/gl.h>
|
|
|
|
#include <OpenGLES/ES3/glext.h>
|
2014-05-31 04:04:06 +10:00
|
|
|
#elif defined(USING_GLES2)
|
2013-10-23 14:55:20 +10:00
|
|
|
#include <GLES2/gl2.h>
|
|
|
|
#include <GLES2/gl2ext.h>
|
2014-06-06 14:12:21 +10:00
|
|
|
// At least Nokia platforms need the three below
|
2014-05-31 04:04:06 +10:00
|
|
|
#include <KHR/khrplatform.h>
|
|
|
|
typedef char GLchar;
|
|
|
|
#define GL_BGRA_EXT 0x80E1
|
2012-11-26 20:27:35 +10:00
|
|
|
#else // OpenGL
|
2015-02-03 17:35:45 -02:00
|
|
|
#include "GL/glew.h"
|
2012-11-26 20:27:35 +10:00
|
|
|
#if defined(__APPLE__)
|
|
|
|
#include <OpenGL/gl.h>
|
|
|
|
#else
|
|
|
|
#include <GL/gl.h>
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
2014-05-31 04:04:06 +10:00
|
|
|
#ifdef USING_GLES2
|
|
|
|
// Support OpenGL ES 3.0
|
|
|
|
// This uses the "DYNAMIC" approach from the gles3jni NDK sample.
|
|
|
|
#include "../gfx_es2/gl3stub.h"
|
2012-12-13 14:39:44 +10:00
|
|
|
#endif
|
|
|
|
|
2015-09-06 12:21:15 +02:00
|
|
|
|
|
|
|
#ifdef USING_GLES2
|
|
|
|
|
|
|
|
#ifndef GL_MIN_EXT
|
|
|
|
#define GL_MIN_EXT 0x8007
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef GL_MAX_EXT
|
|
|
|
#define GL_MAX_EXT 0x8008
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#if defined(ANDROID) || defined(BLACKBERRY)
|
|
|
|
#include <EGL/egl.h>
|
|
|
|
// Additional extensions not included in GLES2/gl2ext.h from the NDK
|
|
|
|
|
|
|
|
typedef uint64_t EGLuint64NV;
|
|
|
|
typedef EGLuint64NV(EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
|
|
|
|
typedef EGLuint64NV(EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void);
|
|
|
|
extern PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC eglGetSystemTimeFrequencyNV;
|
|
|
|
extern PFNEGLGETSYSTEMTIMENVPROC eglGetSystemTimeNV;
|
|
|
|
|
|
|
|
typedef GLvoid* (GL_APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
|
|
|
|
extern PFNGLMAPBUFFERPROC glMapBuffer;
|
|
|
|
|
|
|
|
typedef void (EGLAPIENTRYP PFNGLDRAWTEXTURENVPROC) (GLuint texture, GLuint sampler, GLfloat x0, GLfloat y0, GLfloat x1, GLfloat y1, GLfloat z, GLfloat s0, GLfloat t0, GLfloat s1, GLfloat t1);
|
|
|
|
extern PFNGLDRAWTEXTURENVPROC glDrawTextureNV;
|
|
|
|
typedef void (EGLAPIENTRYP PFNGLCOPYIMAGESUBDATANVPROC) (GLuint srcName, GLenum
|
|
|
|
srcTarget, GLint srcLevel, GLint srcX, GLint srcY, GLint srcZ, GLuint dstName,
|
|
|
|
GLenum dstTarget, GLint dstLevel, GLint dstX, GLint dstY, GLint dstZ, GLsizei
|
|
|
|
width, GLsizei height, GLsizei depth);
|
|
|
|
extern PFNGLCOPYIMAGESUBDATANVPROC glCopyImageSubDataNV;
|
|
|
|
#ifndef ARM64
|
|
|
|
typedef void (EGLAPIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (
|
|
|
|
GLint srcX0, GLint srcY0, GLint srcX1, GLuint srcY1,
|
|
|
|
GLint dstX0, GLint dstY0, GLint dstX1, GLuint dstY1,
|
|
|
|
GLint mask, GLenum filter);
|
|
|
|
#endif
|
|
|
|
extern PFNGLBLITFRAMEBUFFERNVPROC glBlitFramebufferNV;
|
|
|
|
|
|
|
|
extern PFNGLDISCARDFRAMEBUFFEREXTPROC glDiscardFramebufferEXT;
|
|
|
|
extern PFNGLGENVERTEXARRAYSOESPROC glGenVertexArraysOES;
|
|
|
|
extern PFNGLBINDVERTEXARRAYOESPROC glBindVertexArrayOES;
|
|
|
|
extern PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArraysOES;
|
|
|
|
extern PFNGLISVERTEXARRAYOESPROC glIsVertexArrayOES;
|
|
|
|
#endif
|
|
|
|
|
|
|
|
// Rename standard functions to the OES version.
|
|
|
|
#define glGenVertexArrays glGenVertexArraysOES
|
|
|
|
#define glBindVertexArray glBindVertexArrayOES
|
|
|
|
#define glDeleteVertexArrays glDeleteVertexArraysOES
|
|
|
|
#define glIsVertexArray glIsVertexArrayOES
|
|
|
|
|
|
|
|
#if !defined(BLACKBERRY)
|
|
|
|
#ifndef GL_READ_FRAMEBUFFER
|
|
|
|
#define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER
|
|
|
|
#define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER
|
|
|
|
#endif
|
|
|
|
#ifndef GL_DEPTH_COMPONENT24
|
|
|
|
#define GL_DEPTH_COMPONENT24 GL_DEPTH_COMPONENT24_OES
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef GL_RGBA8
|
|
|
|
#define GL_RGBA8 GL_RGBA
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif /* EGL_NV_system_time */
|
|
|
|
|
|
|
|
#ifndef GL_DEPTH24_STENCIL8_OES
|
|
|
|
#define GL_DEPTH24_STENCIL8_OES 0x88F0
|
|
|
|
#endif
|