Files
lace/3-mid/opengl/source/platform/osmesa/opengl-surface_profile.adb
2022-07-31 17:34:54 +10:00

113 lines
3.7 KiB
Ada

with
interfaces.C,
ada.unchecked_Conversion;
package body openGL.surface_Profile
is
use Interfaces,
OSMesa_c;
-- visual_attribs : array (Positive range <>) of aliased C.int := (GLX_X_RENDERABLE, 1,
-- GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT,
-- GLX_RENDER_TYPE, GLX_RGBA_BIT,
-- GLX_X_VISUAL_TYPE, GLX_TRUE_COLOR,
-- GLX_RED_SIZE, 8,
-- GLX_GREEN_SIZE, 8,
-- GLX_BLUE_SIZE, 8,
-- GLX_ALPHA_SIZE, 8,
-- GLX_DEPTH_SIZE, 24,
-- GLX_STENCIL_SIZE, 8,
-- GLX_DOUBLEBUFFER, 1,
-- -- GLX_SAMPLE_BUFFERS , 1,
-- -- GLX_SAMPLES , 4,
-- 0
-- );
procedure define (Self : in out Item; the_Display : access openGL.Display.item'Class;
Screen : access openGL.Screen .item'Class;
Desired : in Qualities := default_Qualities)
is
pragma Unreferenced (Desired);
use openGL.Screen;
default_screen : constant C.int := the_Display.screen_Id;
num_fb_configs : aliased C.int := 0;
visual_Id : aliased C.int;
unused : C.int; pragma Unreferenced (unused);
begin
Self.Display := the_Display;
end define;
-- function get_Visual (Self : in Item) return access GLX.XVisualInfo
-- is
-- begin
-- return Self.Visual;
-- end get_Visual;
function fetch_All (the_Display : access openGL.Display.item'class) return surface_Profile.items
is
begin
raise Program_Error with "TBD";
return (1 .. 0 => <>);
end fetch_All;
function Quality (Self : in Item) return Qualities
is
pragma Unreferenced (Self);
begin
raise Program_Error with "TBD";
return (others => <>);
end Quality;
function value_Image (Value : in Natural) return String
is
begin
if Value = Irrelevant then
return "Irrelevant";
else
return Natural'Image (Value);
end if;
end value_Image;
function Image (Self : in color_Buffer) return String
is
begin
return
"Bits_red =>" & value_Image (Self.Bits_red)
& " Bits_green =>" & value_Image (Self.Bits_green)
& " Bits_blue =>" & value_Image (Self.Bits_blue)
& " Bits_luminence =>" & value_Image (Self.Bits_luminence)
& " Bits_alpha =>" & value_Image (Self.Bits_alpha)
& " Bits_alpha_mask =>" & value_Image (Self.Bits_alpha_mask);
end Image;
function Image (Self : in Qualities) return String
is
begin
return
Image (Self.color_Buffer)
& " depth_buffer_Bits =>" & value_Image (Self.depth_buffer_Bits)
& " stencil_buffer_Bits => " & value_Image (Self.stencil_buffer_Bits);
end Image;
end openGL.surface_Profile;