Showing the changes to libraries/script-engine/src/ScriptValueUtils.cpp (1 of 4 files). Show all
Unified · Split
| @@ -33,12 +33,7 @@ · 32 unmodified lines | ||
| 33 | 33 | #include "ScriptEngineCast.h" |
| 34 | 34 | #include "ScriptValueIterator.h" |
| 35 | 35 | #include "ScriptEngineLogging.h" |
| 36 | − | |
| 37 | −#define CONVERSIONS_OPTIMIZED_FOR_V8 | |
| 38 | − | |
| 39 | −#ifdef CONVERSIONS_OPTIMIZED_FOR_V8 | |
| 40 | 36 | #include "v8/FastScriptValueUtils.h" |
| 41 | −#endif | |
| 42 | 37 | |
| 43 | 38 | bool isListOfStrings(const ScriptValue& arg) { |
| 44 | 39 | if (!arg.isArray()) { |
| @@ -65,11 +60,7 @@ void registerMetaTypes(ScriptEngine* engine) { · 20 unmodified lines | ||
| 65 | 60 | scriptRegisterMetaType<QVector3D, qVector3DToScriptValue, qVector3DFromScriptValue>(engine); |
| 66 | 61 | |
| 67 | 62 | scriptRegisterMetaType<glm::vec2, vec2ToScriptValue, vec2FromScriptValue>(engine); |
| 68 | −#ifdef CONVERSIONS_OPTIMIZED_FOR_V8 | |
| 69 | − scriptRegisterMetaType<glm::vec3, vec3ToScriptValueFast, vec3FromScriptValueFast>(engine); | |
| 70 | −#else | |
| 71 | 63 | scriptRegisterMetaType<glm::vec3, vec3ToScriptValue, vec3FromScriptValue>(engine); |
| 72 | −#endif | |
| 73 | 64 | scriptRegisterMetaType<glm::u8vec3, u8vec3ToScriptValue, u8vec3FromScriptValue>(engine); |
| 74 | 65 | scriptRegisterMetaType<glm::vec4, vec4toScriptValue, vec4FromScriptValue>(engine); |
| 75 | 66 | scriptRegisterMetaType<glm::quat, quatToScriptValue, quatFromScriptValue>(engine); |
| @@ -127,11 +118,7 @@ bool qVector2DFromScriptValue(const ScriptValue& object, QVector2D& qVector2D) { · 51 unmodified lines | ||
| 127 | 118 | |
| 128 | 119 | ScriptValue qVector3DToScriptValue(ScriptEngine* engine, const QVector3D& qVector3D) { |
| 129 | 120 | glm::vec3 vec3(qVector3D.x(), qVector3D.y(), qVector3D.z()); |
| 130 | −#ifdef CONVERSIONS_OPTIMIZED_FOR_V8 | |
| 131 | − return vec3ToScriptValueFast(engine, vec3); | |
| 132 | −#else | |
| 133 | 121 | return vec3ToScriptValue(engine, vec3); |
| 134 | −#endif | |
| 135 | 122 | } |
| 136 | 123 | |
| 137 | 124 | bool qVector3DFromScriptValue(const ScriptValue& object, QVector3D& qVector3D) { |
| @@ -191,6 +178,7 @@ bool vec2FromScriptValue(const ScriptValue& object, glm::vec2& vec2) { · 53 unmodified lines | ||
| 191 | 178 | return true; |
| 192 | 179 | } |
| 193 | 180 | |
| 181 | +#ifndef CONVERSIONS_OPTIMIZED_FOR_V8 | |
| 194 | 182 | ScriptValue vec3ToScriptValue(ScriptEngine* engine, const glm::vec3& vec3) { |
| 195 | 183 | auto prototype = engine->globalObject().property("__hifi_vec3__"); |
| 196 | 184 | if (!prototype.hasProperty("defined") || !prototype.property("defined").toBool()) { |
| @@ -215,6 +203,7 @@ ScriptValue vec3ToScriptValue(ScriptEngine* engine, const glm::vec3& vec3) { · 18 unmodified lines | ||
| 215 | 203 | value.setPrototype(prototype); |
| 216 | 204 | return value; |
| 217 | 205 | } |
| 206 | +#endif | |
| 218 | 207 | |
| 219 | 208 | ScriptValue vec3ColorToScriptValue(ScriptEngine* engine, const glm::vec3& vec3) { |
| 220 | 209 | auto prototype = engine->globalObject().property("__hifi_vec3_color__"); |
| @@ -242,6 +231,7 @@ ScriptValue vec3ColorToScriptValue(ScriptEngine* engine, const glm::vec3& vec3) · 21 unmodified lines | ||
| 242 | 231 | } |
| 243 | 232 | |
| 244 | 233 | // V8TODO: add similar checks to rest of the conversions |
| 234 | +#ifndef CONVERSIONS_OPTIMIZED_FOR_V8 | |
| 245 | 235 | bool vec3FromScriptValue(const ScriptValue& object, glm::vec3& vec3) { |
| 246 | 236 | if (object.isNumber()) { |
| 247 | 237 | vec3 = glm::vec3(object.toVariant().toFloat()); |
| @@ -301,6 +291,7 @@ bool vec3FromScriptValue(const ScriptValue& object, glm::vec3& vec3) { · 53 unmodified lines | ||
| 301 | 291 | } |
| 302 | 292 | return true; |
| 303 | 293 | } |
| 294 | +#endif | |
| 304 | 295 | |
| 305 | 296 | ScriptValue u8vec3ToScriptValue(ScriptEngine* engine, const glm::u8vec3& vec3) { |
| 306 | 297 | auto prototype = engine->globalObject().property("__hifi_u8vec3__"); |
| @@ -470,11 +461,7 @@ ScriptValue qVectorVec3ColorToScriptValue(ScriptEngine* engine, const QVector<gl · 163 unmodified lines | ||
| 470 | 461 | ScriptValue qVectorVec3ToScriptValue(ScriptEngine* engine, const QVector<glm::vec3>& vector) { |
| 471 | 462 | ScriptValue array = engine->newArray(); |
| 472 | 463 | 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 | |
| 476 | 464 | array.setProperty(i, vec3ToScriptValue(engine, vector.at(i))); |
| 477 | −#endif | |
| 478 | 465 | } |
| 479 | 466 | return array; |
| 480 | 467 | } |
| @@ -794,17 +781,9 @@ bool qURLFromScriptValue(const ScriptValue& object, QUrl& url) { · 313 unmodified lines | ||
| 794 | 781 | |
| 795 | 782 | ScriptValue pickRayToScriptValue(ScriptEngine* engine, const PickRay& pickRay) { |
| 796 | 783 | ScriptValue obj = engine->newObject(); |
| 797 | −#ifdef CONVERSIONS_OPTIMIZED_FOR_V8 | |
| 798 | − ScriptValue origin = vec3ToScriptValueFast(engine, pickRay.origin); | |
| 799 | −#else | |
| 800 | 784 | ScriptValue origin = vec3ToScriptValue(engine, pickRay.origin); |
| 801 | −#endif | |
| 802 | 785 | obj.setProperty("origin", origin); |
| 803 | −#ifdef CONVERSIONS_OPTIMIZED_FOR_V8 | |
| 804 | − ScriptValue direction = vec3ToScriptValueFast(engine, pickRay.direction); | |
| 805 | −#else | |
| 806 | 786 | ScriptValue direction = vec3ToScriptValue(engine, pickRay.direction); |
| 807 | −#endif | |
| 808 | 787 | obj.setProperty("direction", direction); |
| 809 | 788 | return obj; |
| 810 | 789 | } |
| @@ -850,15 +829,9 @@ ScriptValue collisionToScriptValue(ScriptEngine* engine, const Collision& collis · 39 unmodified lines | ||
| 850 | 829 | obj.setProperty("type", collision.type); |
| 851 | 830 | obj.setProperty("idA", quuidToScriptValue(engine, collision.idA)); |
| 852 | 831 | 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 | |
| 858 | 832 | obj.setProperty("penetration", vec3ToScriptValue(engine, collision.penetration)); |
| 859 | 833 | obj.setProperty("contactPoint", vec3ToScriptValue(engine, collision.contactPoint)); |
| 860 | 834 | obj.setProperty("velocityChange", vec3ToScriptValue(engine, collision.velocityChange)); |
| 861 | −#endif | |
| 862 | 835 | return obj; |
| 863 | 836 | } |
| 864 | 837 | |