interface
uses
- dglOpenGL, sysutils;
+ {$IFNDEF OPENGL_ES}dglOpenGL{$ELSE}dglOpenGLES{$ENDIF}, sysutils;
type
TglcFace = (
faBack = GL_BACK,
faBoth = GL_FRONT_AND_BACK);
+{$IFNDEF OPENGL_ES}
TglcPolygonMode = (
pmPoint = GL_POINT,
pmLine = GL_LINE,
pmFill = GL_FILL);
+{$ENDIF}
TglcDepthFunc = (
dfNever = GL_NEVER,
TglcClearBuffer = (
cbDepthBuffer = GL_DEPTH_BUFFER_BIT,
+{$IFNDEF OPENGL_ES}
cbAccumBuffer = GL_ACCUM_BUFFER_BIT,
+{$ENDIF}
cbStencilBuffer = GL_STENCIL_BUFFER_BIT,
cbColorBuffer = GL_COLOR_BUFFER_BIT);
mfLinear = GL_LINEAR);
TglcTextureWrap = (
+{$IFNDEF OPENGL_ES}
twClamp = GL_CLAMP,
+{$ENDIF}
twRepeat = GL_REPEAT,
+{$IFNDEF OPENGL_ES}
twClampToBorder = GL_CLAMP_TO_BORDER,
+{$ENDIF}
twClampToEdge = GL_CLAMP_TO_EDGE,
twMirroredRepeat = GL_MIRRORED_REPEAT);
TglcFormat = (
fmUnknown = 0,
+{$IFNDEF OPENGL_ES}
fmColorIndex = GL_COLOR_INDEX,
+{$ENDIF}
fmDepthComponent = GL_DEPTH_COMPONENT,
fmRed = GL_RED,
fmGreen = GL_GREEN,
fmRGBA = GL_RGBA,
fmLuminance = GL_LUMINANCE,
fmLuminanceAlpha = GL_LUMINANCE_ALPHA,
+{$IFNDEF OPENGL_ES}
fmBGR = GL_BGR,
fmBGRA = GL_BGRA,
+{$ENDIF}
fmDepthStencil = GL_DEPTH_STENCIL);
TglcInternalFormat = (
ifRGBA = GL_RGBA,
ifLuminance = GL_LUMINANCE,
ifLuminanceAlpha = GL_LUMINANCE_ALPHA,
+{$IFNDEF OPENGL_ES}
ifR3G3B2 = GL_R3_G3_B2,
ifAlpha4 = GL_ALPHA4,
ifAlpha8 = GL_ALPHA8,
ifIntensity16 = GL_INTENSITY16,
ifRGB4 = GL_RGB4,
ifRGB5 = GL_RGB5,
+{$ENDIF}
ifRGB8 = GL_RGB8,
+{$IFNDEF OPENGL_ES}
ifRGB10 = GL_RGB10,
ifRGB12 = GL_RGB12,
ifRGB16 = GL_RGB16,
ifRGBA2 = GL_RGBA2,
+{$ENDIF}
ifRGBA4 = GL_RGBA4,
ifRGB5A1 = GL_RGB5_A1,
ifRGBA8 = GL_RGBA8,
ifRGB10A2 = GL_RGB10_A2,
+{$IFNDEF OPENGL_ES}
ifRGBA12 = GL_RGBA12,
ifRGBA16 = GL_RGBA16,
+{$ENDIF}
ifDepthComponent16 = GL_DEPTH_COMPONENT16,
ifDepthComponent24 = GL_DEPTH_COMPONENT24,
+{$IFNDEF OPENGL_ES}
ifDepthComponent32 = GL_DEPTH_COMPONENT32,
ifCompressedAlpha = GL_COMPRESSED_ALPHA,
ifCompressedLuminance = GL_COMPRESSED_LUMINANCE,
ifCompressedIntensity = GL_COMPRESSED_INTENSITY,
ifCompressedRGB = GL_COMPRESSED_RGB,
ifCompressedRGBA = GL_COMPRESSED_RGBA,
+{$ENDIF}
ifRGBA32f = GL_RGBA32F,
ifRGB32f = GL_RGB32F,
ifRGBA16F = GL_RGBA16F,
ifDepth24Stencil8 = GL_DEPTH24_STENCIL8,
ifSRGB = GL_SRGB,
ifSRGB8 = GL_SRGB8,
+{$IFNDEF OPENGL_ES}
ifSRGBA = GL_SRGB_ALPHA,
+{$ENDIF}
ifSRGBA8 = GL_SRGB8_ALPHA8,
+{$IFNDEF OPENGL_ES}
ifSLuminanceAlpha = GL_SLUMINANCE_ALPHA,
ifSLuminance8Alpha8 = GL_SLUMINANCE8_ALPHA8,
ifSLuminance = GL_SLUMINANCE,
ifSLuminance8 = GL_SLUMINANCE8,
+{$ENDIF}
ifDepth32fStencil8 = GL_DEPTH32F_STENCIL8,
+{$IFNDEF OPENGL_ES}
ifStencil1 = GL_STENCIL_INDEX1,
ifStencil4 = GL_STENCIL_INDEX4,
- ifStencil8 = GL_STENCIL_INDEX8,
- ifStencil16 = GL_STENCIL_INDEX16);
+{$ENDIF}
+ ifStencil8 = GL_STENCIL_INDEX8
+{$IFNDEF OPENGL_ES}
+ , ifStencil16 = GL_STENCIL_INDEX16
+{$ENDIF}
+ );
TglcAttachment = (
atDepthStencil = GL_DEPTH_STENCIL_ATTACHMENT,
TglcShaderType = (
stFragment = GL_FRAGMENT_SHADER,
- stVertex = GL_VERTEX_SHADER,
- stGeometry = GL_GEOMETRY_SHADER,
- stTessEvaluation = GL_TESS_EVALUATION_SHADER,
- stTessControl = GL_TESS_CONTROL_SHADER);
+ stVertex = GL_VERTEX_SHADER
+{$IFNDEF OPENGL_ES}
+ , stGeometry = GL_GEOMETRY_SHADER
+ , stTessEvaluation = GL_TESS_EVALUATION_SHADER
+ , stTessControl = GL_TESS_CONTROL_SHADER
+{$ENDIF}
+ );
TglcBufferTarget = (
btArrayBuffer = GL_ARRAY_BUFFER,
end;
procedure glcRenderFace(const aValue: TglcFace); inline;
-procedure glcPolygonMode(const aFace: TglcFace; const aValue: TglcPolygonMode); inline;
procedure glcDepthFunc(const aValue: TglcDepthFunc); inline;
procedure glcBlendFunc(const aSource, aDest: TglcBlendFactor); inline; overload;
procedure glcBlendFunc(const aMode: TglcBlendMode); inline; overload;
procedure glcCheckAndRaiseError;
+{$IFNDEF OPENGL_ES}
+procedure glcPolygonMode(const aFace: TglcFace; const aValue: TglcPolygonMode); inline;
+{$ENDIF}
implementation
end;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
-procedure glcPolygonMode(const aFace: TglcFace; const aValue: TglcPolygonMode);
-begin
- glPolygonMode(GLenum(aFace), GLenum(aValue));
-end;
-
-////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure glcDepthFunc(const aValue: TglcDepthFunc);
begin
glDepthFunc(GLenum(aValue));
raise EOpenGL.Create(e);
end;
+{$IFNDEF OPENGL_ES}
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+procedure glcPolygonMode(const aFace: TglcFace; const aValue: TglcPolygonMode);
+begin
+ glPolygonMode(GLenum(aFace), GLenum(aValue));
+end;
+{$ENDIF}
+
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//EOpenGL///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
constructor EOpenGL.Create(const aErrorCode: GLenum);
begin
fErrorCode := aErrorCode;
+{$IFNDEF OPENGL_ES}
inherited Create(gluErrorString(fErrorCode));
+{$ELSE}
+ inherited Create('OpenGL Error: ' + IntToHex(fErrorCode, 8));
+{$ENDIF}
end;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
constructor EOpenGL.Create(const aMsg: String; const aErrorCode: GLenum);
begin
fErrorCode := aErrorCode;
+{$IFNDEF OPENGL_ES}
inherited Create(aMsg + ': ' + gluErrorString(fErrorCode))
+{$ELSE}
+ inherited Create(aMsg + ': ' + IntToHex(fErrorCode, 8));
+{$ENDIF}
end;
end.