History

vec3ToScriptValue optimizations

ksuprynowicz committed 3 years ago

Commit 8b9cd841 parent 43939294 files · +77 −47Browse files

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

Unified · Split

libraries/script-engine/src/ScriptValueUtils.cpp+4−31
@@ -33,12 +33,7 @@ · 32 unmodified lines
3333 #include "ScriptEngineCast.h"
3434 #include "ScriptValueIterator.h"
3535 #include "ScriptEngineLogging.h"
36−
37−#define CONVERSIONS_OPTIMIZED_FOR_V8
38−
39−#ifdef CONVERSIONS_OPTIMIZED_FOR_V8
4036 #include "v8/FastScriptValueUtils.h"
41−#endif
4237
4338 bool isListOfStrings(const ScriptValue& arg) {
4439 if (!arg.isArray()) {
@@ -65,11 +60,7 @@ void registerMetaTypes(ScriptEngine* engine) { · 20 unmodified lines
6560 scriptRegisterMetaType<QVector3D, qVector3DToScriptValue, qVector3DFromScriptValue>(engine);
6661
6762 scriptRegisterMetaType<glm::vec2, vec2ToScriptValue, vec2FromScriptValue>(engine);
68−#ifdef CONVERSIONS_OPTIMIZED_FOR_V8
69− scriptRegisterMetaType<glm::vec3, vec3ToScriptValueFast, vec3FromScriptValueFast>(engine);
70−#else
7163 scriptRegisterMetaType<glm::vec3, vec3ToScriptValue, vec3FromScriptValue>(engine);
72−#endif
7364 scriptRegisterMetaType<glm::u8vec3, u8vec3ToScriptValue, u8vec3FromScriptValue>(engine);
7465 scriptRegisterMetaType<glm::vec4, vec4toScriptValue, vec4FromScriptValue>(engine);
7566 scriptRegisterMetaType<glm::quat, quatToScriptValue, quatFromScriptValue>(engine);
@@ -127,11 +118,7 @@ bool qVector2DFromScriptValue(const ScriptValue& object, QVector2D& qVector2D) { · 51 unmodified lines
127118
128119 ScriptValue qVector3DToScriptValue(ScriptEngine* engine, const QVector3D& qVector3D) {
129120 glm::vec3 vec3(qVector3D.x(), qVector3D.y(), qVector3D.z());
130−#ifdef CONVERSIONS_OPTIMIZED_FOR_V8
131− return vec3ToScriptValueFast(engine, vec3);
132−#else
133121 return vec3ToScriptValue(engine, vec3);
134−#endif
135122 }
136123
137124 bool qVector3DFromScriptValue(const ScriptValue& object, QVector3D& qVector3D) {
@@ -191,6 +178,7 @@ bool vec2FromScriptValue(const ScriptValue& object, glm::vec2& vec2) { · 53 unmodified lines
191178 return true;
192179 }
193180
181+#ifndef CONVERSIONS_OPTIMIZED_FOR_V8
194182 ScriptValue vec3ToScriptValue(ScriptEngine* engine, const glm::vec3& vec3) {
195183 auto prototype = engine->globalObject().property("__hifi_vec3__");
196184 if (!prototype.hasProperty("defined") || !prototype.property("defined").toBool()) {
@@ -215,6 +203,7 @@ ScriptValue vec3ToScriptValue(ScriptEngine* engine, const glm::vec3& vec3) { · 18 unmodified lines
215203 value.setPrototype(prototype);
216204 return value;
217205 }
206+#endif
218207
219208 ScriptValue vec3ColorToScriptValue(ScriptEngine* engine, const glm::vec3& vec3) {
220209 auto prototype = engine->globalObject().property("__hifi_vec3_color__");
@@ -242,6 +231,7 @@ ScriptValue vec3ColorToScriptValue(ScriptEngine* engine, const glm::vec3& vec3) · 21 unmodified lines
242231 }
243232
244233 // V8TODO: add similar checks to rest of the conversions
234+#ifndef CONVERSIONS_OPTIMIZED_FOR_V8
245235 bool vec3FromScriptValue(const ScriptValue& object, glm::vec3& vec3) {
246236 if (object.isNumber()) {
247237 vec3 = glm::vec3(object.toVariant().toFloat());
@@ -301,6 +291,7 @@ bool vec3FromScriptValue(const ScriptValue& object, glm::vec3& vec3) { · 53 unmodified lines
301291 }
302292 return true;
303293 }
294+#endif
304295
305296 ScriptValue u8vec3ToScriptValue(ScriptEngine* engine, const glm::u8vec3& vec3) {
306297 auto prototype = engine->globalObject().property("__hifi_u8vec3__");
@@ -470,11 +461,7 @@ ScriptValue qVectorVec3ColorToScriptValue(ScriptEngine* engine, const QVector<gl · 163 unmodified lines
470461 ScriptValue qVectorVec3ToScriptValue(ScriptEngine* engine, const QVector<glm::vec3>& vector) {
471462 ScriptValue array = engine->newArray();
472463 for (int i = 0; i < vector.size(); i++) {
473−#ifdef CONVERSIONS_OPTIMIZED_FOR_V8
474− array.setProperty(i, vec3ToScriptValueFast(engine, vector.at(i)));
475−#else
476464 array.setProperty(i, vec3ToScriptValue(engine, vector.at(i)));
477−#endif
478465 }
479466 return array;
480467 }
@@ -794,17 +781,9 @@ bool qURLFromScriptValue(const ScriptValue& object, QUrl& url) { · 313 unmodified lines
794781
795782 ScriptValue pickRayToScriptValue(ScriptEngine* engine, const PickRay& pickRay) {
796783 ScriptValue obj = engine->newObject();
797−#ifdef CONVERSIONS_OPTIMIZED_FOR_V8
798− ScriptValue origin = vec3ToScriptValueFast(engine, pickRay.origin);
799−#else
800784 ScriptValue origin = vec3ToScriptValue(engine, pickRay.origin);
801−#endif
802785 obj.setProperty("origin", origin);
803−#ifdef CONVERSIONS_OPTIMIZED_FOR_V8
804− ScriptValue direction = vec3ToScriptValueFast(engine, pickRay.direction);
805−#else
806786 ScriptValue direction = vec3ToScriptValue(engine, pickRay.direction);
807−#endif
808787 obj.setProperty("direction", direction);
809788 return obj;
810789 }
@@ -850,15 +829,9 @@ ScriptValue collisionToScriptValue(ScriptEngine* engine, const Collision& collis · 39 unmodified lines
850829 obj.setProperty("type", collision.type);
851830 obj.setProperty("idA", quuidToScriptValue(engine, collision.idA));
852831 obj.setProperty("idB", quuidToScriptValue(engine, collision.idB));
853−#ifdef CONVERSIONS_OPTIMIZED_FOR_V8
854− obj.setProperty("penetration", vec3ToScriptValueFast(engine, collision.penetration));
855− obj.setProperty("contactPoint", vec3ToScriptValueFast(engine, collision.contactPoint));
856− obj.setProperty("velocityChange", vec3ToScriptValueFast(engine, collision.velocityChange));
857−#else
858832 obj.setProperty("penetration", vec3ToScriptValue(engine, collision.penetration));
859833 obj.setProperty("contactPoint", vec3ToScriptValue(engine, collision.contactPoint));
860834 obj.setProperty("velocityChange", vec3ToScriptValue(engine, collision.velocityChange));
861−#endif
862835 return obj;
863836 }
864837