Note that there are some explanatory texts on larger screens.

plurals
  1. POC - GLFW window doesn't open on Debian
    primarykey
    data
    text
    <p>I'm trying to get started with GLFW on Debian, I've tried compiling and running an example program but it refuses to run. With the help of a couple of printf statements I've found that when the program tries to open a GLFW window it fails, then exits - but I don't know why. Any help would be amazing.</p> <pre><code>#include &lt;stdlib.h&gt; // For malloc() etc. #include &lt;stdio.h&gt; // For printf(), fopen() etc. #include &lt;math.h&gt; // For sin(), cos() etc. #include &lt;GL/glfw.h&gt; // For GLFW, OpenGL and GLU //---------------------------------------------------------------------- // Draw() - Main OpenGL drawing function that is called each frame //---------------------------------------------------------------------- void Draw( void ) { int width, height; // Window dimensions double t; // Time (in seconds) int k; // Loop counter // Get current time t = glfwGetTime(); // Get window size glfwGetWindowSize( &amp;width, &amp;height ); // Make sure that height is non-zero to avoid division by zero height = height &lt; 1 ? 1 : height; // Set viewport glViewport( 0, 0, width, height ); // Clear color and depht buffers glClearColor( 0.0f, 0.0f, 0.0f, 0.0f ); glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); // Set up projection matrix glMatrixMode( GL_PROJECTION ); // Select projection matrix glLoadIdentity(); // Start with an identity matrix gluPerspective( // Set perspective view 65.0, // Field of view = 65 degrees (double)width/(double)height, // Window aspect (assumes square pixels) 1.0, // Near Z clipping plane 100.0 // Far Z clippling plane ); // Set up modelview matrix glMatrixMode( GL_MODELVIEW ); // Select modelview matrix glLoadIdentity(); // Start with an identity matrix gluLookAt( // Set camera position and orientation 0.0, 0.0, 10.0, // Camera position (x,y,z) 0.0, 0.0, 0.0, // View point (x,y,z) 0.0, 1.0, 0.0 // Up-vector (x,y,z) ); // **** Draw a circle of points *** // Save the current modelview matrix on the stack glPushMatrix(); // Translate (move) the points to the upper left of the display glTranslatef( -4.0f, 3.0f, 0.0f ); // Rotate the points about the z-axis and the x-axis glRotatef( 35.0f * (float)t, 0.0f, 0.0f, 1.0f ); glRotatef( 60.0f * (float)t, 1.0f, 0.0f, 0.0f ); // Now draw the points - we use a for-loop to build a circle glColor3f( 1.0f, 1.0f, 1.0f ); glBegin( GL_POINTS ); for( k = 0; k &lt; 20; k ++ ) { glVertex3f( 2.0f * (float)cos( 0.31416 * (double)k ), 2.0f * (float)sin( 0.31416 * (double)k ), 0.0f ); } glEnd(); // Restore modelview matrix glPopMatrix(); // **** Draw a circle of lines *** // Save the current modelview matrix on the stack glPushMatrix(); // Translate (move) the lines to the upper right of the display glTranslatef( 4.0f, 3.0f, 0.0f ); // Rotate the points about the z-axis and the x-axis glRotatef( 45.0f * (float)t, 0.0f, 0.0f, 1.0f ); glRotatef( 55.0f * (float)t, 1.0f, 0.0f, 0.0f ); // Now draw the lines - we use a for-loop to build a circle glBegin( GL_LINE_LOOP ); for( k = 0; k &lt; 20; k ++ ) { glColor3f( 1.0f, 0.05f * (float)k, 0.0f ); glVertex3f( 2.0f * (float)cos( 0.31416 * (double)k ), 2.0f * (float)sin( 0.31416 * (double)k ), 0.0f ); } glEnd(); // Restore modelview matrix glPopMatrix(); // **** Draw a disc using trinagles *** // Save the current modelview matrix on the stack glPushMatrix(); // Translate (move) the triangles to the lower left of the display glTranslatef( -4.0f, -3.0f, 0.0f ); // Rotate the triangles about the z-axis and the x-axis glRotatef( 25.0f * (float)t, 0.0f, 0.0f, 1.0f ); glRotatef( 75.0f * (float)t, 1.0f, 0.0f, 0.0f ); // Now draw the triangles - we use a for-loop to build a disc // Since we are building a triangle fan, we also specify a first // vertex for the centre point of the disc. glBegin( GL_TRIANGLE_FAN ); glColor3f( 0.0f, 0.5f, 1.0f ); glVertex3f( 0.0f, 0.0f, 0.0f ); for( k = 0; k &lt; 21; k ++ ) { glColor3f( 0.0f, 0.05f * (float)k, 1.0f ); glVertex3f( 2.0f * (float)cos( 0.31416 * (double)k ), 2.0f * (float)sin( 0.31416 * (double)k ), 0.0f ); } glEnd(); // Restore modelview matrix glPopMatrix(); // **** Draw a disc using a polygon *** // Save the current modelview matrix on the stack glPushMatrix(); // Translate (move) the polygon to the lower right of the display glTranslatef( 4.0f, -3.0f, 0.0f ); // Rotate the polygon about the z-axis and the x-axis glRotatef( 65.0f * (float)t, 0.0f, 0.0f, 1.0f ); glRotatef( -35.0f * (float)t, 1.0f, 0.0f, 0.0f ); // Now draw the polygon - we use a for-loop to build a disc glBegin( GL_POLYGON ); for( k = 0; k &lt; 20; k ++ ) { glColor3f( 1.0f, 0.0f, 0.05f * (float)k ); glVertex3f( 2.0f * (float)cos( 0.31416 * (double)k ), 2.0f * (float)sin( 0.31416 * (double)k ), 0.0f ); } glEnd(); // Restore modelview matrix glPopMatrix(); // **** Draw a single quad *** // Save the current modelview matrix on the stack glPushMatrix(); // Rotate the quad about the y-axis glRotatef( 60.0f * (float)t, 0.0f, 1.0f, 0.0f ); // Now draw the quad glBegin( GL_QUADS ); glColor3f( 1.0f, 0.0f, 0.0f ); glVertex3f( -1.5f, -1.5f, 0.0f ); glColor3f( 1.0f, 1.0f, 0.0f ); glVertex3f( 1.5f, -1.5f, 0.0f ); glColor3f( 1.0f, 0.0f, 1.0f ); glVertex3f( 1.5f, 1.5f, 0.0f ); glColor3f( 0.0f, 0.0f, 1.0f ); glVertex3f( -1.5f, 1.5f, 0.0f ); glEnd(); // Restore modelview matrix glPopMatrix(); } //---------------------------------------------------------------------- // main() - Program entry point //---------------------------------------------------------------------- int main( int argc, char **argv ) { int ok; // Flag telling if the window was opened int running; // Flag telling if the program is running // Initialize GLFW glfwInit(); // Open window ok = glfwOpenWindow( 100, 100, // Width and height of window 8, 8, 8, // Number of red, green, and blue bits for color buffer 8, // Number of bits for alpha buffer 24, // Number of bits for depth buffer (Z-buffer) 0, // Number of bits for stencil buffer GLFW_WINDOW // We want a desktop window (could be GLFW_FULLSCREEN) ); printf("here"); // If we could not open a window, exit now if( !ok ) { glfwTerminate(); return 0; } printf("not here"); // Set window title glfwSetWindowTitle( "My OpenGL program" ); // Enable sticky keys glfwEnable( GLFW_STICKY_KEYS ); // Main rendering loop do { // Call our rendering function Draw(); // Swap front and back buffers (we use a double buffered display) glfwSwapBuffers(); // Check if the escape key was pressed, or if the window was closed running = !glfwGetKey( GLFW_KEY_ESC ) &amp;&amp; glfwGetWindowParam( GLFW_OPENED ); } while( running ); // Terminate GLFW glfwTerminate(); // Exit program return 0; } </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload