FREEGLUT не подерживаеться в windows 10?

Попробовал теперь фри глут подключить , но почемуто опять оказия , ничего не выходит :(

unitled22.pro

TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt

SOURCES += \
        main.cpp

win32: LIBS += -L$$PWD/freeglut/lib/x64/ -lfreeglut

INCLUDEPATH += $$PWD/freeglut/lib/x64
DEPENDPATH += $$PWD/freeglut/lib/x64

win32: LIBS += -L$$PWD/glew-2.1.0/lib/Release/x64/ -lglew32

INCLUDEPATH += $$PWD/glew-2.1.0/include/GL
DEPENDPATH += $$PWD/glew-2.1.0/include/GL

INCLUDEPATH += $$PWD/freeglut/include/GL/ \ # добавляем для удобства чтоб напрямую писать
                $$PWD/glew-2.1.0/include/GL/

main.cpp

#include <cstdlib>
#include <cmath>
#include <iostream>


#include <freeglut.h>
#include <glew.h>


#define PI 3.14159265358979324

using namespace std;

// Globals.
static float R = 40.0; // Radius of circle.
static float X = 50.0; // X-coordinate of center of circle.
static float Y = 50.0; // Y-coordinate of center of circle.
static int numVertices = 5; // Number of vertices on circle.

// Drawing routine.
void drawScene(void)
{
   float t = 0; // Angle parameter.
   int i;

   glClear(GL_COLOR_BUFFER_BIT);

   glColor3f(0.0, 0.0, 0.0);

   // Draw a line loop with vertices at equal angles apart on a circle
   // with center at (X, Y) and radius R, The vertices are colored randomly.
   glBegin(GL_LINE_LOOP);
      for(i = 0; i < numVertices; ++i)
      {
         glColor3f((float)rand()/(float)RAND_MAX, (float)rand()/(float)RAND_MAX, (float)rand()/(float)RAND_MAX);
         glVertex3f(X + R * cos(t), Y + R * sin(t), 0.0);
         t += 2 * PI / numVertices;
      }
   glEnd();

   glFlush();
}

// Initialization routine.
void setup(void)
{
   glClearColor(1.0, 1.0, 1.0, 0.0);
}

// OpenGL window reshape routine.
void resize(int w, int h)
{
   glViewport(0, 0, w, h);
   glMatrixMode(GL_PROJECTION);
   glLoadIdentity();
   glOrtho(0.0, 100.0, 0.0, 100.0, -1.0, 1.0);
   glMatrixMode(GL_MODELVIEW);
   glLoadIdentity();
}

// Keyboard input processing routine.
void keyInput(unsigned char key, int x, int y)
{
   switch(key)
   {
      case 27:
         exit(0);
         break;
      case '+':
         numVertices++;
         glutPostRedisplay();
         break;
      case '-':
         if (numVertices > 3) numVertices--;
         glutPostRedisplay();
         break;
      default:
         break;
   }
}

// Routine to output interaction instructions to the C++ window.
void printInteraction(void)
{
   cout << "Interaction:" << endl;
   cout << "Press +/- to increase/decrease the number of vertices on the circle." << endl;
}

// Main routine.
int main(int argc, char **argv)
{
   printInteraction();
   glutInit(&argc, argv);

   glutInitContextVersion(4, 3);
   glutInitContextProfile(GLUT_COMPATIBILITY_PROFILE);

   glutInitDisplayMode(GLUT_SINGLE | GLUT_RGBA);
   glutInitWindowSize(500, 500);
   glutInitWindowPosition(100, 100);
   glutCreateWindow("circle.cpp");
   glutDisplayFunc(drawScene);
   glutReshapeFunc(resize);
   glutKeyboardFunc(keyInput);

   glewExperimental = GL_TRUE;
   glewInit();

   setup();

   glutMainLoop();
}

получаю такой результат :(

введите сюда описание изображения

введите сюда описание изображения


Ответы (1 шт):

Автор решения: barsik34566
  1. Когда игрался с глутом ниразу не подключал glew. Glew по идее для игры с шейдерами а не глутом.

  2. glFlush(); так не понял зачем это вообще надо, никогда не пользовался, она дает адовые лаги. Использовал glutSwapBuffers.

  3. glutInitDisplayMode(GLUT_SINGLE а вот так не рекомендую никогда делать, только GLUT_DOUBLE иначе будут лаги, понятия не имею зачем вообще придумали GLUT_SINGLE.

→ Ссылка