Расширения OpenGL в Qt 4 - PullRequest
       0

Расширения OpenGL в Qt 4

1 голос
/ 01 октября 2011

возможно включить / использовать OpenGL (определенную версию) в Qt 4 (на рабочем столе) или я должен использовать glew и т. Д.?

Ответы [ 3 ]

1 голос
/ 02 октября 2011

Вместо Glew вы можете включить gl3.h , это, вероятно, самый простой и самый безболезненный способ, который работает как в режиме совместимости, так и в ядре. Также стоит проверить GLXX это более новая библиотека, написанная на C ++, так что она более объектно-ориентирована и предоставляет удобные функции для запросов возможностей и т. Д.

Вы можете посмотреть, как вручную связать только нужные вам расширения, возможно, создав собственные классы Qt.

Другие альтернативы: Glee (Немного устарел сейчас, только до OpenGL 3.0) и gl3w (скрипт для генерации заголовочных файлов для вас, но, кажется, поддерживает OpenGL 3/4 core).

Также, если вам нужна объектно-ориентированная библиотека для самого OpenGL OGLplus выглядит хорошо, хотя и не делает расширений.

0 голосов
/ 02 октября 2011

Мой способ сделать это (Windows) ... Вам нужно www.opengl.org / registry / api / glext.h

Я использую этот скрипт Python для генерации glex.h (p_glext.h) и glex.cpp из glext.h

p_glext.h - это копия glext.h без прототипов.

//glex.h
#ifndef GLEX_H
#define GLEX_H

#include "p_glext.h"

extern void glexInit();
extern PFNGLBLENDCOLORPROC glBlendColor;
extern PFNGLBLENDEQUATIONPROC glBlendEquation;
extern PFNGLDRAWRANGEELEMENTSPROC glDrawRangeElements;
...

//glex.cpp
...
void glexInit() {
    glBlendColor = (PFNGLBLENDCOLORPROC)wglGetProcAddress("glBlendColor");
    glBlendEquation = (PFNGLBLENDEQUATIONPROC)wglGetProcAddress("glBlendEquation");
    glDrawRangeElements = (PFNGLDRAWRANGEELEMENTSPROC)wglGetProcAddress("glDrawRangeElements");
...
}

это достаточно просто для меня

0 голосов
/ 01 октября 2011

Qt имеет оболочки для некоторых расширений, таких как QPixelBuffers, в противном случае вы можете просто использовать glew для включения расширений

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...