Class LayeredRenderBuffer

java.lang.Object
dev.pfaff.altargui.render.LayeredRenderBuffer
All Implemented Interfaces:
AutoCloseable
Direct Known Subclasses:
GL31LayeredRenderBuffer, GL42DrawArraysIndirectLayeredRenderBuffer, GL42DrawArraysInstancedBaseInstanceLayeredRenderBuffer

public abstract class LayeredRenderBuffer extends Object implements AutoCloseable
  • Field Details

  • Constructor Details

    • LayeredRenderBuffer

      public LayeredRenderBuffer()
  • Method Details

    • currentProgram

      public final int currentProgram()
    • byteCount

      public final int byteCount()
    • onRecreate

      protected abstract void onRecreate()
    • beginUploading

      public void beginUploading(int capacity)
      Parameters:
      capacity - the maximum number of bytes that will be uploaded.
    • finishUploading

      public final void finishUploading()
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
    • putDataForEntry

      protected abstract void putDataForEntry(MemorySegment ms, int program, int start, int end)
      Parameters:
      ms - a buffer of 3 integers. Store whatever you need here.
      program - the shader program used for the layer.
      start - the byte offset of the start of the program's vertex data.
      end - the byte offset of the end of the program's vertex data.
    • getVAOForEntry

      protected abstract VAO getVAOForEntry(MemorySegment ms, int layer)
      Parameters:
      ms - a buffer of 3 integers.
      layer -
    • drawEntry

      protected abstract void drawEntry(MemorySegment ms, int programId, Program<?> program)
      The VAO will be bound by the caller.
      Parameters:
      ms - a buffer of 3 integers.
    • endCurrentLayer

      public final boolean endCurrentLayer()
    • iSpecUpload

      public final void iSpecUpload(RenderObject object, int program)
    • upload

      public final void upload(RenderObject object)
    • drawer

      public final LayeredRenderBuffer.Drawer drawer()