//Jeff Chastine
#include <Windows.h>
#include <GL\glew.h>
#include <GL\freeglut.h>
#include <iostream>
using namespace std;
void changeViewPort(int w, int h)
{
glViewport(0, 0, w, h);
}
void render()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glutSwapBuffers();
}
int main(int argc, char* argv[]) {
// Initialize GLUT
glutInit(&argc, argv);
// Set up some memory buffers for our display
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
// Set the window size
glutInitWindowSize(800, 600);
// Create the window with the title "Hello,GL"
glutCreateWindow("Hello, GL");
// Bind the two functions (above) to respond when necessary
glutReshapeFunc(changeViewPort);
glutDisplayFunc(render);
// Very important! This initializes the entry points in the OpenGL driver so we can
// call all the functions in the API.
GLenum err = glewInit();
if (GLEW_OK != err) {
fprintf(stderr, "GLEW error");
return 1;
}
glutMainLoop();
return 0;
}
Ly9KZWZmIENoYXN0aW5lCiNpbmNsdWRlIDxXaW5kb3dzLmg+CiNpbmNsdWRlIDxHTFxnbGV3Lmg+CiNpbmNsdWRlIDxHTFxmcmVlZ2x1dC5oPgojaW5jbHVkZSA8aW9zdHJlYW0+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdm9pZCBjaGFuZ2VWaWV3UG9ydChpbnQgdywgaW50IGgpCnsKCWdsVmlld3BvcnQoMCwgMCwgdywgaCk7Cn0KCnZvaWQgcmVuZGVyKCkKewoJZ2xDbGVhcihHTF9DT0xPUl9CVUZGRVJfQklUIHwgR0xfREVQVEhfQlVGRkVSX0JJVCk7CglnbHV0U3dhcEJ1ZmZlcnMoKTsKfQoKCgppbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKSB7CgoJLy8gSW5pdGlhbGl6ZSBHTFVUCglnbHV0SW5pdCgmYXJnYywgYXJndik7CgkvLyBTZXQgdXAgc29tZSBtZW1vcnkgYnVmZmVycyBmb3Igb3VyIGRpc3BsYXkKCWdsdXRJbml0RGlzcGxheU1vZGUoR0xVVF9ET1VCTEUgfCBHTFVUX1JHQkEgfCBHTFVUX0RFUFRIKTsKCS8vIFNldCB0aGUgd2luZG93IHNpemUKCWdsdXRJbml0V2luZG93U2l6ZSg4MDAsIDYwMCk7CgkvLyBDcmVhdGUgdGhlIHdpbmRvdyB3aXRoIHRoZSB0aXRsZSAiSGVsbG8sR0wiCglnbHV0Q3JlYXRlV2luZG93KCJIZWxsbywgR0wiKTsKCS8vIEJpbmQgdGhlIHR3byBmdW5jdGlvbnMgKGFib3ZlKSB0byByZXNwb25kIHdoZW4gbmVjZXNzYXJ5CglnbHV0UmVzaGFwZUZ1bmMoY2hhbmdlVmlld1BvcnQpOwoJZ2x1dERpc3BsYXlGdW5jKHJlbmRlcik7CgoJLy8gVmVyeSBpbXBvcnRhbnQhICBUaGlzIGluaXRpYWxpemVzIHRoZSBlbnRyeSBwb2ludHMgaW4gdGhlIE9wZW5HTCBkcml2ZXIgc28gd2UgY2FuIAoJLy8gY2FsbCBhbGwgdGhlIGZ1bmN0aW9ucyBpbiB0aGUgQVBJLgoJR0xlbnVtIGVyciA9IGdsZXdJbml0KCk7CglpZiAoR0xFV19PSyAhPSBlcnIpIHsKCQlmcHJpbnRmKHN0ZGVyciwgIkdMRVcgZXJyb3IiKTsKCQlyZXR1cm4gMTsKCX0KCgoJZ2x1dE1haW5Mb29wKCk7CglyZXR1cm4gMDsKfQ==