projects
/
platform
/
core
/
uifw
/
dali-toolkit.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
80e6410
)
Change geometry to use triangle strip
91/48991/4
author
Xiangyin Ma
<x1.ma@samsung.com>
Fri, 2 Oct 2015 14:55:25 +0000
(15:55 +0100)
committer
Xiangyin Ma
<x1.ma@samsung.com>
Mon, 5 Oct 2015 10:03:02 +0000
(
03:03
-0700)
Change-Id: Ie35aec87ba51285fc682310baa4f3842b7c8fe68
dali-toolkit/internal/controls/renderers/border/border-renderer.cpp
patch
|
blob
|
history
dali-toolkit/internal/controls/renderers/image/image-renderer.cpp
patch
|
blob
|
history
dali-toolkit/internal/controls/renderers/renderer-factory-cache.cpp
patch
|
blob
|
history
diff --git
a/dali-toolkit/internal/controls/renderers/border/border-renderer.cpp
b/dali-toolkit/internal/controls/renderers/border/border-renderer.cpp
index
6542a2c
..
5456c32
100644
(file)
--- a/
dali-toolkit/internal/controls/renderers/border/border-renderer.cpp
+++ b/
dali-toolkit/internal/controls/renderers/border/border-renderer.cpp
@@
-180,11
+180,11
@@
void BorderRenderer::SetBorderSize( float size )
* | /| /| /|
* |/ |/ |/ |
* 4--5--6--7
* | /| /| /|
* |/ |/ |/ |
* 4--5--6--7
- * |
/| | /
|
- * |
/ | |/
|
+ * |
\ | |\
|
+ * |
\| | \
|
* 8--9--10-11
* 8--9--10-11
- * | /| /|
/
|
- * |/ |/ |
/
|
+ * | /| /|
\
|
+ * |/ |/ |
\
|
* 12-13-14-15
*/
Geometry BorderRenderer::CreateBorderGeometry()
* 12-13-14-15
*/
Geometry BorderRenderer::CreateBorderGeometry()
@@
-222,19
+222,17
@@
Geometry BorderRenderer::CreateBorderGeometry()
borderVertices.SetData(borderVertexData);
// Create indices
borderVertices.SetData(borderVertexData);
// Create indices
- unsigned int indexData[48] = { 0, 4, 1, 1, 4, 5, 1, 5, 2, 2, 5, 6, 2, 6,3, 3, 6, 7,
- 4, 8, 5, 5, 8, 9, 6, 10, 7, 7, 10, 11,
- 8, 12, 9, 9, 12, 13, 9, 13, 10, 10, 13, 14, 10, 11, 14, 11, 14, 15};
-
+ unsigned int indexData[24] = { 0,4,1,5,2,6,3,7,7,6,11,10,15,14,14,10,13,9,12,8,8,9,4,5 };
Property::Map indexFormat;
indexFormat[INDEX_NAME] = Property::INTEGER;
Property::Map indexFormat;
indexFormat[INDEX_NAME] = Property::INTEGER;
- PropertyBuffer indices = PropertyBuffer::New( indexFormat,
48
);
+ PropertyBuffer indices = PropertyBuffer::New( indexFormat,
24
);
indices.SetData(indexData);
// Create the geometry object
Geometry geometry = Geometry::New();
geometry.AddVertexBuffer( borderVertices );
geometry.SetIndexBuffer( indices );
indices.SetData(indexData);
// Create the geometry object
Geometry geometry = Geometry::New();
geometry.AddVertexBuffer( borderVertices );
geometry.SetIndexBuffer( indices );
+ geometry.SetGeometryType( Geometry::TRIANGLE_STRIP );
return geometry;
}
return geometry;
}
diff --git
a/dali-toolkit/internal/controls/renderers/image/image-renderer.cpp
b/dali-toolkit/internal/controls/renderers/image/image-renderer.cpp
index
4770960
..
9e07fc9
100644
(file)
--- a/
dali-toolkit/internal/controls/renderers/image/image-renderer.cpp
+++ b/
dali-toolkit/internal/controls/renderers/image/image-renderer.cpp
@@
-95,17
+95,6
@@
const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER(
}\n
);
}\n
);
-void AddQuadIndices( Vector< unsigned int >& indices, unsigned int rowIdx, unsigned int nextRowIdx )
-{
- indices.PushBack( rowIdx );
- indices.PushBack( nextRowIdx + 1 );
- indices.PushBack( rowIdx + 1 );
-
- indices.PushBack( rowIdx );
- indices.PushBack( nextRowIdx );
- indices.PushBack( nextRowIdx + 1 );
-}
-
Geometry GenerateGeometry( const Vector< Vector2 >& vertices, const Vector< unsigned int >& indices )
{
Property::Map vertexFormat;
Geometry GenerateGeometry( const Vector< Vector2 >& vertices, const Vector< unsigned int >& indices )
{
Property::Map vertexFormat;
@@
-128,6
+117,7
@@
Geometry GenerateGeometry( const Vector< Vector2 >& vertices, const Vector< unsi
Geometry geometry = Geometry::New();
geometry.AddVertexBuffer( vertexPropertyBuffer );
geometry.SetIndexBuffer( indexPropertyBuffer );
Geometry geometry = Geometry::New();
geometry.AddVertexBuffer( vertexPropertyBuffer );
geometry.SetIndexBuffer( indexPropertyBuffer );
+ geometry.SetGeometryType( Geometry::TRIANGLE_STRIP );
return geometry;
}
return geometry;
}
@@
-164,15
+154,27
@@
Geometry CreateGeometry( RendererFactoryCache& factoryCache, ImageDimensions gri
// Create indices
Vector< unsigned int > indices;
// Create indices
Vector< unsigned int > indices;
- indices.Reserve(
gridWidth * gridHeight * 6
);
+ indices.Reserve(
(gridWidth+2)*gridHeight*2 - 2
);
- unsigned int rowIdx = 0;
- unsigned int nextRowIdx = gridWidth + 1;
- for( int y = 0; y < gridHeight; ++y, ++nextRowIdx, ++rowIdx )
+ for( unsigned int row = 0u; row < gridHeight; ++row )
{
{
- for( int x = 0; x < gridWidth; ++x, ++nextRowIdx, ++rowIdx )
+ unsigned int rowStartIndex = row*(gridWidth+1u);
+ unsigned int nextRowStartIndex = rowStartIndex + gridWidth +1u;
+
+ if( row != 0u ) // degenerate index on non-first row
+ {
+ indices.PushBack( rowStartIndex );
+ }
+
+ for( unsigned int column = 0u; column < gridWidth+1u; column++) // main strip
+ {
+ indices.PushBack( rowStartIndex + column);
+ indices.PushBack( nextRowStartIndex + column);
+ }
+
+ if( row != gridHeight-1u ) // degenerate index on non-last row
{
{
-
AddQuadIndices( indices, rowIdx, nextRowIdx
);
+
indices.PushBack( nextRowStartIndex + gridWidth
);
}
}
}
}
diff --git
a/dali-toolkit/internal/controls/renderers/renderer-factory-cache.cpp
b/dali-toolkit/internal/controls/renderers/renderer-factory-cache.cpp
index
cf8c47a
..
41bc77c
100644
(file)
--- a/
dali-toolkit/internal/controls/renderers/renderer-factory-cache.cpp
+++ b/
dali-toolkit/internal/controls/renderers/renderer-factory-cache.cpp
@@
-91,18
+91,10
@@
Geometry RendererFactoryCache::CreateQuadGeometry()
PropertyBuffer quadVertices = PropertyBuffer::New( quadVertexFormat, 4 );
quadVertices.SetData(quadVertexData);
PropertyBuffer quadVertices = PropertyBuffer::New( quadVertexFormat, 4 );
quadVertices.SetData(quadVertexData);
- // Create indices
- //TODO: replace with triangle strip when Geometry supports it
- unsigned int indexData[6] = { 0, 3, 1, 0, 2, 3 };
- Property::Map indexFormat;
- indexFormat["indices"] = Property::INTEGER;
- PropertyBuffer indices = PropertyBuffer::New( indexFormat, 6 );
- indices.SetData(indexData);
-
// Create the geometry object
Geometry geometry = Geometry::New();
geometry.AddVertexBuffer( quadVertices );
// Create the geometry object
Geometry geometry = Geometry::New();
geometry.AddVertexBuffer( quadVertices );
- geometry.Set
IndexBuffer( indices
);
+ geometry.Set
GeometryType( Geometry::TRIANGLE_STRIP
);
return geometry;
}
return geometry;
}