QMaterial *RayCloudPlot::makeMaterial() { auto mat = new QMaterial(); auto eff = new QEffect(mat); mat->addParameter(m_linewidthParam); mat->addParameter(m_pixelSize); mat->addParameter(m_colorParam); // Set up the shader auto gl3tech = new QTechnique(); auto api = gl3tech->graphicsApiFilter(); api->setApi(QGraphicsApiFilter::OpenGL); // api->setMajorVersion(3); // api->setMinorVersion(1); // api->setProfile(QGraphicsApiFilter::CoreProfile); api->setMajorVersion(2); api->setMinorVersion(0); api->setProfile(QGraphicsApiFilter::NoProfile); // Forward render auto ann = new QAnnotation(); ann->setName("renderingStyle"); ann->setValue("forward"); // Shader render pass auto gl3program = new QShaderProgram(); gl3program->setVertexShaderCode(QShaderProgram::loadSource(QUrl("qrc:/shaders/ray.vert"))); gl3program->setFragmentShaderCode(QShaderProgram::loadSource(QUrl("qrc:/shaders/ray.frag"))); auto gl3pass = new QRenderPass(); gl3pass->setShaderProgram(gl3program); // auto pointsize = new QPointSize(); // pointsize->setEnabled(true); // gl3pass->addRenderState(pointsize); // auto cullface = new QCullFace(); // cullface->setMode(QCullFace::Front); // cullface->setEnabled(true); // gl3pass->addRenderState(cullface); gl3tech->addAnnotation(ann); gl3tech->addPass(gl3pass); // Push it all in eff->addTechnique(gl3tech); mat->setEffect(eff); return mat; }
/*! Returns a new widget box interface with the given \a parent for the \a core interface.*/ QDesignerWidgetBoxInterface *QDesignerComponents::createWidgetBox(QDesignerFormEditorInterface *core, QWidget *parent) { qdesigner_internal::WidgetBox *widgetBox = new qdesigner_internal::WidgetBox(core, parent); const QDesignerLanguageExtension *lang = qt_extension<QDesignerLanguageExtension*>(core->extensionManager(), core); do { if (lang) { const QString languageWidgetBox = lang->widgetBoxContents(); if (!languageWidgetBox.isEmpty()) { widgetBox->loadContents(lang->widgetBoxContents()); break; } } widgetBox->setFileName(QStringLiteral(":/trolltech/widgetbox/widgetbox.xml")); widgetBox->load(); } while (false); const QString userWidgetBoxFile = widgetBoxFileName(QT_VERSION, lang); widgetBox->setFileName(userWidgetBoxFile); if (!QFileInfo(userWidgetBoxFile).exists()) { // check previous version, that is, are we running the new version for the first time // If so, try to copy the old widget box file if (const int minv = qtMinorVersion(QT_VERSION)) { int oldVersion = QT_VERSION; setMinorVersion(minv - 1, &oldVersion); const QString oldWidgetBoxFile = widgetBoxFileName(oldVersion, lang); if (QFileInfo(oldWidgetBoxFile).exists()) QFile::copy(oldWidgetBoxFile, userWidgetBoxFile); } } widgetBox->load(); return widgetBox; }
void shouldDetermineCompatibility_data() { QTest::addColumn<QSharedPointer<Qt3DRender::QGraphicsApiFilter>>("required"); QTest::addColumn<QSharedPointer<Qt3DRender::QGraphicsApiFilter>>("actual"); QTest::addColumn<bool>("expected"); auto required = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); required->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); required->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile); required->setMajorVersion(4); required->setMinorVersion(5); auto actual = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); actual->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); actual->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile); actual->setMajorVersion(4); actual->setMinorVersion(5); bool expected = true; QTest::newRow("exact_match") << required << actual << expected; required = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); required->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); required->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile); required->setMajorVersion(3); required->setMinorVersion(2); actual = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); actual->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); actual->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile); actual->setMajorVersion(4); actual->setMinorVersion(5); expected = true; QTest::newRow("actual_is_higher_version") << required << actual << expected; required = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); required->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); required->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile); required->setMajorVersion(4); required->setMinorVersion(5); actual = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); actual->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); actual->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile); actual->setMajorVersion(3); actual->setMinorVersion(2); expected = false; QTest::newRow("actual_is_lower_version") << required << actual << expected; required = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); required->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); required->setProfile(Qt3DRender::QGraphicsApiFilter::CompatibilityProfile); required->setMajorVersion(4); required->setMinorVersion(5); actual = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); actual->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); actual->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile); actual->setMajorVersion(4); actual->setMinorVersion(5); expected = false; QTest::newRow("wrong_profile") << required << actual << expected; required = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); required->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); required->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile); required->setMajorVersion(3); required->setMinorVersion(2); actual = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); actual->setApi(Qt3DRender::QGraphicsApiFilter::OpenGLES); actual->setProfile(Qt3DRender::QGraphicsApiFilter::NoProfile); actual->setMajorVersion(3); actual->setMinorVersion(2); expected = false; QTest::newRow("wrong_api") << required << actual << expected; required = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); required->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); required->setProfile(Qt3DRender::QGraphicsApiFilter::NoProfile); required->setMajorVersion(2); required->setMinorVersion(0); actual = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); actual->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); actual->setProfile(Qt3DRender::QGraphicsApiFilter::CompatibilityProfile); actual->setMajorVersion(3); actual->setMinorVersion(2); expected = true; QTest::newRow("gl_3_2_compatibility_can_use_gl_2_0") << required << actual << expected; required = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); required->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); required->setProfile(Qt3DRender::QGraphicsApiFilter::NoProfile); required->setMajorVersion(2); required->setMinorVersion(0); actual = QSharedPointer<Qt3DRender::QGraphicsApiFilter>::create(); actual->setApi(Qt3DRender::QGraphicsApiFilter::OpenGL); actual->setProfile(Qt3DRender::QGraphicsApiFilter::CoreProfile); actual->setMajorVersion(3); actual->setMinorVersion(2); expected = false; QTest::newRow("gl_3_2_core_cant_use_gl_2_0") << required << actual << expected; }
void HsQMLContextControl::unsetMinorVersion() { setMinorVersion(-1); }