forked from dolphin-emu/dolphin
		
	
		
			
				
	
	
		
			100 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright 2013 Dolphin Emulator Project
 | 
						|
// Licensed under GPLv2
 | 
						|
// Refer to the license.txt file included.
 | 
						|
#ifndef GLFUNCTIONS_H_
 | 
						|
#define GLFUNCTIONS_H_
 | 
						|
#include "GLInterface.h"
 | 
						|
 | 
						|
#ifdef USE_GLES3
 | 
						|
typedef GLvoid* (*PFNGLMAPBUFFERPROC) (GLenum target, GLenum access);
 | 
						|
typedef GLvoid* (*PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access);
 | 
						|
typedef void (*PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size);
 | 
						|
typedef GLboolean (*PFNGLUNMAPBUFFERPROC) (GLenum target);
 | 
						|
 | 
						|
typedef void (*PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
 | 
						|
// VAOS
 | 
						|
typedef void (*PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint* arrays);
 | 
						|
typedef void (*PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint* arrays);
 | 
						|
typedef void (*PFNGLBINDVERTEXARRAYPROC) (GLuint array);
 | 
						|
 | 
						|
// Sync
 | 
						|
typedef GLenum (*PFNGLCLIENTWAITSYNCPROC) (GLsync GLsync,GLbitfield flags,GLuint64 timeout);
 | 
						|
typedef void (*PFNGLDELETESYNCPROC) (GLsync GLsync);
 | 
						|
typedef GLsync (*PFNGLFENCESYNCPROC) (GLenum condition,GLbitfield flags);
 | 
						|
 | 
						|
//Sampler
 | 
						|
typedef void (*PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param);
 | 
						|
typedef void (*PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param);
 | 
						|
typedef void (*PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat* params);
 | 
						|
typedef void (*PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler);
 | 
						|
typedef void (*PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint * samplers);
 | 
						|
typedef void (*PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint* samplers);
 | 
						|
 | 
						|
//Program binary
 | 
						|
typedef void (*PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei* length, GLenum *binaryFormat, GLvoid*binary);
 | 
						|
typedef void (*PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const void* binary, GLsizei length);
 | 
						|
typedef void (*PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value);
 | 
						|
 | 
						|
typedef GLuint (*PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar* uniformBlockName);
 | 
						|
typedef void (*PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
 | 
						|
 | 
						|
//Query
 | 
						|
typedef void (*PFNGLBEGINQUERYPROC) (GLenum target, GLuint id);
 | 
						|
typedef void (*PFNGLENDQUERYPROC) (GLenum target);
 | 
						|
typedef void (*PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint* params);
 | 
						|
typedef void (*PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint* ids);
 | 
						|
typedef void (*PFNGLGENQUERIESPROC) (GLsizei n, GLuint* ids);
 | 
						|
 | 
						|
// glDraw*
 | 
						|
typedef void (*PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices);
 | 
						|
 | 
						|
// Multisample buffer
 | 
						|
typedef void (*PFNGLRENDERBUFFERSTORAGEMULTISAMPLE) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height);
 | 
						|
 | 
						|
// ptrs
 | 
						|
extern PFNGLBEGINQUERYPROC glBeginQuery;
 | 
						|
extern PFNGLENDQUERYPROC glEndQuery;
 | 
						|
extern PFNGLGETQUERYOBJECTUIVPROC glGetQueryObjectuiv;
 | 
						|
extern PFNGLDELETEQUERIESPROC glDeleteQueries;
 | 
						|
extern PFNGLGENQUERIESPROC glGenQueries;
 | 
						|
 | 
						|
extern PFNGLUNMAPBUFFERPROC glUnmapBuffer;
 | 
						|
extern PFNGLMAPBUFFERRANGEPROC glMapBufferRange;
 | 
						|
extern PFNGLBINDBUFFERRANGEPROC glBindBufferRange;
 | 
						|
 | 
						|
extern PFNGLBLITFRAMEBUFFERPROC glBlitFramebuffer;
 | 
						|
 | 
						|
extern PFNGLGENVERTEXARRAYSPROC glGenVertexArrays;
 | 
						|
extern PFNGLDELETEVERTEXARRAYSPROC glDeleteVertexArrays;
 | 
						|
extern PFNGLBINDVERTEXARRAYPROC glBindVertexArray;
 | 
						|
 | 
						|
extern PFNGLCLIENTWAITSYNCPROC glClientWaitSync;
 | 
						|
extern PFNGLDELETESYNCPROC glDeleteSync;
 | 
						|
extern PFNGLFENCESYNCPROC glFenceSync;
 | 
						|
 | 
						|
extern PFNGLGETPROGRAMBINARYPROC glGetProgramBinary;
 | 
						|
extern PFNGLPROGRAMBINARYPROC glProgramBinary;
 | 
						|
extern PFNGLPROGRAMPARAMETERIPROC glProgramParameteri;
 | 
						|
 | 
						|
extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
 | 
						|
 | 
						|
extern PFNGLRENDERBUFFERSTORAGEMULTISAMPLE glRenderbufferStorageMultisample;
 | 
						|
 | 
						|
//Sampler
 | 
						|
extern PFNGLSAMPLERPARAMETERFPROC glSamplerParameterf;
 | 
						|
extern PFNGLSAMPLERPARAMETERIPROC glSamplerParameteri;
 | 
						|
extern PFNGLSAMPLERPARAMETERFVPROC glSamplerParameterfv;
 | 
						|
extern PFNGLBINDSAMPLERPROC glBindSampler;
 | 
						|
extern PFNGLDELETESAMPLERSPROC glDeleteSamplers;
 | 
						|
extern PFNGLGENSAMPLERSPROC glGenSamplers;
 | 
						|
 | 
						|
extern PFNGLGETUNIFORMBLOCKINDEXPROC glGetUniformBlockIndex;
 | 
						|
extern PFNGLUNIFORMBLOCKBINDINGPROC glUniformBlockBinding;
 | 
						|
#endif
 | 
						|
 | 
						|
namespace GLFunc
 | 
						|
{
 | 
						|
	void Init();
 | 
						|
}
 | 
						|
#endif
 |