Record Class Renderable

java.lang.Object
java.lang.Record
dev.engine.graphics.renderer.Renderable

public record Renderable(Handle<BufferResource> vertexBuffer, Handle<BufferResource> indexBuffer, Handle<VertexInputResource> vertexInput, Handle<PipelineResource> pipeline, int vertexCount, int indexCount, Map<String,Integer> bufferBindings) extends Record
A resolved renderable: mesh GPU resources + pipeline + binding map. The binding map maps buffer names (e.g. "CameraBuffer") to slot indices, resolved from shader reflection after compilation.
  • Constructor Details

    • Renderable

      public Renderable(Handle<BufferResource> vertexBuffer, Handle<BufferResource> indexBuffer, Handle<VertexInputResource> vertexInput, Handle<PipelineResource> pipeline, int vertexCount, int indexCount)
      Renderable without reflection bindings (legacy / headless).
    • Renderable

      public Renderable(Handle<BufferResource> vertexBuffer, Handle<BufferResource> indexBuffer, Handle<VertexInputResource> vertexInput, Handle<PipelineResource> pipeline, int vertexCount, int indexCount, Map<String,Integer> bufferBindings)
      Creates an instance of a Renderable record class.
      Parameters:
      vertexBuffer - the value for the vertexBuffer record component
      indexBuffer - the value for the indexBuffer record component
      vertexInput - the value for the vertexInput record component
      pipeline - the value for the pipeline record component
      vertexCount - the value for the vertexCount record component
      indexCount - the value for the indexCount record component
      bufferBindings - the value for the bufferBindings record component
  • Method Details

    • bindingFor

      public int bindingFor(String bufferName, int fallback)
      Finds the binding slot for a named buffer, or the fallback if unknown.
    • toString

      public final String toString()
      Returns a string representation of this record class. The representation contains the name of the class, followed by the name and value of each of the record components.
      Specified by:
      toString in class Record
      Returns:
      a string representation of this object
    • hashCode

      public final int hashCode()
      Returns a hash code value for this object. The value is derived from the hash code of each of the record components.
      Specified by:
      hashCode in class Record
      Returns:
      a hash code value for this object
    • equals

      public final boolean equals(Object o)
      Indicates whether some other object is "equal to" this one. The objects are equal if the other object is of the same class and if all the record components are equal. Reference components are compared with Objects::equals(Object,Object); primitive components are compared with the compare method from their corresponding wrapper classes.
      Specified by:
      equals in class Record
      Parameters:
      o - the object with which to compare
      Returns:
      true if this object is the same as the o argument; false otherwise.
    • vertexBuffer

      public Handle<BufferResource> vertexBuffer()
      Returns the value of the vertexBuffer record component.
      Returns:
      the value of the vertexBuffer record component
    • indexBuffer

      public Handle<BufferResource> indexBuffer()
      Returns the value of the indexBuffer record component.
      Returns:
      the value of the indexBuffer record component
    • vertexInput

      public Handle<VertexInputResource> vertexInput()
      Returns the value of the vertexInput record component.
      Returns:
      the value of the vertexInput record component
    • pipeline

      public Handle<PipelineResource> pipeline()
      Returns the value of the pipeline record component.
      Returns:
      the value of the pipeline record component
    • vertexCount

      public int vertexCount()
      Returns the value of the vertexCount record component.
      Returns:
      the value of the vertexCount record component
    • indexCount

      public int indexCount()
      Returns the value of the indexCount record component.
      Returns:
      the value of the indexCount record component
    • bufferBindings

      public Map<String,Integer> bufferBindings()
      Returns the value of the bufferBindings record component.
      Returns:
      the value of the bufferBindings record component