Libraries.Game.Graphics.Vulkan.VulkanDrawQueue3D Documentation

This class is used by the VulkanPainter3D to manage instance data and queue indirect draw commands. Most users will never need to use this class directly.

Inherits from: Libraries.Language.Object

Variables Table

VariablesDescription
integer INSTANCE_DATA_BYTE_SIZEIndices for the location of instance data, aligned to word indices (not bytes).
integer INSTANCE_DATA_WORD_SIZEThe size of a single buffer of instance data, in bytes and as 4-byte words.

Actions Documentation

AddDrawIndirectCommand(integer vertexCount, integer instanceCount)

Parameters

  • integer vertexCount
  • integer instanceCount

AddInstanceData(Libraries.Game.Graphics.Models.Vulkan.MeshVulkan mesh, Libraries.Game.Graphics.Texture texture, Libraries.Game.Graphics.Color diffuseColor, Libraries.Compute.Matrix4 modelMatrix)

AddInstanceData(Libraries.Game.Graphics.Vulkan.VulkanBuffer vertexBuffer, Libraries.Game.Graphics.Vulkan.VulkanBuffer indexBuffer, Libraries.Game.Graphics.Models.Vulkan.MaterialVulkan material, Libraries.Game.Graphics.Texture texture, Libraries.Game.Graphics.Color diffuseColor, Libraries.Compute.Matrix4 modelMatrix)

Begin()

Dummy data used only to retrieve the size of each data structure in bytes. Needed to size the buffer.

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)

Create(Libraries.Game.Graphics.Vulkan.VulkanDevice device, Libraries.Game.Graphics.Vulkan.VulkanGraphics graphics, integer maxInstances, integer textureGroupID)

Dispose()

End()

Also create the draw command buffer. In the worst case, every mesh is unique, so it's possible to have an equal number of draw commands and instances.

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)

GetDrawCommandCount()

Return

integer

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

GetInstanceDataBuffer()

GetTextureGroupID()

Return

integer