64 lines
1.3 KiB
Ada
64 lines
1.3 KiB
Ada
with
|
|
openGL.Texture;
|
|
|
|
|
|
package openGL.Frame_Buffer
|
|
is
|
|
|
|
type Item is tagged private;
|
|
|
|
null_Buffer : constant Item;
|
|
|
|
|
|
---------
|
|
--- Forge
|
|
--
|
|
|
|
package Forge
|
|
is
|
|
function to_Frame_Buffer return Item;
|
|
function to_Frame_Buffer (Width,
|
|
Height : in Positive) return Item;
|
|
end Forge;
|
|
|
|
procedure destruct (Self : in out Item);
|
|
|
|
|
|
--------------
|
|
--- Attributes
|
|
--
|
|
|
|
subtype Buffer_Name is GL.GLuint; -- An openGL frame buffer 'Name'.
|
|
|
|
function Name (Self : in Item) return Buffer_Name;
|
|
|
|
function Texture (Self : in Item) return openGL.Texture.Object;
|
|
procedure Texture_is (Self : in out Item; now : in openGL.Texture.Object);
|
|
|
|
function is_Complete (Self : in Item) return Boolean;
|
|
|
|
|
|
--------------
|
|
--- Operations
|
|
--
|
|
|
|
procedure enable (Self : in Item);
|
|
procedure disable (Self : in Item);
|
|
--
|
|
-- Unbind the frame buffer so rendering will return to the backbuffer.
|
|
|
|
|
|
|
|
private
|
|
|
|
type Item is tagged
|
|
record
|
|
Name : aliased buffer_Name;
|
|
Texture : openGL.Texture.Object;
|
|
end record;
|
|
|
|
null_Buffer : constant Item := (Name => 0,
|
|
Texture => openGL.Texture.null_Object);
|
|
|
|
end openGL.Frame_Buffer;
|