Jump to content
  • Advertisement
Sign in to follow this  
AkariDesire

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

This topic is 1867 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites

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. */
}

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

Participate in the game development conversation and more when you create an account on GameDev.net!

Sign me up!