FOpenGLES

Windows
MacOS
Linux

Inheritance Hierarchy

FOpenGLBase

FOpenGLES

References

Module

OpenGLDrv

Header

/Engine/Source/Runtime/OpenGLDrv/Public/OpenGLES.h

Include

#include "OpenGLES.h"

Syntax

struct FOpenGLES : public FOpenGLBase

Functions

Name Description

Public function Static

void

 

BeginQuery

(
    GLenum QueryType,
    GLuint QueryId
)

Optional.

Public function Static

void

 

BindBufferBase

(
    GLenum Target,
    GLuint Index,
    GLuint Buffer
)

Public function Static

void

 

BindBufferRange

(
    GLenum Target,
    GLuint Index,
    GLuint Buffer,
    GLintptr Offset,
    GLsizeiptr Size
)

Public function Static

void

 

BindImageTexture

(
    GLuint Unit,
    GLuint Texture,
    GLint Level,
    GLboolean Layered,
    GLint Layer,
    GLenum Access,
    GLenum Format
)

Public function Static

void

 

BindSampler

(
    GLuint Unit,
    GLuint Sampler
)

Public function Static

void

 

BlitFramebuffer

(
    GLint SrcX0,
    GLint SrcY0,
    GLint SrcX1,
    GLint SrcY1,
    GLint DstX0,
    GLint DstY0,
    GLint DstX1,
    GLint DstY1,
    GLbitfield Mask,
    GLenum Filter
)

Public function Static

void

 

BufferSubData

(
    GLenum Target,
    GLintptr Offset,
    GLsizeiptr Size,
    const GLvoid* Data
)

Public function Static

void

 

ClearBufferfi

(
    GLenum Buffer,
    GLint DrawBufferIndex,
    GLfloat Depth,
    GLint Stencil
)

Public function Static

void

 

ClearBufferfv

(
    GLenum Buffer,
    GLint DrawBufferIndex,
    const GLfloat* Value
)

Public function Static

void

 

ClearBufferiv

(
    GLenum Buffer,
    GLint DrawBufferIndex,
    const GLint* Value
)

Public function Static

void

 

ClearDepth

(
    GLdouble Depth
)

Public function Static

void

 

ColorMaskIndexed

(
    GLuint Index,
    GLboolean Red,
    GLboolean Green,
    GLboolean Blue,
    GLboolean Alpha
)

Public function Static

void

 

CompressedTexImage3D

(
    GLenum Target,
    GLint Level,
    GLenum InternalFormat,
    GLsizei Width,
    GLsizei Height,
    GLsizei Depth,
    GLint Border,
    GLsizei ImageSize,
    const GLvoid* PixelData
)

Public function Static

void

 

CopyBufferSubData

(
    GLenum ReadTarget,
    GLenum WriteTarget,
    GLintptr ReadOffset,
    GLintptr WriteOffset,
    GLsizeiptr Size
)

Public function Static

void

 

CopyImageSubData

(
    GLuint SrcName,
    GLenum SrcTarget,
    GLint SrcLevel,
    GLint SrcX,
    GLint SrcY,
    GLint SrcZ,
    GLuint DstName,
    GLenum DstTarget,
    GLint DstLevel,
    GLint DstX,
    GLint DstY,
    GLint DstZ,
    GLsizei Width,
    GLsizei Height,
    GLsizei Depth
)

Public function Static

void

 

CopyTexSubImage1D

(
    GLenum Target,
    GLint Level,
    GLint XOffset,
    GLint X,
    GLint Y,
    GLsizei Width
)

Public function Static

void

 

CopyTexSubImage2D

(
    GLenum Target,
    GLint Level,
    GLint XOffset,
    GLint YOffset,
    GLint X,
    GLint Y,
    GLsizei Width,
    GLsizei Height
)

Public function Static

void

 

CopyTexSubImage3D

(
    GLenum Target,
    GLint Level,
    GLint XOffset,
    GLint YOffset,
    GLint ZOffset,
    GLint X,
    GLint Y,
    GLsizei Width,
    GLsizei Height
)

Public function Static

FPlatformOpe...

 

CreateContext

(
    FPlatformOpenGLDevice* Device,
    void* WindowHandle
)

Public function Static

FPlatformOpe...

 

CreateDevice()

Static FORCEINLINE void BindBufferBase(GLenum Target, GLuint Index, GLuint Buffer) UGL_OPTIONAL_VOID static FORCEINLINE GLuint GetUniformBlockIndex(GLuint Program, const GLchar *UniformBlockName)UGL_REQUIRED(GL_INVALID_INDEX)

Public function Static

void

 

DeleteQueries

(
    GLsizei NumQueries,
    const GLuint* QueryIDs
)

Public function Static

void

 

DeleteSamplers

(
    GLsizei Count,
    GLuint* Samplers
)

Public function Static

void

 

DepthRange

(
    GLdouble Near,
    GLdouble Far
)

Public function Static

void

 

DisableIndexed

(
    GLenum Parameter,
    GLuint Index
)

Public function Static

void

 

DiscardFramebufferEXT

(
    GLenum Target,
    GLsizei NumAttachments,
    const GLenum* Attachments
)

Public function Static

void

 

DispatchCompute

(
    GLuint NumGroupsX,
    GLuint NumGroupsY,
    GLuint NumGroupsZ
)

Public function Static

void

 

DispatchComputeIndirect

(
    GLintptr Offset
)

Public function Static

void

 

DrawArraysIndirect

(
    GLenum Mode,
    const void* Offset
)

Public function Static

void

 

DrawArraysInstanced

(
    GLenum Mode,
    GLint First,
    GLsizei Count,
    GLsizei InstanceCount
)

Public function Static

void

 

DrawBuffer

(
    GLenum Mode
)

Public function Static

void

 

DrawBuffers

(
    GLsizei NumBuffers,
    const GLenum* Buffers
)

Public function Static

void

 

DrawElementsIndirect

(
    GLenum Mode,
    GLenum Type,
    const void* Offset
)

Public function Static

void

 

DrawElementsInstanced

(
    GLenum Mode,
    GLsizei Count,
    GLenum Type,
    const GLvoid* Indices,
    GLsizei InstanceCount
)

Public function Static

void

 

EnableIndexed

(
    GLenum Parameter,
    GLuint Index
)

Public function Static

void

 

EndQuery

(
    GLenum QueryType
)

Public function Static

void

 

FramebufferTexture

(
    GLenum Target,
    GLenum Attachment,
    GLuint Texture,
    GLint Level
)

Public function Static

void

 

FramebufferTexture2D

(
    GLenum Target,
    GLenum Attachment,
    GLenum TexTarget,
    GLuint Texture,
    GLint Level
)

Public function Static

void

 

FramebufferTexture3D

(
    GLenum Target,
    GLenum Attachment,
    GLenum TexTarget,
    GLuint Texture,
    GLint Level,
    GLint ZOffset
)

Public function Static

void

 

FramebufferTextureLayer

(
    GLenum Target,
    GLenum Attachment,
    GLuint Texture,
    GLint Level,
    GLint Layer
)

Public function Static

void

 

GenBuffers

(
    GLsizei n,
    GLuint* buffers
)

Public function Static

void

 

GenQueries

(
    GLsizei NumQueries,
    GLuint* QueryIDs
)

Public function Static

void

 

GenSamplers

(
    GLsizei Count,
    GLuint* Samplers
)

Public function Static

void

 

GenTextures

(
    GLsizei n,
    GLuint* textures
)

Public function Static

FString

 

GetAdapterName()

Public function Static

GLenum

 

GetDepthFormat()

Public function Static

ERHIFeatureL...

 

GetFeatureLevel()

Public function Static

GLsizei

 

GetLabelObject

(
    GLenum Type,
    GLuint Object,
    GLsizei BufferSize,
    ANSICHAR* OutName
)

Public function Static

GLuint

 

GetMajorVersion()

Public function Static

GLint

 

GetMaxMSAASamplesTileMem()

Public function Static

GLuint

 

GetMinorVersion()

Public function Static

void

 

GetProgramBinary

(
    GLuint Program,
    GLsizei BufSize,
    GLsizei* Length,
    GLenum* BinaryFormat,
    void* Binary
)

Public function Static

void

 

GetQueryObject

(
    GLuint QueryId,
    EQueryMode QueryMode,
    GLuint* OutResult
)

Public function Static

void

 

GetQueryObject

(
    GLuint QueryId,
    EQueryMode QueryMode,
    uint64* OutResult
)

Public function Static

int32

 

GetReadHalfFloatPixelsEnum()

Adreno doesn't support HALF_FLOAT.

Public function Static

EShaderPlatf...

 

GetShaderPlatform()

Public function Static

GLenum

 

GetShadowDepthFormat()

Public function Static

GLenum

 

GetTextureHalfFloatInternalFormat()

Public function Static

GLenum

 

GetTextureHalfFloatPixelType()

Public function Static

GLuint

 

GetUniformBlockIndex

(
    GLuint Program,
    const GLchar* UniformBlockName
)

Public function Static

GLenum

 

GetVertexHalfFloatFormat()

Public function Static

bool

 

HasBinaryProgramRetrievalFailed()

Public function Static

bool

 

IsCheckingShaderCompilerHacks()

Public function Static

bool

 

IsES31Usable()

Public function Static

bool

 

IsES32Usable()

Public function Static

bool

 

IsLimitingShaderCompileCount()

Public function Static

void

 

LabelObject

(
    GLenum Type,
    GLuint Object,
    const ANSICHAR* Name
)

Public function Static

void *

 

MapBufferRange

(
    GLenum Type,
    uint32 InOffset,
    uint32 InSize,
    EResourceLockMode LockMode
)

Public function Static

void

 

MemoryBarrier

(
    GLbitfield Barriers
)

Public function Static

bool

 

NeedsVertexAttribRemapTable()

Public function Static

void

 

PopGroupMarker()

Public function Static

void

 

ProcessExtensions

(
    const FString& ExtensionsString
)

Public function Static

void

 

ProcessQueryGLInt()

Public function Static

void

 

ProgramBinary

(
    GLuint Program,
    GLenum BinaryFormat,
    const void* Binary,
    GLsizei Length
)

Public function Static

void

 

ProgramParameter

(
    GLuint Program,
    GLenum PName,
    GLint Value
)

Public function Static

void

 

ProgramUniform4uiv

(
    GLuint Program,
    GLint Location,
    GLsizei Count,
    const GLuint* Value
)

Public function Static

void

 

PushGroupMarker

(
    const ANSICHAR* Name
)

Public function Static

void

 

QueryTimestampCounter

(
    GLuint QueryID
)

Public function Static

void

 

ReadBuffer

(
    GLenum Mode
)

Public function Static

bool

 

RequiresARMShaderFramebufferFetchDepthStencilUndef()

Public function Static

bool

 

RequiresDisabledEarlyFragmentTests()

Public function Static

bool

 

RequiresDontEmitPrecisionForTextureSamplers()

Public function Static

bool

 

RequiresGLFragCoordVaryingLimitHack()

Public function Static

bool

 

RequiresRoundFunctionHack()

Public function Static

bool

 

RequiresTexture2DPrecisionHack()

Public function Static

bool

 

RequiresTextureCubeLodEXTToTextureCubeLodDefine()

Public function Static

bool

 

RequiresUEShaderFramebufferFetchDef()

Public function Static

void

 

SetSamplerParameter

(
    GLuint Sampler,
    GLenum Parameter,
    GLint Value
)

Public function Static

bool

 

SupportsBGRA8888()

Public function Static

bool

 

SupportsBGRA8888RenderTarget()

Public function Static

bool

 

SupportsBlitFramebuffer()

Public function Static

bool

 

SupportsColorBufferFloat()

Public function Static

bool

 

SupportsColorBufferHalfFloat()

Public function Static

bool

 

SupportsCombinedDepthStencilAttachment()

Public function Static

bool

 

SupportsComputeShaders()

Public function Static

bool

 

SupportsCopyBuffer()

Public function Static

bool

 

SupportsCopyTextureLevels()

Public function Static

bool

 

SupportsDepthStencilRead()

Public function Static

bool

 

SupportsDepthTexture()

Public function Static

bool

 

SupportsDiscardFrameBuffer()

Public function Static

bool

 

SupportsDisjointTimeQueries()

MLCHANGES END.

Public function Static

bool

 

SupportsDrawBuffers()

Public function Static

bool

 

SupportsDrawIndexOffset()

Public function Static

bool

 

SupportsDrawIndirect()

Public function Static

bool

 

SupportsDXT()

Public function Static

bool

 

SupportsETC2()

Public function Static

bool

 

SupportsExactOcclusionQueries()

Public function Static

bool

 

SupportsFastBufferData()

On iOS both glMapBufferOES() and glBufferSubData() for immediate vertex and index data is the slow path (they both hit GPU sync and data cache flush in driver according to profiling in driver symbols).

Public function Static

bool

 

SupportsFences()

Public function Static

bool

 

SupportsFloatReadSurface()

Public function Static

bool

 

SupportsFramebufferSRGBEnable()

Public function Static

bool

 

SupportsImageExternal()

Public function Static

bool

 

SupportsIndexedExtensions()

Public function Static

bool

 

SupportsMapBuffer()

Public function Static

bool

 

SupportsMobileMultiView()

Public function Static

bool

 

SupportsMultipleRenderTargets()

Public function Static

bool

 

SupportsMultisampledRenderToTexture()

Public function Static

bool

 

SupportsMultisampledTextures()

Public function Static

bool

 

SupportsOcclusionQueries()

Public function Static

bool

 

SupportsPackedDepthStencil()

Public function Static

bool

 

SupportsPixelBuffers()

Public function Static

bool

 

SupportsPolygonMode()

Public function Static

bool

 

SupportsProgramBinary()

Public function Static

bool

 

SupportsR11G11B10F()

Public function Static

bool

 

SupportsResourceView()

Public function Static

bool

 

SupportsRG16UI()

Public function Static

bool

 

SupportsRG32UI()

Public function Static

bool

 

SupportsRGB10A2()

Public function Static

bool

 

SupportsRGBA8()

Public function Static

bool

 

SupportsSamplerObjects()

Public function Static

bool

 

SupportsShaderDepthStencilFetch()

Public function Static

bool

 

SupportsShaderFramebufferFetch()

Public function Static

bool

 

SupportsShaderTextureCubeLod()

Public function Static

bool

 

SupportsShaderTextureLod()

Public function Static

bool

 

SupportsSRGB()

Public function Static

bool

 

SupportsStandardDerivativesExtension()

Public function Static

bool

 

SupportsStructuredBuffers()

Public function Static

bool

 

SupportsTexture3D()

Public function Static

bool

 

SupportsTextureBaseLevel()

Public function Static

bool

 

SupportsTextureCompare()

Public function Static

bool

 

SupportsTextureCubeLodEXT()

Public function Static

bool

 

SupportsTextureFloat()

Public function Static

bool

 

SupportsTextureHalfFloat()

Public function Static

bool

 

SupportsTextureLODBias()

Public function Static

bool

 

SupportsTextureMaxLevel()

Public function Static

bool

 

SupportsTextureNPOT()

ES 2 will not work with non-power of two textures with non-clamp mode.

Public function Static

bool

 

SupportsTextureSwizzle()

Public function Static

bool

 

SupportsTimestampQueries()

MLCHANGES BEGIN changed to use bSupportsDisjointTimeQueries.

Public function Static

bool

 

SupportsUniformBuffers()

Public function Static

bool

 

SupportsVertexArrayBGRA()

Public function Static

bool

 

SupportsVertexArrayObjects()

Public function Static

bool

 

SupportsVertexAttribByte()

Public function Static

bool

 

SupportsVertexAttribDouble()

Public function Static

bool

 

SupportsVertexAttribInteger()

Public function Static

bool

 

SupportsVertexAttribShort()

Public function Static

bool

 

SupportsVertexHalfFloat()

Public function Static

bool

 

SupportsWideMRT()

Public function Static

void

 

TexBuffer

(
    GLenum Target,
    GLenum InternalFormat,
    GLuint Buffer
)

Public function Static

void

 

TexBufferRange

(
    GLenum Target,
    GLenum InternalFormat,
    GLuint Buffer,
    GLintptr Offset,
    GLsizeiptr Size
)

Public function Static

void

 

TexImage3D

(
    GLenum Target,
    GLint Level,
    GLint InternalFormat,
    GLsizei Width,
    GLsizei Height,
    GLsizei Depth,
    GLint Border,
    GLenum Format,
    GLenum Type,
    const GLvoid* PixelData
)

Public function Static

void

 

TexParameter

(
    GLenum Target,
    GLenum Parameter,
    GLint Value
)

Public function Static

bool

 

TexStorage2D

(
    GLenum Target,
    GLint Levels,
    GLint InternalFormat,
    GLsizei Width,
    GLsizei Height,
    GLenum Format,
    GLenum Type,
    uint32 Flags
)

Public function Static

void

 

TexStorage3D

(
    GLenum Target,
    GLint Levels,
    GLint InternalFormat,
    GLsizei Width,
    GLsizei Height,
    GLsizei Depth,
    GLenum Format,
    GLenum Type
)

Public function Static

void

 

TexSubImage3D

(
    GLenum Target,
    GLint Level,
    GLint XOffset,
    GLint YOffset,
    GLint ZOffset,
    GLsizei Width,
    GLsizei Height,
    GLsizei Depth,
    GLenum Format,
    GLenum Type,
    const GLvoid* PixelData
)

Public function Static

bool

 

TimerQueryDisjoint()

Public function Static

void

 

UniformBlockBinding

(
    GLuint Program,
    GLuint UniformBlockIndex,
    GLuint UniformBlockBinding
)

Public function Static

void

 

UnmapBuffer

(
    GLenum Type
)

Public function Static

void

 

UnmapBufferRange

(
    GLenum Type,
    uint32 InOffset,
    uint32 InSize
)

Public function Static

bool

 

UseES30ShadingLanguage()

Public function Static

void

 

VertexAttribDivisor

(
    GLuint Index,
    GLuint Divisor
)

Public function Static

void

 

VertexAttribIPointer

(
    GLuint Index,
    GLint Size,
    GLenum Type,
    GLsizei Stride,
    const GLvoid* Pointer
)

Public function Static

void

 

VertexAttribPointer

(
    GLuint Index,
    GLint Size,
    GLenum Type,
    GLboolean Normalized,
    GLsizei Stride,
    const GLvoid* Pointer
)

Enums

Name

Description

Public enum

EFeatureLevelSupport

Constants

Name

Description

bBinaryProgramRetrievalFailed

This indicates failure when attempting to retrieve driver's binary representation of the hack program

bES31Support

Whether device supports ES 3.1

bHasHardwareHiddenSurfaceRemoval

Whether device supports Hidden Surface Removal

bIsCheckingShaderCompilerHacks

Indicates shader compiler hack checks are being tested

bIsLimitingShaderCompileCount

Indicates shader compiler should be limited

bNeedsVertexAttribRemap

Vertex attributes need remapping if GL_MAX_VERTEX_ATTRIBS < 16

bRequiresARMShaderFramebufferFetchDepthStencilUndef

This is to avoid a bug in Adreno drivers that define GL_ARM_shader_framebuffer_fetch_depth_stencil even when device does not support this extension

bRequiresDisabledEarlyFragmentTests

Some Mali devices do not work correctly with early_fragment_test enabled

bRequiresDontEmitPrecisionForTextureSamplers

This is a hack to remove the calls to "precision sampler" defaults which are produced by the cross compiler however don't compile on some android platforms

bRequiresGLFragCoordVaryingLimitHack

This is a hack to remove the gl_FragCoord if shader will fail to link if exceeding the max varying on android platforms

bRequiresRoundFunctionHack

This is a hack to add a round() function when not available to a shader compiler

