Сведения о вопросе

MAT

22:50, 19th August, 2020

Теги

opengl   glut    

Допустимый контекст OpenGL

Просмотров: 411   Ответов: 1

Как и на каком этапе создается допустимый контекст OpenGL в моем коде? Я получаю ошибки даже на простом коде OpenGL.



  Сведения об ответе

park

08:51, 5th August, 2020

Судя по сообщениям на comp.graphics.api.opengl, похоже, что большинство новичков сжигают свои руки на своей первой программе OpenGL. В большинстве случаев ошибка возникает из-за того, что функции OpenGL вызываются еще до создания допустимого контекста OpenGL. OpenGL - это государственная машина. Только после того, как машина была запущена и гудит в готовом состоянии, можно приступать к работе.

Вот несколько простых кодов для создания допустимого контекста OpenGL:

#include <stdlib.h>
#include <GL/glut.h>

// Window attributes
static const unsigned int WIN_POS_X = 30;
static const unsigned int WIN_POS_Y = WIN_POS_X;
static const unsigned int WIN_WIDTH = 512;
static const unsigned int WIN_HEIGHT = WIN_WIDTH;

void glInit(int, char **);

int main(int argc, char * argv[])
{
    // Initialize OpenGL
    glInit(argc, argv);

    // A valid OpenGL context has been created.
    // You can call OpenGL functions from here on.

    glutMainLoop();

    return 0;
}

void glInit(int argc, char ** argv)
{
    // Initialize GLUT
    glutInit(&argc, argv);
    glutInitDisplayMode(GLUT_DOUBLE);
    glutInitWindowPosition(WIN_POS_X, WIN_POS_Y);
    glutInitWindowSize(WIN_WIDTH, WIN_HEIGHT);
    glutCreateWindow("Hello OpenGL!");

    return;
}

Примечание:

  • Вызов интереса здесь- glutCreateWindow() . Он не только создает окно, но и создает контекст OpenGL.
  • Окно, созданное с помощью glutCreateWindow() , не будет видно до тех пор, пока не будет вызван glutMainLoop() .


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться