From e1bf40ab8acb88564499ab287c7275602e62e7fd Mon Sep 17 00:00:00 2001 From: Francisco Santos Date: Thu, 19 Mar 2015 16:51:02 +0000 Subject: [PATCH] Use PropertyBuffers in the mesh example. Change-Id: I63bd826f3b0cff77baceef0db81c0b1f11d4de4e --- examples/mesh/mesh-example.cpp | 37 +++++++++++++++++++++++++++++++++++-- 1 file changed, 35 insertions(+), 2 deletions(-) diff --git a/examples/mesh/mesh-example.cpp b/examples/mesh/mesh-example.cpp index 1e38d37..5702436 100644 --- a/examples/mesh/mesh-example.cpp +++ b/examples/mesh/mesh-example.cpp @@ -60,6 +60,39 @@ void main() } ); +Geometry CreateGeometry() +{ + + // Create vertices + const float halfQuadSize = .5f; + struct TexturedQuadVertex { Vector2 position; Vector2 textureCoordinates; }; + TexturedQuadVertex texturedQuadVertexData[4] = { + { Vector2(-halfQuadSize, -halfQuadSize), Vector2(0.f, 0.f) }, + { Vector2( halfQuadSize, -halfQuadSize), Vector2(1.f, 0.f) }, + { Vector2(-halfQuadSize, halfQuadSize), Vector2(0.f, 1.f) }, + { Vector2( halfQuadSize, halfQuadSize), Vector2(1.f, 1.f) } }; + + Property::Map texturedQuadVertexFormat; + texturedQuadVertexFormat["aPosition"] = Property::VECTOR2; + texturedQuadVertexFormat["aVertexCoord"] = Property::VECTOR2; + PropertyBuffer texturedQuadVertices = PropertyBuffer::New( PropertyBuffer::STATIC, texturedQuadVertexFormat, 4 ); + texturedQuadVertices.SetData(texturedQuadVertexData); + + // Create indices + unsigned short indexData[6] = { 0, 3, 1, 0, 2, 3 }; + Property::Map indexFormat; + indexFormat["indices"] = Property::UNSIGNED_INTEGER; + PropertyBuffer indices = PropertyBuffer::New( PropertyBuffer::STATIC, indexFormat, 3 ); + indices.SetData(indexData); + + // Create the geometry object + Geometry texturedQuadGeometry = Geometry::New(); + texturedQuadGeometry.AddVertexBuffer( texturedQuadVertices ); + texturedQuadGeometry.SetIndexBuffer( indices ); + + return texturedQuadGeometry; +} + } // anonymous namespace // This example shows how to use a simple mesh @@ -104,13 +137,13 @@ public: application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); mImage = ResourceImage::New( MATERIAL_SAMPLE ); - mSampler = Sampler::New( mImage, "sTexture"); + mSampler = Sampler::New(mImage, "sTexture"); mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); mMaterial = Material::New( mShader ); mMaterial.AddSampler( mSampler ); - mGeometry = Geometry::New(); // Don't need to set a vertex buffer - it's a quad by default. + mGeometry = CreateGeometry(); mRenderer = Renderer::New( mGeometry, mMaterial ); -- 2.7.4