bRequiresTexture2DPrecisionHack

This hack fixes an issue with SGX540 compiler which can get upset with some operations that mix highp and mediump

bRequiresTextureCubeLodEXTToTextureCubeLodDefine

Some android platforms require textureCubeLod to be used some require textureCubeLodEXT however they either inconsistently or don't use the GL_TextureCubeLodEXT extension definition

bRequiresUEShaderFramebufferFetchDef

Workaround for GL_EXT_shader_framebuffer_fetch

bSupportsBGRA8888

GL_APPLE_texture_format_BGRA8888

bSupportsBGRA8888RenderTarget

Whether BGRA supported as color attachment

bSupportsColorBufferFloat

GL_EXT_color_buffer_float

bSupportsColorBufferHalfFloat

GL_EXT_color_buffer_half_float

bSupportsCopyTextureLevels

GL_APPLE_copy_texture_levels

bSupportsDepthTexture

GL_OES_depth_texture

bSupportsDiscardFrameBuffer

GL_EXT_discard_framebuffer

bSupportsDisjointTimeQueries

GL_EXT_disjoint_timer_query

bSupportsDXT

GL_NV_texture_compression_s3tc, GL_EXT_texture_compression_s3tc

bSupportsETC2

OpenGL ES 3.0 profile

bSupportsMapBuffer

GL_OES_mapbuffer

bSupportsMobileMultiView

Whether device supports mobile multi-view

bSupportsMultisampledRenderToTexture

GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE

bSupportsNVFrameBufferBlit

GL_NV_framebuffer_blit

bSupportsOcclusionQueries

GL_ARB_occlusion_query2, GL_EXT_occlusion_query_boolean

bSupportsPackedDepthStencil

GL_OES_packed_depth_stencil

bSupportsProgramBinary

GL_OES_get_program_binary

bSupportsRGB10A2

GL_OES_vertex_type_10_10_10_2

bSupportsRGBA8

GL_OES_rgb8_rgba8

bSupportsShaderDepthStencilFetch

GL_ARM_shader_framebuffer_fetch_depth_stencil

bSupportsShaderFramebufferFetch

GL_EXT_shader_framebuffer_fetch

bSupportsShaderTextureCubeLod

TextureCubeLod

bSupportsShaderTextureLod

GL_EXT_shader_texture_lod

bSupportsStandardDerivativesExtension

GL_OES_standard_derivations

bSupportsTextureBuffer

GL_EXT_texture_buffer.

bSupportsTextureCubeLodEXT

TextureCubeLodEXT

bSupportsTextureFloat

GL_OES_texture_float

bSupportsTextureHalfFloat

GL_OES_texture_half_float

bSupportsTextureNPOT

GL_OES_texture_npot

bSupportsTextureStorageEXT

GL_EXT_texture_storage

bSupportsVertexArrayObjects

GL_OES_vertex_array_object

bSupportsVertexHalfFloat

GL_OES_vertex_half_float

bTimerQueryCanBeDisjoint

Some timer query implementations are never disjoint

bUseES30ShadingLanguage

Whether to use ES 3.0 shading language

bUseHalfFloatTexStorage

Whether to use ES 3.0 function glTexStorage2D to allocate storage for GL_HALF_FLOAT_OES render target textures

CurrentFeatureLevelSupport

Describes which feature level is currently being supported

MaxCombinedUAVUnits

MaxComputeTextureImageUnits

MaxComputeUAVUnits

MaxComputeUniformComponents

MaxMSAASamplesTileMem

Maximum number of MSAA samples supported on chip in tile memory, or 1 if not available

MaxPixelUAVUnits

ShaderHighPrecision

GL_FRAGMENT_SHADER, GL_HIGH_FLOAT

ShaderLowPrecision

GL_FRAGMENT_SHADER, GL_LOW_FLOAT

ShaderMediumPrecision

GL_FRAGMENT_SHADER, GL_MEDIUM_FLOAT

Help shape the future of Unreal Engine documentation! Tell us how we're doing so we can serve you better.
Take our survey
Dismiss