2
submitted 6 months ago by [email protected] to c/[email protected]

So I'm making this program in SDL to just render a single window and it's not working IDK why. It compiles well no errors or anything and then when I try to run it nothing happens at all. No text appears nor a window. I tried to run my own code but it didn't work so I went to try and run the code off the website and that didn't work either.

CODE:

/This source code copyrighted by Lazy Foo' Productions 2004-2024 and may not be redistributed without written permission./

//Using SDL and standard IO #include <SDL.h> #include <stdio.h> #include <stdbool.h>

//Screen dimension constants const int SCREEN_WIDTH = 640; const int SCREEN_HEIGHT = 480;

int main( int argc, char* args[] ) { //The window we'll be rendering to SDL_Window* window = NULL;

//The surface contained by the window
SDL_Surface* screenSurface = NULL;

//Initialize SDL
if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
{
	printf( "SDL could not initialize! SDL_Error: %s\n", SDL_GetError() );
}
else
{
	//Create window
	window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN );
	if( window == NULL )
	{
		printf( "Window could not be created! SDL_Error: %s\n", SDL_GetError() );
	}
	else
	{
		//Get window surface
		screenSurface = SDL_GetWindowSurface( window );

		//Fill the surface white
		SDL_FillRect( screenSurface, NULL, SDL_MapRGB( screenSurface->format, 0xFF, 0xFF, 0xFF ) );
		
		//Update the surface
		SDL_UpdateWindowSurface( window );
        
        //Hack to get window to stay up
        SDL_Event e; bool quit = false; while( quit == false ){ while( SDL_PollEvent( &e ) ){ if( e.type == SDL_QUIT ) quit = true; } }
	}
}

//Destroy window
SDL_DestroyWindow( window );

//Quit SDL subsystems
SDL_Quit();

return 0;

}

top 1 comments
sorted by: hot top controversial new old
[-] [email protected] 2 points 6 months ago

What output does the program produce? Did you try opening it from a powershell/terminal to see stdout and stderr?

When working with SDL it is useful to follow the information provided by the creator of the tool in official wikis.

Alternatively you can ask the foo productions why is their tutorial code possibly broken.

this post was submitted on 08 Jan 2024
2 points (75.0% liked)

C Programming Language

931 readers
7 users here now

Welcome to the C community!

C is quirky, flawed, and an enormous success.
... When I read commentary about suggestions for where C should go, I often think back and give thanks that it wasn't developed under the advice of a worldwide crowd.
... The only way to learn a new programming language is by writing programs in it.

© Dennis Ritchie

🌐 https://en.cppreference.com/w/c

founded 1 year ago
MODERATORS