void KisOpenGL::initialize() { #ifdef HAVE_OPENGL dbgUI << "OpenGL: initializing"; KisConfig cfg; QSurfaceFormat format; format.setProfile(QSurfaceFormat::CompatibilityProfile); format.setOptions(QSurfaceFormat::DeprecatedFunctions); format.setDepthBufferSize(24); format.setStencilBufferSize(8); format.setVersion(3, 2); // if (cfg.disableDoubleBuffering()) { if (false) { format.setSwapBehavior(QSurfaceFormat::SingleBuffer); } else { format.setSwapBehavior(QSurfaceFormat::DoubleBuffer); } format.setSwapInterval(0); // Disable vertical refresh syncing QSurfaceFormat::setDefaultFormat(format); #endif }
RenderWidget::RenderWidget(QWidget *parent) : QOpenGLWidget(parent), renderFunctions(nullptr), render(nullptr), quad(nullptr), quadShader(nullptr), openglDebugLogger(nullptr), captureMouse(false), onlyShowTexture(false), textureDisplayed(color) { // Widget config setUpdateBehavior(QOpenGLWidget::NoPartialUpdate); setFocusPolicy(Qt::ClickFocus); // Update Timer config connect(&updateTimer, SIGNAL(timeout()), this, SLOT(update())); startUpdateLoop(); // Open GL Context config QSurfaceFormat f; f.setRenderableType(QSurfaceFormat::OpenGL); f.setMajorVersion(4); f.setMinorVersion(5); f.setProfile(QSurfaceFormat::CoreProfile); f.setOptions(QSurfaceFormat::DebugContext | f.options()); setFormat(f); }
void KisOpenGL::setDefaultFormat() { QSurfaceFormat format; #ifdef Q_OS_MAC // format.setProfile(QSurfaceFormat::CoreProfile); // format.setOptions(QSurfaceFormat::DeprecatedFunctions); format.setVersion(2, 1); #else format.setProfile(QSurfaceFormat::CompatibilityProfile); format.setOptions(QSurfaceFormat::DeprecatedFunctions); format.setVersion(3, 0); #endif format.setDepthBufferSize(24); format.setStencilBufferSize(8); format.setSwapBehavior(QSurfaceFormat::DoubleBuffer); KisConfig cfg; if (cfg.disableVSync()) { format.setSwapInterval(0); // Disable vertical refresh syncing } QSurfaceFormat::setDefaultFormat(format); }