From 1c660aa6ec601329c60128dcd51ef64109a4aa4b Mon Sep 17 00:00:00 2001 From: octospacc Date: Sat, 7 Oct 2023 01:55:59 +0200 Subject: [PATCH] Upload stale local changes (MultiSpacc_PrintString) --- .gitignore | 2 ++ .../Examples/HelloWorld/HelloWorld.c | 21 +++++++++++-------- LibMultiSpacc/LibMultiSpacc/MultiSpacc.h | 2 ++ LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c | 19 +++++++++++++++++ LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.h | 1 + 5 files changed, 36 insertions(+), 9 deletions(-) diff --git a/.gitignore b/.gitignore index 5761abc..04420a0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ *.o +*.exe +*.run diff --git a/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c b/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c index 3cbc4b3..d536fad 100644 --- a/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c +++ b/LibMultiSpacc/Examples/HelloWorld/HelloWorld.c @@ -22,23 +22,26 @@ int main( int argc, char *args[] ) // 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)), + /*char Text[] = "Hello, World!"; + for(int i = 0; i < sizeof( Text ); i++){ + MultiSpacc_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), + MultiSpacc_Rect Clip = { + .x = 8 * (Text[i] % 16), + .y = 8 * (Text[i] / 16), .w = 8, .h = 8, }; SDL_BlitSurface( TilesImg, &Clip, Screen, &Offset ); - }; + };*/ + MultiSpacc_PrintString( "Hello, World!", Screen, ScreenWidth, ScreenHeight, 4, 4, TilesImg ); - if( MultiSpacc_UpdateWindowSurface( Window ) != 0 ) { + if( MultiSpacc_UpdateWindowSurface( Window ) != 0 ) + { printf("[E] Error updating Screen.\n"); + return -1; }; MultiSpacc_Sleep( 3000 ); diff --git a/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h b/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h index b06d440..3729343 100644 --- a/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h +++ b/LibMultiSpacc/LibMultiSpacc/MultiSpacc.h @@ -22,3 +22,5 @@ MultiSpacc_Surface *MultiSpacc_LoadImage( char FilePath[], MultiSpacc_Surface *S int MultiSpacc_SetColorKey( MultiSpacc_Surface *Surface, bool Flag, Uint32 Key ); int MultiSpacc_PollEvent( MultiSpacc_Event *Event ); + +void MultiSpacc_PrintString( char Text[], MultiSpacc_Surface *Surface, int ScreenWidth, int ScreenHeight, int x, int y, MultiSpacc_Surface *Tiles /*, int FontSize, int Color */ ); // WIP diff --git a/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c b/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c index b4e56d0..45e5749 100644 --- a/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c +++ b/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.c @@ -31,3 +31,22 @@ MultiSpacc_Surface *MultiSpacc_LoadImage( char FilePath[], MultiSpacc_Surface *S }; return Final; }; + +void MultiSpacc_PrintString( char Text[], MultiSpacc_Surface *Surface, int ScreenWidth, int ScreenHeight, int x, int y, MultiSpacc_Surface *Tiles /*, int FontSize, int Color */ ) +{ + for(int i = 0; i < strlen( Text ); i++) + //while(*(Text++)) + { + MultiSpacc_Rect Offset = { + .x = (x * 8) + (8 * i), + .y = (y * 8), + }; + MultiSpacc_Rect Clip = { + .x = 8 * (Text[i] % 16), + .y = 8 * (Text[i] / 16), + .w = 8, + .h = 8, + }; + SDL_BlitSurface( Tiles, &Clip, Surface, &Offset ); + }; +}; diff --git a/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.h b/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.h index 53ccd83..e244df5 100644 --- a/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.h +++ b/LibMultiSpacc/LibMultiSpacc/SDLCom/SDL.h @@ -6,3 +6,4 @@ #define MultiSpacc_Surface SDL_Surface #define MultiSpacc_GetTicks SDL_GetTicks #define MultiSpacc_Sleep SDL_Delay +#define MultiSpacc_Rect SDL_Rect