X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Ftextured-mesh%2Ftextured-mesh-example.cpp;h=ebeb179d6b1c7a8371a5299f8b06818dd2630489;hb=9469a93437f1a6a896c2be5911d604ea9048c703;hp=f8752ead090f45212ef7006174aefea1c670efee;hpb=5d4db52cfe19e40ff8eb748c09764d7237556781;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/textured-mesh/textured-mesh-example.cpp b/examples/textured-mesh/textured-mesh-example.cpp index f8752ea..ebeb179 100644 --- a/examples/textured-mesh/textured-mesh-example.cpp +++ b/examples/textured-mesh/textured-mesh-example.cpp @@ -16,12 +16,12 @@ */ // EXTERNAL INCLUDES +#include +#include // INTERNAL INCLUDES #include "shared/view.h" -#include - using namespace Dali; namespace @@ -75,14 +75,14 @@ Geometry CreateGeometry() Property::Map texturedQuadVertexFormat; texturedQuadVertexFormat["aPosition"] = Property::VECTOR2; texturedQuadVertexFormat["aTexCoord"] = Property::VECTOR2; - PropertyBuffer texturedQuadVertices = PropertyBuffer::New( PropertyBuffer::STATIC, texturedQuadVertexFormat, 4 ); + PropertyBuffer texturedQuadVertices = PropertyBuffer::New( texturedQuadVertexFormat, 4 ); texturedQuadVertices.SetData(texturedQuadVertexData); // Create indices - unsigned short indexData[6] = { 0, 3, 1, 0, 2, 3 }; + unsigned int indexData[6] = { 0, 3, 1, 0, 2, 3 }; Property::Map indexFormat; - indexFormat["indices"] = Property::UNSIGNED_INTEGER; - PropertyBuffer indices = PropertyBuffer::New( PropertyBuffer::STATIC, indexFormat, 3 ); + indexFormat["indices"] = Property::INTEGER; + PropertyBuffer indices = PropertyBuffer::New( indexFormat, sizeof(indexData)/sizeof(indexData[0]) ); indices.SetData(indexData); // Create the geometry object @@ -93,6 +93,14 @@ Geometry CreateGeometry() return texturedQuadGeometry; } +/** + * Sinusoidal curve starting at zero with 2 cycles + */ +float AlphaFunctionSineX2(float progress) +{ + return 0.5f - cosf(progress * 4.0f * Math::PI) * 0.5f; +} + } // anonymous namespace // This example shows how to use a simple mesh @@ -126,29 +134,25 @@ public: */ void Create( Application& application ) { + // The Init signal is received once (only) during the Application lifetime + Stage stage = Stage::GetCurrent(); stage.KeyEventSignal().Connect(this, &ExampleController::OnKeyEvent); mStageSize = stage.GetSize(); - // The Init signal is received once (only) during the Application lifetime - // Hide the indicator bar application.GetWindow().ShowIndicator( Dali::Window::INVISIBLE ); mImage = ResourceImage::New( MATERIAL_SAMPLE ); - mSampler1 = Sampler::New(mImage, "sTexture"); - Image image = ResourceImage::New( MATERIAL_SAMPLE2 ); - mSampler2 = Sampler::New(image, "sTexture"); mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); - mMaterial1 = Material::New( mShader ); - mMaterial1.AddSampler( mSampler1 ); + mMaterial1.AddTexture(mImage, "sTexture"); mMaterial2 = Material::New( mShader ); - mMaterial2.AddSampler( mSampler2); + mMaterial2.AddTexture(image, "sTexture"); mGeometry = CreateGeometry(); @@ -158,11 +162,7 @@ public: mMeshActor.AddRenderer( mRenderer ); mMeshActor.SetSize(400, 400); - Property::Index fadeColorIndex = mMeshActor.RegisterProperty( "fade-color", Color::GREEN ); - mMeshActor.AddUniformMapping( fadeColorIndex, std::string("uFadeColor") ); - - fadeColorIndex = mRenderer.RegisterProperty( "fade-color", Color::MAGENTA ); - mRenderer.AddUniformMapping( fadeColorIndex, std::string("uFadeColor" ) ); + Property::Index fadeColorIndex = mRenderer.RegisterProperty( "uFadeColor", Color::MAGENTA ); mRenderer.SetDepthIndex(0); mMeshActor.SetParentOrigin( ParentOrigin::TOP_CENTER ); @@ -175,14 +175,11 @@ public: mMeshActor2.AddRenderer( mRenderer2 ); mMeshActor2.SetSize(400, 400); - mMeshActor2.RegisterProperty( "a-n-other-property", Color::GREEN ); - Property::Index fadeColorIndex2 = mMeshActor2.RegisterProperty( "another-fade-color", Color::GREEN ); - mMeshActor2.AddUniformMapping( fadeColorIndex2, std::string("uFadeColor") ); + mMeshActor2.RegisterProperty( "anotherProperty", Color::GREEN ); - mRenderer2.RegisterProperty( "a-n-other-property", Vector3::ZERO ); - mRenderer2.RegisterProperty( "a-coefficient", 0.008f ); - fadeColorIndex2 = mRenderer2.RegisterProperty( "another-fade-color", Color::GREEN ); - mRenderer2.AddUniformMapping( fadeColorIndex2, std::string("uFadeColor" ) ); + mRenderer2.RegisterProperty( "anotherProperty", Vector3::ZERO ); + mRenderer2.RegisterProperty( "aCoefficient", 0.008f ); + Property::Index fadeColorIndex2 = mRenderer2.RegisterProperty( "uFadeColor", Color::BLUE ); mRenderer2.SetDepthIndex(0); mMeshActor2.SetParentOrigin( ParentOrigin::BOTTOM_CENTER ); @@ -192,18 +189,48 @@ public: Animation animation = Animation::New(5); KeyFrames keyFrames = KeyFrames::New(); keyFrames.Add(0.0f, Vector4::ZERO); - keyFrames.Add(1.0f, Vector4( 1.0f, 0.0f, 1.0f, 1.0f )); + keyFrames.Add(1.0f, Vector4( Color::GREEN )); KeyFrames keyFrames2 = KeyFrames::New(); keyFrames2.Add(0.0f, Vector4::ZERO); - keyFrames2.Add(1.0f, Color::GREEN); + keyFrames2.Add(1.0f, Color::MAGENTA); - animation.AnimateBetween( Property( mRenderer, fadeColorIndex ), keyFrames, AlphaFunctions::Sin ); - animation.AnimateBetween( Property( mRenderer2, fadeColorIndex2 ), keyFrames2, AlphaFunctions::Sin2x ); + animation.AnimateBetween( Property( mRenderer, fadeColorIndex ), keyFrames, AlphaFunction(AlphaFunction::SIN) ); + animation.AnimateBetween( Property( mRenderer2, fadeColorIndex2 ), keyFrames2, AlphaFunction(AlphaFunctionSineX2) ); animation.SetLooping(true); animation.Play(); - stage.SetBackgroundColor(Vector4(0.0f, 0.2f, 0.2f, 1.0f));; + stage.SetBackgroundColor(Vector4(0.0f, 0.2f, 0.2f, 1.0f)); + } + + BufferImage CreateBufferImage() + { + BufferImage image = BufferImage::New( 200, 200, Pixel::RGB888 ); + PixelBuffer* pixelBuffer = image.GetBuffer(); + unsigned int stride = image.GetBufferStride(); + for( unsigned int x=0; x<200; x++ ) + { + for( unsigned int y=0; y<200; y++ ) + { + PixelBuffer* pixel = pixelBuffer + y*stride + x*3; + if( ((int)(x/20.0f))%2 + ((int)(y/20.0f)%2) == 1 ) + { + pixel[0]=255; + pixel[1]=0; + pixel[2]=0; + pixel[3]=255; + } + else + { + pixel[0]=0; + pixel[1]=0; + pixel[2]=255; + pixel[3]=255; + } + } + } + image.Update(); + return image; } /** @@ -234,8 +261,6 @@ private: Vector3 mStageSize; ///< The size of the stage Image mImage; - Sampler mSampler1; - Sampler mSampler2; Shader mShader; Material mMaterial1; Material mMaterial2;