Changes following "Remove Geometry scene object" 46/66746/13
authorFerran Sole <ferran.sole@samsung.com>
Wed, 20 Apr 2016 15:10:35 +0000 (16:10 +0100)
committerFerran Sole <ferran.sole@samsung.com>
Mon, 25 Apr 2016 14:34:05 +0000 (15:34 +0100)
Change-Id: Id177a9f248686d82898a05a865871983a64af885

19 files changed:
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/mesh-builder.cpp
dali-toolkit/internal/controls/bubble-effect/bubble-emitter-impl.cpp
dali-toolkit/internal/controls/model3d-view/obj-loader.cpp
dali-toolkit/internal/controls/model3d-view/obj-loader.h
dali-toolkit/internal/controls/renderers/border/border-renderer.cpp
dali-toolkit/internal/controls/renderers/debug/debug-renderer.cpp
dali-toolkit/internal/controls/renderers/npatch/npatch-renderer.cpp
dali-toolkit/internal/controls/renderers/renderer-factory-cache.cpp
dali-toolkit/internal/controls/scrollable/bouncing-effect-actor.cpp
dali-toolkit/internal/text/decorator/text-decorator.cpp
dali-toolkit/internal/text/rendering/atlas/atlas-manager.h
dali-toolkit/internal/text/rendering/atlas/atlas-mesh-factory.cpp
dali-toolkit/internal/text/rendering/atlas/text-atlas-renderer.cpp
dali-toolkit/internal/text/rendering/vector-based/vector-based-renderer.cpp
node-addon/examples/line-mesh.js
node-addon/examples/texture-mesh.js
plugins/dali-script-v8/src/rendering/geometry-api.cpp
plugins/dali-script-v8/src/rendering/geometry-wrapper.cpp
plugins/dali-script-v8/src/rendering/geometry-wrapper.h

index 304e567..5b127c7 100644 (file)
@@ -62,15 +62,11 @@ Geometry CreateQuadGeometryFromBuffer( PropertyBuffer vertexData )
     { Vector2( halfQuadSize,  halfQuadSize), Vector2(1.f, 1.f) } };
   vertexData.SetData(texturedQuadVertexData, 4);
 
-  unsigned int indexData[6] = { 0, 3, 1, 0, 2, 3 };
-  Property::Map indexFormat;
-  indexFormat["indices"] = Property::INTEGER;
-  PropertyBuffer indices = PropertyBuffer::New( indexFormat );
-  indices.SetData( indexData, sizeof(indexData)/sizeof(indexData[0]) );
+  unsigned short indexData[6] = { 0, 3, 1, 0, 2, 3 };
 
   Geometry geometry = Geometry::New();
   geometry.AddVertexBuffer( vertexData );
-  geometry.SetIndexBuffer( indices );
+  geometry.SetIndexBuffer( indexData, sizeof(indexData)/sizeof(indexData[0]) );
 
   return geometry;
 }
index 836a26d..5126408 100644 (file)
@@ -276,7 +276,7 @@ Geometry BubbleEmitter::CreateGeometry( unsigned int numOfPatch )
   vertexData.reserve( numVertex );
 
   unsigned int numIndex = numOfPatch*6u;
-  Vector<unsigned int> indexData;
+  Vector<unsigned short> indexData;
   indexData.Reserve( numIndex );
 
   for(unsigned int i = 0; i < numOfPatch; i++)
@@ -289,7 +289,7 @@ Geometry BubbleEmitter::CreateGeometry( unsigned int numOfPatch )
     vertexData.push_back( Vertex( index, Vector2(curSize,curSize), Vector2(1.f,1.f)  ) );
     vertexData.push_back( Vertex( index, Vector2(curSize,0.f),     Vector2(1.f,0.f)  ) );
 
-    unsigned int idx = index * 4;
+    unsigned short idx = index * 4;
     indexData.PushBack( idx );
     indexData.PushBack( idx+1 );
     indexData.PushBack( idx+2 );
@@ -305,14 +305,9 @@ Geometry BubbleEmitter::CreateGeometry( unsigned int numOfPatch )
   PropertyBuffer vertices = PropertyBuffer::New( vertexFormat );
   vertices.SetData( &vertexData[0], numVertex );
 
-  Property::Map indexFormat;
-  indexFormat["indices"] = Property::INTEGER;
-  PropertyBuffer indices = PropertyBuffer::New( indexFormat );
-  indices.SetData( &indexData[0], numIndex );
-
   Geometry geometry = Geometry::New();
   geometry.AddVertexBuffer( vertices );
-  geometry.SetIndexBuffer( indices );
+  geometry.SetIndexBuffer( &indexData[0], numIndex );
 
   return geometry;
 }
index 5e67b1e..635115a 100644 (file)
@@ -164,7 +164,7 @@ void ObjLoader::CenterAndScale(bool center, Dali::Vector<Vector3>& points)
 void ObjLoader::CreateGeometryArray(Dali::Vector<Vertex> & vertices,
                                     Dali::Vector<Vector2> & textures,
                                     Dali::Vector<VertexExt> & verticesExt,
-                                    Dali::Vector<int> & indices)
+                                    Dali::Vector<unsigned short> & indices)
 {
   //If we don't have tangents, calculate them
   //we need to recalculate the normals too, because we need just one normal,tangent, bitangent per vertex
@@ -491,7 +491,7 @@ Geometry ObjLoader::CreateGeometry(Toolkit::Model3dView::IlluminationType illumi
   Dali::Vector<Vertex> vertices;
   Dali::Vector<Vector2> textures;
   Dali::Vector<VertexExt> verticesExt;
-  Dali::Vector<int> indices;
+  Dali::Vector<unsigned short> indices;
 
   CreateGeometryArray(vertices, textures, verticesExt, indices);
 
@@ -530,13 +530,7 @@ Geometry ObjLoader::CreateGeometry(Toolkit::Model3dView::IlluminationType illumi
 
   if (indices.Size())
   {
-    //Indices
-    Property::Map indicesVertexFormat;
-    indicesVertexFormat["aIndices"] = Property::INTEGER;
-    PropertyBuffer indicesToVertices = PropertyBuffer::New( indicesVertexFormat );
-    indicesToVertices.SetData( &indices[0], indices.Size() );
-
-    surface.SetIndexBuffer ( indicesToVertices );
+    surface.SetIndexBuffer ( &indices[0], indices.Size() );
   }
 
   surface.SetRequiresDepthTesting(true);
index eac63c3..b9d8a6a 100644 (file)
@@ -139,7 +139,7 @@ private:
   void CreateGeometryArray(Dali::Vector<Vertex> & vertices,
                            Dali::Vector<Vector2> & textures,
                            Dali::Vector<VertexExt> & verticesExt,
-                           Dali::Vector<int> & indices);
+                           Dali::Vector<unsigned short> & indices);
 
 };
 
index bbe44a9..3594538 100644 (file)
@@ -295,16 +295,12 @@ Geometry BorderRenderer::CreateBorderGeometry()
   borderVertices.SetData( borderVertexData, 16 );
 
   // Create indices
-  unsigned int indexData[24] = { 1,5,2,6,3,7,7,6,11,10,15,14,14,10,13,9,12,8,8,9,4,5,0,1};
-  Property::Map indexFormat;
-  indexFormat[INDEX_NAME] = Property::INTEGER;
-  PropertyBuffer indices = PropertyBuffer::New( indexFormat );
-  indices.SetData( indexData, 24 );
+  unsigned short indexData[24] = { 1,5,2,6,3,7,7,6,11,10,15,14,14,10,13,9,12,8,8,9,4,5,0,1};
 
   // Create the geometry object
   Geometry geometry = Geometry::New();
   geometry.AddVertexBuffer( borderVertices );
-  geometry.SetIndexBuffer( indices );
+  geometry.SetIndexBuffer( indexData, sizeof(indexData)/sizeof(indexData[0]) );
   geometry.SetGeometryType( Geometry::TRIANGLE_STRIP );
 
   return geometry;
index 6c3c58a..1fc45ca 100644 (file)
@@ -117,16 +117,12 @@ Geometry DebugRenderer::CreateQuadWireframeGeometry()
   quadVertices.SetData( quadVertexData, 4 );
 
   // Create indices
-  unsigned int indexData[10] = { 0, 1, 1, 2, 2, 3, 3, 0 };
-  Property::Map indexFormat;
-  indexFormat[INDEX_NAME] = Property::INTEGER;
-  PropertyBuffer indices = PropertyBuffer::New( indexFormat );
-  indices.SetData( indexData, sizeof(indexData)/sizeof(indexData[0]) );
+  unsigned short indexData[10] = { 0, 1, 1, 2, 2, 3, 3, 0 };
 
   // Create the geometry object
   Geometry geometry = Geometry::New();
   geometry.AddVertexBuffer( quadVertices );
-  geometry.SetIndexBuffer( indices );
+  geometry.SetIndexBuffer( indexData, sizeof(indexData)/sizeof(indexData[0]) );
   geometry.SetGeometryType( Geometry::LINES );
 
   return geometry;
index 028da4c..94b2382 100644 (file)
@@ -118,7 +118,7 @@ const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER(
  * @param[in]  indices              The indices to generate the geometry from
  * @return The geometry formed from the vertices and indices
  */
-Geometry GenerateGeometry( const Vector< Vector2 >& vertices, const Vector< unsigned int >& indices )
+Geometry GenerateGeometry( const Vector< Vector2 >& vertices, const Vector< unsigned short >& indices )
 {
   Property::Map vertexFormat;
   vertexFormat[ "aPosition" ] = Property::VECTOR2;
@@ -128,18 +128,14 @@ Geometry GenerateGeometry( const Vector< Vector2 >& vertices, const Vector< unsi
     vertexPropertyBuffer.SetData( &vertices[ 0 ], vertices.Size() );
   }
 
-  Property::Map indexFormat;
-  indexFormat[ "indices" ] = Property::INTEGER;
-  PropertyBuffer indexPropertyBuffer = PropertyBuffer::New( indexFormat );
+  // Create the geometry object
+  Geometry geometry = Geometry::New();
+  geometry.AddVertexBuffer( vertexPropertyBuffer );
   if( indices.Size() > 0 )
   {
-    indexPropertyBuffer.SetData( &indices[ 0 ], indices.Size() );
+    geometry.SetIndexBuffer( &indices[ 0 ], indices.Size() );
   }
 
-  // Create the geometry object
-  Geometry geometry = Geometry::New();
-  geometry.AddVertexBuffer( vertexPropertyBuffer );
-  geometry.SetIndexBuffer( indexPropertyBuffer );
 
   return geometry;
 }
@@ -151,7 +147,7 @@ Geometry GenerateGeometry( const Vector< Vector2 >& vertices, const Vector< unsi
  * @param[in]  rowIdx      The row index to start the quad
  * @param[in]  nextRowIdx  The index to the next row
  */
-void AddQuadIndices( Vector< unsigned int >& indices, unsigned int rowIdx, unsigned int nextRowIdx )
+void AddQuadIndices( Vector< unsigned short >& indices, unsigned int rowIdx, unsigned int nextRowIdx )
 {
   indices.PushBack( rowIdx );
   indices.PushBack( nextRowIdx + 1 );
@@ -584,7 +580,7 @@ Geometry NPatchRenderer::CreateGeometry( Uint16Pair gridSize )
 
   // Create indices
   //TODO: compare performance with triangle strip when Geometry supports it
-  Vector< unsigned int > indices;
+  Vector< unsigned short > indices;
   indices.Reserve( gridWidth * gridHeight * 6 );
 
   unsigned int rowIdx     = 0;
@@ -641,7 +637,7 @@ Geometry NPatchRenderer::CreateGeometryBorder( Uint16Pair gridSize )
 
   // Create indices
   //TODO: compare performance with triangle strip when Geometry supports it
-  Vector< unsigned int > indices;
+  Vector< unsigned short > indices;
   indices.Reserve( gridWidth * gridHeight * 6 );
 
   //top
index 3a6b79f..4fd7424 100644 (file)
@@ -215,7 +215,7 @@ Geometry RendererFactoryCache::CreateGridGeometry( Uint16Pair gridSize )
   }
 
   // Create indices
-  Vector< unsigned int > indices;
+  Vector< unsigned short > indices;
   indices.Reserve( (gridWidth+2)*gridHeight*2 - 2);
 
   for( unsigned int row = 0u; row < gridHeight; ++row )
@@ -251,15 +251,16 @@ Geometry RendererFactoryCache::CreateGridGeometry( Uint16Pair gridSize )
   Property::Map indexFormat;
   indexFormat[ "indices" ] = Property::INTEGER;
   PropertyBuffer indexPropertyBuffer = PropertyBuffer::New( indexFormat );
-  if( indices.Size() > 0 )
-  {
-    indexPropertyBuffer.SetData( &indices[ 0 ], indices.Size() );
-  }
+
 
   // Create the geometry object
   Geometry geometry = Geometry::New();
   geometry.AddVertexBuffer( vertexPropertyBuffer );
-  geometry.SetIndexBuffer( indexPropertyBuffer );
+  if( indices.Size() > 0 )
+  {
+    geometry.SetIndexBuffer( &indices[ 0 ], indices.Size() );
+  }
+
   geometry.SetGeometryType( Geometry::TRIANGLE_STRIP );
 
   return geometry;
index 91e556f..c06e400 100644 (file)
@@ -117,15 +117,11 @@ Actor CreateBouncingEffectActor( Property::Index& bouncePropertyIndex )
   PropertyBuffer vertices = PropertyBuffer::New( vertexFormat );
   vertices.SetData( vertexData, 20u );
 
-  unsigned int indexData[30] = { 0,3,1,0,2,3,4,7,5,4,6,7,8,11,9,8,10,11,12,15,13,12,14,15,16,19,17,16,18,19};
-  Property::Map indexFormat;
-  indexFormat["indices"] = Property::INTEGER;
-  PropertyBuffer indices = PropertyBuffer::New( indexFormat );
-  indices.SetData( indexData, 30u );
+  unsigned short indexData[30] = { 0,3,1,0,2,3,4,7,5,4,6,7,8,11,9,8,10,11,12,15,13,12,14,15,16,19,17,16,18,19};
 
   Geometry meshGeometry = Geometry::New();
   meshGeometry.AddVertexBuffer( vertices );
-  meshGeometry.SetIndexBuffer( indices );
+  meshGeometry.SetIndexBuffer( indexData, sizeof(indexData)/sizeof(indexData[0]) );
 
   // Create the shader
   Shader shader = Shader::New( MESH_VERTEX_SHADER, MESH_FRAGMENT_SHADER );
index bb393ff..47e3694 100644 (file)
@@ -283,7 +283,6 @@ struct Decorator::Impl : public ConnectionTracker
     mNotifyEndOfScroll( false )
   {
     mQuadVertexFormat[ "aPosition" ] = Property::VECTOR2;
-    mQuadIndexFormat[ "indices" ] = Property::INTEGER;
     mHighlightShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
     SetupTouchEvents();
   }
@@ -1005,7 +1004,7 @@ struct Decorator::Impl : public ConnectionTracker
       if( !mHighlightQuadList.empty() )
       {
         Vector< Vector2 > vertices;
-        Vector< unsigned int> indices;
+        Vector< unsigned short> indices;
         Vector2 vertex;
 
         std::vector<QuadCoordinates>::iterator iter = mHighlightQuadList.begin();
@@ -1051,20 +1050,14 @@ struct Decorator::Impl : public ConnectionTracker
           mQuadVertices = PropertyBuffer::New( mQuadVertexFormat );
         }
 
-        if( ! mQuadIndices )
-        {
-          mQuadIndices = PropertyBuffer::New( mQuadIndexFormat );
-        }
-
         mQuadVertices.SetData( &vertices[ 0 ], vertices.Size() );
-        mQuadIndices.SetData( &indices[ 0 ], indices.Size() );
 
         if( !mQuadGeometry )
         {
           mQuadGeometry = Geometry::New();
           mQuadGeometry.AddVertexBuffer( mQuadVertices );
         }
-        mQuadGeometry.SetIndexBuffer( mQuadIndices );
+        mQuadGeometry.SetIndexBuffer( &indices[ 0 ], indices.Size() );
 
         if( !mHighlightRenderer )
         {
@@ -1654,7 +1647,6 @@ struct Decorator::Impl : public ConnectionTracker
   Renderer            mHighlightRenderer;
   Shader              mHighlightShader;           ///< Shader used for highlight
   Property::Map       mQuadVertexFormat;
-  Property::Map       mQuadIndexFormat;
   PopupImpl           mCopyPastePopup;
   TextSelectionPopup::Buttons mEnabledPopupButtons; /// Bit mask of currently enabled Popup buttons
   TextSelectionPopupCallbackInterface& mTextSelectionPopupCallbackInterface;
@@ -1666,7 +1658,6 @@ struct Decorator::Impl : public ConnectionTracker
   HandleImpl          mHandle[HANDLE_TYPE_COUNT];
 
   PropertyBuffer      mQuadVertices;
-  PropertyBuffer      mQuadIndices;
   Geometry            mQuadGeometry;
   QuadContainer       mHighlightQuadList;         ///< Sub-selections that combine to create the complete selection highlight
 
index 75f117a..df86ac1 100644 (file)
@@ -90,7 +90,7 @@ public:
   struct Mesh2D
   {
     Vector< Vertex2D > mVertices;       ///< container of vertices
-    Vector< SizeType > mIndices;        ///< container of indices
+    Vector< unsigned short > mIndices;        ///< container of indices
   };
 
   /**
index 3a64c96..4da6c1f 100644 (file)
@@ -148,7 +148,7 @@ void AppendMesh( Toolkit::AtlasManager::Mesh2D& first,
                          second.mIndices.Begin(),
                          second.mIndices.End() );
 
-  for( Vector<unsigned int>::Iterator it = first.mIndices.Begin() + indicesCount,
+  for( Vector<unsigned short>::Iterator it = first.mIndices.Begin() + indicesCount,
          endIt = first.mIndices.End();
        it != endIt;
        ++it )
index 3755fcf..966deff 100644 (file)
@@ -141,7 +141,6 @@ struct AtlasRenderer::Impl
     mQuadVertexFormat[ "aPosition" ] = Property::VECTOR2;
     mQuadVertexFormat[ "aTexCoord" ] = Property::VECTOR2;
     mQuadVertexFormat[ "aColor" ] = Property::VECTOR4;
-    mQuadIndexFormat[ "indices" ] = Property::INTEGER;
   }
 
   bool IsGlyphUnderlined( GlyphIndex index,
@@ -484,13 +483,11 @@ struct AtlasRenderer::Impl
   Actor CreateMeshActor( const MeshRecord& meshRecord, const Vector2& actorSize )
   {
     PropertyBuffer quadVertices = PropertyBuffer::New( mQuadVertexFormat );
-    PropertyBuffer quadIndices = PropertyBuffer::New( mQuadIndexFormat );
     quadVertices.SetData( const_cast< AtlasManager::Vertex2D* >( &meshRecord.mMesh.mVertices[ 0 ] ), meshRecord.mMesh.mVertices.Size() );
-    quadIndices.SetData(  const_cast< unsigned int* >(           &meshRecord.mMesh.mIndices[ 0 ] ),  meshRecord.mMesh.mIndices.Size() );
 
     Geometry quadGeometry = Geometry::New();
     quadGeometry.AddVertexBuffer( quadVertices );
-    quadGeometry.SetIndexBuffer( quadIndices );
+    quadGeometry.SetIndexBuffer( &meshRecord.mMesh.mIndices[0],  meshRecord.mMesh.mIndices.Size() );
 
     TextureSet textureSet( mGlyphManager.GetTextures( meshRecord.mAtlasId ) );
     Shader shader( mGlyphManager.GetShader( meshRecord.mAtlasId ) );
@@ -729,7 +726,6 @@ struct AtlasRenderer::Impl
   std::vector< MaxBlockSize > mBlockSizes;            ///> Maximum size needed to contain a glyph in a block within a new atlas
   Vector< TextCacheEntry > mTextCache;                ///> Caches data from previous render
   Property::Map mQuadVertexFormat;                    ///> Describes the vertex format for text
-  Property::Map mQuadIndexFormat;                     ///> Describes the index format for text
   int mDepth;                                         ///> DepthIndex passed by control when connect to stage
 };
 
index 82bf555..73fb666 100644 (file)
@@ -64,7 +64,7 @@ void AddVertex( Vector<Vertex2D>& vertices, float x, float y, float u, float v,
   vertices.PushBack( meshVertex );
 }
 
-void AddTriangle( Vector<unsigned int>& indices, unsigned int v0, unsigned int v1, unsigned int v2 )
+void AddTriangle( Vector<unsigned short>& indices, unsigned int v0, unsigned int v1, unsigned int v2 )
 {
   indices.PushBack( v0 );
   indices.PushBack( v1 );
@@ -79,7 +79,7 @@ bool CreateGeometry( const Vector<GlyphInfo>& glyphs,
                      VectorBlobAtlas& atlas,
                      Dali::TextAbstraction::FontClient& fontClient,
                      Vector< Vertex2D >& vertices,
-                     Vector< unsigned int >& indices,
+                     Vector< unsigned short >& indices,
                      const Vector4* const colorsBuffer,
                      const ColorIndex* const colorIndicesBuffer,
                      const Vector4& defaultColor )
@@ -161,7 +161,6 @@ struct VectorBasedRenderer::Impl
     mQuadVertexFormat[ "aPosition" ] = Property::VECTOR2;
     mQuadVertexFormat[ "aTexCoord" ] = Property::VECTOR2;
     mQuadVertexFormat[ "aColor" ] = Property::VECTOR4;
-    mQuadIndexFormat[ "indices" ] = Property::INTEGER;
   }
 
   Actor mActor;                            ///< The actor parent which renders the text
@@ -169,7 +168,6 @@ struct VectorBasedRenderer::Impl
   TextAbstraction::FontClient mFontClient; ///> The font client used to supply glyph information
 
   Property::Map mQuadVertexFormat;         ///> Describes the vertex format for text
-  Property::Map mQuadIndexFormat;          ///> Describes the index format for text
 
   Shader mShaderEffect;
 
@@ -217,7 +215,7 @@ Actor VectorBasedRenderer::Render( Text::ViewInterface& view, int /*depth*/ )
     const Vector4& defaultColor = view.GetTextColor();
 
     Vector< Vertex2D > vertices;
-    Vector< unsigned int > indices;
+    Vector< unsigned short > indices;
 
     const Vector2& controlSize = view.GetControlSize();
     float xOffset = controlSize.width  * -0.5f;
@@ -272,14 +270,13 @@ Actor VectorBasedRenderer::Render( Text::ViewInterface& view, int /*depth*/ )
     if( 0 != vertices.Count() )
     {
       PropertyBuffer quadVertices = PropertyBuffer::New( mImpl->mQuadVertexFormat );
-      PropertyBuffer quadIndices = PropertyBuffer::New( mImpl->mQuadIndexFormat );
 
       quadVertices.SetData( &vertices[ 0 ], vertices.Size() );
-      quadIndices.SetData( &indices[ 0 ], indices.Size() );
+
 
       Geometry quadGeometry = Geometry::New();
       quadGeometry.AddVertexBuffer( quadVertices );
-      quadGeometry.SetIndexBuffer( quadIndices );
+      quadGeometry.SetIndexBuffer( &indices[ 0 ], indices.Size() );
 
       TextureSet texture = mImpl->mAtlas->GetTextureSet();
 
index 63bf20a..0385dae 100644 (file)
@@ -91,14 +91,12 @@ daliApp.createMeshActor = function() {
 
       var indexDataArray = new Uint32Array(indexData.length);
       indexDataArray.set(indexData, 0);
-      var indices = new dali.PropertyBuffer(indexFormat);
-      indices.setData(indexDataArray, 10);
 
       // Create geometry
       var geometry = new dali.Geometry();
       geometry.addVertexBuffer( pentagonVertices );
       geometry.addVertexBuffer( pentacleVertices );
-      geometry.setIndexBuffer( indices );
+      geometry.setIndexBuffer( indexDataArray, 10 );
       geometry.setGeometryType( dali.GEOMETRY_LINES );
 
       var renderer = new dali.Renderer(geometry, shader);
index f37fd67..514f20c 100644 (file)
@@ -93,13 +93,11 @@ daliApp.createMeshActor = function() {
 
       var indexDataArray = new Uint32Array(indexData.length);
       indexDataArray.set(indexData, 0);
-      var indices = new dali.PropertyBuffer(indexFormat);
-      indices.setData(indexDataArray, 6);
 
       // Create geometry
       var geometry = new dali.Geometry();
       geometry.addVertexBuffer( texturedQuadVertices );
-      geometry.setIndexBuffer( indices );
+      geometry.setIndexBuffer( indexDataArray, 6 );
 
       var renderer = new dali.Renderer(geometry, shader);
       renderer.setTextures(textureSet);
index 01aec00..e9c35a9 100644 (file)
@@ -188,8 +188,15 @@ void GeometryApi::RemoveVertexBuffer( const v8::FunctionCallbackInfo< v8::Value
  *
  * @method setIndexBuffer
  * @for Geometry
- * @param {Object} indexBuffer PropertyBuffer to be used as a source of indices
- *                             for the geometry
+ * @param {Uint32Array} data The data that will be copied to the buffer
+ *
+ * @example
+ * var indexData = [0, 1, 1, 2, 2, 3, 3, 4, 4, 0];
+ * var indexDataArray = new Uint32Array(indexData.length);
+ * indexDataArray.set(indexData, 0);
+ *
+ * geometry.SetIndexBuffer( indexDataArray, indexDataArray.length );
+ *```
  */
 void GeometryApi::SetIndexBuffer( const v8::FunctionCallbackInfo<v8::Value>& args )
 {
@@ -199,14 +206,23 @@ void GeometryApi::SetIndexBuffer( const v8::FunctionCallbackInfo<v8::Value>& arg
   Geometry geometry = GetGeometry( isolate, args );
 
   bool found( false );
-  PropertyBuffer indexBuffer = PropertyBufferApi::GetPropertyBufferFromParams( 0, found, isolate, args );
-  if( !found )
+  void* data = V8Utils::GetArrayBufferViewParameter( PARAMETER_0, found, isolate, args);
+
+  if( ! found )
   {
-    DALI_SCRIPT_EXCEPTION( isolate, "invalid property buffer parameter" );
+    DALI_SCRIPT_EXCEPTION( isolate, "invalid data parameter" );
   }
   else
   {
-    geometry.SetIndexBuffer(indexBuffer);
+    int size = V8Utils::GetIntegerParameter( PARAMETER_1, found, isolate, args, 0);
+    if( !found )
+    {
+      DALI_SCRIPT_EXCEPTION( isolate, "missing buffer size from param 1" );
+    }
+    else
+    {
+      geometry.SetIndexBuffer( static_cast<const unsigned short*>(data), size );
+    }
   }
 }
 
index d9ea511..f57abfe 100644 (file)
@@ -58,7 +58,7 @@ const unsigned int GeometryFunctionTableCount = sizeof(GeometryFunctionTable)/si
 
 
 GeometryWrapper::GeometryWrapper( const Dali::Geometry& geometry, GarbageCollectorInterface& gc )
-:  HandleWrapper(  BaseWrappedObject::GEOMETRY , geometry, gc )
+:  BaseWrappedObject(  BaseWrappedObject::GEOMETRY, gc )
 {
     mGeometry = geometry;
 }
@@ -106,9 +106,6 @@ v8::Handle<v8::ObjectTemplate> GeometryWrapper::MakeGeometryTemplate( v8::Isolat
 
   v8::Local<v8::ObjectTemplate> objTemplate = v8::ObjectTemplate::New();
 
-  // property handle intercepts property getters and setters and signals
-  HandleWrapper::AddInterceptsToTemplate( isolate, objTemplate );
-
   objTemplate->SetInternalFieldCount( BaseWrappedObject::FIELD_COUNT );
 
   // add our function properties
index b108e6c..6272ffc 100644 (file)
@@ -36,7 +36,7 @@ namespace V8Plugin
  * A Geometry wrapper.
  * Provides access to Geometry specific functionality and V8 memory handling.
  */
-class GeometryWrapper : public HandleWrapper
+class GeometryWrapper : public BaseWrappedObject
 {
 
 public: