Libraries.Game.Graphics.Shaders.ShaderManager Documentation

Inherits from: Libraries.Language.Object

Variables Table

VariablesDescription
integer COMPUTE_SHADERThis type constant indicates that the shader is a compute shader. This isn't required for graphics, but can be used in conjunction with graphics or independently to perform computations on the GPU.
text DEFAULT_2D_FRAGMENT_SHADER
integer FRAGMENT_SHADERThis type constant is used to indicate that the shader is a fragment shader. Every shader program must have a fragment shader as its final shader step.
text DEFAULT_2D_SHADER_PROGRAM
integer VERTEX_SHADERThis type constant is used to indicate that the shader is a vertex shader. Every shader program must have a vertex shader as its first shader step.
text DEFAULT_3D_FRAGMENT_SHADER
integer GEOMETRY_SHADERThis type constant is used to indicate that the shader is a geometry shader. This shader step is optional.
text DEFAULT_LIGHTING_SHADER_PROGRAM
text COPY_FROM_SAMPLER_FRAGMENT_SHADER
text DEFAULT_LIGHTING_FRAGMENT_SHADER
text COPY_FROM_SAMPLER_SHADER_PROGRAMThis type constant is used to indicate that the shader is a vertex shader. Every shader program must have a vertex shader as its first shader step.
text COPY_FROM_SAMPLER_VERTEX_SHADER
text DEFAULT_2D_VERTEX_SHADER
text DEFAULT_LIGHTING_VERTEX_SHADER
integer TESSELLATION_EVALUATION_SHADERThis type constant is used to indicate that the shader is a tessellation evaluation shader. This shader step is optional. If used, this should follow after a tessellation control shader in a shader program.
text DEFAULT_3D_VERTEX_SHADER
text DEFAULT_3D_SHADER_PROGRAM
integer TESSELLATION_CONTROL_SHADERThis type constant is used to indicate that the shader is a tessellation control shader. This shader step is optional. If used, this should precede a tessellation evaluation shader in a shader program.

Actions Documentation

AddReloadableMesh(Libraries.Game.Graphics.Mesh mesh)

Compare(Libraries.Language.Object object)

This action compares two object hash codes and returns an integer. The result is larger if this hash code is larger than the object passed as a parameter, smaller, or equal. In this case, -1 means smaller, 0 means equal, and 1 means larger. This action was changed in Quorum 7 to return an integer, instead of a CompareResult object, because the previous implementation was causing efficiency issues.

Parameters

Return

integer: The Compare result, Smaller, Equal, or Larger.

Example

Object o
Object t
integer result = o:Compare(t) //1 (larger), 0 (equal), or -1 (smaller)

CompileShader(Libraries.Game.Graphics.Shaders.Shader shader)

DisposeShader(Libraries.Game.Graphics.Shaders.Shader shader)

Equals(Libraries.Language.Object object)

This action determines if two objects are equal based on their hash code values.

Parameters

Return

boolean: True if the hash codes are equal and false if they are not equal.

Example

use Libraries.Language.Object
use Libraries.Language.Types.Text
Object o
Text t
boolean result = o:Equals(t)

GetCopyFromSamplerFragmentShader()

GetCopyFromSamplerShaderProgram()

GetCopyFromSamplerVertexShader()

GetDefaultFragmentShader2D()

GetDefaultFragmentShader3D()

GetDefaultLightingFragmentShader()

GetDefaultLightingShaderProgram()

GetDefaultLightingVertexShader()

GetDefaultVertexShader2D()

GetDefaultVertexShader3D()

GetHashCode()

This action gets the hash code for an object.

Return

integer: The integer hash code of the object.

Example

Object o
integer hash = o:GetHashCode()

GetShader(text name)

GetShaderProgram(text name)

GetVersionHeader()

This action takes platform into account and returns a default version of OpenGL's number to be placed at the top of a shader. For shaders not using OpenGL, this action does not provide useful information. The version number is calculated by Quorum, not the graphics hardware.

Return

text:

HasShader(text name)

Parameters

  • text name

Return

boolean

HasShaderProgram(text name)

Parameters

  • text name

Return

boolean

IsOpenGL()

Return

boolean

IsVulkan()

Return

boolean

Register(text name, Libraries.Game.Graphics.Shaders.Shader shader)

This type constant is used to indicate that the shader is a tessellation evaluation shader. This shader step is optional. If used, this should follow after a tessellation control shader in a shader program.

Parameters

Register(text name, Libraries.Game.Graphics.Shaders.Programs.ShaderProgram program)

This type constant is used to indicate that the shader is a tessellation control shader. This shader step is optional. If used, this should precede a tessellation evaluation shader in a shader program.

Parameters

ReloadMeshes()

ReloadShader(Libraries.Game.Graphics.Shaders.Shader shader)

ReloadShaders()

RemoveReloadableMesh(Libraries.Game.Graphics.Mesh mesh)

RemoveShader(text name)

This type constant is used to indicate that the shader is a geometry shader. This shader step is optional.

Parameters

  • text name

RemoveShaderProgram(text name)

This type constant is used to indicate that the shader is a fragment shader. Every shader program must have a fragment shader as its final shader step.

Parameters

  • text name