OpenGL FreeGlut in Visual Studio 2015

Starting an OpenGL project in VS 2015 is really easy, thanks to the NupenGL.Core nuget package.

Here are really quick steps to start your first OpenGL project using the FreeGlut library to provide a Window toolkit.

Open Visual Studio 2015 Community Edition and create a new Visual Studio C++ Windows Console Application.

OpenGLConsole

Keep it simple. Choose an empty project template.

EmptyProject

Install the NupenGL.Core nuget package. From Visual Studio, Go to Tools \ NuGet Package Manager \ Manage Nuget Packages for this solution. Search for “NupenGL” and install the package.

NupenGL-0.1.0.1

Add a new C or C++ file. Here is some sample code


#include <gl/freeglut.h>

void init();
void display(void);
void centerOnScreen();
void drawObject();

//  define the window position on screen
int window_x;
int window_y;

//  variables representing the window size
int window_width = 480;
int window_height = 480;

//  variable representing the window title
char *window_title = "Sample OpenGL FreeGlut App";

//-------------------------------------------------------------------------
//  Program Main method.
//-------------------------------------------------------------------------
void main(int argc, char **argv)
{
//  Connect to the windowing system + create a window
//  with the specified dimensions and position
//  + set the display mode + specify the window title.
glutInit(&amp;argc, argv);
centerOnScreen();
glutInitWindowSize(window_width, window_height);
glutInitWindowPosition(window_x, window_y);
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE);
glutCreateWindow(window_title);

//  Set OpenGL program initial state.
init();

// Set the callback functions
glutDisplayFunc(display);

//  Start GLUT event processing loop
glutMainLoop();
}

//-------------------------------------------------------------------------
//  Set OpenGL program initial state.
//-------------------------------------------------------------------------
void init()
{
//  Set the frame buffer clear color to black.
glClearColor(0.0, 0.0, 0.0, 0.0);
}

//-------------------------------------------------------------------------
//  This function is passed to glutDisplayFunc in order to display
//	OpenGL contents on the window.
//-------------------------------------------------------------------------
void display(void)
{
//  Clear the window or more specifically the frame buffer...
//  This happens by replacing all the contents of the frame
//  buffer by the clear color (black in our case)
glClear(GL_COLOR_BUFFER_BIT);

//  Draw object
drawObject();

//  Swap contents of backward and forward frame buffers
glutSwapBuffers();
}

//-------------------------------------------------------------------------
//  Draws our object.
//-------------------------------------------------------------------------
void drawObject()
{
//  Draw Icosahedron
glutWireIcosahedron();
}

//-------------------------------------------------------------------------
//  This function sets the window x and y coordinates
//  such that the window becomes centered
//-------------------------------------------------------------------------
void centerOnScreen()
{
window_x = (glutGet(GLUT_SCREEN_WIDTH) - window_width) / 2;
window_y = (glutGet(GLUT_SCREEN_HEIGHT) - window_height) / 2;
}

After this, you should be able to build and run without any issues. Your application should look something like this:

SampleOpenGLFreeGLUT

You can find a Visual Studio 2015 project that uses many of the FreeGlut features on this Github repository.


Posted

in

,

by

Comments

8 responses to “OpenGL FreeGlut in Visual Studio 2015”

  1. […] With Visual Studio 2015 Community edition, you won’t really need those files. Check out OpenGL in Visual Studio 2015 to see how easy it is to work with OpenGL without having to deal with managing all these files […]

  2. […] for this on my GitHub page. If you have any issues compiling or running the app, check out this blog post for details about compiling and running an OpenGL app that uses the GLUT […]

  3. […] visualizer from my GitHub page. If you have any issues compiling or running the app, check out this blog post for details about compiling and running an OpenGL app that uses the GLUT library. […]

  4. […] code from my GitHub page. If you have any issues compiling or running the app, check out this blog post for details about compiling and running an OpenGL app that uses the GLUT library. Toby Howard has […]

  5. […] code from my GitHub page. If you have any issues compiling or running the app, check out this blog post for details about compiling and running an OpenGL app that uses the GLUT […]

  6. […] source code on my GitHub page. If you have any issues compiling or running the app, check out this blog post for details about compiling and running an OpenGL app that uses the GLUT […]

  7. […] source code on my GitHub page. If you have any issues compiling or running the app, check out this blog post for details about compiling and running an OpenGL app that uses the GLUT library. […]

  8. […] a relatively slow processor). If you have any issues compiling or running the app, check out this blog post for details about compiling and running an OpenGL app that uses the GLUT library. […]