Includes changes to examples to have correct dali node addon path for running on device.
On device to use dali
var dali = require('dali')(options);
Change-Id: I42e77e63d805bb0dbd3700a4c3969b2b9e2d2cc4
.directory
Makefile.in
Makefile
+CMakeCache.txt
+dali.node
dali.doxy
*~
*.o
--- /dev/null
+Building dali node addon for GBS
+
+Ensure node-devel (0.12.4) rpm is install into gbs. The addon expects /usr/lib/node/node.h to exists
+in the gbs environment
+
+sudo gbs build -A armv7l --include-all --ccache --keep-packs --spec dali-addon.spec
+
+Building for Ubuntu desktop:
+
+2 options:
+
+option 1 (easy): in node-addon folder type
+
+$ node-gyp build
+
+option 2 (harder)
+Ensure node-js source has been downloaded and built from source.
+It doesn't have to be installed anywhere (make sure node executable is in your PATH).
+
+In node-addon/build/tizen direction, run cmake, with the source directory of node
+
+cmake -DDesktopNodePath:String=/home/my-user/Downloads/node-v0.12.4 .
+make
+++ /dev/null
-# Do not edit. File was generated by node-gyp's "configure" step
-{
- "target_defaults": {
- "cflags": [],
- "default_configuration": "Release",
- "defines": [],
- "include_dirs": [],
- "libraries": []
- },
- "variables": {
- "clang": 0,
- "gcc_version": 46,
- "host_arch": "x64",
- "icu_small": "false",
- "node_install_npm": "true",
- "node_prefix": "",
- "node_shared_cares": "false",
- "node_shared_http_parser": "false",
- "node_shared_libuv": "false",
- "node_shared_openssl": "false",
- "node_shared_v8": "false",
- "node_shared_zlib": "false",
- "node_tag": "",
- "node_use_dtrace": "false",
- "node_use_etw": "false",
- "node_use_mdb": "false",
- "node_use_openssl": "true",
- "node_use_perfctr": "false",
- "openssl_no_asm": 0,
- "python": "/usr/bin/python",
- "target_arch": "x64",
- "uv_library": "static_library",
- "uv_parent_path": "/deps/uv/",
- "uv_use_dtrace": "false",
- "v8_enable_gdbjit": 0,
- "v8_enable_i18n_support": 0,
- "v8_no_strict_aliasing": 1,
- "v8_optimized_debug": 0,
- "v8_random_seed": 0,
- "v8_use_snapshot": "true",
- "want_separate_host_toolset": 0,
- "nodedir": "/home/likewise-open/SERILOCAL/nick.holland/.node-gyp/0.12.4",
- "copy_dev_lib": "true",
- "standalone_static_library": 1
- }
-}
+++ /dev/null
-# This file is generated by gyp; do not edit.
-
-TOOLSET := target
-TARGET := dali
-DEFS_Debug := \
- '-DNODE_GYP_MODULE_NAME=dali' \
- '-D_LARGEFILE_SOURCE' \
- '-D_FILE_OFFSET_BITS=64' \
- '-DBUILDING_NODE_EXTENSION' \
- '-DDEBUG' \
- '-D_DEBUG'
-
-# Flags passed to all source files.
-CFLAGS_Debug := \
- -fPIC \
- -pthread \
- -Wall \
- -Wextra \
- -Wno-unused-parameter \
- -m64 \
- -fPIC \
- -frtti \
- -I/home/likewise-open/SERILOCAL/nick.holland/dali-env/opt/include/dali \
- -I/home/likewise-open/SERILOCAL/nick.holland/dali-env/opt/include \
- -g \
- -O0
-
-# Flags passed to only C files.
-CFLAGS_C_Debug :=
-
-# Flags passed to only C++ files.
-CFLAGS_CC_Debug := \
- -fno-rtti \
- -fno-exceptions \
- -fexceptions \
- -frtti
-
-INCS_Debug := \
- -I/home/likewise-open/SERILOCAL/nick.holland/.node-gyp/0.12.4/src \
- -I/home/likewise-open/SERILOCAL/nick.holland/.node-gyp/0.12.4/deps/uv/include \
- -I/home/likewise-open/SERILOCAL/nick.holland/.node-gyp/0.12.4/deps/v8/include \
- -I$(srcdir)/../plugins/dali-script-v8/src \
- -I$(srcdir)/../plugins/dali-script-v8/src/utils
-
-DEFS_Release := \
- '-DNODE_GYP_MODULE_NAME=dali' \
- '-D_LARGEFILE_SOURCE' \
- '-D_FILE_OFFSET_BITS=64' \
- '-DBUILDING_NODE_EXTENSION'
-
-# Flags passed to all source files.
-CFLAGS_Release := \
- -fPIC \
- -pthread \
- -Wall \
- -Wextra \
- -Wno-unused-parameter \
- -m64 \
- -fPIC \
- -frtti \
- -I/home/likewise-open/SERILOCAL/nick.holland/dali-env/opt/include/dali \
- -I/home/likewise-open/SERILOCAL/nick.holland/dali-env/opt/include \
- -O3 \
- -ffunction-sections \
- -fdata-sections \
- -fno-tree-vrp \
- -fno-omit-frame-pointer
-
-# Flags passed to only C files.
-CFLAGS_C_Release :=
-
-# Flags passed to only C++ files.
-CFLAGS_CC_Release := \
- -fno-rtti \
- -fno-exceptions \
- -fexceptions \
- -frtti
-
-INCS_Release := \
- -I/home/likewise-open/SERILOCAL/nick.holland/.node-gyp/0.12.4/src \
- -I/home/likewise-open/SERILOCAL/nick.holland/.node-gyp/0.12.4/deps/uv/include \
- -I/home/likewise-open/SERILOCAL/nick.holland/.node-gyp/0.12.4/deps/v8/include \
- -I$(srcdir)/../plugins/dali-script-v8/src \
- -I$(srcdir)/../plugins/dali-script-v8/src/utils
-
-OBJS := \
- $(obj).target/$(TARGET)/dali-addon.o \
- $(obj).target/$(TARGET)/javascript-application-options.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/utils/v8-utils.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/dali-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/shared/base-wrapped-object.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/shared/object-template-helper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/actors/actor-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/actors/actor-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/actors/layer-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/actors/image-actor-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/actors/camera-actor-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/constants/constants-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/animation/animation-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/animation/animation-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/animation/constrainer-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/animation/linear-constrainer-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/animation/path-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/animation/path-constrainer-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/animation/path-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/stage/stage-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/events/event-object-generator.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/events/pan-gesture-detector-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/events/pan-gesture-detector-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/stage/stage-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/shader-effects/shader-effect-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/shader-effects/shader-effect-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/image/image-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/image/image-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/image/buffer-image-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/image/native-image-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/image/frame-buffer-image-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/image/resource-image-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/image/nine-patch-image-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/object/handle-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/object/property-value-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/signals/signal-manager.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/render-tasks/render-task-list-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/render-tasks/render-task-list-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/render-tasks/render-task-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/render-tasks/render-task-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/toolkit/builder/builder-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/toolkit/builder/builder-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-api.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/toolkit/focus-manager/keyboard-focus-manager-wrapper.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/signals/dali-any-javascript-converter.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/garbage-collector/garbage-collector.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/module-loader/module.o \
- $(obj).target/$(TARGET)/../plugins/dali-script-v8/src/module-loader/module-loader.o
-
-# Add to the list of files we specially track dependencies for.
-all_deps += $(OBJS)
-
-# CFLAGS et al overrides must be target-local.
-# See "Target-specific Variable Values" in the GNU Make manual.
-$(OBJS): TOOLSET := $(TOOLSET)
-$(OBJS): GYP_CFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_C_$(BUILDTYPE))
-$(OBJS): GYP_CXXFLAGS := $(DEFS_$(BUILDTYPE)) $(INCS_$(BUILDTYPE)) $(CFLAGS_$(BUILDTYPE)) $(CFLAGS_CC_$(BUILDTYPE))
-
-# Suffix rules, putting all outputs into $(obj).
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(srcdir)/%.cpp FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-
-# Try building from generated source, too.
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj).$(TOOLSET)/%.cpp FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-
-$(obj).$(TOOLSET)/$(TARGET)/%.o: $(obj)/%.cpp FORCE_DO_CMD
- @$(call do_cmd,cxx,1)
-
-# End of this set of suffix rules
-### Rules for final target.
-LDFLAGS_Debug := \
- -pthread \
- -rdynamic \
- -m64 \
- -L/home/likewise-open/SERILOCAL/nick.holland/dali-env/opt/lib
-
-LDFLAGS_Release := \
- -pthread \
- -rdynamic \
- -m64 \
- -L/home/likewise-open/SERILOCAL/nick.holland/dali-env/opt/lib
-
-LIBS := \
- -ldali-adaptor \
- -ldali-toolkit \
- -ldali-core
-
-$(obj).target/dali.node: GYP_LDFLAGS := $(LDFLAGS_$(BUILDTYPE))
-$(obj).target/dali.node: LIBS := $(LIBS)
-$(obj).target/dali.node: TOOLSET := $(TOOLSET)
-$(obj).target/dali.node: $(OBJS) FORCE_DO_CMD
- $(call do_cmd,solink_module)
-
-all_deps += $(obj).target/dali.node
-# Add target alias
-.PHONY: dali
-dali: $(builddir)/dali.node
-
-# Copy this to the executable output path.
-$(builddir)/dali.node: TOOLSET := $(TOOLSET)
-$(builddir)/dali.node: $(obj).target/dali.node FORCE_DO_CMD
- $(call do_cmd,copy)
-
-all_deps += $(builddir)/dali.node
-# Short alias for building this executable.
-.PHONY: dali.node
-dali.node: $(obj).target/dali.node $(builddir)/dali.node
-
-# Add executable to "all" target.
-.PHONY: all
-all: $(builddir)/dali.node
-
--- /dev/null
+# Guide to build for GBS
+# Build dali-toolkit with gbs, the dali-addon will be built automatically
+#
+# To build for Desktop
+# option 1 (easy): in node-addon folder type
+#
+# $ node-gyp build
+#
+# option 2: use cmake
+# This relies on Node source being downloaded ( don't forget the dot)
+#
+# cmake -DDesktopNodePath:String=/home/Downloads/node-v0.12.4 .
+
+
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
+PROJECT(dali_addon)
+set(configuration "Default")
+enable_language(ASM)
+set(builddir "${CMAKE_BINARY_DIR}")
+set(obj "${builddir}/obj")
+
+set(CMAKE_C_OUTPUT_EXTENSION_REPLACE 1)
+set(CMAKE_CXX_OUTPUT_EXTENSION_REPLACE 1)
+
+option(GBSBuild "GBSBuild" 0)
+option(DesktopNodePath "DesktopNodePath" "")
+
+IF( ${GBSBuild} )
+ set( NODE_HEADERS "/usr/include/node" )
+ set( V8_HEADERS "/usr/include/node" )
+ MESSAGE("Performing a GBS build, ensure Node JS devel RPM is installed")
+ MESSAGE("node.h and v8.h should exist in ${NODE_HEADERS}")
+ELSE()
+ MESSAGE("Performing Desktop build node path =${DesktopNodePath}")
+ IF( NOT DesktopNodePath )
+ MESSAGE(FATAL_ERROR "\n Node JS Source code path empty, please specify,e.g. \n cmake -DDesktopNodePath:String=~/Downloads/node-v0.12.4/ .")
+ ENDIF( NOT DesktopNodePath )
+ set( NODE_HEADERS "${DesktopNodePath}/src" )
+ set( V8_HEADERS "${DesktopNodePath}/deps/v8/include" )
+ MESSAGE( "-- Node include header location = ${NODE_HEADERS} ")
+ MESSAGE( "-- V8 include header location = ${V8_HEADERS} ")
+ENDIF( ${GBSBuild})
+
+set(TARGET "dali_addon")
+set(TOOLSET "target")
+set(PLUGING_SRC_DIR "../../../plugins/dali-script-v8/src")
+set(NODE_ADDON_SRC "../..")
+add_library(dali_addon SHARED
+ ${NODE_ADDON_SRC}/dali-addon.cpp
+ ${NODE_ADDON_SRC}/javascript-application-options.cpp
+ ${PLUGING_SRC_DIR}/utils/v8-utils.cpp
+ ${PLUGING_SRC_DIR}/dali-wrapper.cpp
+ ${PLUGING_SRC_DIR}/shared/base-wrapped-object.cpp
+ ${PLUGING_SRC_DIR}/shared/object-template-helper.cpp
+ ${PLUGING_SRC_DIR}/actors/actor-wrapper.cpp
+ ${PLUGING_SRC_DIR}/actors/actor-api.cpp
+ ${PLUGING_SRC_DIR}/actors/layer-api.cpp
+ ${PLUGING_SRC_DIR}/actors/camera-actor-api.cpp
+ ${PLUGING_SRC_DIR}/constants/constants-wrapper.cpp
+ ${PLUGING_SRC_DIR}/animation/animation-api.cpp
+ ${PLUGING_SRC_DIR}/animation/animation-wrapper.cpp
+ ${PLUGING_SRC_DIR}/animation/constrainer-api.cpp
+ ${PLUGING_SRC_DIR}/animation/linear-constrainer-wrapper.cpp
+ ${PLUGING_SRC_DIR}/animation/path-api.cpp
+ ${PLUGING_SRC_DIR}/animation/path-constrainer-wrapper.cpp
+ ${PLUGING_SRC_DIR}/animation/path-wrapper.cpp
+ ${PLUGING_SRC_DIR}/stage/stage-wrapper.cpp
+ ${PLUGING_SRC_DIR}/events/event-object-generator.cpp
+ ${PLUGING_SRC_DIR}/events/pan-gesture-detector-api.cpp
+ ${PLUGING_SRC_DIR}/events/pan-gesture-detector-wrapper.cpp
+ ${PLUGING_SRC_DIR}/stage/stage-api.cpp
+ ${PLUGING_SRC_DIR}/image/image-wrapper.cpp
+ ${PLUGING_SRC_DIR}/image/image-api.cpp
+ ${PLUGING_SRC_DIR}/image/buffer-image-api.cpp
+ ${PLUGING_SRC_DIR}/image/frame-buffer-image-api.cpp
+ ${PLUGING_SRC_DIR}/image/resource-image-api.cpp
+ ${PLUGING_SRC_DIR}/object/handle-wrapper.cpp
+ ${PLUGING_SRC_DIR}/object/property-buffer-api.cpp
+ ${PLUGING_SRC_DIR}/object/property-buffer-wrapper.cpp
+ ${PLUGING_SRC_DIR}/object/property-value-wrapper.cpp
+ ${PLUGING_SRC_DIR}/signals/signal-manager.cpp
+ ${PLUGING_SRC_DIR}/render-tasks/render-task-list-api.cpp
+ ${PLUGING_SRC_DIR}/render-tasks/render-task-list-wrapper.cpp
+ ${PLUGING_SRC_DIR}/render-tasks/render-task-api.cpp
+ ${PLUGING_SRC_DIR}/render-tasks/render-task-wrapper.cpp
+ ${PLUGING_SRC_DIR}/rendering/geometry-api.cpp
+ ${PLUGING_SRC_DIR}/rendering/geometry-wrapper.cpp
+ ${PLUGING_SRC_DIR}/rendering/material-api.cpp
+ ${PLUGING_SRC_DIR}/rendering/material-wrapper.cpp
+ ${PLUGING_SRC_DIR}/rendering/renderer-api.cpp
+ ${PLUGING_SRC_DIR}/rendering/renderer-wrapper.cpp
+ ${PLUGING_SRC_DIR}/rendering/sampler-api.cpp
+ ${PLUGING_SRC_DIR}/rendering/sampler-wrapper.cpp
+ ${PLUGING_SRC_DIR}/rendering/shader-api.cpp
+ ${PLUGING_SRC_DIR}/rendering/shader-wrapper.cpp
+ ${PLUGING_SRC_DIR}/toolkit/builder/builder-api.cpp
+ ${PLUGING_SRC_DIR}/toolkit/builder/builder-wrapper.cpp
+ ${PLUGING_SRC_DIR}/toolkit/focus-manager/keyboard-focus-manager-api.cpp
+ ${PLUGING_SRC_DIR}/toolkit/focus-manager/keyboard-focus-manager-wrapper.cpp
+ ${PLUGING_SRC_DIR}/signals/dali-any-javascript-converter.cpp
+ ${PLUGING_SRC_DIR}/garbage-collector/garbage-collector.cpp
+ ${PLUGING_SRC_DIR}/module-loader/module.cpp
+ ${PLUGING_SRC_DIR}/module-loader/module-loader.cpp
+)
+set_target_properties(dali_addon PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${builddir}/lib.${TOOLSET}")
+set_target_properties(dali_addon PROPERTIES PREFIX "")
+set_target_properties(dali_addon PROPERTIES LIBRARY_OUTPUT_NAME "dali")
+set_target_properties(dali_addon PROPERTIES SUFFIX ".node")
+set_source_files_properties(${builddir}/lib.${TOOLSET}/dali.node PROPERTIES GENERATED "TRUE")
+set_target_properties(dali_addon PROPERTIES EXCLUDE_FROM_ALL "FALSE")
+
+
+SET(PKG_LIST dali
+ dali-toolkit)
+
+INCLUDE(FindPkgConfig)
+pkg_check_modules(REQUIRED_PKGS REQUIRED ${PKG_LIST})
+
+# This is just pulling out dali / dali-toolkit header locations from pkg-config
+FOREACH(flag ${REQUIRED_PKGS_CFLAGS})
+ SET(REQUIRED_CFLAGS "${REQUIRED_CFLAGS} ${flag}")
+ENDFOREACH(flag)
+
+# Set the include paths to include dali, dali-core, node, v8 and headers for dali-addon
+SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${REQUIRED_CFLAGS} -I${PLUGING_SRC_DIR}/utils -I${PLUGING_SRC_DIR} -I${NODE_HEADERS} -I ${V8_HEADERS}")
+
+set_target_properties(dali_addon PROPERTIES COMPILE_FLAGS "-fPIC -frtti -fexceptions")
+
+# This sets up the linker flags for dali-core/ adaptor and toolkit
+# we don't need any flags for node / v8 as we're running inside node and v8 is statically linked to it
+TARGET_LINK_LIBRARIES(${PROJECT_NAME} ${REQUIRED_PKGS_LDFLAGS})
+
+# ${CMAKE_INSTALL_PREFIX}
+#################################### install #####################################
+INSTALL(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX} )
+
+unset(TOOLSET)
+unset(TARGET)
'view-mode': viewMode,
}
-var dali = require('./build/Release/dali')( options );
+// desktop
+//var dali = require('./build/Release/dali')( options );
+
+// target
+var dali = require('dali')( options );
var daliApp = {};
'view-mode': viewMode,
}
-var dali = require('./build/Release/dali')( options );
+
+// desktop
+//var dali = require('./build/Release/dali')( options );
+
+// target
+var dali = require('dali')( options );
var daliApp = {};
var imageDir = "./";
-var dali = require('./build/Release/dali')( options );
+
+// desktop
+//var dali = require('./build/Release/dali')( options );
+
+// target
+var dali = require('dali')( options );
var daliApp = {};
+++ /dev/null
- var window= {
- x:800,
- y:500,
- width:880,
- height: 1020,
- transparent: false,
- name:'my-first-dali-app'
- };
-var viewMode={
- 'stereoscopic-mode':'mono', // stereo-horizontal, stereo-vertical, stereo-interlaced,
- 'stereo-base': 65 // Distance in millimeters between left/right cameras typically between (50-70mm)
- };
- var options= {
- 'window': window,
- 'view-mode': viewMode,
- }
-
-var dali = require('./build/Release/dali')( options );
-var netflixRoulette = require('netflix-roulette');
-
-
-var NUMBER_OF_IMAGES = 40; // for now use 16 ( demo files go up to 30)
-var DEMO_IMAGES = []; // array to store Dali Images
-var VIDEO_WALL_ACTORS = []; // array to store Image actors
-var VIDEO_WALL_ROWS = 5; // use 3 rows for the video wall
-var VIDEO_WALL_COLUMNS = 6; // use 12 columns for the video wall
-var VIDEO_WALL_TOTAL_ITEMS = VIDEO_WALL_COLUMNS * VIDEO_WALL_ROWS; // total items
-var VIDEO_WALL_ITEM_SIZE = 128; // width / height of a item in the video wall
-var BORDER_SIZE = 5;
-var VIDEO_WALL_ITEM_SIZE_NO_BORDER = VIDEO_WALL_ITEM_SIZE - BORDER_SIZE;
-var VIDEO_WALL_WIDTH = VIDEO_WALL_COLUMNS * VIDEO_WALL_ITEM_SIZE;
-var VIDEO_WALL_HEIGHT = VIDEO_WALL_ROWS * VIDEO_WALL_ITEM_SIZE;
-var daliApp = {};
-var posters = [];
-
-var wallRootActor; // the root actor of the video wall
-
-
-daliApp.loadNetflixImages = function() {
-
- if( NUMBER_OF_IMAGES >= VIDEO_WALL_TOTAL_ITEMS)
- {
- NUMBER_OF_IMAGES = VIDEO_WALL_TOTAL_ITEMS-1;
- }
-
- for (index = 0; index < NUMBER_OF_IMAGES; ++index) {
-
- fileName = posters[ index % (posters.length-1) ];
- if ( fileName )
- {
- DEMO_IMAGES[index] = new dali.ResourceImage( { url:fileName } );
- }
- }
-}
-
-
-daliApp.createRootActor = function() {
- wallRootActor = new dali.Actor();
- wallRootActor.parentOrigin = dali.CENTER;
- wallRootActor.anchorPoint = dali.CENTER;
- dali.stage.add(wallRootActor);
-
- var field = new dali.Control("TextField");
- field.parentOrigin = dali.CENTER;
- field.anchorPoint = dali.CENTER;
-
- field.placeholderText = "DALi netflix netflix-roulette demo";
- dali.stage.add( field );
-}
-
-
-
-daliApp.getWallActorIndex = function(x, y) {
- return x + y * VIDEO_WALL_COLUMNS;
-}
-
-daliApp.createActors = function() {
- daliApp.createRootActor();
-
- var anim = new dali.Animation(1);
- var animOptions = {
- alpha: "linear",
- delay: 0.0, // used to delay the start of the animation
- duration: 1, // duration of the animation
- };
-
- for (y = 0; y < VIDEO_WALL_ROWS; ++y) {
- for (x = 0; x < VIDEO_WALL_COLUMNS; ++x) {
-
- var actorIndex = daliApp.getWallActorIndex(x, y);
- var imageView = new dali.Control("ImageView");
-
- // wrap image index between 0 and NUMBER_OF_IMAGES
- var imageIndex = actorIndex % NUMBER_OF_IMAGES;
-
- imageView.image = DEMO_IMAGES[imageIndex];
-
- imageView.parentOrigin = dali.CENTER;
- imageView.anchorPoint = dali.CENTER;
- imageView.size = [VIDEO_WALL_ITEM_SIZE_NO_BORDER, VIDEO_WALL_ITEM_SIZE_NO_BORDER, 1.0]; // start with zero size so it zooms up
-
- var xPosition = x * VIDEO_WALL_ITEM_SIZE;
- // as the middle the wall is at zero (relative to wallRootActor), we need to subtract half the wall width.
- // + add half item size because the item anchor point is the center of the wallRootActor.
- xPosition = xPosition - (VIDEO_WALL_WIDTH / 2) + (VIDEO_WALL_ITEM_SIZE / 2);
-
- var yPosition = y * VIDEO_WALL_ITEM_SIZE;
- yPosition = yPosition - (VIDEO_WALL_HEIGHT / 2) + (VIDEO_WALL_ITEM_SIZE / 2);
-
- imageView.position = [0,0,0];
-
- animOptions.delay+=0.25;
- anim.animateTo( imageView,"position",[xPosition, yPosition, 0.0],animOptions);
- // store the actor
- VIDEO_WALL_ACTORS[actorIndex] = imageView;
-
- // Add to the video wall root actor.
- wallRootActor.add(imageView);
- }
- }
- anim.play();
-}
-
-function Initialise() {
-
- daliApp.loadNetflixImages();
-
- daliApp.createActors();
-}
-
-function actorLoaded( error, data )
-{
- for( i = 0; i < data.length; ++i )
- {
- var entry = data[i];
-
- if( entry.poster )
- {
- posters.push(entry.poster);
- //console.log(" entry = " + entry.poster );
- }
- }
- Initialise();
-
-}
-
-
-netflixRoulette.actor('nicolas', actorLoaded );
-
var imageDir = "./";
-var dali = require('./build/Release/dali')( options );
+
+// desktop
+//var dali = require('./build/Release/dali')( options );
+
+// target
+var dali = require('dali')( options );
var daliApp = {};
--- /dev/null
+Name: dali-addon
+Summary: DALi module for Node.JS
+Version: 0.0.1
+Release: 1
+Group: Development/Libraries
+License: Apache License, Version 2.0
+URL: https://review.tizen.org/gerrit/#/q/project:platform/core/uifw/dali-toolkit
+Distribution: Tizen
+Source0: %{name}-%{version}.tar.gz
+Requires: dali
+
+# Do NOT put an adaptor here - it is an application choice which adaptor to use
+BuildRequires: pkgconfig
+BuildRequires: pkgconfig(dlog)
+BuildRequires: cmake
+BuildRequires: pkgconfig(dali)
+BuildRequires: pkgconfig(dali-core)
+BuildRequires: pkgconfig(dali-toolkit)
+BuildRequires: nodejs-devel
+
+%description
+DALi Node.JS addon
+
+
+##############################
+# Define directory locations
+# Currently the addon is part of toolkit repository
+##############################
+# addonDir = node-addon directory inside BUILD directory
+%define addonDir %{_builddir}/dali-addon-%{version}/node-addon
+
+# addonBuildDir = node-addon build directory inside BUILD directory
+%define addonBuildDir %{addonDir}/build/tizen
+
+# installPath = the directory the node-addon is installed into
+# we use /usr/lib/node so the developer can do var dali = require('dali');
+%define installPath /usr/lib/node
+
+# full install path, for GBS were are installing into a BUILDROOT
+%define installDir %{buildroot}%{installPath}
+
+##############################
+# Preparation
+##############################
+%prep
+
+# setup = cd build area, decompresses source, sets all file permisions to be owned by root ( q = quiet )
+%setup -q
+
+##############################
+# Build
+##############################
+%build
+
+echo "----------------Build directory = " %{addonBuildDir}
+PREFIX="/usr"
+CXXFLAGS+=" -std=c++11 -Wall -g -Os -fPIC -fvisibility-inlines-hidden -fdata-sections -ffunction-sections "
+LDFLAGS+=" -Wl,--rpath=$PREFIX/lib -Wl,--as-needed -Wl,--gc-sections -Wl,-Bsymbolic-functions "
+
+cd "%{addonBuildDir}"
+cmake -DCMAKE_INSTALL_PREFIX=%{installPath} -DGBSBuild:BOOL=1 .
+make
+
+##############################
+# Installation
+##############################
+%install
+rm -rf %{buildroot}
+
+cd "%{addonBuildDir}"
+%make_install
+cp %{addonDir}/line-mesh.js %{installDir}/line-mesh.js
+
+
+%clean
+rm -rf %{buildroot}
+
+##############################
+# Post Install
+##############################
+%post
+exit 0
+
+
+##############################
+# Post Uninstall
+##############################
+%postun
+
+##############################
+# Files in Binary Packages
+##############################
+%files
+%defattr(-,root,root,-)
+%{installPath}
+
+