QML Repeater3D рендеринг очень медленныйC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 QML Repeater3D рендеринг очень медленный

Сообщение Anonymous »

Тип Повторитель3D используется для создания большого количества похожих элементов. Но если я попытаюсь заполнить модель большим объемом данных, она будет работать медленно. Например, у меня есть список из 500 элементов:
QQmlApplicationEngine engine;

QList dataList;

for (int i = 0; i < 500; i++) {
for (int j = 0; j < 500; j++) {
dataList.append(new DataObject("Item 1:", 1, j * 8, i * 8, 1));
}
}

engine.rootContext()->setContextProperty("myModel", QVariant::fromValue(dataList));

Я установил этот список в качестве модели в Repeater3d:
Repeater3D {
id: _3DRepeater
model: myModel
Model {
id: sphere
x: model.modelData.x
y: model.modelData.y
z: model.modelData.z
source: "#Sphere"
scale.z: model.modelData.radius * 0.05
scale.y: model.modelData.radius * 0.05
scale.x: model.modelData.radius * 0.05
materials: principledMaterial
}
}

Это класс DataObject:
class DataObject : public QObject
{
Q_OBJECT

Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged)
Q_PROPERTY(int radius READ radius WRITE setRadius NOTIFY radiusChanged)
Q_PROPERTY(int x READ x WRITE setX NOTIFY xChanged)
Q_PROPERTY(int y READ y WRITE setY NOTIFY yChanged)
Q_PROPERTY(int z READ z WRITE setZ NOTIFY zChanged)

public:
DataObject (const QString& name, int radius, int x, int y, int z) : m_name(name), m_radius(radius), m_x(x), m_y(y), m_z(z) {};
...
private:
QString m_name;
int m_radius;
int m_x;
int m_y;
int m_z;
};


Подробнее здесь: https://stackoverflow.com/questions/782 ... -very-slow
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»