Libraries.Game.Graphics.Shaders.Vulkan.VulkanShaderManager Documentation

Inherits from: Libraries.Game.Graphics.Shaders.ShaderManager, Libraries.Language.Object

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()

GetDefaultPipeline2D()

This action returns the default VulkanPipeline used for rendering 2D graphics.

Return

Libraries.Game.Graphics.Vulkan.VulkanPipeline:

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()

GetPipelineCache()

This should be refactored so the ShaderManager can handle OpeGL ShaderPrograms and VulkanPipelines in a consistent way.

Return

Libraries.Game.Graphics.Vulkan.VulkanPipelineCache:

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:

GetVulkanType(integer shaderType)

This action takes a Quorum shader type and converts it to the equivalent Vulkan shader stage value from the VulkanConstants class.

Parameters

  • integer shaderType

Return

integer:

HasShader(text name)

Parameters

  • text name

Return

boolean

HasShaderProgram(text name)

Parameters

  • text name

Return

boolean

IsOpenGL()

Return

boolean

IsVulkan()

This action returns the default VulkanPipeline used for rendering 2D graphics.

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)

This action takes a Quorum shader type and converts it to the equivalent Vulkan shader stage value from the VulkanConstants class.

Parameters

Return

integer:

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