summaryrefslogtreecommitdiff
path: root/sdltest1
diff options
context:
space:
mode:
authorstderr64 <stderr64@null.net>2024-10-24 23:04:43 +0300
committerstderr64 <stderr64@null.net>2024-10-24 23:04:43 +0300
commitab607fc39b6dfc766f7481c33e5f1cf35a2f55d9 (patch)
tree56317bc3756fa1439f748fda422996c526a76b14 /sdltest1
downloadexperiments-ab607fc39b6dfc766f7481c33e5f1cf35a2f55d9.tar.gz
experiments-ab607fc39b6dfc766f7481c33e5f1cf35a2f55d9.tar.zst
Recreated repository
Diffstat (limited to 'sdltest1')
-rw-r--r--sdltest1/rpl.bmpbin0 -> 6220938 bytes
-rw-r--r--sdltest1/sdltest.c79
2 files changed, 79 insertions, 0 deletions
diff --git a/sdltest1/rpl.bmp b/sdltest1/rpl.bmp
new file mode 100644
index 0000000..f7816d8
--- /dev/null
+++ b/sdltest1/rpl.bmp
Binary files differ
diff --git a/sdltest1/sdltest.c b/sdltest1/sdltest.c
new file mode 100644
index 0000000..b084892
--- /dev/null
+++ b/sdltest1/sdltest.c
@@ -0,0 +1,79 @@
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <stdbool.h>
+#include <string.h>
+#include <limits.h>
+#include <SDL2/SDL.h>
+#include <SDL2/SDL_bits.h>
+#include <SDL2/SDL_error.h>
+#include <SDL2/SDL_video.h>
+#include <SDL2/SDL_render.h>
+#include <SDL2/SDL_surface.h>
+#include <SDL2/SDL_mouse.h>
+#include <SDL2/SDL_keyboard.h>
+
+SDL_Window *swin = NULL;
+SDL_Surface *ssurf = NULL;
+SDL_Renderer *srender = NULL;
+SDL_Texture *stex = NULL;
+
+SDL_Event s_event;
+
+int main( int argc, char *args[] ){
+ if ( SDL_Init(SDL_INIT_EVERYTHING) != 0 ){
+ fprintf( stderr, "Error initializing SDL (%s)\n", SDL_GetError() );
+ return EXIT_FAILURE;
+ }
+ if ( (ssurf = SDL_LoadBMP("./rpl.bmp")) == NULL ){
+ fprintf( stderr, "Error loading BMP file (%s)\n", SDL_GetError() );
+ SDL_Quit();
+ return EXIT_FAILURE;
+ }
+ swin = SDL_CreateWindow( "Test window", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 640, 480, SDL_WINDOW_OPENGL | SDL_WINDOW_RESIZABLE );
+ if ( swin == NULL ){
+ fprintf( stderr, "Error creating SDL window (%s)\n", SDL_GetError() );
+ SDL_DestroyWindow( swin );
+ memset( ssurf, 0, sizeof(*ssurf) );
+ SDL_Quit();
+ return EXIT_FAILURE;
+ }
+ if ( (srender = SDL_CreateRenderer(swin, -1, SDL_RENDERER_ACCELERATED)) == NULL ){
+ fprintf( stderr, "Error creating renderer (%s)\n", SDL_GetError() );
+ SDL_DestroyWindow( swin );
+ memset( ssurf, 0, sizeof(*ssurf) );
+ SDL_Quit();
+ return EXIT_FAILURE;
+ }
+ if ( SDL_RenderSetViewport(srender, NULL) != 0 ){
+ fprintf( stderr, "Error setting viewport (%s)\n", SDL_GetError() );
+ SDL_DestroyRenderer( srender );
+ SDL_DestroyWindow( swin );
+ memset( ssurf, 0, sizeof(*ssurf) );
+ SDL_Quit();
+ return EXIT_FAILURE;
+ }
+ if ( (stex = SDL_CreateTextureFromSurface(srender, ssurf)) == NULL ){
+ fprintf( stderr, "Error creating texture from surface data (%s)\n", SDL_GetError() );
+ SDL_DestroyRenderer( srender );
+ SDL_DestroyWindow( swin );
+ memset( ssurf, 0, sizeof(*ssurf) );
+ SDL_Quit();
+ return EXIT_FAILURE;
+ }
+ while ( true ){
+ if ( SDL_WaitEvent(&s_event) == 1 ){
+ if ( s_event.type == SDL_QUIT )
+ break;
+ }
+ if ( SDL_RenderCopy(srender, stex, NULL, NULL) != 0 )
+ break;
+ SDL_RenderPresent( srender );
+ }
+ SDL_DestroyTexture( stex );
+ SDL_DestroyRenderer( srender );
+ memset( ssurf, 0, sizeof(*ssurf) );
+ SDL_DestroyWindow( swin );
+ SDL_Quit();
+ return EXIT_SUCCESS;
+}