Pixel-Composer/scripts/BBMOD_IRenderable/BBMOD_IRenderable.gml
2023-04-23 16:47:33 +02:00

50 lines
1.3 KiB
Text

/// @func BBMOD_IRenderable()
///
/// @interface
///
/// @desc An interface describing renderable objects. Any struct or object that
/// implements this interface can be rendered using a {@link BBMOD_Renderer}.
///
/// @example
/// A renderable object:
/// ```gml
/// /// @desc Create event
/// render = function () {
/// var _matrix = matrix_build_identity();
/// _matrix[@ 12] = x;
/// _matrix[@ 13] = y;
/// _matrix[@ 14] = z;
/// matrix_set(matrix_world, _matrix);
/// model.render();
/// return self;
/// };
/// ```
/// A renderable struct:
/// ```gml
/// renderable = {
/// position: new BBMOD_Vec3(),
/// model: /* ... */,
/// render: function () {
/// var _matrix = matrix_build_identity();
/// position.ToArray(_matrix, 12);
/// matrix_set(matrix_world, _matrix);
/// model.render();
/// return self;
/// },
/// };
/// ```
/// @see BBMOD_Renderer
function BBMOD_IRenderable()
{
/// @func render()
///
/// @desc Enqueues the object for rendering.
///
/// @return {Struct.BBMOD_IRenderable} Returns `self`.
///
/// @throws {BBMOD_NotImplementedException} If the method is not implemented.
static render = function () {
throw new BBMOD_NotImplementedException();
//return self;
};
}