Example #1
0
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;
}
Example #3
0
    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;
    }
Example #4
0
void HsQMLContextControl::unsetMinorVersion()
{
    setMinorVersion(-1);
}