CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutSign UpSign In
hrydgard

CoCalc provides the best real-time collaborative environment for Jupyter Notebooks, LaTeX documents, and SageMath, scalable from individual users to large groups and classes!

GitHub Repository: hrydgard/ppsspp
Path: blob/master/Common/GPU/OpenGL/GLCommon.h
Views: 1401
1
#pragma once
2
3
#include "ppsspp_config.h"
4
5
#if PPSSPP_PLATFORM(IOS)
6
#include <OpenGLES/ES3/gl.h>
7
#include <OpenGLES/ES3/glext.h>
8
#elif defined(USING_GLES2)
9
#include <GLES2/gl2.h>
10
#include <GLES2/gl2ext.h>
11
#define GL_BGRA_EXT 0x80E1
12
#else // OpenGL
13
#include "GL/glew.h"
14
#if defined(__APPLE__)
15
#include <OpenGL/gl.h>
16
#else
17
#include <GL/gl.h>
18
#endif
19
#endif
20
21
#ifdef USING_GLES2
22
// Support OpenGL ES 3.0
23
// This uses the "DYNAMIC" approach from the gles3jni NDK sample.
24
#include "Common/GPU/OpenGL/gl3stub.h"
25
#endif
26
27
28
#ifdef USING_GLES2
29
30
#ifndef GL_MIN_EXT
31
#define GL_MIN_EXT 0x8007
32
#endif
33
34
#ifndef GL_MAX_EXT
35
#define GL_MAX_EXT 0x8008
36
#endif
37
38
#if defined(__ANDROID__)
39
#include <EGL/egl.h>
40
// Additional extensions not included in GLES2/gl2ext.h from the NDK
41
42
typedef uint64_t EGLuint64NV;
43
typedef EGLuint64NV(EGLAPIENTRYP PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC) (void);
44
typedef EGLuint64NV(EGLAPIENTRYP PFNEGLGETSYSTEMTIMENVPROC) (void);
45
extern PFNEGLGETSYSTEMTIMEFREQUENCYNVPROC eglGetSystemTimeFrequencyNV;
46
extern PFNEGLGETSYSTEMTIMENVPROC eglGetSystemTimeNV;
47
48
typedef GLvoid* (GL_APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
49
extern PFNGLMAPBUFFERPROC glMapBuffer;
50
51
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);
52
extern PFNGLDRAWTEXTURENVPROC glDrawTextureNV;
53
#if !PPSSPP_ARCH(ARM64)
54
typedef void (EGLAPIENTRYP PFNGLBLITFRAMEBUFFERNVPROC) (
55
GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1,
56
GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1,
57
GLbitfield mask, GLenum filter);
58
#endif
59
extern PFNGLBLITFRAMEBUFFERNVPROC glBlitFramebufferNV;
60
61
#if PPSSPP_PLATFORM(IOS)
62
extern PFNGLDISCARDFRAMEBUFFEREXTPROC glDiscardFramebufferEXT;
63
extern PFNGLGENVERTEXARRAYSOESPROC glGenVertexArraysOES;
64
extern PFNGLBINDVERTEXARRAYOESPROC glBindVertexArrayOES;
65
extern PFNGLDELETEVERTEXARRAYSOESPROC glDeleteVertexArraysOES;
66
extern PFNGLISVERTEXARRAYOESPROC glIsVertexArrayOES;
67
68
// Rename standard functions to the OES version.
69
#define glGenVertexArrays glGenVertexArraysOES
70
#define glBindVertexArray glBindVertexArrayOES
71
#define glDeleteVertexArrays glDeleteVertexArraysOES
72
#define glIsVertexArray glIsVertexArrayOES
73
#endif
74
75
#endif
76
77
#ifndef GL_READ_FRAMEBUFFER
78
#define GL_READ_FRAMEBUFFER GL_FRAMEBUFFER
79
#define GL_DRAW_FRAMEBUFFER GL_FRAMEBUFFER
80
#endif
81
#ifndef GL_DEPTH_COMPONENT24
82
#define GL_DEPTH_COMPONENT24 GL_DEPTH_COMPONENT24_OES
83
#endif
84
85
#ifndef GL_RGBA8
86
#define GL_RGBA8 GL_RGBA
87
#endif
88
89
#endif /* EGL_NV_system_time */
90
91
#ifndef GL_DEPTH24_STENCIL8_OES
92
#define GL_DEPTH24_STENCIL8_OES 0x88F0
93
#endif
94
95