[3.0] Updates after removal of experimental API
[platform/core/uifw/dali-demo.git] / examples / new-window / new-window-example.cpp
index 14d02d4..56b74f3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2016 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  */
 
 // EXTERNAL INCLUDES
-#include <dali/devel-api/rendering/renderer.h>
+#include <dali/devel-api/images/texture-set-image.h>
+#include <dali/public-api/rendering/renderer.h>
 #include <dali-toolkit/dali-toolkit.h>
 #include <dali-toolkit/devel-api/controls/bubble-effect/bubble-emitter.h>
+#include <dali-toolkit/devel-api/controls/gaussian-blur-view/gaussian-blur-view.h>
 
 #include <cstdio>
 #include <iostream>
 
 // INTERNAL INCLUDES
 #include "shared/view.h"
+#include "shared/utility.h"
 
 using namespace Dali;
 using namespace Dali::Toolkit;
@@ -187,8 +190,7 @@ void NewWindowController::Create( Application& app )
                                           "Context recovery" );
 
   Size stageSize = stage.GetSize();
-  Image backgroundImage = ResourceImage::New( BACKGROUND_IMAGE, Dali::ImageDimensions( stageSize.x, stageSize.y ), Dali::FittingMode::SCALE_TO_FILL, Dali::SamplingMode::BOX_THEN_LINEAR );
-  ImageView backgroundActor = ImageView::New( backgroundImage );
+  ImageView backgroundActor = ImageView::New( BACKGROUND_IMAGE, Dali::ImageDimensions( stageSize.x, stageSize.y ) );
   backgroundActor.SetParentOrigin( ParentOrigin::CENTER );
   mContentLayer.Add(backgroundActor);
 
@@ -212,16 +214,15 @@ void NewWindowController::Create( Application& app )
   logoLayoutActor.SetScale(0.5f);
   backgroundActor.Add(logoLayoutActor);
 
-  Image image = ResourceImage::New(LOGO_IMAGE);
-  ImageView imageView = ImageView::New(image);
+  ImageView imageView = ImageView::New( LOGO_IMAGE );
   imageView.SetName("daliLogo");
   imageView.SetParentOrigin(ParentOrigin::CENTER);
   imageView.SetAnchorPoint(AnchorPoint::BOTTOM_CENTER);
   logoLayoutActor.Add(imageView);
 
   ImageView mirrorImageView = CreateBlurredMirrorImage(LOGO_IMAGE);
-  mirrorImageView.SetParentOrigin(ParentOrigin::CENTER);
-  mirrorImageView.SetAnchorPoint(AnchorPoint::TOP_CENTER);
+  mirrorImageView.SetParentOrigin(ParentOrigin::TOP_CENTER);
+  mirrorImageView.SetAnchorPoint(AnchorPoint::BOTTOM_CENTER);
   logoLayoutActor.Add(mirrorImageView);
 
   AddBubbles( backgroundActor, stage.GetSize());
