From 7d670fbea93dfffa62535078bd8d84139176e0f0 Mon Sep 17 00:00:00 2001 From: Ferran Sole Date: Mon, 29 Jun 2015 11:51:12 +0100 Subject: [PATCH] Changes in Javascript plugin to compile under new mesh api + Removed RenderableActor api, which has been moved to ImageActor + Removed MeshActor api + Changed ShaderEffect api, which no longer support GeometryType + Changed build options so plugin builds automatically if v8 is installed Change-Id: I089ad91188a38994bb2a9d726bd47b576cef12fd --- build/tizen/configure.ac | 2 +- plugins/dali-script-v8/docs/content/actor.js | 3 +- .../docs/content/renderable-actor.js | 19 -- plugins/dali-script-v8/file.list | 2 - .../dali-script-v8/src/actors/actor-wrapper.cpp | 46 +-- .../dali-script-v8/src/actors/image-actor-api.cpp | 310 +++++++++++++++++- .../dali-script-v8/src/actors/image-actor-api.h | 11 + .../dali-script-v8/src/actors/mesh-actor-api.cpp | 60 ---- plugins/dali-script-v8/src/actors/mesh-actor-api.h | 43 --- .../src/actors/renderable-actor-api.cpp | 357 --------------------- .../src/actors/renderable-actor-api.h | 58 ---- .../src/constants/constants-wrapper.cpp | 1 - .../src/shader-effects/shader-effect-api.cpp | 44 +-- 13 files changed, 339 insertions(+), 617 deletions(-) delete mode 100644 plugins/dali-script-v8/docs/content/renderable-actor.js delete mode 100644 plugins/dali-script-v8/src/actors/mesh-actor-api.cpp delete mode 100644 plugins/dali-script-v8/src/actors/mesh-actor-api.h delete mode 100644 plugins/dali-script-v8/src/actors/renderable-actor-api.cpp delete mode 100644 plugins/dali-script-v8/src/actors/renderable-actor-api.h diff --git a/build/tizen/configure.ac b/build/tizen/configure.ac index 1e8c725..6fb8b47 100644 --- a/build/tizen/configure.ac +++ b/build/tizen/configure.ac @@ -62,7 +62,7 @@ AC_ARG_ENABLE([javascript], [AC_HELP_STRING([--enable-javascript], [Enable JavaScript plugin])] , [enable_javascript=$enableval], - [enable_javascript=no]) + [enable_javascript=automatic]) if test "x$enable_debug" = "xyes"; then diff --git a/plugins/dali-script-v8/docs/content/actor.js b/plugins/dali-script-v8/docs/content/actor.js index e4d433b..4938c01 100644 --- a/plugins/dali-script-v8/docs/content/actor.js +++ b/plugins/dali-script-v8/docs/content/actor.js @@ -11,7 +11,6 @@ var actor = new dali.Actor(); var imageActor = new dali.ImageActor(); var textActor = new dali.TextActor("hello world"); -var meshActor = new dali.MeshActor(); var camera = new dali.CameraActor(); var layer = new dali.Layer(); ``` @@ -645,4 +644,4 @@ POSTITION_INHERITANCE * @type Vector3 * @property sizeModeFactor */ -SIZE_MODE_FACTOR \ No newline at end of file +SIZE_MODE_FACTOR diff --git a/plugins/dali-script-v8/docs/content/renderable-actor.js b/plugins/dali-script-v8/docs/content/renderable-actor.js deleted file mode 100644 index b2509bf..0000000 --- a/plugins/dali-script-v8/docs/content/renderable-actor.js +++ /dev/null @@ -1,19 +0,0 @@ -/** - * -# Renderable Actor ( Extends Actor API ) - -Renderable actors are actors that can be drawn. -These currently are: - -- {{#crossLink "ImageActor"}}{{/crossLink}} -- {{#crossLink "TextActor"}}{{/crossLink}} -- {{#crossLink "MeshActor"}}{{/crossLink}} - - @class RenderableActor - @extends Actor -*/ - - - - - diff --git a/plugins/dali-script-v8/file.list b/plugins/dali-script-v8/file.list index 9914d3a..d995aa1 100644 --- a/plugins/dali-script-v8/file.list +++ b/plugins/dali-script-v8/file.list @@ -14,8 +14,6 @@ script_v8_plugin_src_files = \ $(v8_plugin_dir)/actors/layer-api.cpp \ $(v8_plugin_dir)/actors/image-actor-api.cpp \ $(v8_plugin_dir)/actors/camera-actor-api.cpp \ - $(v8_plugin_dir)/actors/mesh-actor-api.cpp \ - $(v8_plugin_dir)/actors/renderable-actor-api.cpp \ $(v8_plugin_dir)/constants/constants-wrapper.cpp \ $(v8_plugin_dir)/animation/animation-api.cpp \ $(v8_plugin_dir)/animation/animation-wrapper.cpp \ diff --git a/plugins/dali-script-v8/src/actors/actor-wrapper.cpp b/plugins/dali-script-v8/src/actors/actor-wrapper.cpp index 1686958..704c2d1 100644 --- a/plugins/dali-script-v8/src/actors/actor-wrapper.cpp +++ b/plugins/dali-script-v8/src/actors/actor-wrapper.cpp @@ -25,9 +25,7 @@ #include #include #include -#include #include -#include #include #include @@ -39,7 +37,6 @@ namespace V8Plugin v8::Persistent ActorWrapper::mActorTemplate; v8::Persistent ActorWrapper::mImageActorTemplate; -v8::Persistent ActorWrapper::mMeshActorTemplate; v8::Persistent ActorWrapper::mCameraActorTemplate; v8::Persistent ActorWrapper::mLayerActorTemplate; v8::Persistent ActorWrapper::mTextLabelTemplate; @@ -63,7 +60,6 @@ const ActorTemplate ActorTemplateLookup[]= { { &ActorWrapper::mActorTemplate }, // ACTOR { &ActorWrapper::mImageActorTemplate }, // IMAGE_ACTOR - { &ActorWrapper::mMeshActorTemplate }, // MESH_ACTOR { &ActorWrapper::mLayerActorTemplate }, // LAYER_ACTOR { &ActorWrapper::mCameraActorTemplate}, // CAMERA_ACTOR { &ActorWrapper::mTextLabelTemplate } @@ -75,11 +71,9 @@ const ActorTemplate ActorTemplateLookup[]= enum ActorApiBitMask { ACTOR_API = 1 << 0, - RENDERABLE_ACTOR_API = 1 << 1, - IMAGE_ACTOR_API = 1 << 2, - MESH_ACTOR_API = 1 << 3, - LAYER_API = 1 << 4, - CAMERA_ACTOR_API = 1 << 5, + IMAGE_ACTOR_API = 1 << 1, + LAYER_API = 1 << 2, + CAMERA_ACTOR_API = 1 << 3, }; /** @@ -99,8 +93,7 @@ struct ActorApiStruct const ActorApiStruct ActorApiLookup[]= { {"Actor", ActorWrapper::ACTOR, ActorApi::New, ACTOR_API }, - {"ImageActor", ActorWrapper::IMAGE_ACTOR, ImageActorApi::New, ACTOR_API | RENDERABLE_ACTOR_API | IMAGE_ACTOR_API }, - {"MeshActor", ActorWrapper::MESH_ACTOR, MeshActorApi::New, ACTOR_API | RENDERABLE_ACTOR_API | MESH_ACTOR_API }, + {"ImageActor", ActorWrapper::IMAGE_ACTOR, ImageActorApi::New, ACTOR_API | IMAGE_ACTOR_API }, {"Layer", ActorWrapper::LAYER_ACTOR, LayerApi::New, ACTOR_API | LAYER_API }, {"CameraActor",ActorWrapper::CAMERA_ACTOR, CameraActorApi::New, ACTOR_API | CAMERA_ACTOR_API }, {"TextLabel", ActorWrapper::TEXT_LABEL, TextLabelApi::New, ACTOR_API }, @@ -172,7 +165,7 @@ struct ActorFunctions /** * Contains a list of all functions that can be called an - * actor / image-actor / mesh-actor/ layer / camera-actor + * actor / image-actor / layer / camera-actor */ const ActorFunctions ActorFunctionTable[]= { @@ -246,24 +239,6 @@ const ActorFunctions ActorFunctionTable[]= { "IsKeyboardFocusable" , ActorApi::IsKeyboardFocusable, ACTOR_API }, //-- should this be a property??? /************************************** - * Renderable Actor API (in order of renderable-actor.h) - **************************************/ - { "SetSortModifier", RenderableActorApi::SetSortModifier, RENDERABLE_ACTOR_API }, - { "GetSortModifier", RenderableActorApi::GetSortModifier, RENDERABLE_ACTOR_API }, - { "SetCullFace", RenderableActorApi::SetCullFace, RENDERABLE_ACTOR_API }, - { "GetCullFace", RenderableActorApi::GetCullFace, RENDERABLE_ACTOR_API }, - { "SetBlendMode", RenderableActorApi::SetBlendMode, RENDERABLE_ACTOR_API }, - { "GetBlendMode", RenderableActorApi::GetBlendMode, RENDERABLE_ACTOR_API }, - { "SetBlendFunc", RenderableActorApi::SetBlendFunc, RENDERABLE_ACTOR_API }, - { "GetBlendFunc", RenderableActorApi::GetBlendFunc, RENDERABLE_ACTOR_API }, - { "SetShaderEffect", RenderableActorApi::SetShaderEffect, RENDERABLE_ACTOR_API }, - { "GetShaderEffect", RenderableActorApi::GetShaderEffect, RENDERABLE_ACTOR_API }, - { "RemoveShaderEffect", RenderableActorApi::RemoveShaderEffect,RENDERABLE_ACTOR_API }, - - - - - /************************************** * Layer API (in order of layer.h) **************************************/ { "GetDepth", LayerApi::GetDepth, LAYER_API }, @@ -294,6 +269,17 @@ const ActorFunctions ActorFunctionTable[]= // ignore GetStyle, use imageActor.style // ignore SetNinePatchBorder use imageActor.border // ignore GetNinePatchBorder use imageActor.border + { "SetSortModifier", ImageActorApi::SetSortModifier, IMAGE_ACTOR_API }, + { "GetSortModifier", ImageActorApi::GetSortModifier, IMAGE_ACTOR_API }, + { "SetCullFace", ImageActorApi::SetCullFace, IMAGE_ACTOR_API }, + { "GetCullFace", ImageActorApi::GetCullFace, IMAGE_ACTOR_API }, + { "SetBlendMode", ImageActorApi::SetBlendMode, IMAGE_ACTOR_API }, + { "GetBlendMode", ImageActorApi::GetBlendMode, IMAGE_ACTOR_API }, + { "SetBlendFunc", ImageActorApi::SetBlendFunc, IMAGE_ACTOR_API }, + { "GetBlendFunc", ImageActorApi::GetBlendFunc, IMAGE_ACTOR_API }, + { "SetShaderEffect", ImageActorApi::SetShaderEffect, IMAGE_ACTOR_API }, + { "GetShaderEffect", ImageActorApi::GetShaderEffect, IMAGE_ACTOR_API }, + { "RemoveShaderEffect", ImageActorApi::RemoveShaderEffect,IMAGE_ACTOR_API }, // ignore SetFadeIn use imageActor.fadeIn // ignore GetFadeIn use imageActor.fadeIn // ignore SetFadeInDuration use imageActor.fadeInDuration diff --git a/plugins/dali-script-v8/src/actors/image-actor-api.cpp b/plugins/dali-script-v8/src/actors/image-actor-api.cpp index d8644a5..7394fa0 100644 --- a/plugins/dali-script-v8/src/actors/image-actor-api.cpp +++ b/plugins/dali-script-v8/src/actors/image-actor-api.cpp @@ -24,7 +24,8 @@ #include #include #include - +#include +#include namespace Dali { @@ -150,6 +151,313 @@ void ImageActorApi::GetImage( const v8::FunctionCallbackInfo& args ) args.GetReturnValue().Set( localObject ); } +/** + * Allows modification of an actors position in the depth sort algorithm. + * + * The offset can be altered for each coplanar actor hence allowing an order of painting. + * @param { Number } depthOffset the offset to be given to the actor. Positive values pushing it further back. + * @for ImageActor + * @method setSortModifier + */ +void ImageActorApi::SetSortModifier( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + + bool found( false ); + float value = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 0.f ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" ); + return; + } + imageActor.SetSortModifier( value ); +} + +/** + * Retrieves the offset used to modify an actors position in the depth sort algorithm. + * @for ImageActor + * @method getSortModifier . + * @return { Number} the offset that has been given to the actor. Positive values pushing it further back + */ +void ImageActorApi::GetSortModifier( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + + args.GetReturnValue().Set( v8::Number::New( isolate, imageActor.GetSortModifier() ) ); + +} + +/** + * Set the face-culling mode for this actor. + * @for ImageActor + * @method setCullFace + * @param {Number} cullMode + * @example + * // cull mode should be one of the following constants + * dali.CULL_FACE_DISABLE // Face culling disabled + * dali.CULL_FRONT_FACE // Cull front facing polygons + * dali.CULL_BACK_FACE // Cull back facing polygons + * dali.CULL_FRONT_AND_BACK_FACE // Cull front and back facing polygons + * actor.SetCullFace( dali.CULL_FRONT_FACE ); + */ +void ImageActorApi::SetCullFace( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + + bool found( false ); + int cullMode = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" ); + return; + } + + imageActor.SetCullFace( static_cast( cullMode ) ); + +} + +/** + * Retrieve the face-culling mode for this actor. + * @for ImageActor + * @method getCullFace + * @return {Number} cullMode + * @example + * // cull mode is one of the following + * dali.CULL_FACE_DISABLE // Face culling disabled + * dali.CULL_FRONT_FACE // Cull front facing polygons + * dali.CULL_BACK_FACE // Cull back facing polygons + * dali.CULL_FRONT_AND_BACK_FACE // Cull front and back facing polygon + */ +void ImageActorApi::GetCullFace( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + + args.GetReturnValue().Set( v8::Integer::New( isolate, imageActor.GetCullFace() ) ); + +} + +/** + * Sets the blending mode. + * + * If blending is disabled (BLENDING_OFF) fade in and fade out animations do not work. + * + * @example + * // blend mode is one of the following + * dali.BLENDING_OFF // Blending is disabled. + * dali.BLENDING_AUTO // Blending is enabled if there is alpha channel. + * dali.BLENDING_ON // Blending is enabled. + * actor.SetBlendMode( dali.BLENDING_AUTO ); + * + * @for ImageActor + * @method setBlendMode + * @param { Number } blendMode + */ +void ImageActorApi::SetBlendMode( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + + bool found( false ); + int mode = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 ); + if( !found ) + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid BlendMode parameter" ); + return; + } + imageActor.SetBlendMode( static_cast( mode ) ); + +} + +/** + * @for ImageActor + * @method getBlendMode + * @return { Number } blendMode + * @example returns one of the following: + * + * dali.BLENDING_OFF // Blending is disabled. + * dali.BLENDING_AUTO // Blending is enabled if there is alpha channel. + * dali.BLENDING_ON // Blending is enabled. + * + */ +void ImageActorApi::GetBlendMode( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + + args.GetReturnValue().Set( v8::Integer::New( isolate, imageActor.GetBlendMode() ) ); + +} + +/** + * @for ImageActor + * @method setBlendFunc + * @param {Number} SourceBlending RGB + * @param {Number} DestinationBlending RGB + * @param {Number} SourceBlending Alpha + * @param {Number} DestinatinoBlending Alpha + * @example + * //blending constants + dali.BLEND_FACTOR_ZERO + dali.BLEND_FACTOR_ONE + dali.BLEND_FACTOR_SRC_COLOR + dali.BLEND_FACTOR_ONE_MINUS_SRC_COLOR + dali.BLEND_FACTOR_SRC_ALPHA + dali.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA + dali.BLEND_FACTOR_DST_ALPHA + dali.BLEND_FACTOR_ONE_MINUS_DST_ALPHA + dali.BLEND_FACTOR_DST_COLOR + dali.BLEND_FACTOR_ONE_MINUS_DST_COLOR + dali.BLEND_FACTOR_SRC_ALPHA_SATURATE + dali.BLEND_FACTOR_CONSTANT_COLOR + dali.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR + dali.BLEND_FACTOR_CONSTANT_ALPHA + dali.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA + + actor.setBlendFunc( dali.BLEND_FACTOR_CONSTANT_COLOR, BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, + dali.BLEND_FACTOR_CONSTANT_ALPHA, BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA); + + ); + */ +void ImageActorApi::SetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + + int params[4]; + bool foundAllParams(false); + V8Utils::ReadIntegerArguments( foundAllParams, ¶ms[0], 4, args,0 ); + if( foundAllParams ) + { + imageActor.SetBlendFunc( static_cast< Dali::BlendingFactor::Type>(params[0]), + static_cast< Dali::BlendingFactor::Type>(params[1]), + static_cast< Dali::BlendingFactor::Type>(params[2]), + static_cast< Dali::BlendingFactor::Type>(params[3])); + } + else + { + DALI_SCRIPT_EXCEPTION( isolate, "invalid BlendMode parameter"); + return; + } +} + +/** + * @for ImageActor + * @method GetBlendFunc + * @return {Object} BlendProperties + * @example Blend properties object has 4 fields + * + * blendProperties.sourceRgb // source rgb enum + * blendProperties.destinationRgb // destination rgb enum + * blendProperties.sourceAlpha source // alpha enum + * blendProperties.destinationAlpha // destination alpha enum + */ +void ImageActorApi::GetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ) +{ + // @todo pass by reference doesn't work in Javascript so need to decide what to return + // for now just return a vector 4... + + BlendingFactor::Type srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha; + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + + imageActor.GetBlendFunc( srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha ); + + v8::Local blendInfo = v8::Object::New( isolate ); + + blendInfo->Set( v8::String::NewFromUtf8( isolate, "sourceRgb" ), v8::Integer::New( isolate, srcFactorRgb) ); + blendInfo->Set( v8::String::NewFromUtf8( isolate, "destinationRgb" ), v8::Integer::New( isolate, destFactorRgb ) ); + blendInfo->Set( v8::String::NewFromUtf8( isolate, "sourceAlpha" ), v8::Integer::New( isolate, srcFactorAlpha ) ); + blendInfo->Set( v8::String::NewFromUtf8( isolate, "destinationAlpha" ), v8::Integer::New( isolate, destFactorAlpha ) ); + + args.GetReturnValue().Set( blendInfo ); + +} + +/** + * @for ImageActor + * @method getShaderEffect + * @return {Object} ShaderEffect object + * + * Retrieve the shader effect for the Actor. + * + * @example + * var shaderEffect = actor.getShaderEffect(); + * + */ +void ImageActorApi::GetShaderEffect( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + + v8::Local < v8::Object > object = ShaderEffectWrapper::WrapShaderEffect( isolate, imageActor.GetShaderEffect() ); + args.GetReturnValue().Set( object ); + +} + +/** + * @for ImageActor + * @method setShaderEffect + * @param {Object} shaderEffect The shader effect. + * + * Sets the shader effect for the Actor. + * + * Shader effects provide special effects like rippling and bending. + * Setting a shader effect removes any shader effect previously set by SetShaderEffect. + * @example + * // first create the shaderOptions, then the shaderEffect + * var shader = new dali.ShaderEffect( shaderOptions ); + * actor.setShaderEffect( shader ); + * + */ +void ImageActorApi::SetShaderEffect( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + + bool found( false ); + ShaderEffect effect = ShaderEffectApi::GetShaderEffectFromParams( 0, found, isolate, args ); + if( found ) + { + imageActor.SetShaderEffect( effect ); + } + else + { + DALI_SCRIPT_EXCEPTION( isolate, "shader effect parameter missing" ); + } +} + +/** + * + * Removes the current shader effect + * + * @example + * actor.removeShaderEffect(); + * + * @for ImageActor + * @method removeShaderEffect + */ +void ImageActorApi::RemoveShaderEffect( const v8::FunctionCallbackInfo& args ) +{ + v8::Isolate* isolate = args.GetIsolate(); + v8::HandleScope handleScope( isolate ); + ImageActor imageActor = GetImageActor( isolate, args ); + imageActor.RemoveShaderEffect(); +} + } // namespace V8Plugin } // namespace Dali diff --git a/plugins/dali-script-v8/src/actors/image-actor-api.h b/plugins/dali-script-v8/src/actors/image-actor-api.h index 4bdbe76..2d00599 100644 --- a/plugins/dali-script-v8/src/actors/image-actor-api.h +++ b/plugins/dali-script-v8/src/actors/image-actor-api.h @@ -42,6 +42,17 @@ namespace ImageActorApi */ void SetImage( const v8::FunctionCallbackInfo< v8::Value >& args ); void GetImage( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetSortModifier( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetSortModifier( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetCullFace( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetCullFace( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetBlendMode( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetBlendMode( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ); + void GetShaderEffect( const v8::FunctionCallbackInfo< v8::Value >& args ); + void SetShaderEffect( const v8::FunctionCallbackInfo< v8::Value >& args ); + void RemoveShaderEffect( const v8::FunctionCallbackInfo< v8::Value >& args ); }; // namespace ImageActorApi } // namespace V8Plugin diff --git a/plugins/dali-script-v8/src/actors/mesh-actor-api.cpp b/plugins/dali-script-v8/src/actors/mesh-actor-api.cpp deleted file mode 100644 index a22ccae..0000000 --- a/plugins/dali-script-v8/src/actors/mesh-actor-api.cpp +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// CLASS HEADER -#include "mesh-actor-api.h" - -// INTERNAL INCLUDES -#include -#include - - - -namespace Dali -{ - -namespace V8Plugin -{ - -namespace //unnamed name space -{ - -MeshActor GetMeshActor( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) -{ - HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, args.This() ); - return MeshActor::DownCast( handleWrapper->mHandle ); -} - -} //unnamed name space - -/*************************************** - * MESH ACTOR FUNCTIONS - ****************************************/ -/** - * @constructor - * @for MeshActor - * @method MeshActor - * @return {Object} MeshActor - */ -Actor MeshActorApi::New( const v8::FunctionCallbackInfo< v8::Value >& args ) -{ - return MeshActor::New(); -} - -} // namespace V8Plugin - -} // namespace Dali diff --git a/plugins/dali-script-v8/src/actors/mesh-actor-api.h b/plugins/dali-script-v8/src/actors/mesh-actor-api.h deleted file mode 100644 index 5058039..0000000 --- a/plugins/dali-script-v8/src/actors/mesh-actor-api.h +++ /dev/null @@ -1,43 +0,0 @@ -#ifndef __DALI_V8PLUGIN_MESH_ACTOR_API_H__ -#define __DALI_V8PLUGIN_MESH_ACTOR_API_H__ - -/* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// EXTERNAL INCLUDES -#include -#include - -namespace Dali -{ - -namespace V8Plugin -{ - -namespace MeshActorApi -{ - /** - * constructor - */ - Actor New( const v8::FunctionCallbackInfo< v8::Value >& args ); -}; // namespace MeshActorApi - -} // namespace V8Plugin - -} // namespace Dali - -#endif // header __DALI_V8PLUGIN_MESH_ACTOR_API_H__ diff --git a/plugins/dali-script-v8/src/actors/renderable-actor-api.cpp b/plugins/dali-script-v8/src/actors/renderable-actor-api.cpp deleted file mode 100644 index 14b2baf..0000000 --- a/plugins/dali-script-v8/src/actors/renderable-actor-api.cpp +++ /dev/null @@ -1,357 +0,0 @@ -/* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -// CLASS HEADER -#include "renderable-actor-api.h" - -// INTERNAL INCLUDES -#include -#include -#include -#include -#include - -namespace Dali -{ - -namespace V8Plugin -{ - -namespace //unnamed name space -{ -RenderableActor GetRenderableActor( v8::Isolate* isolate, const v8::FunctionCallbackInfo< v8::Value >& args ) -{ - HandleWrapper* handleWrapper = HandleWrapper::Unwrap( isolate, args.This() ); - return RenderableActor::DownCast( handleWrapper->mHandle ); -} -} -/*************************************** - * RENDERABLE ACTOR FUNCTIONS - * - ****************************************/ -/** - * Allows modification of an actors position in the depth sort algorithm. - * - * The offset can be altered for each coplanar actor hence allowing an order of painting. - * @param { Number } depthOffset the offset to be given to the actor. Positive values pushing it further back. - * @for RenderableActor - * @method setSortModifier - */ -void RenderableActorApi::SetSortModifier( const v8::FunctionCallbackInfo& args ) -{ - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - - bool found( false ); - float value = V8Utils::GetFloatParameter( PARAMETER_0, found, isolate, args, 0.f ); - if( !found ) - { - DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" ); - return; - } - actor.SetSortModifier( value ); -} - -/** - * Retrieves the offset used to modify an actors position in the depth sort algorithm. - * @for RenderableActor - * @method getSortModifier . - * @return { Number} the offset that has been given to the actor. Positive values pushing it further back - */ -void RenderableActorApi::GetSortModifier( const v8::FunctionCallbackInfo& args ) -{ - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - - args.GetReturnValue().Set( v8::Number::New( isolate, actor.GetSortModifier() ) ); - -} - -/** - * Set the face-culling mode for this actor. - * @for RenderableActor - * @method setCullFace - * @param {Number} cullMode - * @example - * // cull mode should be one of the following constants - * dali.CULL_FACE_DISABLE // Face culling disabled - * dali.CULL_FRONT_FACE // Cull front facing polygons - * dali.CULL_BACK_FACE // Cull back facing polygons - * dali.CULL_FRONT_AND_BACK_FACE // Cull front and back facing polygons - * actor.SetCullFace( dali.CULL_FRONT_FACE ); - */ -void RenderableActorApi::SetCullFace( const v8::FunctionCallbackInfo& args ) -{ - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - - bool found( false ); - int cullMode = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 ); - if( !found ) - { - DALI_SCRIPT_EXCEPTION( isolate, "bad parameter" ); - return; - } - - actor.SetCullFace( static_cast( cullMode ) ); - -} - -/** - * Retrieve the face-culling mode for this actor. - * @for RenderableActor - * @method getCullFace - * @return {Number} cullMode - * @example - * // cull mode is one of the following - * dali.CULL_FACE_DISABLE // Face culling disabled - * dali.CULL_FRONT_FACE // Cull front facing polygons - * dali.CULL_BACK_FACE // Cull back facing polygons - * dali.CULL_FRONT_AND_BACK_FACE // Cull front and back facing polygon - */ -void RenderableActorApi::GetCullFace( const v8::FunctionCallbackInfo& args ) -{ - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - - args.GetReturnValue().Set( v8::Integer::New( isolate, actor.GetCullFace() ) ); - -} - -/** - * Sets the blending mode. - * - * If blending is disabled (BLENDING_OFF) fade in and fade out animations do not work. - * - * @example - * // blend mode is one of the following - * dali.BLENDING_OFF // Blending is disabled. - * dali.BLENDING_AUTO // Blending is enabled if there is alpha channel. - * dali.BLENDING_ON // Blending is enabled. - * actor.SetBlendMode( dali.BLENDING_AUTO ); - * - * @for RenderableActor - * @method setBlendMode - * @param { Number } blendMode - */ -void RenderableActorApi::SetBlendMode( const v8::FunctionCallbackInfo& args ) -{ - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - - bool found( false ); - int mode = V8Utils::GetIntegerParameter( PARAMETER_0, found, isolate, args, 0 ); - if( !found ) - { - DALI_SCRIPT_EXCEPTION( isolate, "invalid BlendMode parameter" ); - return; - } - actor.SetBlendMode( static_cast( mode ) ); - -} - -/** - * @for RenderableActor - * @method getBlendMode - * @return { Number } blendMode - * @example returns one of the following: - * - * dali.BLENDING_OFF // Blending is disabled. - * dali.BLENDING_AUTO // Blending is enabled if there is alpha channel. - * dali.BLENDING_ON // Blending is enabled. - * - */ -void RenderableActorApi::GetBlendMode( const v8::FunctionCallbackInfo& args ) -{ - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - - args.GetReturnValue().Set( v8::Integer::New( isolate, actor.GetBlendMode() ) ); - -} - -/** - * @for RenderableActor - * @method setBlendFunc - * @param {Number} SourceBlending RGB - * @param {Number} DestinationBlending RGB - * @param {Number} SourceBlending Alpha - * @param {Number} DestinatinoBlending Alpha - * @example - * //blending constants - dali.BLEND_FACTOR_ZERO - dali.BLEND_FACTOR_ONE - dali.BLEND_FACTOR_SRC_COLOR - dali.BLEND_FACTOR_ONE_MINUS_SRC_COLOR - dali.BLEND_FACTOR_SRC_ALPHA - dali.BLEND_FACTOR_ONE_MINUS_SRC_ALPHA - dali.BLEND_FACTOR_DST_ALPHA - dali.BLEND_FACTOR_ONE_MINUS_DST_ALPHA - dali.BLEND_FACTOR_DST_COLOR - dali.BLEND_FACTOR_ONE_MINUS_DST_COLOR - dali.BLEND_FACTOR_SRC_ALPHA_SATURATE - dali.BLEND_FACTOR_CONSTANT_COLOR - dali.BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR - dali.BLEND_FACTOR_CONSTANT_ALPHA - dali.BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA - - actor.setBlendFunc( dali.BLEND_FACTOR_CONSTANT_COLOR, BLEND_FACTOR_ONE_MINUS_CONSTANT_COLOR, - dali.BLEND_FACTOR_CONSTANT_ALPHA, BLEND_FACTOR_ONE_MINUS_CONSTANT_ALPHA); - - ); - */ -void RenderableActorApi::SetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ) -{ - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - - int params[4]; - bool foundAllParams(false); - V8Utils::ReadIntegerArguments( foundAllParams, ¶ms[0], 4, args,0 ); - if( foundAllParams ) - { - actor.SetBlendFunc( static_cast< Dali::BlendingFactor::Type>(params[0]), - static_cast< Dali::BlendingFactor::Type>(params[1]), - static_cast< Dali::BlendingFactor::Type>(params[2]), - static_cast< Dali::BlendingFactor::Type>(params[3])); - } - else - { - DALI_SCRIPT_EXCEPTION( isolate, "invalid BlendMode parameter"); - return; - } -} - -/** - * @for RenderableActor - * @method GetBlendFunc - * @return {Object} BlendProperties - * @example Blend properties object has 4 fields - * - * blendProperties.sourceRgb // source rgb enum - * blendProperties.destinationRgb // destination rgb enum - * blendProperties.sourceAlpha source // alpha enum - * blendProperties.destinationAlpha // destination alpha enum - */ -void RenderableActorApi::GetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ) -{ - // @todo pass by reference doesn't work in Javascript so need to decide what to return - // for now just return a vector 4... - - BlendingFactor::Type srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha; - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - - actor.GetBlendFunc( srcFactorRgb, destFactorRgb, srcFactorAlpha, destFactorAlpha ); - - v8::Local blendInfo = v8::Object::New( isolate ); - - blendInfo->Set( v8::String::NewFromUtf8( isolate, "sourceRgb" ), v8::Integer::New( isolate, srcFactorRgb) ); - blendInfo->Set( v8::String::NewFromUtf8( isolate, "destinationRgb" ), v8::Integer::New( isolate, destFactorRgb ) ); - blendInfo->Set( v8::String::NewFromUtf8( isolate, "sourceAlpha" ), v8::Integer::New( isolate, srcFactorAlpha ) ); - blendInfo->Set( v8::String::NewFromUtf8( isolate, "destinationAlpha" ), v8::Integer::New( isolate, destFactorAlpha ) ); - - args.GetReturnValue().Set( blendInfo ); - -} - -/** - * @for RenderableActor - * @method getShaderEffect - * @return {Object} ShaderEffect object - * - * Retrieve the shader effect for the Actor. - * - * @example - * var shaderEffect = actor.getShaderEffect(); - * - */ -void RenderableActorApi::GetShaderEffect( const v8::FunctionCallbackInfo& args ) -{ - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - - v8::Local < v8::Object > object = ShaderEffectWrapper::WrapShaderEffect( isolate, actor.GetShaderEffect() ); - args.GetReturnValue().Set( object ); - -} - -/** - * @for RenderableActor - * @method setShaderEffect - * @param {Object} shaderEffect The shader effect. - * - * Sets the shader effect for the Actor. - * - * Shader effects provide special effects like rippling and bending. - * Setting a shader effect removes any shader effect previously set by SetShaderEffect. - * @example - * // first create the shaderOptions, then the shaderEffect - * var shader = new dali.ShaderEffect( shaderOptions ); - * actor.setShaderEffect( shader ); - * - */ -void RenderableActorApi::SetShaderEffect( const v8::FunctionCallbackInfo& args ) -{ - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - - bool found( false ); - ShaderEffect effect = ShaderEffectApi::GetShaderEffectFromParams( 0, found, isolate, args ); - if( found ) - { - actor.SetShaderEffect( effect ); - } - else - { - DALI_SCRIPT_EXCEPTION( isolate, "shader effect parameter missing" ); - } -} - -/** - * - * Removes the current shader effect - * - * @example - * actor.removeShaderEffect(); - * - * @for RenderableActor - * @method removeShaderEffect - */ -void RenderableActorApi::RemoveShaderEffect( const v8::FunctionCallbackInfo& args ) -{ - v8::Isolate* isolate = args.GetIsolate(); - v8::HandleScope handleScope( isolate ); - RenderableActor actor = GetRenderableActor( isolate, args ); - actor.RemoveShaderEffect(); -} - - - -} // namespace V8Plugin - -} // namespace Dali diff --git a/plugins/dali-script-v8/src/actors/renderable-actor-api.h b/plugins/dali-script-v8/src/actors/renderable-actor-api.h deleted file mode 100644 index 79716a1..0000000 --- a/plugins/dali-script-v8/src/actors/renderable-actor-api.h +++ /dev/null @@ -1,58 +0,0 @@ -#ifndef __DALI_V8PLUGIN_RENDERABLE_ACTOR_API_H__ -#define __DALI_V8PLUGIN_RENDERABLE_ACTOR_API_H__ - -/* - * Copyright (c) 2015 Samsung Electronics Co., Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - - -// EXTERNAL INCLUDES -#include -#include - - -namespace Dali -{ - -namespace V8Plugin -{ - -namespace RenderableActorApi -{ - /** - * RenderableActor API see renderable-actor.h for a description - * Unfortunately none of the functions are covered by the property system - */ - void SetSortModifier( const v8::FunctionCallbackInfo< v8::Value >& args ); - void GetSortModifier( const v8::FunctionCallbackInfo< v8::Value >& args ); - void SetCullFace( const v8::FunctionCallbackInfo< v8::Value >& args ); - void GetCullFace( const v8::FunctionCallbackInfo< v8::Value >& args ); - void SetBlendMode( const v8::FunctionCallbackInfo< v8::Value >& args ); - void GetBlendMode( const v8::FunctionCallbackInfo< v8::Value >& args ); - void SetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ); - void GetBlendFunc( const v8::FunctionCallbackInfo< v8::Value >& args ); - void GetShaderEffect( const v8::FunctionCallbackInfo< v8::Value >& args ); - void SetShaderEffect( const v8::FunctionCallbackInfo< v8::Value >& args ); - void RemoveShaderEffect( const v8::FunctionCallbackInfo< v8::Value >& args ); - - -}; // namespace RenderableActorApi - -} // namespace V8Plugin - -} // namespace Dali - -#endif // header __DALI_V8PLUGIN_RENDERABLE_ACTOR_API_H__ diff --git a/plugins/dali-script-v8/src/constants/constants-wrapper.cpp b/plugins/dali-script-v8/src/constants/constants-wrapper.cpp index 4217d98..c3b2043 100644 --- a/plugins/dali-script-v8/src/constants/constants-wrapper.cpp +++ b/plugins/dali-script-v8/src/constants/constants-wrapper.cpp @@ -29,7 +29,6 @@ #include #include #include -#include #include #include #include diff --git a/plugins/dali-script-v8/src/shader-effects/shader-effect-api.cpp b/plugins/dali-script-v8/src/shader-effects/shader-effect-api.cpp index 4d65e64..5143d49 100644 --- a/plugins/dali-script-v8/src/shader-effects/shader-effect-api.cpp +++ b/plugins/dali-script-v8/src/shader-effects/shader-effect-api.cpp @@ -37,22 +37,6 @@ namespace // un named namespace typedef std::vector< std::string > HintsArray; - -struct GeometryTypePair -{ - const char* name; - GeometryType type; -}; - -const GeometryTypePair GeometryTypeTable[]= -{ - {"image", GEOMETRY_TYPE_IMAGE }, - {"mesh", GEOMETRY_TYPE_UNTEXTURED_MESH }, - {"textured-mesh", GEOMETRY_TYPE_TEXTURED_MESH }, -}; - -const unsigned int GeometryTypeTableCount = sizeof(GeometryTypeTable)/sizeof(GeometryTypeTable[0]); - struct GeometryHintPair { const char* name; @@ -77,24 +61,10 @@ const unsigned int GeometryHintTableCount = sizeof(GeometryHintTable)/sizeof(Geo struct ShaderParameters { ShaderParameters() - : mType( GEOMETRY_TYPE_IMAGE), - mHints( ShaderEffect::HINT_NONE ) + : mHints( ShaderEffect::HINT_NONE ) { } - void SetGeometryType( v8::Isolate* isolate, const std::string& typeName ) - { - for( unsigned int i = 0; i < GeometryTypeTableCount; ++i ) - { - if( typeName == GeometryTypeTable[i].name ) - { - mType = GeometryTypeTable[i].type; - return; - } - } - DALI_SCRIPT_EXCEPTION( isolate, "Geometry type not found\n"); - } - ShaderEffect::GeometryHints GetGeometryHint( const std::string& hint ) { for( unsigned int i = 0 ; i < GeometryHintTableCount; ++i ) @@ -115,22 +85,18 @@ struct ShaderParameters } } - - ShaderEffect NewShader() { return ShaderEffect::NewWithPrefix( mVertexPrefix , mVertex, mFragmentPrefix, mFragment, - mType, mHints); } std::string mVertexPrefix; std::string mVertex; std::string mFragmentPrefix; std::string mFragment; - GeometryType mType; ShaderEffect::GeometryHints mHints; }; @@ -197,14 +163,6 @@ ShaderEffect ShaderEffectApi::New( v8::Isolate* isolate, const v8::FunctionCall v8::Local obj = args[0]->ToObject(); - v8::Local geometryTypeValue = obj->Get(v8::String::NewFromUtf8( isolate, "geometryType")); - if( geometryTypeValue->IsString() ) - { - std::string geometryTypeName = V8Utils::v8StringToStdString( geometryTypeValue ); - // printf(" geometry type found %s \n", geometryTypeName.c_str() ); - shaderParams.SetGeometryType( isolate, geometryTypeName ); - } - v8::Local vertexPrefixValue = obj->Get(v8::String::NewFromUtf8( isolate, "vertexShaderPrefix")); if( vertexPrefixValue->IsString() ) { -- 2.7.4