com.io7m.jcanephora.core.api

## Interface JCGLArrayObjectsType

-     public interface JCGLArrayObjectsType

  The interface to OpenGL vertex array objects.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `JCGLArrayObjectType` | `arrayObjectAllocate(JCGLArrayObjectBuilderType b)` Allocate and bind an array object based on the values given in `b`.
    `void` | `arrayObjectBind(JCGLArrayObjectUsableType a)` Bind the given array object.
    `void` | `arrayObjectDelete(JCGLArrayObjectType a)` Deletes the object referenced by `a`.
    `JCGLArrayObjectUsableType` | `arrayObjectGetCurrentlyBound()`
    `JCGLArrayObjectUsableType` | `arrayObjectGetDefault()` A default array object is provided in order to allow for code to create and manipulate `JCGLIndexBufferType` values without needing to explicitly create an array object just for this purpose.
    `JCGLArrayObjectBuilderType` | `arrayObjectNewBuilder()` Retrieve a new array object builder.
    `JCGLArrayObjectBuilderType` | `arrayObjectNewBuilderFromObject(JCGLArrayObjectUsableType o)`
    `void` | `arrayObjectUnbind()` Unbind the current array object.

- - ### Method Detail

    - #### arrayObjectNewBuilder

          JCGLArrayObjectBuilderType arrayObjectNewBuilder()
                                                    throws JCGLException

      Retrieve a new array object builder. The returned builder can be used indefinitely but is tied to the `JCGLContextType` upon which it was created.
      Returns:
        A new array object builder
      Throws:
        `JCGLException` - On OpenGL errors

    - #### arrayObjectNewBuilderFromObject

          JCGLArrayObjectBuilderType arrayObjectNewBuilderFromObject(JCGLArrayObjectUsableType o)

      Parameters:
        `o` - An array object
      Returns:
        A new array object builder, initialized to the values used to construct `o`
      See Also:
        `arrayObjectNewBuilder()`

    - #### arrayObjectAllocate

          JCGLArrayObjectType arrayObjectAllocate(JCGLArrayObjectBuilderType b)
                                           throws JCGLException

      Allocate and bind an array object based on the values given in `b`.

      Calling this method will unbind any currently bound array buffer.

      Calling this method will unbind any currently bound array object.

      Parameters:
        `b` - The array object builder
      Returns:
        A new array object
      Throws:
        `JCGLException` - On OpenGL errors
      See Also:
        `JCGLArrayBuffersType.arrayBufferUnbind()`

    - #### arrayObjectGetCurrentlyBound

          JCGLArrayObjectUsableType arrayObjectGetCurrentlyBound()
                                                          throws JCGLException

      Returns:
        The currently bound array object, or `arrayObjectGetDefault()` if the user has not bound an array object.
      Throws:
        `JCGLException` - Iff an OpenGL error occurs

    - #### arrayObjectBind

          void arrayObjectBind(JCGLArrayObjectUsableType a)
                        throws JCGLException,
                               JCGLExceptionDeleted

      Bind the given array object.
      Parameters:
        `a` - The array object
      Throws:
        `JCGLException` - Iff an OpenGL error occurs
        `JCGLExceptionDeleted` - Iff the given array object has already been deleted

    - #### arrayObjectUnbind

          void arrayObjectUnbind()
                          throws JCGLException

      Unbind the current array object. If no object is bound, this call has no effect.
      Throws:
        `JCGLException` - Iff an OpenGL error occurs

    - #### arrayObjectDelete

          void arrayObjectDelete(JCGLArrayObjectType a)
                          throws JCGLException,
                                 JCGLExceptionDeleted,
                                 JCGLExceptionObjectNotDeletable

      Deletes the object referenced by `a`.

      Calling this method will unbind `a` iff it is bound.

      Parameters:
        `a` - The array buffer
      Throws:
        `JCGLExceptionDeleted` - If the object is already deleted
        `JCGLException` - Iff an OpenGL error occurs
        `JCGLExceptionObjectNotDeletable` - Iff the object is the default array object
      See Also:
        `arrayObjectGetDefault()`

    - #### arrayObjectGetDefault

          JCGLArrayObjectUsableType arrayObjectGetDefault()

      A default array object is provided in order to allow for code to create and manipulate `JCGLIndexBufferType` values without needing to explicitly create an array object just for this purpose.
      Returns:
        A reference to the default array object

Copyright © 2017 <code@io7m.com> http://io7m.com