Windowed Mode Using C++ & Free GLUT ....

Started by
4 comments, last by EddieV223 11 years ago

I am working on a game project using c++ and free glut and need to create a windowed mode in order for the game to be supported on machines with integrated graphics. However I haven't been able to find anything that makes sense that I input into my code.

Any suggestions of applicable code would be very helpful.

I am able to provide the code I have if necessary.

Akari x

Advertisement

Do you have to use FreeGLUT? Why not pick something more recent (i.e have been developed on in the last 10 years), like GLFW or SFML?

Cheers,

Bob


[size="3"]Halfway down the trail to Hell...

Hi Bob,

Yes I have to use FreeGLUT as it's part of my assignment criteria.

Akari x

Here's the code to a simple program that opens a window and refreshes it


*
 * hello.c
 * This is a simple, introductory OpenGL program.
 */

#include <stdlib.h>
#include <GL/glut.h>

void display(void)
{
/* clear all pixels  */
   glClear (GL_COLOR_BUFFER_BIT);

/* draw white polygon (rectangle) with corners at
 * (0.25, 0.25, 0.0) and (0.75, 0.75, 0.0)  
 */
   glBegin(GL_POLYGON);
      glColor3f  (1.0, 0.0, 0.0);
      glVertex3f (0.25, 0.25, 0.0);
      glColor3f  (0.0, 1.0, 0.0);
      glVertex3f (0.75, 0.25, 0.0);
      glColor3f  (0.0, 0.0, 1.0);
      glVertex3f (0.75, 0.75, 0.0);
      glColor3f  (1.0, 1.0, 1.0);
      glVertex3f (0.25, 0.75, 0.0);
   glEnd();

/* don't wait!  
 * start processing buffered OpenGL routines 
 */
   glFlush ();
}

void init (void) 
{
/* select clearing color 	*/
   glClearColor (0.0, 0.0, 0.0, 0.0);

/* initialize viewing values  */
   glMatrixMode(GL_PROJECTION);
   //glLoadIdentity();
   glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

/* 
 * Declare initial window size, position, and display mode
 * (single buffer and RGBA).  Open window with "hello"
 * in its title bar.  Call initialization routines.
 * Register callback function to display graphics.
 * Enter main loop and process events.
 */

void reshape(int w, int h)
{
	// You can choose to use only portion of the window
	//if (w > h)
	//	glViewport(0, 0, h, h);
	//else
	//	glViewport(0, 0, w, w);
	
	// Or you can change the viewing volume based on the window size.
    glViewport(0, 0, w, h);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    if (w <= h)
        glOrtho(0.0, 1.0, 0,
            1.0 * (GLfloat) h / (GLfloat) w, -1.0, 1.0);
    else
        glOrtho(0, 1.0 * (GLfloat) w / (GLfloat) h, 0, 1.0, -1.0, 1.0);
    glMatrixMode(GL_MODELVIEW);
    glutPostRedisplay();
}

int main(int argc, char** argv)
{
   glutInit(&argc, argv);
   glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);
   glutInitWindowSize (200, 150); 
   glutInitWindowPosition (100, 100);
   glutCreateWindow ("Bob Holcomb’s First OpenGL Program");
   init ();
   glutDisplayFunc(display);
   glutReshapeFunc(reshape);
   glutMainLoop();
   return 0;   /* ANSI C requires main to return int. */
}

[size="3"]Halfway down the trail to Hell...

Thank you for your help x

Do you have to use FreeGLUT? Why not pick something more recent (i.e have been developed on in the last 10 years), like GLFW or SFML?

Cheers,

Bob

FreeGlut is being developed. Its Glut that is no longer developed. That said, I still prefer GLFW.

If this post or signature was helpful and/or constructive please give rep.

// C++ Video tutorials

http://www.youtube.com/watch?v=Wo60USYV9Ik

// Easy to learn 2D Game Library c++

SFML2.2 Download http://www.sfml-dev.org/download.php

SFML2.2 Tutorials http://www.sfml-dev.org/tutorials/2.2/

// Excellent 2d physics library Box2D

http://box2d.org/about/

// SFML 2 book

http://www.amazon.com/gp/product/1849696845/ref=as_li_ss_tl?ie=UTF8&camp=1789&creative=390957&creativeASIN=1849696845&linkCode=as2&tag=gamer2creator-20

This topic is closed to new replies.

Advertisement