add x & y & spacing; render try catch; remove rectangle layer in qml

This commit is contained in:
王劲鹏
2021-02-24 15:47:57 +08:00
committed by osborn
parent 850d6321a0
commit d35c8d2118
7 changed files with 25 additions and 25 deletions

View File

@@ -6,18 +6,22 @@
void DoricShaderPlugin::render(QJSValue jsValue, QString callbackId) {
getContext()->getDriver()->asyncCall(
[this, jsValue] {
QString viewId = jsValue.property("id").toString();
DoricRootNode *rootNode = getContext()->getRootNode();
try {
QString viewId = jsValue.property("id").toString();
DoricRootNode *rootNode = getContext()->getRootNode();
if (rootNode->getId().isEmpty() &&
jsValue.property("type").toString() == "Root") {
rootNode->setId(viewId);
rootNode->blend(jsValue.property("props"));
} else {
DoricViewNode *viewNode = getContext()->targetViewNode(viewId);
if (viewNode != nullptr) {
viewNode->blend(jsValue.property("props"));
if (rootNode->getId().isEmpty() &&
jsValue.property("type").toString() == "Root") {
rootNode->setId(viewId);
rootNode->blend(jsValue.property("props"));
} else {
DoricViewNode *viewNode = getContext()->targetViewNode(viewId);
if (viewNode != nullptr) {
viewNode->blend(jsValue.property("props"));
}
}
} catch (...) {
qCritical() << "render exception";
}
},
DoricThreadMode::UI);