-1

Can some one just mention easy steps to initialize openGL libraries for visual studio. I tried nehe tutorials but it is not working for me.

  • this is how I do it in Borland/Embarcadero http://stackoverflow.com/a/20679773/2521214 so you need to create similar App/window in MSVC++ and copy the functionality ... ignore any non gl includes, all pragmas ... they are auto created by VCL for its own purposes so you do not need it (nor can use) ... instead of `Form` use your window class ... – Spektre Dec 02 '14 at 15:01
  • or google for MSVCpp example project ... there should be plenty out there ... – Spektre Dec 02 '14 at 15:07

2 Answers2

0

Open.gl does a good job at explaining context creation for Modern OpenGL. They even took the time to write implementations for the few popular libraries someone might want to use like SFML/SDL/GLFW.

Iggy
  • 4,767
  • 5
  • 23
  • 34
0

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <gl\GL.h>
#include <gl\GLU.h>
#include <glut.h>

using namespace std;
#include <stdlib.h>
static GLfloat spin = 0.0;
void init(void)
{
 glClearColor (0.0, 0.0, 0.0, 0.0);
 glShadeModel (GL_FLAT);
}
void display(void)
{
 glClear(GL_COLOR_BUFFER_BIT);
 glPushMatrix();
 glRotatef(spin, 0.0, 0.0, 1.0);
 glColor3f(1.0, 1.0, 1.0); glRectf(-25.0, -25.0, 25.0, 25.0);
 glBegin(GL_LINES);
 glColor3f(0.5, 0.5, 0.4);
 glVertex3f(0.0,0.0,0.0);
 glVertex3f(5.0,10.0,0.0);
 glEnd();
 glPopMatrix();
 glutSwapBuffers();
}
void spinDisplay(void)
{
 spin = spin + 2.0;
 if (spin > 360.0)
 spin = spin - 360.0;
 glutPostRedisplay();
}
void reshape(int w, int h)
{
 glViewport (0, 0, (GLsizei) w, (GLsizei) h);
 glMatrixMode(GL_PROJECTION);
 glLoadIdentity();
 glOrtho(-50.0, 50.0, -50.0, 50.0, -1.0, 1.0);
 glMatrixMode(GL_MODELVIEW);
 glLoadIdentity();
}
void mouse(int button, int state, int x, int y)
{
 switch (button) {
 case GLUT_LEFT_BUTTON:
 if (state == GLUT_DOWN)
 glutIdleFunc(spinDisplay);
 break;
 case GLUT_MIDDLE_BUTTON:
 if (state == GLUT_DOWN)
 glutIdleFunc(NULL);
 break;
 default:
 break;
 }
}
/*
 * Request double buffer display mode.
 * Register mouse input callback functions
 */
int main(int argc, char** argv)
{
 glutInit(&argc, argv);
 glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
 glutInitWindowSize (250, 250);
 glutInitWindowPosition (100, 100);
 glutCreateWindow (argv[0]);
 init ();
 glutDisplayFunc(display);
 glutReshapeFunc(reshape);
 glutMouseFunc(mouse);
 glutMainLoop();
 return 0;
}