@@ -241,10 +242,10 @@ void NewWindowController::Destroy( Application& app )
 void NewWindowController::AddBubbles( Actor& parentActor, const Vector2& stageSize)
 {
   mEmitter = Toolkit::BubbleEmitter::New( stageSize,
-                                          ResourceImage::New( DEMO_IMAGE_DIR "bubble-ball.png" ),
+                                          DemoHelper::LoadImage( DEMO_IMAGE_DIR "bubble-ball.png" ),
                                           200, Vector2( 5.0f, 5.0f ) );
 
-  Image background = ResourceImage::New(BACKGROUND_IMAGE);
+  Image background = DemoHelper::LoadImage(BACKGROUND_IMAGE);
   mEmitter.SetBackground( background, Vector3(0.5f, 0.f,0.5f) );
   mEmitter.SetBubbleDensity( 9.f );
   Actor bubbleRoot = mEmitter.GetRootActor();
@@ -263,8 +264,7 @@ void NewWindowController::AddMeshActor( Actor& parentActor )
 
   // Create a coloured mesh
   Shader shaderColorMesh = Shader::New( VERTEX_COLOR_MESH, FRAGMENT_COLOR_MESH );
-  Material colorMeshmaterial = Material::New( shaderColorMesh );
-  Renderer colorMeshRenderer = Renderer::New( meshGeometry, colorMeshmaterial );
+  Renderer colorMeshRenderer = Renderer::New( meshGeometry, shaderColorMesh );
 
   Actor colorMeshActor = Actor::New();
   colorMeshActor.AddRenderer( colorMeshRenderer );
@@ -276,11 +276,12 @@ void NewWindowController::AddMeshActor( Actor& parentActor )
   colorMeshActor.SetName("ColorMeshActor");
 
  // Create a textured mesh
-  Image effectImage = ResourceImage::New(EFFECT_IMAGE);
+  Texture effectTexture = DemoHelper::LoadTexture(EFFECT_IMAGE);
   Shader shaderTextureMesh = Shader::New( VERTEX_TEXTURE_MESH, FRAGMENT_TEXTURE_MESH );
-  Material textureMeshMaterial = Material::New( shaderTextureMesh );
-  textureMeshMaterial.AddTexture(effectImage, "sTexture");
-  Renderer textureMeshRenderer = Renderer::New( meshGeometry, textureMeshMaterial );
+  TextureSet textureSet = TextureSet::New();
+  textureSet.SetTexture( 0u, effectTexture );
+  Renderer textureMeshRenderer = Renderer::New( meshGeometry, shaderTextureMesh );
+  textureMeshRenderer.SetTextures( textureSet );
 
   Actor textureMeshActor = Actor::New();
   textureMeshActor.AddRenderer( textureMeshRenderer );
@@ -320,8 +321,7 @@ void NewWindowController::AddBlendingImageActor( Actor& parentActor )
   Property::Map map;
   map[ "shader" ] = customShader;
 
-  Image baseImage = ResourceImage::New(BASE_IMAGE);
-  ImageView blendActor = ImageView::New( baseImage );
+  ImageView blendActor = ImageView::New( BASE_IMAGE );
   blendActor.SetProperty( ImageView::Property::IMAGE, map );
   blendActor.RegisterProperty( "alpha", 0.5f );
 
@@ -331,7 +331,8 @@ void NewWindowController::AddBlendingImageActor( Actor& parentActor )
   blendActor.SetSize(140, 140);
   parentActor.Add(blendActor);
 
-  blendActor.GetRendererAt(0u).GetMaterial().AddTexture(fb2, "sEffect");
+  TextureSet textureSet = blendActor.GetRendererAt(0u).GetTextures();
+  TextureSetImage( textureSet, 1u, fb2 );
 }
 
 void NewWindowController::AddTextLabel( Actor& parentActor )
@@ -345,10 +346,9 @@ void NewWindowController::AddTextLabel( Actor& parentActor )
 
 ImageView NewWindowController::CreateBlurredMirrorImage(const char* imageName)
 {
-  Image image = ResourceImage::New(imageName);
+  Image image = DemoHelper::LoadImage(imageName);
 
-  Uint16Pair intFboSize = ResourceImage::GetImageSize(imageName);
-  Vector2 FBOSize = Vector2( intFboSize.GetWidth(), intFboSize.GetHeight() );
+  Vector2 FBOSize = Vector2( image.GetWidth(), image.GetHeight() );
   FrameBufferImage fbo = FrameBufferImage::New( FBOSize.width, FBOSize.height, Pixel::RGBA8888);
 
   GaussianBlurView gbv = GaussianBlurView::New(5, 2.0f, Pixel::RGBA8888, 0.5f, 0.5f, true);
@@ -450,16 +450,12 @@ Geometry NewWindowController::CreateMeshGeometry()
   vertices.SetData( vertexData, 5 );
 
   // Specify all the faces
-  unsigned int indexData[12] = { 0,1,3,0,2,4,0,3,4,0,2,1 };
-  Property::Map indexFormat;
-  indexFormat["indices"] = Property::INTEGER;
-  PropertyBuffer indices = PropertyBuffer::New( indexFormat );
-  indices.SetData( indexData, 12 );
+  unsigned short indexData[12] = { 0,1,3,0,2,4,0,3,4,0,2,1 };
 
   // Create the geometry object
   Geometry geometry = Geometry::New();
   geometry.AddVertexBuffer( vertices );
-  geometry.SetIndexBuffer( indices );
+  geometry.SetIndexBuffer( &indexData[0], 12 );
 
   return geometry;
 }
@@ -561,7 +557,7 @@ void RunTest(Application& app)
 
 // Entry point for Linux & Tizen applications
 //
-int main(int argc, char **argv)
+int DALI_EXPORT_API main(int argc, char **argv)
 {
   gApplication = Application::New(&argc, &argv, DEMO_THEME_PATH);
   RunTest(gApplication);