[AC_HELP_STRING([--enable-javascript],
[Enable JavaScript plugin])] ,
[enable_javascript=$enableval],
- [enable_javascript=no])
+ [enable_javascript=automatic])
if test "x$enable_debug" = "xyes"; then
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();
```
* @type Vector3
* @property sizeModeFactor
*/
-SIZE_MODE_FACTOR
\ No newline at end of file
+SIZE_MODE_FACTOR
+++ /dev/null
-/**
- *
-# 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
-*/
-
-
-
-
-
$(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 \
#include <actors/layer-api.h>
#include <actors/actor-api.h>
#include <actors/image-actor-api.h>
-#include <actors/mesh-actor-api.h>
#include <actors/camera-actor-api.h>
-#include <actors/renderable-actor-api.h>
#include <v8-utils.h>
#include <dali-wrapper.h>
v8::Persistent<v8::ObjectTemplate> ActorWrapper::mActorTemplate;
v8::Persistent<v8::ObjectTemplate> ActorWrapper::mImageActorTemplate;
-v8::Persistent<v8::ObjectTemplate> ActorWrapper::mMeshActorTemplate;
v8::Persistent<v8::ObjectTemplate> ActorWrapper::mCameraActorTemplate;
v8::Persistent<v8::ObjectTemplate> ActorWrapper::mLayerActorTemplate;
v8::Persistent<v8::ObjectTemplate> ActorWrapper::mTextLabelTemplate;
{
{ &ActorWrapper::mActorTemplate }, // ACTOR
{ &ActorWrapper::mImageActorTemplate }, // IMAGE_ACTOR
- { &ActorWrapper::mMeshActorTemplate }, // MESH_ACTOR
{ &ActorWrapper::mLayerActorTemplate }, // LAYER_ACTOR
{ &ActorWrapper::mCameraActorTemplate}, // CAMERA_ACTOR
{ &ActorWrapper::mTextLabelTemplate }
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,
};
/**
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 },
/**
* 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[]=
{
{ "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 },
// 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
#include <object/property-value-wrapper.h>
#include <image/image-api.h>
#include <image/image-wrapper.h>
-
+#include <shader-effects/shader-effect-api.h>
+#include <shader-effects/shader-effect-wrapper.h>
namespace Dali
{
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<v8::Value>& 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<v8::Value>& 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<v8::Value>& 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<Dali::CullFaceMode>( 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<v8::Value>& 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<v8::Value>& 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<Dali::BlendingMode::Type>( 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<v8::Value>& 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<v8::Object> 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<v8::Value>& 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<v8::Value>& 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<v8::Value>& args )
+{
+ v8::Isolate* isolate = args.GetIsolate();
+ v8::HandleScope handleScope( isolate );
+ ImageActor imageActor = GetImageActor( isolate, args );
+ imageActor.RemoveShaderEffect();
+}
+
} // namespace V8Plugin
} // namespace Dali
*/
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
+++ /dev/null
-/*
- * 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 <object/handle-wrapper.h>
-#include <v8-utils.h>
-
-
-
-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
+++ /dev/null
-#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 <v8.h>
-#include <dali/devel-api/actors/mesh-actor.h>
-
-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__
+++ /dev/null
-/*
- * 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 <object/handle-wrapper.h>
-#include <v8-utils.h>
-#include <object/property-value-wrapper.h>
-#include <shader-effects/shader-effect-api.h>
-#include <shader-effects/shader-effect-wrapper.h>
-
-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<v8::Value>& 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<v8::Value>& 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<v8::Value>& 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<Dali::CullFaceMode>( 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<v8::Value>& 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<v8::Value>& 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<Dali::BlendingMode::Type>( 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<v8::Value>& 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<v8::Object> 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<v8::Value>& 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<v8::Value>& 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<v8::Value>& args )
-{
- v8::Isolate* isolate = args.GetIsolate();
- v8::HandleScope handleScope( isolate );
- RenderableActor actor = GetRenderableActor( isolate, args );
- actor.RemoveShaderEffect();
-}
-
-
-
-} // namespace V8Plugin
-
-} // namespace Dali
+++ /dev/null
-#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 <v8.h>
-#include <dali/public-api/actors/renderable-actor.h>
-
-
-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__
#include <dali/public-api/actors/draw-mode.h>
#include <dali/public-api/actors/image-actor.h>
#include <dali/public-api/actors/blending.h>
-#include <dali/public-api/actors/renderable-actor.h>
#include <dali/public-api/actors/camera-actor.h>
#include <dali/public-api/render-tasks/render-task.h>
#include <dali/public-api/common/loading-state.h>
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;
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 )
}
}
-
-
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;
};
v8::Local<v8::Object > obj = args[0]->ToObject();
- v8::Local<v8::Value> 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<v8::Value> vertexPrefixValue = obj->Get(v8::String::NewFromUtf8( isolate, "vertexShaderPrefix"));
if( vertexPrefixValue->IsString() )
{