X-Git-Url: https://git.delphigl.com/?p=LazOpenGLCore.git;a=blobdiff_plain;f=uglcTypes.pas;fp=uglcTypes.pas;h=b4ed36f44f0b9e17948aa8c7d6f3db9efad8c013;hp=95ffb79635d5b4d680f3288f371b8f599cbf8da7;hb=38723f45320eea73e5fef416fc989bcfb9adf21d;hpb=eb7858e40852c3a1a61cead35c20f432d062184c diff --git a/uglcTypes.pas b/uglcTypes.pas index 95ffb79..b4ed36f 100644 --- a/uglcTypes.pas +++ b/uglcTypes.pas @@ -12,7 +12,7 @@ unit uglcTypes; interface uses - dglOpenGL, sysutils; + {$IFNDEF OPENGL_ES}dglOpenGL{$ELSE}dglOpenGLES{$ENDIF}, sysutils; type TglcFace = ( @@ -20,10 +20,12 @@ type 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, @@ -37,7 +39,9 @@ type 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); @@ -54,9 +58,13 @@ type 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); @@ -85,7 +93,9 @@ type TglcFormat = ( fmUnknown = 0, +{$IFNDEF OPENGL_ES} fmColorIndex = GL_COLOR_INDEX, +{$ENDIF} fmDepthComponent = GL_DEPTH_COMPONENT, fmRed = GL_RED, fmGreen = GL_GREEN, @@ -95,8 +105,10 @@ type 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 = ( @@ -107,6 +119,7 @@ type ifRGBA = GL_RGBA, ifLuminance = GL_LUMINANCE, ifLuminanceAlpha = GL_LUMINANCE_ALPHA, +{$IFNDEF OPENGL_ES} ifR3G3B2 = GL_R3_G3_B2, ifAlpha4 = GL_ALPHA4, ifAlpha8 = GL_ALPHA8, @@ -129,19 +142,25 @@ type 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, @@ -149,6 +168,7 @@ type ifCompressedIntensity = GL_COMPRESSED_INTENSITY, ifCompressedRGB = GL_COMPRESSED_RGB, ifCompressedRGBA = GL_COMPRESSED_RGBA, +{$ENDIF} ifRGBA32f = GL_RGBA32F, ifRGB32f = GL_RGB32F, ifRGBA16F = GL_RGBA16F, @@ -156,17 +176,26 @@ type 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, @@ -191,10 +220,13 @@ type 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, @@ -226,11 +258,13 @@ type 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 @@ -265,12 +299,6 @@ begin 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)); @@ -298,20 +326,36 @@ begin 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.