Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.06.2022, 00:31   #31
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Несколько базовых изменений в PyQt6 касательно графики на шейдерном OpenGL

1. OpenGL-классы перенесли в отдельное пространство имён PyQt6.QtOpenGL:

PyQt5:
Код:
from PyQt5.QtGui import (QOpenGLBuffer, QOpenGLShader, QOpenGLShaderProgram,
                         QOpenGLTexture)
PyQt6:

Код:
from PyQt6.QtOpenGL import (QOpenGLBuffer, QOpenGLShader, QOpenGLShaderProgram,
                            QOpenGLTexture)
2. Класс QOpenGLWidget перенесли в пространство имён PyQt6.QtOpenGLWidgets:

PyQt5:
Код:
from PyQt5.QtWidgets import QApplication, QOpenGLWidget
PyQt6:

Код:
from PyQt6.QtOpenGLWidgets import QOpenGLWidget
3. Изменён enum для типов шейдеров:

PyQt5:
Код:
self.program.addShaderFromSourceCode(QOpenGLShader.Vertex, vertShaderSrc)
self.program.addShaderFromSourceCode(QOpenGLShader.Fragment, fragShaderSrc)
PyQt6:

Код:
self.program.addShaderFromSourceCode(QOpenGLShader.ShaderTypeBit.Vertex, vertShaderSrc)
self.program.addShaderFromSourceCode(QOpenGLShader.ShaderTypeBit.Fragment, fragShaderSrc)
4. Изменён enum Target текстуры:

PyQt5:
Код:
self.texture = QOpenGLTexture(QOpenGLTexture.Target2D)
PyQt6:

Код:
self.texture = QOpenGLTexture(QOpenGLTexture.Target.Target2D)
5. Изменён enum для настройки фильтров текстуры:

PyQt5:
Код:
self.texture.setMinMagFilters(QOpenGLTexture.Linear, QOpenGLTexture.Linear)
PyQt6:

Код:
self.texture.setMinMagFilters(QOpenGLTexture.Filter.Linear, QOpenGLTexture.Filter.Linear)
6. Изменён enum для WrapMode:

PyQt5:
Код:
self.texture.setWrapMode(QOpenGLTexture.ClampToEdge)
PyQt6:

Код:
self.texture.setWrapMode(QOpenGLTexture.WrapMode.ClampToEdge)
7. Изменён enum для установки атрибутов приложения:

PyQt5:
Код:
QApplication.setAttribute(Qt.AA_UseDesktopOpenGL)
PyQt6:

Код:
QApplication.setAttribute(Qt.ApplicationAttribute.AA_UseDesktopOpenGL)
Несколько базовых изменений не касательно графики:

1. Изменён enum для режима открытия файла:

PyQt5:
Код:
file = QFile(path)
if not file.open(QIODevice.ReadOnly):
    print("Failed to open the file: " + path)
PyQt6:

Код:
file = QFile(path)
if not file.open(QIODevice.OpenModeFlag.ReadOnly):
    print("Failed to open the file: " + path)
2. Метод QApplication.exec_() был переименован в QApplication.exec()

PyQt5:
Код:
import sys
from PyQt5.QtWidgets import QApplication

app = QApplication(sys.argv)
sys.exit(app.exec_())
PyQt6:

Код:
import sys
from PyQt6.QtWidgets import QApplication

app = QApplication(sys.argv)
sys.exit(app.exec())
Несколько примеров на шейдерном OpenGL и PyQt5:

Последний раз редактировалось 8Observer8; 26.06.2022 в 01:17.
8Observer8 вне форума Ответить с цитированием
Старый 20.03.2023, 02:01   #32
8Observer8
Старожил
 
Аватар для 8Observer8
 
Регистрация: 02.01.2011
Сообщений: 3,322
По умолчанию

Записал короткое видео на 2 минуты по быстрой установке предустановленного Qt 6

The fastest way to install Qt 6 on Windows 10 64 bit - 在 Windows 10 64 位上安装 Qt 6 的最快方法

Rutube: https://rutube.ru/video/814e0b604c06...cae6fb9051528/
Dzen: https://dzen.ru/video/watch/6417889a51939f0701ca1b1e
YouTube: https://www.youtube.com/watch?v=1zOGi43t52Y
8Observer8 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Уроки по созданию игр для новичков... -=DeS=- Gamedev - cоздание игр: Unity, OpenGL, DirectX 750 14.11.2017 20:26
Работа с файлами: запись, добавление, чтение (найти ошибку в коде) / C для начинающих Надо создать программу для работы с файлами Konlor Общие вопросы C/C++ 2 18.05.2014 12:37
Проблема с примером из темы "Уроки по созданию игр для новичков..." AvaMight Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 11.02.2012 10:55
Не могли бы дать заготовки процедур для базы данных romich.91 Паскаль, Turbo Pascal, PascalABC.NET 2 27.05.2009 18:00