hello
i would like to know if someone have time why my simple sdl2 c++ program 
don't works as intended in html
https://gist.github.com/bussiere/c9828f513ddae1f554e7
it only show the second image after six seconds
the compiled binary worked as intended
thanks

Bussiere

code below :

/*This source code copyrighted by Lazy Foo' Productions (2004-2013)
and may not be redistributed without written permission.*/
/*
i compile it with : 
 
/home/bussiere/Lib/emsdk_portable/emscripten/master/./emcc 
02_getting_an_image_on_the_screen.cpp -s USE_SDL=2 -s LEGACY_GL_EMULATION=1 -o 
sdl2.html --preload-file hello_world.bmp --preload-file hello_world2.bmp
 
and the html file only who the second image after six econd of blank
 
 
*/
 
 
//Using SDL and standard IO
#include <SDL2/SDL.h>
#include <stdio.h>
#ifdef __EMSCRIPTEN__
#include <emscripten.h>
#endif
//Screen dimension constants
const int SCREEN_WIDTH = 640;
const int SCREEN_HEIGHT = 480;
 
//Starts up SDL and creates window
bool init();
 
//Loads media
bool loadMedia();
 
//Frees media and shuts down SDL
void close();
 
//The window we'll be rendering to
SDL_Window* gWindow = NULL;
        //The surface contained by the window
SDL_Surface* gScreenSurface = NULL;
 
//The image we will load and show on the screen
SDL_Surface* gHelloWorld = NULL;
 
SDL_Surface* gHelloWorld2 = NULL;
 
bool init()
{
        //Initialization flag
        bool success = true;
 
        //Initialize SDL
        if( SDL_Init( SDL_INIT_VIDEO ) < 0 )
        {
                printf( "SDL could not initialize! SDL_Error: %s\n", 
SDL_GetError() );
                success = false;
        }
        else
        {
                //Create window
                gWindow = SDL_CreateWindow( "SDL Tutorial", 
SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, SCREEN_WIDTH, SCREEN_HEIGHT, 
SDL_WINDOW_SHOWN );
                if( gWindow == NULL )
                {
                        printf( "Window could not be created! SDL_Error: %s\n", 
SDL_GetError() );
                        success = false;
                }
                else
                {
                        //Get window surface
                        gScreenSurface = SDL_GetWindowSurface( gWindow );
                }
        }
 
        return success;
}
 
bool loadMedia()
{
        //Loading success flag
        bool success = true;
 
        //Load splash image
        gHelloWorld = SDL_LoadBMP( "hello_world.bmp" );
        if( gHelloWorld == NULL )
        {
                printf( "Unable to load image %s! SDL Error: %s\n", 
"02_getting_an_image_on_the_screen/hello_world.bmp", SDL_GetError() );
                success = false;
        }
 
        gHelloWorld2 = SDL_LoadBMP("hello_world2.bmp" );
        if( gHelloWorld2 == NULL )
        {
                printf( "Unable to load image %s! SDL Error: %s\n", 
"02_getting_an_image_on_the_screen/hello_world.bmp", SDL_GetError() );
                success = false;
        }
 
        return success;
}
 
void close()
{
 
 
 
        SDL_FreeSurface( gHelloWorld2 );
gHelloWorld2 = NULL;
 
        //Destroy window
        SDL_DestroyWindow( gWindow );
        gWindow = NULL;
 
        //Quit SDL subsystems
        SDL_Quit();
}
 
int main( int argc, char* args[] )
{
        //Start up SDL and create window
        if( !init() )
        {
                printf( "Failed to initialize!\n" );
        }
        else
        {
                //Load media
                if( !loadMedia() )
                {
                        printf( "Failed to load media!\n" );
                }
                else
                {
                        //Apply the image
                        SDL_BlitSurface( gHelloWorld, NULL, gScreenSurface, 
NULL );
                                                //Update the surface
                        SDL_UpdateWindowSurface( gWindow );
 
                        //Wait two seconds
                        SDL_Delay( 6000 );
                SDL_FreeSurface( gHelloWorld );
                        gHelloWorld = NULL;
                                                //Apply the image
                        SDL_BlitSurface( gHelloWorld2, NULL, gScreenSurface, 
NULL );
                                                //Update the surface
                        SDL_UpdateWindowSurface( gWindow );
 
                        //Wait two seconds
                        SDL_Delay( 2000 );
                }
        }
 
        //Free resources and close SDL
        close();
 
        return 0;
}


-- 
You received this message because you are subscribed to the Google Groups 
"emscripten-discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to