LINUX.ORG.RU

glcorearb.h - не видятся функции openGL

 , ,


0

2

Пытаюсь сделать окно на SDL и оставить только core profile - скачал замену gl3.h. При попытке собрать ругается, что glClear и glClearColor not declared in this scope. Библиотеки прописаны через qmake:

INCLUDEPATH += -I/usr/local/include/SDL2 -D_REENTRANT
LIBS += -L/usr/local/lib -Wl,-rpath,/usr/local/lib -lSDL2 -lpthread -lGL
main.cpp:
#include <iostream>
#include <SDL2/SDL.h>
#include "glcorearb.h"

using namespace std;

int main()
{
    SDL_Window *mainwindow;
    SDL_GLContext maincontext;
    if(SDL_Init(SDL_INIT_EVERYTHING) < 0)
        cout << SDL_GetError() << endl;
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3);
    SDL_GL_SetAttribute(SDL_GL_CONTEXT_MINOR_VERSION, 3);
    SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
    SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 32);
    mainwindow = SDL_CreateWindow("tutorial1", SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, 512, 512, SDL_WINDOW_OPENGL | SDL_WINDOW_SHOWN);
    if (!mainwindow)
            cout << SDL_GetError() << endl;
    maincontext = SDL_GL_CreateContext(mainwindow);
    SDL_GL_SetSwapInterval(1);
    glClearColor ( 1.0, 0.0, 0.0, 1.0 );
    glClear ( GL_COLOR_BUFFER_BIT );
    SDL_GL_SwapWindow(mainwindow);
    SDL_Delay(2000);
    SDL_GL_DeleteContext(maincontext);
    SDL_DestroyWindow(mainwindow);
    SDL_Quit();
    return 0;
}

★★★★

Попробуй <SDL2/SDL_opengl.h>

O02eg ★★★★★ ()

Хедер не читай @ сразу конпеляй.


#ifdef GLCOREARB_PROTOTYPES
[...]
GLAPI void APIENTRY glClear (GLbitfield mask);
GLAPI void APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha);
[...]
#endif
Deleted ()
Ответ на: комментарий от Bad_ptr

не, там всё в кучу, а мне нужно заголовки только для core profile

wingear ★★★★ ()
Ответ на: комментарий от wingear

С тем, что linux-vdso.so.1 не является shared library. Можно нагуглить, как разрабы glibc предлагали впилить хак в gdb, а те, в свою очередь, наоборот.

tides ()
Ответ на: комментарий от tides

а чем это чревато? Пока обнаружил только то, что не работает перезапуск отладки. ПРобовал выставить в ядре опцию compat_vdso, пересобрать gdb и glibc - без толку.

wingear ★★★★ ()
Ответ на: комментарий от wingear

Надо было добавить, что это нормальное поведение, и здесь нечего исправлять.

tides ()

зачем SDL. Если ты изучаешь OpenGL то тебе хватить и связки OpenGL + GLUT, а по хорошому изучи glx

enep ★★★★ ()
Ответ на: комментарий от enep

sdl используется в реальных проектах, в отличие от glut. Если посмотреть на исходник SDL_Window, там практически нет оверхеда по сравнению с glx, зато и кроссплатформенность есть. Сейчас не могу проверить, почему при создании класса все крешится, м.б. дело в том, что oglplus и sdl создают каждый свой контекст. Мне понравился oglplus, хотя пока с ним ничего не выходит

wingear ★★★★ ()
Последнее исправление: wingear (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.