History

V8 fixes, including calls and signals

ksuprynowicz committed 3 years ago

Commit 5099e681 parent c8898e811 files · +73 −19Browse files

Showing the changes to libraries/script-engine/src/ScriptValueUtils.cpp (1 of 11 files). Show all

Unified · Split

libraries/script-engine/src/ScriptValueUtils.cpp+23−1
@@ -188,6 +188,7 @@ ScriptValue vec3ColorToScriptValue(ScriptEngine* engine, const glm::vec3& vec3) · 187 unmodified lines
188 return value;188 return value;
189}189}
190 190
191// V8TODO: add similar checks to rest of the conversions
191bool vec3FromScriptValue(const ScriptValue& object, glm::vec3& vec3) {192bool vec3FromScriptValue(const ScriptValue& object, glm::vec3& vec3) {
192 if (object.isNumber()) {193 if (object.isNumber()) {
193 vec3 = glm::vec3(object.toVariant().toFloat());194 vec3 = glm::vec3(object.toVariant().toFloat());
@@ -197,6 +198,8 @@ bool vec3FromScriptValue(const ScriptValue& object, glm::vec3& vec3) { · 3 unmodified lines
197 vec3.x = qColor.red();198 vec3.x = qColor.red();
198 vec3.y = qColor.green();199 vec3.y = qColor.green();
199 vec3.z = qColor.blue();200 vec3.z = qColor.blue();
201 } else {
202 return false;
200 }203 }
201 } else if (object.isArray()) {204 } else if (object.isArray()) {
202 QVariantList list = object.toVariant().toList();205 QVariantList list = object.toVariant().toList();
@@ -204,8 +207,10 @@ bool vec3FromScriptValue(const ScriptValue& object, glm::vec3& vec3) { · 1 unmodified line
204 vec3.x = list[0].toFloat();207 vec3.x = list[0].toFloat();
205 vec3.y = list[1].toFloat();208 vec3.y = list[1].toFloat();
206 vec3.z = list[2].toFloat();209 vec3.z = list[2].toFloat();
210 } else {
211 return false;
207 }212 }
208 } else {213 } else if (object.isObject()) {
209 ScriptValue x = object.property("x");214 ScriptValue x = object.property("x");
210 if (!x.isValid()) {215 if (!x.isValid()) {
211 x = object.property("r");216 x = object.property("r");
@@ -230,9 +235,15 @@ bool vec3FromScriptValue(const ScriptValue& object, glm::vec3& vec3) { · 18 unmodified lines
230 z = object.property("blue");235 z = object.property("blue");
231 }236 }
232 237
238 if (!x.isValid() || !y.isValid() || !z.isValid()) {
239 return false;
240 }
241
233 vec3.x = x.toVariant().toFloat();242 vec3.x = x.toVariant().toFloat();
234 vec3.y = y.toVariant().toFloat();243 vec3.y = y.toVariant().toFloat();
235 vec3.z = z.toVariant().toFloat();244 vec3.z = z.toVariant().toFloat();
245 } else {
246 return false;
236 }247 }
237 return true;248 return true;
238}249}
@@ -446,7 +457,18 @@ ScriptValue quatToScriptValue(ScriptEngine* engine, const glm::quat& quat) { · 207 unmodified lines
446 return obj;457 return obj;
447}458}
448 459
460// V8TODO: add similar check to other conversions
449bool quatFromScriptValue(const ScriptValue& object, glm::quat& quat) {461bool quatFromScriptValue(const ScriptValue& object, glm::quat& quat) {
462 if (!object.isObject()) {
463 return false;
464 }
465 QVariant x = object.property("x").toVariant();
466 QVariant y = object.property("y").toVariant();
467 QVariant z = object.property("z").toVariant();
468 QVariant w = object.property("w").toVariant();
469 if (!x.isValid() || !y.isValid() || !z.isValid() || !w.isValid()) {
470 return false;
471 }
450 quat.x = object.property("x").toVariant().toFloat();472 quat.x = object.property("x").toVariant().toFloat();
451 quat.y = object.property("y").toVariant().toFloat();473 quat.y = object.property("y").toVariant().toFloat();
452 quat.z = object.property("z").toVariant().toFloat();474 quat.z = object.property("z").toVariant().toFloat();

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t