projects
/
dglOpenGLES.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
58b0d41
)
* added compiler defines to set used core version
master
author
Bergmann89
<info@bergmann89.de>
Tue, 16 Dec 2014 17:35:36 +0000
(18:35 +0100)
committer
Bergmann89
<info@bergmann89.de>
Tue, 16 Dec 2014 17:35:36 +0000
(18:35 +0100)
dglOpenGLES.pas
patch
|
blob
|
history
diff --git
a/dglOpenGLES.pas
b/dglOpenGLES.pas
index
e625dde
..
c878f5a
100644
(file)
--- a/
dglOpenGLES.pas
+++ b/
dglOpenGLES.pas
@@
-35,6
+35,21
@@
============================================================================== }
============================================================================== }
+{ enable OpenGL ES 1.1 Core functions }
+{$DEFINE OPENGLES_CORE_1_1}
+
+{ enable OpenGL ES 2.0 Core functions }
+{$DEFINE OPENGLES_CORE_2_0}
+
+{ enable OpenGL ES 3.0 Core functions }
+{$DEFINE OPENGLES_CORE_3_0}
+
+{ enable OpenGL ES 3.1 Core functions }
+{$DEFINE OPENGLES_CORE_3_1}
+
+{ enable all OpenGL ES extensions }
+{$DEFINE OPENGLES_EXTENSIONS}
+
unit dglOpenGLES;
interface
unit dglOpenGLES;
interface
@@
-141,8
+156,9
@@
type
TGLvectorp3 = array[0..2] of PGLvoid;
TGLvectorp4 = array[0..3] of PGLvoid;
TGLvectorp3 = array[0..2] of PGLvoid;
TGLvectorp4 = array[0..3] of PGLvoid;
+{$IFDEF OPENGLES_CORE_1_1}
const
const
-{ ============================================== OpenGL ES 1.
0
======================================================= }
+{ ============================================== OpenGL ES 1.
1
======================================================= }
{ ClearBufferMask }
GL_DEPTH_BUFFER_BIT = $00000100;
GL_STENCIL_BUFFER_BIT = $00000400;
{ ClearBufferMask }
GL_DEPTH_BUFFER_BIT = $00000100;
GL_STENCIL_BUFFER_BIT = $00000400;
@@
-641,7
+657,10
@@
const
GL_DOT3_RGB = $86AE;
GL_DOT3_RGBA = $86AF;
GL_DOT3_RGB = $86AE;
GL_DOT3_RGBA = $86AF;
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_2_0}
+const
{ ============================================== OpenGL ES 2.0 ======================================================= }
{ BlendEquationSeparate }
GL_FUNC_ADD = $8006;
{ ============================================== OpenGL ES 2.0 ======================================================= }
{ BlendEquationSeparate }
GL_FUNC_ADD = $8006;
@@
-815,7
+834,10
@@
const
GL_MAX_RENDERBUFFER_SIZE = $84E8;
GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
GL_MAX_RENDERBUFFER_SIZE = $84E8;
GL_INVALID_FRAMEBUFFER_OPERATION = $0506;
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_3_0}
+const
{ ============================================== OpenGL ES 3.0 ======================================================= }
GL_READ_BUFFER = $0C02;
GL_UNPACK_ROW_LENGTH = $0CF2;
{ ============================================== OpenGL ES 3.0 ======================================================= }
GL_READ_BUFFER = $0C02;
GL_UNPACK_ROW_LENGTH = $0CF2;
@@
-1122,7
+1144,10
@@
const
GL_MAX_ELEMENT_INDEX = $8D6B;
GL_NUM_SAMPLE_COUNTS = $9380;
GL_TEXTURE_IMMUTABLE_LEVELS = $82DF;
GL_MAX_ELEMENT_INDEX = $8D6B;
GL_NUM_SAMPLE_COUNTS = $9380;
GL_TEXTURE_IMMUTABLE_LEVELS = $82DF;
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_3_1}
+const
{ ============================================== OpenGL ES 3.1 ======================================================= }
GL_COMPUTE_SHADER = $91B9;
GL_MAX_COMPUTE_UNIFORM_BLOCKS = $91BB;
{ ============================================== OpenGL ES 3.1 ======================================================= }
GL_COMPUTE_SHADER = $91B9;
GL_MAX_COMPUTE_UNIFORM_BLOCKS = $91BB;
@@
-1296,9
+1321,11
@@
const
GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
GL_MAX_VERTEX_ATTRIB_BINDINGS = $82DA;
GL_MAX_VERTEX_ATTRIB_STRIDE = $82E5;
GL_MAX_VERTEX_ATTRIB_RELATIVE_OFFSET = $82D9;
GL_MAX_VERTEX_ATTRIB_BINDINGS = $82DA;
GL_MAX_VERTEX_ATTRIB_STRIDE = $82E5;
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_1_1}
type
type
-{ ============================================== OpenGL ES 1.
0
======================================================= }
+{ ============================================== OpenGL ES 1.
1
======================================================= }
{ Available only in Common profile }
TglAlphaFunc = procedure(aFunc: GLenum; aRef: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglClearColor = procedure(aRed: GLclampf; aGreen: GLclampf; aBlue: GLclampf; aAlpha: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
{ Available only in Common profile }
TglAlphaFunc = procedure(aFunc: GLenum; aRef: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglClearColor = procedure(aRed: GLclampf; aGreen: GLclampf; aBlue: GLclampf; aAlpha: GLclampf); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
@@
-1446,7
+1473,10
@@
type
TglTranslatex = procedure(x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglViewport = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglTranslatex = procedure(x: GLfixed; y: GLfixed; z: GLfixed); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexPointer = procedure(aSize: GLint; aType: GLenum; aStride: GLsizei; const aPointer: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglViewport = procedure(x: GLint; y: GLint; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_2_0}
+type
{ ============================================== OpenGL ES 2.0 ======================================================= }
TglAttachShader = procedure(aProgram: GLuint; aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglBindAttribLocation = procedure(aProgram: GLuint; aIndex: GLuint; const aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
{ ============================================== OpenGL ES 2.0 ======================================================= }
TglAttachShader = procedure(aProgram: GLuint; aShader: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglBindAttribLocation = procedure(aProgram: GLuint; aIndex: GLuint; const aName: PGLchar); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
@@
-1532,7
+1562,10
@@
type
TglVertexAttrib4f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexAttrib4fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexAttribPointer = procedure(aIndex: GLuint; aSize: GLint; aType: GLenum; aNormalized: GLboolean; aStride: GLsizei; const aPtr: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexAttrib4f = procedure(aIndex: GLuint; x: GLfloat; y: GLfloat; z: GLfloat; w: GLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexAttrib4fv = procedure(aIndex: GLuint; const aValues: PGLfloat); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexAttribPointer = procedure(aIndex: GLuint; aSize: GLint; aType: GLenum; aNormalized: GLboolean; aStride: GLsizei; const aPtr: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_3_0}
+type
{ ============================================== OpenGL ES 3.0 ======================================================= }
TglReadBuffer = procedure(aSrc: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglDrawRangeElements = procedure(aMode: GLenum; aStart: GLuint; aEnd: GLuint; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
{ ============================================== OpenGL ES 3.0 ======================================================= }
TglReadBuffer = procedure(aSrc: GLenum); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglDrawRangeElements = procedure(aMode: GLenum; aStart: GLuint; aEnd: GLuint; aCount: GLsizei; aType: GLenum; const aIndices: PGLvoid); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
@@
-1638,7
+1671,10
@@
type
TglTexStorage2D = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglTexStorage3D = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglGetInternalformativ = procedure(aTarget: GLenum; aInternalformat: GLenum; aPname: GLenum; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglTexStorage2D = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglTexStorage3D = procedure(aTarget: GLenum; aLevels: GLsizei; aInternalformat: GLenum; aWidth: GLsizei; aHeight: GLsizei; aDepth: GLsizei); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglGetInternalformativ = procedure(aTarget: GLenum; aInternalformat: GLenum; aPname: GLenum; aBufSize: GLsizei; aParams: PGLint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_3_1}
+type
{ ============================================== OpenGL ES 3.1 ======================================================= }
TglDispatchCompute = procedure(aNumGroupsX: GLuint; aNumGroupsY: GLuint; aNumGroupsZ: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglDispatchComputeIndirect = procedure(aIndirect: GLintptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
{ ============================================== OpenGL ES 3.1 ======================================================= }
TglDispatchCompute = procedure(aNumGroupsX: GLuint; aNumGroupsY: GLuint; aNumGroupsZ: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglDispatchComputeIndirect = procedure(aIndirect: GLintptr); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
@@
-1708,9
+1744,11
@@
type
TglVertexAttribIFormat = procedure(aAttribindex: GLuint; aSize: GLint; aType: GLenum; aRelativeoffset: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexAttribBinding = procedure(aAttribindex: GLuint; aBindingindex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexBindingDivisor = procedure(aBindingindex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexAttribIFormat = procedure(aAttribindex: GLuint; aSize: GLint; aType: GLenum; aRelativeoffset: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexAttribBinding = procedure(aAttribindex: GLuint; aBindingindex: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
TglVertexBindingDivisor = procedure(aBindingindex: GLuint; aDivisor: GLuint); {$IFDEF DGL_WIN}stdcall;{$ELSE}cdecl;{$ENDIF}
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_1_1}
var
var
-{ ============================================== OpenGL ES 1.
0
======================================================= }
+{ ============================================== OpenGL ES 1.
1
======================================================= }
{ Available only in Common profile }
glAlphaFunc: TglAlphaFunc;
glClearColor: TglClearColor;
{ Available only in Common profile }
glAlphaFunc: TglAlphaFunc;
glClearColor: TglClearColor;
@@
-1858,7
+1896,10
@@
var
glTranslatex: TglTranslatex;
glVertexPointer: TglVertexPointer;
glViewport: TglViewport;
glTranslatex: TglTranslatex;
glVertexPointer: TglVertexPointer;
glViewport: TglViewport;
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_2_0}
+var
{ ============================================== OpenGL ES 2.0 ======================================================= }
glAttachShader: TglAttachShader;
glBindAttribLocation: TglBindAttribLocation;
{ ============================================== OpenGL ES 2.0 ======================================================= }
glAttachShader: TglAttachShader;
glBindAttribLocation: TglBindAttribLocation;
@@
-1944,8
+1985,11
@@
var
glVertexAttrib4f: TglVertexAttrib4f;
glVertexAttrib4fv: TglVertexAttrib4fv;
glVertexAttribPointer: TglVertexAttribPointer;
glVertexAttrib4f: TglVertexAttrib4f;
glVertexAttrib4fv: TglVertexAttrib4fv;
glVertexAttribPointer: TglVertexAttribPointer;
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_3_0}
{ ============================================== OpenGL ES 3.0 ======================================================= }
{ ============================================== OpenGL ES 3.0 ======================================================= }
+var
glReadBuffer: TglReadBuffer;
glDrawRangeElements: TglDrawRangeElements;
glTexImage3D: TglTexImage3D;
glReadBuffer: TglReadBuffer;
glDrawRangeElements: TglDrawRangeElements;
glTexImage3D: TglTexImage3D;
@@
-2050,8
+2094,11
@@
var
glTexStorage2D: TglTexStorage2D;
glTexStorage3D: TglTexStorage3D;
glGetInternalformativ: TglGetInternalformativ;
glTexStorage2D: TglTexStorage2D;
glTexStorage3D: TglTexStorage3D;
glGetInternalformativ: TglGetInternalformativ;
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_3_1}
{ ============================================== OpenGL ES 3.1 ======================================================= }
{ ============================================== OpenGL ES 3.1 ======================================================= }
+var
glDispatchCompute: TglDispatchCompute;
glDispatchComputeIndirect: TglDispatchComputeIndirect;
glDrawArraysIndirect: TglDrawArraysIndirect;
glDispatchCompute: TglDispatchCompute;
glDispatchComputeIndirect: TglDispatchComputeIndirect;
glDrawArraysIndirect: TglDrawArraysIndirect;
@@
-2120,7
+2167,9
@@
var
glVertexAttribIFormat: TglVertexAttribIFormat;
glVertexAttribBinding: TglVertexAttribBinding;
glVertexBindingDivisor: TglVertexBindingDivisor;
glVertexAttribIFormat: TglVertexAttribIFormat;
glVertexAttribBinding: TglVertexAttribBinding;
glVertexBindingDivisor: TglVertexBindingDivisor;
+{$ENDIF}
+{$IFDEF OPENGLES_EXTENSIONS}
{ =============================================== Extensions ========================================================= }
{ GL_KHR_blend_equation_advanced }
const
{ =============================================== Extensions ========================================================= }
{ GL_KHR_blend_equation_advanced }
const
@@
-2520,7
+2569,7
@@
var
glIsVertexArrayOES: TglIsVertexArrayOES;
{ GL_OES_vertex_half_float }
glIsVertexArrayOES: TglIsVertexArrayOES;
{ GL_OES_vertex_half_float }
- // none
+ // none
{$IFDEF OPENGLES_EXTENSIONS}
{ GL_OES_vertex_type_10_10_10_2 }
const
{ GL_OES_vertex_type_10_10_10_2 }
const
@@
-4315,6
+4364,7
@@
const
{ GL_VIV_shader_binary }
const
GL_SHADER_BINARY_VIV = $8FC4;
{ GL_VIV_shader_binary }
const
GL_SHADER_BINARY_VIV = $8FC4;
+{$ENDIF}
{ ================================================== EGL ============================================================= }
type
{ ================================================== EGL ============================================================= }
type
@@
-4603,7
+4653,8
@@
var
GL_VERSION_1_1,
GL_VERSION_2_0,
GL_VERSION_3_0,
GL_VERSION_1_1,
GL_VERSION_2_0,
GL_VERSION_3_0,
- GL_VERSION_3_1,
+ GL_VERSION_3_1
+{$IFDEF OPENGLES_EXTENSIONS},
GL_KHR_blend_equation_advanced,
GL_KHR_blend_equation_advanced_coherent,
GL_KHR_context_flush_control,
GL_KHR_blend_equation_advanced,
GL_KHR_blend_equation_advanced_coherent,
GL_KHR_context_flush_control,
@@
-4781,7
+4832,9
@@
var
GL_QCOM_perfmon_global_mode,
GL_QCOM_tiled_rendering,
GL_QCOM_writeonly_rendering,
GL_QCOM_perfmon_global_mode,
GL_QCOM_tiled_rendering,
GL_QCOM_writeonly_rendering,
- GL_VIV_shader_binary: Boolean;
+ GL_VIV_shader_binary
+{$ENDIF}
+ : Boolean;
type
EdglOpenGLES = class(Exception);
type
EdglOpenGLES = class(Exception);
@@
-4821,6
+4874,7
@@
procedure ReadExtensions;
procedure ReadCoreVersion;
procedure ReadImplementationProperties;
procedure ReadCoreVersion;
procedure ReadImplementationProperties;
+{$IFDEF OPENGLES_EXTENSIONS}
procedure Read_GL_KHR_blend_equation_advanced;
procedure Read_GL_KHR_debug;
procedure Read_GL_KHR_robustness;
procedure Read_GL_KHR_blend_equation_advanced;
procedure Read_GL_KHR_debug;
procedure Read_GL_KHR_robustness;
@@
-4887,6
+4941,7
@@
procedure Read_GL_QCOM_driver_control;
procedure Read_GL_QCOM_extended_get;
procedure Read_GL_QCOM_extended_get2;
procedure Read_GL_QCOM_tiled_rendering;
procedure Read_GL_QCOM_extended_get;
procedure Read_GL_QCOM_extended_get2;
procedure Read_GL_QCOM_tiled_rendering;
+{$ENDIF}
implementation
implementation
@@
-5061,7
+5116,8
@@
end;
procedure ReadOpenGLCore;
begin
procedure ReadOpenGLCore;
begin
- { ============================================= OpenGL ES 1.0 ====================================================== }
+{$IFDEF OPENGLES_CORE_1_1}
+ { ============================================= OpenGL ES 1.1 ====================================================== }
{ Available only in Common profile }
glAlphaFunc := dglGetProcAddress('glAlphaFunc');
glClearColor := dglGetProcAddress('glClearColor');
{ Available only in Common profile }
glAlphaFunc := dglGetProcAddress('glAlphaFunc');
glClearColor := dglGetProcAddress('glClearColor');
@@
-5209,7
+5265,9
@@
begin
glTranslatex := dglGetProcAddress('glTranslatex');
glVertexPointer := dglGetProcAddress('glVertexPointer');
glViewport := dglGetProcAddress('glViewport');
glTranslatex := dglGetProcAddress('glTranslatex');
glVertexPointer := dglGetProcAddress('glVertexPointer');
glViewport := dglGetProcAddress('glViewport');
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_2_0}
{ ============================================= OpenGL ES 2.0 ====================================================== }
glAttachShader := dglGetProcAddress('glAttachShader');
glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
{ ============================================= OpenGL ES 2.0 ====================================================== }
glAttachShader := dglGetProcAddress('glAttachShader');
glBindAttribLocation := dglGetProcAddress('glBindAttribLocation');
@@
-5295,7
+5353,9
@@
begin
glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
glVertexAttrib4f := dglGetProcAddress('glVertexAttrib4f');
glVertexAttrib4fv := dglGetProcAddress('glVertexAttrib4fv');
glVertexAttribPointer := dglGetProcAddress('glVertexAttribPointer');
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_3_0}
{ ============================================= OpenGL ES 3.0 ====================================================== }
glReadBuffer := dglGetProcAddress('glReadBuffer');
glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
{ ============================================= OpenGL ES 3.0 ====================================================== }
glReadBuffer := dglGetProcAddress('glReadBuffer');
glDrawRangeElements := dglGetProcAddress('glDrawRangeElements');
@@
-5401,7
+5461,9
@@
begin
glTexStorage2D := dglGetProcAddress('glTexStorage2D');
glTexStorage3D := dglGetProcAddress('glTexStorage3D');
glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
glTexStorage2D := dglGetProcAddress('glTexStorage2D');
glTexStorage3D := dglGetProcAddress('glTexStorage3D');
glGetInternalformativ := dglGetProcAddress('glGetInternalformativ');
+{$ENDIF}
+{$IFDEF OPENGLES_CORE_3_1}
{ ============================================= OpenGL ES 3.1 ====================================================== }
glDispatchCompute := dglGetProcAddress('glDispatchCompute');
glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
{ ============================================= OpenGL ES 3.1 ====================================================== }
glDispatchCompute := dglGetProcAddress('glDispatchCompute');
glDispatchComputeIndirect := dglGetProcAddress('glDispatchComputeIndirect');
@@
-5471,10
+5533,12
@@
begin
glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
glVertexAttribIFormat := dglGetProcAddress('glVertexAttribIFormat');
glVertexAttribBinding := dglGetProcAddress('glVertexAttribBinding');
glVertexBindingDivisor := dglGetProcAddress('glVertexBindingDivisor');
+{$ENDIF}
end;
procedure ReadExtensions;
begin
end;
procedure ReadExtensions;
begin
+{$IFDEF OPENGLES_EXTENSIONS}
Read_GL_KHR_blend_equation_advanced;
Read_GL_KHR_debug;
Read_GL_KHR_robustness;
Read_GL_KHR_blend_equation_advanced;
Read_GL_KHR_debug;
Read_GL_KHR_robustness;
@@
-5541,6
+5605,7
@@
begin
Read_GL_QCOM_extended_get;
Read_GL_QCOM_extended_get2;
Read_GL_QCOM_tiled_rendering;
Read_GL_QCOM_extended_get;
Read_GL_QCOM_extended_get2;
Read_GL_QCOM_tiled_rendering;
+{$ENDIF}
end;
procedure ReadCoreVersion;
end;
procedure ReadCoreVersion;
@@
-5595,6
+5660,7
@@
begin
GL_VERSION_3_1 := (GLmajor >= 3) and (GLminor >= 1);
end;
GL_VERSION_3_1 := (GLmajor >= 3) and (GLminor >= 1);
end;
+{$IFDEF OPENGLES_EXTENSIONS}
procedure ReadImplementationProperties;
function GetExtensions: String;
procedure ReadImplementationProperties;
function GetExtensions: String;
@@
-5608,6
+5674,7
@@
procedure ReadImplementationProperties;
if Assigned(glGetString) then
result := String(PAnsiChar(glGetString(GL_EXTENSIONS)));
if Assigned(glGetString) then
result := String(PAnsiChar(glGetString(GL_EXTENSIONS)));
+{$IFDEF OPENGLES_CORE_3_0}
if (result = '') then begin
if not Assigned(glGetIntegerv) then
glGetIntegerv := dglGetProcAddress('glGetIntegerv');
if (result = '') then begin
if not Assigned(glGetIntegerv) then
glGetIntegerv := dglGetProcAddress('glGetIntegerv');
@@
-5622,6
+5689,7
@@
procedure ReadImplementationProperties;
end;
end;
end;
end;
end;
end;
+{$ENDIF}
result := #$20 + result + #$20;
end;
result := #$20 + result + #$20;
end;
@@
-5846,7
+5914,14
@@
begin
// VIV
GL_VIV_shader_binary := CheckEx(Buffer, 'GL_VIV_shader_binary');
end;
// VIV
GL_VIV_shader_binary := CheckEx(Buffer, 'GL_VIV_shader_binary');
end;
+{$ELSE}
+procedure ReadImplementationProperties;
+begin
+ // nothing to do here
+end;
+{$ENDIF}
+{$IFDEF OPENGLES_EXTENSIONS}
procedure Read_GL_KHR_blend_equation_advanced;
begin
glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
procedure Read_GL_KHR_blend_equation_advanced;
begin
glBlendBarrierKHR := dglGetProcAddress('glBlendBarrierKHR');
@@
-6430,6
+6505,7
@@
begin
glStartTilingQCOM := dglGetProcAddress('glStartTilingQCOM');
glEndTilingQCOM := dglGetProcAddress('glEndTilingQCOM');
end;
glStartTilingQCOM := dglGetProcAddress('glStartTilingQCOM');
glEndTilingQCOM := dglGetProcAddress('glEndTilingQCOM');
end;
+{$ENDIF}
constructor EeglError.Create(const msg: string; const aErrorCode: EGLint);
begin
constructor EeglError.Create(const msg: string; const aErrorCode: EGLint);
begin