2011-06-27 18 views
7

का उपयोग कर क्यूटी प्रतिपादन मैं एक एम्बेडेड प्लेटफॉर्म के लिए एक क्यूएमएल एप्लिकेशन पर काम कर रहा हूं जिसमें छवियों वाले ग्रिड व्यू विजेट शामिल हैं। मेरे लिए यह महत्वपूर्ण है कि ग्रिड व्यू के माध्यम से स्क्रॉल करना चिकना होगा और सीपीयू पर लोड नहीं करेगा। क्या मैं क्यूटी को ग्रिड व्यू को प्रस्तुत करने के लिए ओपनजीएल का उपयोग करने की उम्मीद कर सकता हूं?ओपनजीएल

+0

जहां तक ​​मुझे क्यूटी क्यूएमएल के बारे में पता है, आप शेडर्स का उपयोग कर सकते हैं (क्यूटी साइट पर उदाहरण हैं) ... मुझे लगता है कि कुछ ओपनजीएल प्रतिपादन शामिल है। – vrince

+0

शेडर्स QtQuick 2.0 (QT 5.0) के साथ आएंगे या आपको QtQuick3D का उपयोग करना होगा। – blakharaz

उत्तर

5

मुझे एक ही समस्या का सामना करना पड़ा।

QApplication::setGraphicsSystem(QLatin1String("opengl")); 

मेरे लिए काम नहीं है। इसलिए मैंने ओजीविजेट को व्यूपोर्ट के रूप में सेट किया:

QDeclarativeView mainwindow; 
mainwindow.setSource(QUrl::fromLocalFile("./qml/app.qml")); 
QGLFormat format = QGLFormat(QGL::DirectRendering); // you can play with other rendering formats like DoubleBuffer or SimpleBuffer 
format.setSampleBuffers(false); 
QGLWidget *glWidget = new QGLWidget(format); 
glWidget->setAutoFillBackground(false); 
mainwindow.setViewport(glWidget); 

और * .pro फ़ाइल में opengl जोड़ने के लिए मत भूलना।

+0

आप किस क्यूटी संस्करण का उपयोग करते थे? –

+0

इस समय यह नवीनतम संस्करण था। AFAIR, 4.6 qtquick 1.0 के साथ – avida

2

डिफ़ॉल्ट रूप से क्यूटी ओपनजीएल रेंडर बैकएंड का उपयोग नहीं करता है। आप QGlWidget का उपयोग कर इसे लागू कर सकते हैं। आपके मामले में, के रूप में आप एक शेयर विजेट का उपयोग करना चाहते हैं, तो आप बैकएंड एक कमांड लाइन विकल्प के रूप में प्रस्तुत करना सेट कर सकते हैं:

<binary name> -graphicssystem opengl 
+0

यह मेरे लिए काम नहीं करता है अगर मैं जोड़ता हूं: ग्राफिक्स सिस्टम ओपनजी – olidev

+0

["-ग्राफिक्स सिस्टम" विकल्प Qt5 से हटा दिया गया था] (https://bugreports.qt.io/browse/QTBUG-41265) – Color

3

अपने मंच का उपयोग करें

QApplication::setGraphicsSystem(QLatin1String("opengl")); 

या (सिम्बियन) पर निर्भर करता है

QApplication::setGraphicsSystem(QLatin1String("openvg")); 

इससे पहले कि आप QApplication ऑब्जेक्ट को तुरंत चालू करें।