/*! \since 4.8 Returns a platform window format for the OpenGL format specified by \a format. */ QPlatformWindowFormat QGLFormat::toPlatformWindowFormat(const QGLFormat &format) { QPlatformWindowFormat retFormat; retFormat.setAccum(format.accum()); if (format.accumBufferSize() >= 0) retFormat.setAccumBufferSize(format.accumBufferSize()); retFormat.setAlpha(format.alpha()); if (format.alphaBufferSize() >= 0) retFormat.setAlphaBufferSize(format.alphaBufferSize()); if (format.blueBufferSize() >= 0) retFormat.setBlueBufferSize(format.blueBufferSize()); retFormat.setDepth(format.depth()); if (format.depthBufferSize() >= 0) retFormat.setDepthBufferSize(format.depthBufferSize()); retFormat.setDirectRendering(format.directRendering()); retFormat.setDoubleBuffer(format.doubleBuffer()); if (format.greenBufferSize() >= 0) retFormat.setGreenBufferSize(format.greenBufferSize()); if (format.redBufferSize() >= 0) retFormat.setRedBufferSize(format.redBufferSize()); retFormat.setRgba(format.rgba()); retFormat.setSampleBuffers(format.sampleBuffers()); if (format.samples() >= 0) retFormat.setSamples(format.samples()); retFormat.setStencil(format.stencil()); if (format.stencilBufferSize() >= 0) retFormat.setStencilBufferSize(format.stencilBufferSize()); retFormat.setStereo(format.stereo()); retFormat.setSwapInterval(format.swapInterval()); return retFormat; }
GLFormat::GLFormat(const QGLFormat & format) : m_majorVersion(format.majorVersion()) , m_minorVersion(format.minorVersion()) , m_redBufferSize (format.redBufferSize()) , m_greenBufferSize(format.greenBufferSize()) , m_blueBufferSize (format.blueBufferSize()) , m_alphaBufferSize(format.alpha() ? format.alphaBufferSize() : 0) , m_depthBufferSize (format.depth() ? format.depthBufferSize() : 0) , m_stencilBufferSize(format.stencil() ? format.stencilBufferSize() : 0) , m_doubleBuffer(format.doubleBuffer()) , m_stereo(format.stereo()) , m_sampleBuffers(format.sampleBuffers()) , m_samples(format.samples()) , m_swapInterval(format.swapInterval()) { switch(format.profile()) { default: case QGLFormat::NoProfile: m_profile = NoProfile; break; case QGLFormat::CoreProfile: m_profile = CoreProfile; break; case QGLFormat::CompatibilityProfile: m_profile = CompatibilityProfile; break; }; }
void GraphicsWindowQt::qglFormat2traits( const QGLFormat& format, osg::GraphicsContext::Traits* traits ) { traits->red = format.redBufferSize(); traits->green = format.greenBufferSize(); traits->blue = format.blueBufferSize(); traits->alpha = format.alpha() ? format.alphaBufferSize() : 0; traits->depth = format.depth() ? format.depthBufferSize() : 0; traits->stencil = format.stencil() ? format.stencilBufferSize() : 0; traits->sampleBuffers = format.sampleBuffers() ? 1 : 0; traits->samples = format.samples(); traits->quadBufferStereo = format.stereo(); traits->doubleBuffer = format.doubleBuffer(); traits->vsync = format.swapInterval() >= 1; }
string glinfo:: pretty_format(const QGLFormat& f) { QGLFormat::OpenGLVersionFlags flag = f.openGLVersionFlags(); stringstream s; s << "accum=" << f.accum() << endl << "accumBufferSize=" << f.accumBufferSize() << endl << "alpha=" << f.alpha() << endl << "alphaBufferSize=" << f.alphaBufferSize() << endl << "blueBufferSize=" << f.blueBufferSize() << endl << "depth=" << f.depth() << endl << "depthBufferSize=" << f.depthBufferSize() << endl << "directRendering=" << f.directRendering() << endl << "doubleBuffer=" << f.doubleBuffer() << endl << "greenBufferSize=" << f.greenBufferSize() << endl << "hasOverlay=" << f.hasOverlay() << endl << "redBufferSize=" << f.redBufferSize() << endl << "rgba=" << f.rgba() << endl << "sampleBuffers=" << f.sampleBuffers() << endl << "samples=" << f.samples() << endl << "stencil=" << f.stencil() << endl << "stencilBufferSize=" << f.stencilBufferSize() << endl << "stereo=" << f.stereo() << endl << "swapInterval=" << f.swapInterval() << endl << "" << endl << "hasOpenGL=" << f.hasOpenGL() << endl << "hasOpenGLOverlays=" << f.hasOpenGLOverlays() << endl << "OpenGL_Version_None=" << (QGLFormat::OpenGL_Version_None == flag) << endl << "OpenGL_Version_1_1=" << (QGLFormat::OpenGL_Version_1_1 & flag) << endl << "OpenGL_Version_1_2=" << (QGLFormat::OpenGL_Version_1_2 & flag) << endl << "OpenGL_Version_1_3=" << (QGLFormat::OpenGL_Version_1_3 & flag) << endl << "OpenGL_Version_1_4=" << (QGLFormat::OpenGL_Version_1_4 & flag) << endl << "OpenGL_Version_1_5=" << (QGLFormat::OpenGL_Version_1_5 & flag) << endl << "OpenGL_Version_2_0=" << (QGLFormat::OpenGL_Version_2_0 & flag) << endl << "OpenGL_Version_2_1=" << (QGLFormat::OpenGL_Version_2_1 & flag) << endl << "OpenGL_Version_3_0=" << (QGLFormat::OpenGL_Version_3_0 & flag) << endl << "OpenGL_ES_CommonLite_Version_1_0=" << (QGLFormat::OpenGL_ES_CommonLite_Version_1_0 & flag) << endl << "OpenGL_ES_Common_Version_1_0=" << (QGLFormat::OpenGL_ES_Common_Version_1_0 & flag) << endl << "OpenGL_ES_CommonLite_Version_1_1=" << (QGLFormat::OpenGL_ES_CommonLite_Version_1_1 & flag) << endl << "OpenGL_ES_Common_Version_1_1=" << (QGLFormat::OpenGL_ES_Common_Version_1_1 & flag) << endl << "OpenGL_ES_Version_2_0=" << (QGLFormat::OpenGL_ES_Version_2_0 & flag) << endl; return s.str(); }
// static void SharedGLContext::setWidget(const QGLWidget* pWidget) { s_pSharedGLWidget = pWidget; qDebug() << "Set root GL Context widget valid:" << pWidget << (pWidget && pWidget->isValid()); const QGLContext* pContext = pWidget->context(); qDebug() << "Created root GL Context valid:" << pContext << (pContext && pContext->isValid()); if (pWidget) { QGLFormat format = pWidget->format(); qDebug() << "Root GL Context format:"; qDebug() << "Double Buffering:" << format.doubleBuffer(); qDebug() << "Swap interval:" << format.swapInterval(); qDebug() << "Depth buffer:" << format.depth(); qDebug() << "Direct rendering:" << format.directRendering(); qDebug() << "Has overlay:" << format.hasOverlay(); qDebug() << "RGBA:" << format.rgba(); qDebug() << "Sample buffers:" << format.sampleBuffers(); qDebug() << "Samples:" << format.samples(); qDebug() << "Stencil buffers:" << format.stencil(); qDebug() << "Stereo:" << format.stereo(); } }
QtWindow::QtWindow() { QCoreApplication::setOrganizationName("Instrument-Trainer"); QCoreApplication::setOrganizationDomain("github.com/joshelser/Instrument-Trainer"); QCoreApplication::setApplicationName("Instrument Trainer"); m_settings = new CSettings(this); setWindowIcon(QIcon(":/images/Logo32x32.png")); setWindowTitle(tr("Instrument Trainer")); decodeCommandLine(); if (Cfg::experimentalSwapInterval != -1) { QGLFormat fmt; fmt.setSwapInterval(Cfg::experimentalSwapInterval); int value = fmt.swapInterval(); ppLogInfo("Open GL Swap Interval %d", value); QGLFormat::setDefaultFormat(fmt); } #if USE_REALTIME_PRIORITY int rt_prio = sched_get_priority_max(SCHED_FIFO); set_realtime_priority(SCHED_FIFO, rt_prio); #endif m_glWidget = new CGLView(this, m_settings); m_song = m_glWidget->getSongObject(); m_score = m_glWidget->getScoreObject(); QHBoxLayout *mainLayout = new QHBoxLayout; QVBoxLayout *columnLayout = new QVBoxLayout; m_sidePanel = new GuiSidePanel(this, m_settings); m_topBar = new GuiTopBar(this, m_settings); m_settings->init(m_song, m_sidePanel, m_topBar); mainLayout->addWidget(m_sidePanel); columnLayout->addWidget(m_topBar); columnLayout->addWidget(m_glWidget); mainLayout->addLayout(columnLayout); m_song->init(m_score, m_settings); m_glWidget->init(); m_sidePanel->init(m_song, m_song->getTrackList(), m_topBar); m_topBar->init(m_song, m_song->getTrackList()); createActions(); createMenus(); readSettings(); QWidget *centralWin = new QWidget(); centralWin->setLayout(mainLayout); setCentralWidget(centralWin); m_glWidget->setFocus(Qt::ActiveWindowFocusReason); m_song->setPianoSoundPatches(m_settings->value("Keyboard/RightSound", Cfg::defaultRightPatch()).toInt() - 1, m_settings->value("Keyboard/WrongSound", Cfg::defaultWrongPatch()).toInt() - 1, true); QString midiInputName = m_settings->value("Midi/Input").toString(); if (midiInputName.startsWith("None")) CChord::setPianoRange(PC_KEY_LOWEST_NOTE, PC_KEY_HIGHEST_NOTE); else CChord::setPianoRange(m_settings->value("Keyboard/LowestNote", 0).toInt(), m_settings->value("Keyboard/HighestNote", 127).toInt()); m_song->setLatencyFix(m_settings->value("Midi/Latency", 0).toInt()); #ifdef _WIN32 m_glWidget->m_cfg_openGlOptimise = true; // don't default to true on windows #else m_glWidget->m_cfg_openGlOptimise = true; // changed to default to false on platforms #endif m_glWidget->m_cfg_openGlOptimise = m_settings->value("Display/OpenGlOptimise", m_glWidget->m_cfg_openGlOptimise ).toBool(); m_song->cfg_timingMarkersFlag = m_settings->value("Score/TimingMarkers", m_song->cfg_timingMarkersFlag ).toBool(); m_song->cfg_stopPointMode = static_cast<stopPointMode_t> (m_settings->value("Score/StopPointMode", m_song->cfg_stopPointMode ).toInt()); m_song->openMidiPort(CMidiDevice::MIDI_INPUT, midiInputName); m_song->openMidiPort(CMidiDevice::MIDI_OUTPUT,m_settings->value("midi/output").toString()); m_settings->loadSettings(); show(); }