OK, gonna try it as it really looks like the app  is being suspended in an
infinite loop.
On Mar 8, 2014 7:04 PM, "Jukka Jylänki" <[email protected]> wrote:

> Check the browser console for any errors. I'm not sure how complete the
> GLEW/GLFW support in Emscripten is, there may be some work to do for some
> use cases.
>
> One thing I note in your demo is that it hosts its own blocking main loop.
> That is not allowed in JavaScript, as JS scripts cannot run infinitely
> without ever yielding control back to the browser. You will need to use
> emscripten_set_main_loop() to register a callback function that runs one
> tick of your event loop, and return from main() afterwards, so that the
> browser main loop can kick in. This is one of the things that require
> careful architecting between native and web - in general no blocking
> synchronous operations are possible, but everything "OS-level" (file io,
> network requests, sleeping/waiting) must be asynchronous. Try refactoring
> the code sample so that it utilizes emscripten_set_main_loop() and avoids a
> blocking loop.
>
>
> 2014-03-08 18:19 GMT+02:00 Michael IV <[email protected]>:
>
>> For example  tried with the old GLFW (2.7) the following:
>>
>> //========================================================================
>> // This is a small test application for GLFW.
>> // The program opens a window (640x480), and renders a spinning colored
>> // triangle (it is controlled with both the GLFW timer and the mouse). It
>> // also calculates the rendering speed (FPS), which is displayed in the
>> // window title bar.
>> //========================================================================
>>
>> #include <stdio.h>
>> #include <stdlib.h>
>> #include <GL/glfw.h>
>> #include <emscripten/emscripten.h>
>>
>> //========================================================================
>> // main()
>> //========================================================================
>>
>> int main( void )
>> {
>>     int     width, height, running, x;
>>     double  t;
>>
>>     // Initialise GLFW
>>     if( !glfwInit() )
>>     {
>>         fprintf( stderr, "Failed to initialize GLFW\n" );
>>         exit( EXIT_FAILURE );
>>     }
>>
>>     // Open OpenGL window
>>     if( !glfwOpenWindow( 640, 480, 0,0,0,0, 0,0, GLFW_WINDOW ) )
>>     {
>>         fprintf( stderr, "Failed to open GLFW window\n" );
>>
>>         glfwTerminate();
>>         exit( EXIT_FAILURE );
>>     }
>>
>>     glfwSetWindowTitle( "Spinning Triangle" );
>>
>>
>>
>>     // Enable vertical sync (on cards that support it)
>>     glfwSwapInterval( 1 );
>>
>>     // Main loop
>>     running = GL_TRUE;
>>     while( running )
>>     {
>>         // Get time and mouse position
>>         t = glfwGetTime();
>>         glfwGetMousePos( &x, NULL );
>>
>>         // Get window size (may be different than the requested size)
>>         glfwGetWindowSize( &width, &height );
>>         height = height > 0 ? height : 1;
>>
>>         // Set viewport
>>         glViewport( 0, 0, width, height );
>>
>>         // Clear color buffer
>>         glClearColor( 1.0f, 0.0f, 0.0f, 0.0f );
>>         glClear( GL_COLOR_BUFFER_BIT );
>>
>>
>>
>>         // Swap buffers
>>         glfwSwapBuffers();
>>
>>         // Check if the ESC key was pressed or the window was closed
>>         running = !glfwGetKey( GLFW_KEY_ESC ) &&
>>                   glfwGetWindowParam( GLFW_OPENED );
>>     }
>>
>>     // Close OpenGL window and terminate GLFW
>>     glfwTerminate();
>>
>>     exit( EXIT_SUCCESS );
>> }
>>
>>
>>
>> THe generated HTML shows only Emscripten GUI with "Running..."
>> notification.
>>
>>
>> On Sat, Mar 8, 2014 at 6:05 PM, Michael IV <[email protected]> wrote:
>>
>>> "Client side lack..."  - good !  I just tried to use GLFW3 for context
>>> setup ,the emscripten compiled but nothing show up.Is it correct to assume
>>> it is not yet supported in the SDK?GLFW is useful as it can also create ES
>>> context.
>>>
>>>
>>> On Sat, Mar 8, 2014 at 5:53 PM, Jukka Jylänki <[email protected]> wrote:
>>>
>>>> Yeah, if you use GL 3 core on desktop, you'll be fairly good to go. The
>>>> shader syntax translation issue is a bit annoying, e.g. in core GL3 the
>>>> GLSL syntax uses the keywords in and out, whereas GLES2/WebGL still uses
>>>> the old keywords attribute and varying. There are a few other syntax
>>>> renames like this. What I do is I author my shaders in the old GLES2
>>>> syntax, and then when building for desktop, just use naive string replaces
>>>> at startup time to convert the shaders so they pass in core GL3. Also,
>>>> using VAOs is not required in GLES2 and WebGL, but it is mandatory in GL3.
>>>>
>>>> But these are GLES2 vs desktop GL differences, and not
>>>> Emscripten-specific differences. See the WebGL specification for WebGL vs
>>>> GLES2 differences. The most notable one is the lack of client side
>>>> rendering, which engines wouldn't want to use anyways.
>>>>  On Mar 8, 2014 5:00 PM, "Michael IV" <[email protected]> wrote:
>>>>
>>>>> Ok,so let me see if I get you right.I can basically use GLEW with GL
>>>>> 3.0 - GL 3.2 core profile and it will be translated ok (except of GLSL
>>>>> compat issues) to WebGL?Also,in terms of context creation,I see I can use
>>>>> GLFW or GLUT ?
>>>>>
>>>>>
>>>>> On Sat, Mar 8, 2014 at 4:56 PM, Jukka Jylänki <[email protected]>wrote:
>>>>>
>>>>>> In terms of features, pretty much WebGL is a subset of GLES2, which
>>>>>> is a subset of modern desktop GL. Sticking to the lowest common
>>>>>> denomination and basically writing "GLES2 without client-side rendering"
>>>>>> gives you a good sane common ground that works across all platforms. This
>>>>>> means not using any of the old desktop GL features such as fixed function
>>>>>> rendering, glBegin, glVertexPointer/glColorPointer etc. Also note that 
>>>>>> the
>>>>>> extension registryes are different for each GL, GLES and WebGL, although
>>>>>> generally matchable. If you also want to target desktop core GL3, that's
>>>>>> also possible, but one inconvenience there is that you need to maintain 
>>>>>> (or
>>>>>> translate one to other - that's what I do) two sets of GLSL shader 
>>>>>> syntax.
>>>>>> If you are working on a renderer codebase from scratch, it is best to 
>>>>>> avoid
>>>>>> the FULL_ES2 and LEGACY_GL_EMULATION settings, which gives the best path.
>>>>>>
>>>>>> Jukka
>>>>>> On Mar 8, 2014 4:42 PM, "Michael IV" <[email protected]> wrote:
>>>>>>
>>>>>>>  I am desktop OpenGL developer and I wonder what's the best way for
>>>>>>> me to port or write OpenGL so that it will be best compatible with 
>>>>>>> WebGL .I
>>>>>>> read in Emscripten FAQ that using SDK included ES2 API is the besr
>>>>>>> choice.But I also see some of the examples use regular OpenGL .For me 
>>>>>>> ,in
>>>>>>> terms of portability and usability would be best to write a normal 
>>>>>>> OpenGL
>>>>>>> ,using GLEW headers.Will it be fine as long as I use only ES2 compatible
>>>>>>> API methods?
>>>>>>>
>>>>>>> --
>>>>>>> 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 a topic in
>>>>>> the Google Groups "emscripten-discuss" group.
>>>>>> To unsubscribe from this topic, visit
>>>>>> https://groups.google.com/d/topic/emscripten-discuss/ZMC4l8ppDq8/unsubscribe
>>>>>> .
>>>>>> To unsubscribe from this group and all its topics, send an email to
>>>>>> [email protected].
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Michael Ivanov
>>>>> Independent Pixel Commander
>>>>> onlygraphix.com
>>>>> Tel:+972 54 4962254
>>>>>
>>>>>  --
>>>>> 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 a topic in the
>>>> Google Groups "emscripten-discuss" group.
>>>> To unsubscribe from this topic, visit
>>>> https://groups.google.com/d/topic/emscripten-discuss/ZMC4l8ppDq8/unsubscribe
>>>> .
>>>> To unsubscribe from this group and all its topics, send an email to
>>>> [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>>
>>> --
>>> Michael Ivanov
>>> Independent Pixel Commander
>>> onlygraphix.com
>>> Tel:+972 54 4962254
>>>
>>>
>>
>>
>> --
>> Michael Ivanov
>> Independent Pixel Commander
>> onlygraphix.com
>> Tel:+972 54 4962254
>>
>>  --
>> 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 a topic in the
> Google Groups "emscripten-discuss" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/emscripten-discuss/ZMC4l8ppDq8/unsubscribe
> .
> To unsubscribe from this group and all its topics, 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.

Reply via email to