Initial import WIP
This commit is contained in:
parent
970050c92b
commit
34d1036123
|
@ -0,0 +1,72 @@
|
||||||
|
Unit m_SDLCRT;
|
||||||
|
|
||||||
|
{$I M_OPS.PAS}
|
||||||
|
|
||||||
|
(*
|
||||||
|
Goals:
|
||||||
|
|
||||||
|
- Cross platform input and output capable of 80x25, 80x50, 132x50
|
||||||
|
- Input events remapped as compatible with current code base
|
||||||
|
- Full screen mode in Windows, OSX, and Linux if possible
|
||||||
|
- Direct access (read only) to a virtual screen buffer something like:
|
||||||
|
TSDLScreenBuffer = Record
|
||||||
|
Line : Array[1..132] of Record
|
||||||
|
Ch : Char;
|
||||||
|
Attr : Byte;
|
||||||
|
End;
|
||||||
|
- Current X location
|
||||||
|
- Current Y location
|
||||||
|
- Current Text Attribute
|
||||||
|
- Window function to set scroll points
|
||||||
|
- GotoXY
|
||||||
|
- Clear Screen (window based)
|
||||||
|
- Clear to end of line (with current attribute)
|
||||||
|
- Set Window title
|
||||||
|
- Hide screen
|
||||||
|
- Show Buffer
|
||||||
|
- KeyPressed : Boolean
|
||||||
|
- KeyWait (Timeout in seconds or MS) : Boolean
|
||||||
|
- ReadKey (from buffer, or waits infinity if nothing)
|
||||||
|
- Ability to wait for input event based on handle for WaitForMultipleObj ?
|
||||||
|
- Ability to play a .WAV/MP3/MIDI file or at least some sound?
|
||||||
|
- How to handle shutdown and resize window events? Lock resize?
|
||||||
|
- How to handle minimize? Minimize to tray in Windows?
|
||||||
|
*)
|
||||||
|
|
||||||
|
Interface
|
||||||
|
|
||||||
|
Uses
|
||||||
|
SDL;
|
||||||
|
|
||||||
|
Const
|
||||||
|
AppWindowX = 640;
|
||||||
|
AppWindowY = 480;
|
||||||
|
|
||||||
|
Type
|
||||||
|
TSDLScreenMode = (mode_80x25, mode_80x50, mode_132x50);
|
||||||
|
|
||||||
|
TSDLConsole = Class
|
||||||
|
InputEvent : pSDL_EVENT;
|
||||||
|
Screen : pSDL_SURFACE;
|
||||||
|
|
||||||
|
Constructor Create;
|
||||||
|
Destructor Destroy;
|
||||||
|
End;
|
||||||
|
|
||||||
|
Implementation
|
||||||
|
|
||||||
|
Constructor TSDLConsole.Create;
|
||||||
|
Begin
|
||||||
|
Inherited Create;
|
||||||
|
|
||||||
|
SDL_INIT(SDL_INIT_VIDEO OR SDL_INIT_EVENTTHREAD);
|
||||||
|
End;
|
||||||
|
|
||||||
|
Destructor TSDLConsole.Destroy;
|
||||||
|
Begin
|
||||||
|
SDL_QUIT;
|
||||||
|
|
||||||
|
Inherited Destroy;
|
||||||
|
End;
|
||||||
|
|
||||||
|
End.
|
Loading…
Reference in New Issue