My SDL Program isn't working

3 years ago by Scribbler9000 to c/c_lang

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;

}

hitwright 2 points 3 years 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.

path: 0 6498284, hotness: undefined, score: 2, children: 0
c_lang
c_lang

@programming.dev

login for more options
1359
104
35

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

go to feed...