FOpenGLES

Choose your operating system:

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

 

BindVertexBuffer

(
    GLuint BindingIndex,
    GLuint Buffer,
    GLintptr Offset,
    GLsizei Stride
)

Public function Static

void

 

BlendEquationi

(
    GLuint Buf,
    GLenum Mode
)

Public function Static

void

 

BlendEquationSeparatei

(
    GLuint Buf,
    GLenum ModeRGB,
    GLenum ModeAlpha
)

Public function Static

void

 

BlendFunci

(
    GLuint Buf,
    GLenum Src,
    GLenum Dst
)

Public function Static

void

 

BlendFuncSeparatei

(
    GLuint Buf,
    GLenum SrcRGB,
    GLenum DstRGB,
    GLenum SrcAlpha,
    GLenum DstAlpha
)

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

 

BufferStorage

(
    GLenum Target,
    GLsizeiptr Size,
    const void* Data,
    GLbitfield Flags
)

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

 

CompressedTexSubImage3D

(
    GLenum Target,
    GLint Level,
    GLint XOffset,
    GLint YOffset,
    GLint ZOffset,
    GLsizei Width,
    GLsizei Height,
    GLsizei Depth,
    GLenum Format,
    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()

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

 

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

 

GenerateMipmap

(
    GLenum Target
)

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

int32

 

GetReadHalfFloatPixelsEnum()

Adreno doesn't support HALF_FLOAT.

Public function Static

EShaderPlatf...

 

GetShaderPlatform()

Public function Static

GLenum

 

GetShadowDepthFormat()

Public function Static

GLuint

 

GetUniformBlockIndex

(
    GLuint Program,
    const GLchar* UniformBlockName
)

Public function Static

bool

 

HasBinaryProgramRetrievalFailed()

Public function Static

void

 

InvalidateFramebuffer

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

Public function Static

bool

 

IsES31Usable()

Public function Static

bool

 

IsES32Usable()

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

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

 

ReadBuffer

(
    GLenum Mode
)

Public function Static

bool

 

RequiresARMShaderFramebufferFetchDepthStencilUndef()

Public function Static

bool

 

RequiresDisabledEarlyFragmentTests()

Public function Static

void

 

SetSamplerParameter

(
    GLuint Sampler,
    GLenum Parameter,
    GLint Value
)

Public function Static

bool

 

SupportsASTCDecodeMode()

Public function Static

bool

 

SupportsBGRA8888()

Public function Static

bool

 

SupportsBufferStorage()

Public function Static

bool

 

SupportsColorBufferFloat()

Public function Static

bool

 

SupportsColorBufferHalfFloat()

Public function Static

bool

 

SupportsDepthStencilRead()

Public function Static

bool

 

SupportsDiscardFrameBuffer()

Public function Static

bool

 

SupportsDisjointTimeQueries()

MLCHANGES END.

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

 

SupportsFloatReadSurface()

Public function Static

bool

 

SupportsFramebufferSRGBEnable()

Public function Static

bool

 

SupportsGenerateMipmap()

Public function Static

bool

 

SupportsImageExternal()

Public function Static

bool

 

SupportsIndexedExtensions()

Public function Static

bool

 

SupportsMobileMultiView()

Public function Static

bool

 

SupportsMultisampledRenderToTexture()

Public function Static

bool

 

SupportsPixelLocalStorage()

Public function Static

bool

 

SupportsPolygonMode()

Public function Static

bool

 

SupportsProgramBinary()

Public function Static

bool

 

SupportsRGB10A2()

Public function Static

bool

 

SupportsShaderDepthStencilFetch()

Public function Static

bool

 

SupportsShaderFramebufferFetch()

Public function Static

bool

 

SupportsShaderMRTFramebufferFetch()

Public function Static

bool

 

SupportsStructuredBuffers()

Public function Static

bool

 

SupportsTexture3D()

Public function Static

bool

 

SupportsTextureCompare()

Public function Static

bool

 

SupportsTextureLODBias()

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

 

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,
    ETextureCreateFlags Flags
)

Public function Static

bool

 

TexStorage2DMultisample

(
    GLenum Target,
    GLsizei Samples,
    GLint InternalFormat,
    GLsizei Width,
    GLsizei Height,
    GLboolean FixedSampleLocations
)

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

void

 

VertexAttribBinding

(
    GLuint AttribIndex,
    GLuint BindingIndex
)

Public function Static

void

 

VertexAttribDivisor

(
    GLuint Index,
    GLuint Divisor
)

Public function Static

void

 

VertexAttribFormat

(
    GLuint AttribIndex,
    GLint Size,
    GLenum Type,
    GLboolean Normalized,
    GLuint RelativeOffset
)

Public function Static

void

 

VertexAttribIFormat

(
    GLuint AttribIndex,
    GLint Size,
    GLenum Type,
    GLuint RelativeOffset
)

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
)

Public function Static

void

 

VertexBindingDivisor

(
    GLuint BindingIndex,
    GLuint Divisor
)

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

bHasHardwareHiddenSurfaceRemoval

Whether device supports Hidden Surface Removal

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

bSupportsASTCDecodeMode

GL_EXT_texture_compression_astc_decode_mode

bSupportsBGRA8888

GL_APPLE_texture_format_BGRA8888

bSupportsBufferStorage

GL_EXT_buffer_storage

bSupportsColorBufferFloat

GL_EXT_color_buffer_float

bSupportsColorBufferHalfFloat

GL_EXT_color_buffer_half_float

bSupportsDisjointTimeQueries

GL_EXT_disjoint_timer_query

bSupportsDXT

GL_NV_texture_compression_s3tc, GL_EXT_texture_compression_s3tc

bSupportsETC2

OpenGL ES 3.0 profile

bSupportsMobileMultiView

Whether device supports mobile multi-view

bSupportsMultisampledRenderToTexture

GL_EXT_MULTISAMPLED_RENDER_TO_TEXTURE

bSupportsNVFrameBufferBlit

GL_NV_framebuffer_blit

bSupportsPixelLocalStorage

Workaround for GL_EXT_shader_pixel_local_storage

bSupportsProgramBinary

GL_OES_get_program_binary

bSupportsRGB10A2

GL_OES_vertex_type_10_10_10_2

bSupportsShaderDepthStencilFetch

GL_ARM_shader_framebuffer_fetch_depth_stencil

bSupportsShaderFramebufferFetch

GL_EXT_shader_framebuffer_fetch

bSupportsShaderMRTFramebufferFetch

GL_EXT_shader_framebuffer_fetch (MRT's)

bSupportsStandardDerivativesExtension

GL_OES_standard_derivations

bTimerQueryCanBeDisjoint

Some timer query implementations are never disjoint

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