Hi

Di anyone get this to work?

On Tuesday, November 11, 2014 at 1:03:47 AM UTC, Alon Zakai wrote:
>
> 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] 
> <javascript:>> 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] <javascript:>.
>> 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.

Reply via email to