2014-05-31 04:04:06 +10:00
|
|
|
#pragma once
|
2012-11-26 20:27:35 +10:00
|
|
|
|
2020-08-29 08:45:50 -07:00
|
|
|
#include "ppsspp_config.h"
|
|
|
|
|
2021-03-02 20:57:25 -08:00
|
|
|
#if PPSSPP_PLATFORM(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-05-31 04:04:06 +10:00
|
|
|
#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.
|
2020-10-04 23:24:14 +02:00
|
|
|
#include "Common/GPU/OpenGL/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
|
|
|
|
|
2016-10-12 11:13:16 +02:00
|
|
|
#if defined(__ANDROID__)
|
2015-09-06 12:21:15 +02:00
|
|
|
#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;
|
2020-08-29 08:45:50 -07:00
|
|
|
#if !PPSSPP_ARCH(ARM64)
|
2015-09-06 12:21:15 +02:00
|
|
|
typedef void (EGLAPIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (
|
2016-01-18 05:20:14 +01:00
|
|
|
GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
|
|
|
|
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
|
2016-01-17 12:30:20 -08:00
|
|
|
GLbitfield mask, GLenum filter);
|
2015-09-06 12:21:15 +02:00
|
|
|
#endif
|
|
|
|
extern PFNGLBLITFRAMEBUFFERNVPROC glBlitFramebufferNV;
|
|
|
|
|
2021-03-02 20:57:25 -08:00
|
|
|
#if PPSSPP_PLATFORM(IOS)
|
2015-09-06 12:21:15 +02:00
|
|
|
extern PFNGLDISCARDFRAMEBUFFEREXTPROC glDiscardFramebufferEXT;
|
|
|
|
extern PFNGLGENVERTEXARRAYSOESPROC glGenVertexArraysOES;
|
|
|
|
extern PFNGLBINDVERTEXARRAYOESPROC glBindVertexArrayOES;
|
|
|
|
extern PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArraysOES;
|
|
|
|
extern PFNGLISVERTEXARRAYOESPROC glIsVertexArrayOES;
|
|
|
|
|
|
|
|
// Rename standard functions to the OES version.
|
|
|
|
#define glGenVertexArrays glGenVertexArraysOES
|
|
|
|
#define glBindVertexArray glBindVertexArrayOES
|
|
|
|
#define glDeleteVertexArrays glDeleteVertexArraysOES
|
|
|
|
#define glIsVertexArray glIsVertexArrayOES
|
2016-03-20 16:25:19 -07:00
|
|
|
#endif
|
2015-09-06 12:21:15 +02:00
|
|
|
|
2015-09-06 16:03:19 +02:00
|
|
|
#endif
|
|
|
|
|
2015-09-06 12:21:15 +02:00
|
|
|
#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
|
|
|
|
|
|
|
|
#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
|