Кто-нибудь знает, хорошо ли работает библиотека WxWidgets с современным шейдерным стилем openGL (3.3+)? Все, что я нашел, похоже, использует старый стиль. Я ищу использовать QT или WxWidgets для своего приложения, но похоже, что заставить шейдерный материал работать с виджетами может быть кошмаром. У кого-нибудь есть опыт?WxWidgets и современный opengl (3.3+)
3
A
ответ
4
В WxWidgets> = 3.1 с использованием wxGLContext
с соответствующим Core-контексте wxGLContextAttrs
должен работать:
wxGLContextAttrs cxtAttrs;
cxtAttrs.CoreProfile().OGLVersion(3, 3).EndList();
В Ripi2 pointed out от pyramid sample:
//We create a wxGLContext in this constructor.
//We do OGL initialization at OnSize().
MyGLCanvas::MyGLCanvas(MyFrame* parent, const wxGLAttributes& canvasAttrs)
: wxGLCanvas(parent, canvasAttrs)
{
m_parent = parent;
m_oglManager = NULL;
m_winHeight = 0; // We have not been sized yet
// Explicitly create a new rendering context instance for this canvas.
wxGLContextAttrs ctxAttrs;
#ifndef __WXMAC__
// An impossible context, just to test IsOk()
ctxAttrs.PlatformDefaults().OGLVersion(99, 2).EndList();
m_oglContext = new wxGLContext(this, NULL, &ctxAttrs);
if (!m_oglContext->IsOK())
{
#if wxUSE_LOGWINDOW
wxLogMessage("Trying to set OpenGL 99.2 failed, as expected.");
#endif // wxUSE_LOGWINDOW
delete m_oglContext;
ctxAttrs.Reset();
#endif //__WXMAC__
ctxAttrs.PlatformDefaults().CoreProfile().OGLVersion(3, 2).EndList();
m_oglContext = new wxGLContext(this, NULL, &ctxAttrs);
#ifndef __WXMAC__
}
#endif //__WXMAC__
if (!m_oglContext->IsOK())
{
wxMessageBox("This sample needs an OpenGL 3.2 capable driver.\nThe app will end now.",
"OpenGL version error", wxOK | wxICON_INFORMATION, this);
delete m_oglContext;
m_oglContext = NULL;
}
else
{
#if wxUSE_LOGWINDOW
wxLogMessage("OpenGL Core Profile 3.2 successfully set.");
#endif // wxUSE_LOGWINDOW
}
}
Смежные вопросы
- 1. конвертировать устаревшую функцию opengl в современный opengl (3.3)
- 2. Современный конвейер рендеринга opengl
- 3. Современный OpenGL: Нарисуйте сферу и цилиндр
- 4. OpenGl 3.3 сбой glDrawArrays
- 5. Opengl 3.3 рендеринг ничего
- 6. Перенос примера глубинного пилинга на современный OpenGL
- 7. Фрактальное дерево в современном OpenGL (OpenGL 3.3 и выше)
- 8. OpenGL 3.3 MSAA отложенное затенение
- 9. OpenGL 3.3 glDrawArrays для треугольников
- 10. OpenGL 3.3 на Arch Linux
- 11. glVertexAttribPointer stride GL_INVALID_VALUE opengl 3.3
- 12. OpenGL 3.3 текстурный треугольник отображения
- 13. Следы частиц OpenGL 3.3, glClear?
- 14. OpenGL 3.3 Проекция Матрица ошибок
- 15. «Современный» OpenGL на Linux с GLFW
- 16. Современный openGL, как изменить значение вершин?
- 17. Современный OpenGL с библиотекой SDL/загрузки
- 18. Как включить мультисэмплинг для программы OpenGL wxWidgets?
- 19. Почему приложение OpenGL 3.3 не рисует ничего?
- 20. Как сделать opengl 3.3 в текстуру SDL2?
- 21. OpenGL, Shader Model 3.3 Текстурирование: черные текстуры?
- 22. OpenGL 3.3 ничего не может нарисовать
- 23. wxWidgets with AUI: метод цикла рендеринга OpenGL и wxPaintEvent
- 24. OpenGL 3.3 на OSX с FreeGLUT
- 25. Как использовать QPainter с форматом OpenGL 3.3?
- 26. OpenGL 3.3 2D рендеринг: VAO настроен неправильно?
- 27. Освещение OpenGL 3.3 дает поистине странные ошибки
- 28. SDL2 -Opengl 3.3+ что в этом плохого?
- 29. OpenGL 3.3 различных цветов с фрагментами шейдеров
- 30. Instancing with OpenGL 3.3 кажется очень медленным
Существует включенный образец "Пирамида", который показывает, как использовать OpenGL 3.2 с шейдерами. OpenGL 3.2 - это более современная версия, принятая в Mac OS. – Ripi2