Did you preload or embed the data files it expects? For me, without those files, it builds ok and then at runtime sayd "Unable to load image ..".
- Alon On Sat, Nov 8, 2014 at 9:36 AM, bussiere adrien <[email protected]> wrote: > Yeah but it worked well as intended in the binary version. > > I will try to dig it. > > If anyone have an idea. > > regards > Bussiere > > > Le samedi 8 novembre 2014 13:14:21 UTC+1, Bruce Mitchener a écrit : >> >> Yeah, I just checked the source. It is -s USE_SDL=2 ... there were >> conflicting things written in some of the email threads. >> >> Anyway, while I don't know much (anything) about SDL, I would guess that >> it is because you're not using an event loop and just blocking in main and >> SDL probably needs to run the event loop to perform the work. Couple that >> with the SDL_Delay(6000) and that's probably why it waits 6 seconds ... >> >> If not, someone who actually know about SDL will have to chime in. :) >> >> - Bruce >> >> >> On Sat, Nov 8, 2014 at 5:38 PM, bussiere adrien <[email protected]> >> wrote: >> >>> When i put -s USE_SDL2=1 >>> >>> 02_getting_an_image_on_the_screen.cpp:5:10: fatal error: 'SDL2/SDL.h' >>> file not >>> found >>> #include <SDL2/SDL.h> >>> ^ >>> 1 error generated. >>> ERROR root: compiler frontend failed to generate LLVM bitcode, halting >>> >>> >>> Le samedi 8 novembre 2014 11:30:09 UTC+1, Bruce Mitchener a écrit : >>>> >>>> Try -s USE_SDL2=1 >>>> >>>> Cheers, >>>> >>>> - Bruce >>>> >>>> >>>> On Sat, Nov 8, 2014 at 5:00 PM, bussiere adrien <[email protected]> >>>> wrote: >>>> >>>>> 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. >>>>> >>>> >>>> -- >>> 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. >>> >> >> -- > 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. > -- 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.
