From 280db9a8d5bf78470eac1d2a87c90aa9a73a9824 Mon Sep 17 00:00:00 2001 From: octospacc Date: Thu, 20 Jul 2023 00:51:16 +0200 Subject: [PATCH] New features; First Hello World example with Makefile --- LibMultiSpacc/Examples/Common.mk | 44 +++++++++++++++++ .../Examples/HelloWorld/HelloWorld.c | 46 ++++++++++++++++++ .../Examples/HelloWorld/HelloWorld.run | Bin 0 -> 16960 bytes LibMultiSpacc/Examples/HelloWorld/Makefile | 1 + LibMultiSpacc/Examples/HelloWorld/Tiles.png | Bin 0 -> 1281 bytes LibMultiSpacc/LibMultiSpacc/MultiSpacc.h | 7 ++- LibMultiSpacc/LibMultiSpacc/SDL12/SDL.c | 9 ++-- LibMultiSpacc/LibMultiSpacc/SDL12/SDL.h | 7 ++- LibMultiSpacc/LibMultiSpacc/SDL20/SDL.c | 11 ++--- LibMultiSpacc/LibMultiSpacc/SDL20/SDL.h | 7 ++- LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c | 33 +++++++++++++ LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.h | 8 +++ LibMultiSpacc/README.md | 10 ++-- 13 files changed, 163 insertions(+), 20 deletions(-) create mode 100644 LibMultiSpacc/Examples/Common.mk create mode 100644 LibMultiSpacc/Examples/HelloWorld/HelloWorld.c create mode 100755 LibMultiSpacc/Examples/HelloWorld/HelloWorld.run create mode 100644 LibMultiSpacc/Examples/HelloWorld/Makefile create mode 100644 LibMultiSpacc/Examples/HelloWorld/Tiles.png create mode 100644 LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c create mode 100644 LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.h diff --git a/LibMultiSpacc/Examples/Common.mk b/LibMultiSpacc/Examples/Common.mk new file mode 100644 index 0000000..c74d49c --- /dev/null +++ b/LibMultiSpacc/Examples/Common.mk @@ -0,0 +1,44 @@ +AppName = $(notdir ${CURDIR}) +Sources = $(wildcard *.c ../../LibMultiSpacc/*.c) +CFlags = -O2 +CC = gcc $(Defines) + +ifndef Target + Target = PC +endif + +ifdef Target + ifeq ($(Target), PC) + ExeSuffix = .run + Defines = -DTarget_PC + MultiSpacc_Target = SDL20 + endif +endif + +ifeq ($(MultiSpacc_Target), SDL12) + Defines += -DMultiSpacc_Target_SDL12 + LdFlags += -lSDL -lSDL_image -lSDL_mixer -lSDL_ttf + Sources += $(wildcard ../../LibMultiSpacc/SDLCom/*.c ../../LibMultiSpacc/SDL12/*.c) +else ifeq ($(MultiSpacc_Target), SDL20) + Defines += -DMultiSpacc_Target_SDL20 + LdFlags += -lSDL2 -lSDL2_image -lSDL2_mixer -lSDL2_ttf + Sources += $(wildcard ../../LibMultiSpacc/SDLCom/*.c ../../LibMultiSpacc/SDL20/*.c) +endif + +Objects = $(Sources:.c=.o) + +All: $(AppName) + +$(AppName): $(Objects) + $(CC) $^ $(CFlags) $(LdFlags) -o $(AppName)$(ExeSuffix) + +Run: All + ./$(AppName)$(ExeSuffix) + +Clean: + find -L . -name "*.o" -type f -delete + rm -f $(AppName)$(ExeSuffix) $(AppName).*$(ExeSuffix) + +all: All +run: Run +clean: Clean diff --git a/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c b/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c new file mode 100644 index 0000000..3cbc4b3 --- /dev/null +++ b/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c @@ -0,0 +1,46 @@ +#include "../../LibMultiSpacc/MultiSpacc.h" + +#define AppName "Hello World" +#define ScreenWidth 320 +#define ScreenHeight 240 +#define ScreenBits 16 + +int main( int argc, char *args[] ) +{ + MultiSpacc_Window *Window = MultiSpacc_SetWindow( ScreenWidth, ScreenHeight, ScreenBits, 0 ); + MultiSpacc_Surface *Screen = MultiSpacc_GetWindowSurface( Window ); + + if( Screen == NULL ) + { + printf("[E] Error initializing Video System.\n"); + return -1; + }; + + MultiSpacc_SetAppTitle( Window, AppName ); + + // Bitmap font borrowed from: + // Copyright (c) 2018 Doug Fraker www.nesdoug.com (MIT) + MultiSpacc_Surface *TilesImg = MultiSpacc_LoadImage( "Tiles.png", Screen, NULL ); + + const char Text[] = "Hello, World!"; + for(int i = 0; i < sizeof(Text); i++){ + SDL_Rect Offset = { + .x = (8 * i) + (ScreenWidth / sizeof(Text)), + .y = ScreenHeight / 3, + }; + SDL_Rect Clip = { + .x = 8 * ((int)Text[i] % 16), + .y = 8 * ((int)Text[i] / 16), + .w = 8, + .h = 8, + }; + SDL_BlitSurface( TilesImg, &Clip, Screen, &Offset ); + }; + + if( MultiSpacc_UpdateWindowSurface( Window ) != 0 ) { + printf("[E] Error updating Screen.\n"); + }; + + MultiSpacc_Sleep( 3000 ); + return 0; +}; diff --git a/LibMultiSpacc/Examples/HelloWorld/HelloWorld.run b/LibMultiSpacc/Examples/HelloWorld/HelloWorld.run new file mode 100755 index 0000000000000000000000000000000000000000..8e6841125d6f47f6fd29ee74231a305cdb4e9875 GIT binary patch literal 16960 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 MM`M-8z{85)14OqH$^ZZW literal 0 HcmV?d00001 diff --git a/LibMultiSpacc/Examples/HelloWorld/Makefile b/LibMultiSpacc/Examples/HelloWorld/Makefile new file mode 100644 index 0000000..9d63a36 --- /dev/null +++ b/LibMultiSpacc/Examples/HelloWorld/Makefile @@ -0,0 +1 @@ +include ../Common.mk diff --git a/LibMultiSpacc/Examples/HelloWorld/Tiles.png b/LibMultiSpacc/Examples/HelloWorld/Tiles.png new file mode 100644 index 0000000000000000000000000000000000000000..9bcbc139540856eb1ed0ee53b0f4c6225f370aa6 GIT binary patch literal 1281 zcmeAS@N?(olHy`uVBq!ia0vp^4Gav73>-{A)|c5YKQJ(`obYsU45_&F_QuJg#})#t z4uAgpUzbr+TXb8jF`Pkjb@io>e4AVf9g{ROu4w!`$m0t(LV(^Jx^N5=7s7J@pn(YsC)RL?bF09 zGVITl7wn#J4XN8_ zeLwQq>hC?)gsU#e=_~Sl1S>b|EkE*M_sJ<00e0`+SMPhryo^DCy zj&+SGeV($X{djn>*E|IT4}^6l%|yIMQWf8~&m%ZFdFGwx#jt;>5i>ce`ET@0n%2a3B3#1rB!o$cN- zYu)Y2!&~cgX6+BYD|q2ubo8 zi@Cmid(}O`sWEHYUe8;;JMfg^cZOB#zjiW|nw4%TtNhMXbAjW9pW|(N&K6~bJJR#Y zUp=vrW_WG-;Pd3`%lzj*`KR@Qm-jonq`%seXn9_TNT1r7)>7?=8-Tu3vYeS1;(5`}_Z<$sg6< zz?|&Bz#st3#Gp(KWHKz^MByVzQOIOy2xCCAj6xIPE@y~hggT#m6H}(uGsNYrTh`Zi S`ztUQ7(8A5T-G@yGywnsD+o3K literal 0 HcmV?d00001 diff --git a/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h b/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h index e981e82..b06d440 100644 --- a/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h +++ b/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h @@ -4,16 +4,21 @@ #ifdef MultiSpacc_Target_SDL12 #include "SDL12/SDL.h" + #include "SDLCom/SDL.h" #endif #ifdef MultiSpacc_Target_SDL20 #include "SDL20/SDL.h" + #include "SDLCom/SDL.h" #endif MultiSpacc_Window *MultiSpacc_SetWindow( int Width, int Height, int Bits, Uint32 Flags ); MultiSpacc_Surface *MultiSpacc_GetWindowSurface( MultiSpacc_Window *Window ); -void MultiSpacc_SetAppTitle( MultiSpacc_Window *Window, const char *Title ); +void MultiSpacc_SetAppTitle( MultiSpacc_Window *Window, const char Title[] ); void MultiSpacc_SetAppIcon( MultiSpacc_Window *Window, MultiSpacc_Surface *Icon ); +MultiSpacc_Surface *MultiSpacc_LoadImage( char FilePath[], MultiSpacc_Surface *Screen, Uint32 *ColorKey ); int MultiSpacc_SetColorKey( MultiSpacc_Surface *Surface, bool Flag, Uint32 Key ); + +int MultiSpacc_PollEvent( MultiSpacc_Event *Event ); diff --git a/LibMultiSpacc/LibMultiSpacc/SDL12/SDL.c b/LibMultiSpacc/LibMultiSpacc/SDL12/SDL.c index 8e852a6..a2eaefd 100644 --- a/LibMultiSpacc/LibMultiSpacc/SDL12/SDL.c +++ b/LibMultiSpacc/LibMultiSpacc/SDL12/SDL.c @@ -3,6 +3,7 @@ #include "SDL/SDL_image.h" #include "SDL/SDL_mixer.h" #include "SDL/SDL_ttf.h" +#include "../SDLCom/SDL.h" MultiSpacc_Window *MultiSpacc_SetWindow( int Width, int Height, int Bits, Uint32 Flags ) { return SDL_SetVideoMode( Width, Height, Bits, Flags ); @@ -19,10 +20,8 @@ void MultiSpacc_SetAppIcon( MultiSpacc_Window *Window, MultiSpacc_Surface *Icon } int MultiSpacc_SetColorKey( MultiSpacc_Surface *Surface, bool Flag, Uint32 Key ) { - if ( Flag ) { + if( Flag ) return SDL_SetColorKey( Surface, SDL_SRCCOLORKEY, Key ); - } - else { + else return SDL_SetColorKey( Surface, 0, Key ); - } -} +}; diff --git a/LibMultiSpacc/LibMultiSpacc/SDL12/SDL.h b/LibMultiSpacc/LibMultiSpacc/SDL12/SDL.h index 3cd5099..0f15a7f 100644 --- a/LibMultiSpacc/LibMultiSpacc/SDL12/SDL.h +++ b/LibMultiSpacc/LibMultiSpacc/SDL12/SDL.h @@ -11,6 +11,9 @@ #include "SDL/SDL_ttf.h" #define MultiSpacc_Window SDL_Surface -#define MultiSpacc_Surface SDL_Surface - #define MultiSpacc_UpdateWindowSurface SDL_Flip + +typedef struct MultiSpacc_Event { + Uint32 Type; + SDLKey Key; +} MultiSpacc_Event; diff --git a/LibMultiSpacc/LibMultiSpacc/SDL20/SDL.c b/LibMultiSpacc/LibMultiSpacc/SDL20/SDL.c index 42e5447..13d14e6 100644 --- a/LibMultiSpacc/LibMultiSpacc/SDL20/SDL.c +++ b/LibMultiSpacc/LibMultiSpacc/SDL20/SDL.c @@ -3,6 +3,7 @@ #include "SDL2/SDL_image.h" #include "SDL2/SDL_mixer.h" #include "SDL2/SDL_ttf.h" +#include "../SDLCom/SDL.h" MultiSpacc_Window *MultiSpacc_SetWindow( int Width, int Height, int Bits, Uint32 Flags ) { return SDL_CreateWindow(NULL, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, Width, Height, Flags); @@ -11,7 +12,7 @@ MultiSpacc_Surface *MultiSpacc_GetWindowSurface( MultiSpacc_Window *Window ) { return SDL_GetWindowSurface( Window ); } -void MultiSpacc_SetAppTitle( MultiSpacc_Window *Window, const char *Title ) { +void MultiSpacc_SetAppTitle( MultiSpacc_Window *Window, const char Title[] ) { SDL_SetWindowTitle( Window, Title ); } void MultiSpacc_SetAppIcon( MultiSpacc_Window *Window, MultiSpacc_Surface *Icon ) { @@ -19,10 +20,8 @@ void MultiSpacc_SetAppIcon( MultiSpacc_Window *Window, MultiSpacc_Surface *Icon } int MultiSpacc_SetColorKey( MultiSpacc_Surface *Surface, bool Flag, Uint32 Key ) { - if ( Flag ) { + if ( Flag ) return SDL_SetColorKey( Surface, SDL_TRUE, Key ); - } - else { + else return SDL_SetColorKey( Surface, SDL_FALSE, Key ); - } -} +}; diff --git a/LibMultiSpacc/LibMultiSpacc/SDL20/SDL.h b/LibMultiSpacc/LibMultiSpacc/SDL20/SDL.h index 7081dd9..342db05 100644 --- a/LibMultiSpacc/LibMultiSpacc/SDL20/SDL.h +++ b/LibMultiSpacc/LibMultiSpacc/SDL20/SDL.h @@ -11,6 +11,9 @@ #include "SDL2/SDL_ttf.h" #define MultiSpacc_Window SDL_Window -#define MultiSpacc_Surface SDL_Surface - #define MultiSpacc_UpdateWindowSurface SDL_UpdateWindowSurface + +typedef struct MultiSpacc_Event { + Uint32 Type; + SDL_Keycode Key; +} MultiSpacc_Event; diff --git a/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c b/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c new file mode 100644 index 0000000..b4e56d0 --- /dev/null +++ b/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c @@ -0,0 +1,33 @@ +#include "../MultiSpacc.h" + +int MultiSpacc_PollEvent( MultiSpacc_Event *Event ) +{ + SDL_Event FromEvent; + int Result = SDL_PollEvent( &FromEvent ); + *Event = (MultiSpacc_Event) { + .Type = FromEvent.type, + .Key = FromEvent.key.keysym.sym, + }; + return Result; +}; + +MultiSpacc_Surface *MultiSpacc_LoadImage( char FilePath[], MultiSpacc_Surface *Screen, Uint32 *ColorKey ) +{ + MultiSpacc_Surface *Final = NULL; + MultiSpacc_Surface *Raw = IMG_Load( FilePath ); + if( Raw == NULL ) { + printf("[E] Error reading image %s.\n", FilePath); + } else { + Final = SDL_ConvertSurface( Raw, Screen->format, 0 ); + SDL_FreeSurface( Raw ); + if( Final == NULL ) { + printf("[E] Error adapting image %s.\n", FilePath); + } else { + Uint32 FinalColorKey = SDL_MapRGB( Final->format, 0xFF, 0x00, 0xFF ); // Magenta + if( ColorKey != NULL ) + FinalColorKey = *ColorKey; + MultiSpacc_SetColorKey( Final, true, FinalColorKey ); + }; + }; + return Final; +}; diff --git a/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.h b/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.h new file mode 100644 index 0000000..53ccd83 --- /dev/null +++ b/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.h @@ -0,0 +1,8 @@ +#pragma once + +#include "../MultiSpacc.h" + +#define MultiSpacc_Init SDL_Init +#define MultiSpacc_Surface SDL_Surface +#define MultiSpacc_GetTicks SDL_GetTicks +#define MultiSpacc_Sleep SDL_Delay diff --git a/LibMultiSpacc/README.md b/LibMultiSpacc/README.md index a69306f..35c5a5e 100644 --- a/LibMultiSpacc/README.md +++ b/LibMultiSpacc/README.md @@ -7,9 +7,11 @@ The idea is simple: to build an universal abstraction layer on top of other exis The list of supported (or planned) backend libraries follows: - SDL 1.2 (WIP) -- SDL 2.0 (WIP) -- NDS -- GBA -- NES +- SDL 2.0/3.0 (WIP)[^1] +- NDS (Planned) +- GBA (Planned) +- NES (Planned) Example programs (and makefiles) will come soon. + +[^1]: I just discovered that SDL 3.0 exists, I'm so tired, why would they make a new major, now I have to support 3 versions... or just drop 2.0 and only support 1.2 + 3.0.