bulk data dump

Amiga 1000 complete system demonstration
This commit is contained in:
Jason Bou-Samra
2024-04-22 19:55:27 +10:00
committed by GitHub
parent 0c805ccfc0
commit d2545cf26d
12 changed files with 1869 additions and 0 deletions
+103
View File
@@ -0,0 +1,103 @@
-----------------------
-- Jason Bou-Samra --
-- Paragon 02/23 --
-----------------------
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Command_Line; use Ada.Text_IO;
with SDL.Video.Windows.Makers;
with SDL.Video.Renderers.Makers;
with SDL.Video.Surfaces.Makers;
with SDL.Video.Textures.Makers;
with SDL.Images.IO;
with SDL.Events.Events;
with SDL.Error;
use SDL.C;
procedure Main is
Window_Title : constant String := "Amiga Complete System";
Image_Name : constant String := "./img/AmigaSys.ilbm.png";
quit : Boolean := FALSE;
use SDL.Video;
use type Windows.Window_Flags;
use type Renderers.Renderer_flags;
use type SDL.Events.Event_Types;
Win : Windows.Window;
Ren : Renderers.Renderer;
Bmp : Surfaces.Surface;
Tex : Textures.Texture;
Event : SDL.Events.Events.Events;
Dummy : Boolean;
begin
-- Initialise SDL
if not SDL.Initialise or not SDL.Images.Initialise then
Ada.Text_IO.Put_Line (Ada.Text_IO.Standard_Error,
"SDL.Initialize error: " & SDL.Error.Get);
Ada.Command_Line.Set_Exit_Status (Ada.Command_Line.Failure);
return;
end if;
-- Create window
Windows.Makers.Create (Win,
Title => Window_Title,
Position => (100, 100),
Size => (640, 400),
Flags => Windows.Shown);
-- Create renderer
Renderers.Makers.Create (Rend => Ren,
Window => Win,
Flags => (Renderers.Accelerated or
Renderers.Present_V_Sync));
-- Create image
SDL.Images.IO.Create (Surface => Bmp,
File_Name => Image_Name);
-- Create texture
Textures.Makers.Create (Tex => Tex,
Renderer => Ren,
Surface => Bmp);
-- Present texture
Ren.Clear;
Ren.Copy (Copy_From => Tex);
Ren.Present;
-- Event loop
-- Exit after 2 seconds
-- for I in 1 ..10200 loop
-- Dummy := SDL.Events.Events.Poll (Event);
-- exit when Event.Common.Event_Type = SDL.Events.Quit;
-- delay 0.01;
-- end loop;
-- my code
Main : loop
while SDL.Events.Events.Poll (Event) loop
if Event.Common.Event_Type = SDL.Events.Quit then
exit Main;
end if;
-- Renderer.Clear;
-- Renderer.Copy (Texture);
-- Renderer.Present;
end loop;
end loop Main;
-- end my code
-- Not really needed since these will soon go out of scope
Tex.Finalize; -- textire
Ren.Finalize; -- renderer
Win.Finalize; -- window
SDL.Finalise; -- SDL
end Main;