101 lines
2.7 KiB
Ada
101 lines
2.7 KiB
Ada
with
|
|
openGL.Display,
|
|
openGL.Screen,
|
|
OSMesa_C;
|
|
|
|
|
|
package openGL.surface_Profile
|
|
--
|
|
-- Models an openGL surface profile.
|
|
--
|
|
is
|
|
|
|
type Item is tagged private;
|
|
type View is access all Item'Class;
|
|
|
|
type Items is array (Positive range <>) of Item;
|
|
|
|
|
|
|
|
-------------------
|
|
-- Surface Quality
|
|
--
|
|
|
|
Irrelevant : constant Natural := Natural'Last;
|
|
|
|
type color_Buffer is
|
|
record
|
|
Bits_red : Natural := Irrelevant;
|
|
Bits_green : Natural := Irrelevant;
|
|
Bits_blue : Natural := Irrelevant;
|
|
|
|
Bits_luminence : Natural := Irrelevant;
|
|
|
|
Bits_alpha : Natural := Irrelevant;
|
|
Bits_alpha_mask : Natural := Irrelevant;
|
|
end record;
|
|
|
|
function Image (Self : in color_Buffer) return String;
|
|
|
|
|
|
type Qualities is
|
|
record
|
|
color_Buffer : surface_Profile.color_Buffer;
|
|
depth_buffer_Bits : Natural := Irrelevant;
|
|
stencil_buffer_Bits : Natural := Irrelevant;
|
|
end record;
|
|
|
|
default_Qualities : constant Qualities;
|
|
|
|
function Image (Self : in Qualities) return String;
|
|
|
|
|
|
|
|
---------
|
|
-- Forge
|
|
--
|
|
|
|
desired_Qualitites_unavailable : exception;
|
|
|
|
procedure define (Self : in out Item; the_Display : access openGL.Display.item'Class;
|
|
Screen : access openGL.Screen .item'Class;
|
|
Desired : in Qualities := default_Qualities);
|
|
|
|
function fetch_All (the_Display : access openGL.Display.item'class) return surface_Profile.items;
|
|
|
|
|
|
|
|
--------------
|
|
-- Attributes
|
|
--
|
|
|
|
function Quality (Self : in Item) return Qualities;
|
|
-- function get_Visual (Self : in Item) return access GLX.XVisualInfo;
|
|
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
type Item is tagged
|
|
record
|
|
-- glx_Config : GLX.GLXFBConfig;
|
|
Display : access openGL.Display.item'Class;
|
|
-- Visual : access GLX.XVisualInfo;
|
|
end record;
|
|
|
|
|
|
default_Qualities : constant Qualities := (color_Buffer => (Bits_red => 8,
|
|
Bits_green => 8,
|
|
Bits_blue => 8,
|
|
|
|
Bits_luminence => Irrelevant,
|
|
|
|
Bits_alpha => Irrelevant,
|
|
Bits_alpha_mask => Irrelevant),
|
|
depth_buffer_Bits => 24,
|
|
stencil_buffer_Bits => Irrelevant);
|
|
|
|
end openGL.surface_Profile;
|