Remove ResourceImage usage from demos
[platform/core/uifw/dali-demo.git] / examples / new-window / new-window-example.cpp
index 0ec445a..a72e1de 100644 (file)
@@ -24,6 +24,7 @@
 
 // INTERNAL INCLUDES
 #include "shared/view.h"
+#include "shared/utility.h"
 
 using namespace Dali;
 using namespace Dali::Toolkit;
@@ -32,13 +33,13 @@ class NewWindowController;
 
 namespace
 {
-const char * const BACKGROUND_IMAGE( DALI_IMAGE_DIR "background-2.jpg" );
-const char * const TOOLBAR_IMAGE( DALI_IMAGE_DIR "top-bar.png" );
-const char * const LOSE_CONTEXT_IMAGE( DALI_IMAGE_DIR "icon-cluster-wobble.png" );
-const char * const LOSE_CONTEXT_IMAGE_SELECTED( DALI_IMAGE_DIR "icon-cluster-wobble-selected.png" );
-const char * const BASE_IMAGE( DALI_IMAGE_DIR "gallery-large-14.jpg" );
-const char * const EFFECT_IMAGE( DALI_IMAGE_DIR "gallery-large-18.jpg" );
-const char * const LOGO_IMAGE(DALI_IMAGE_DIR "dali-logo.png");
+const char * const BACKGROUND_IMAGE( DEMO_IMAGE_DIR "background-2.jpg" );
+const char * const TOOLBAR_IMAGE( DEMO_IMAGE_DIR "top-bar.png" );
+const char * const LOSE_CONTEXT_IMAGE( DEMO_IMAGE_DIR "icon-cluster-wobble.png" );
+const char * const LOSE_CONTEXT_IMAGE_SELECTED( DEMO_IMAGE_DIR "icon-cluster-wobble-selected.png" );
+const char * const BASE_IMAGE( DEMO_IMAGE_DIR "gallery-large-14.jpg" );
+const char * const EFFECT_IMAGE( DEMO_IMAGE_DIR "gallery-large-18.jpg" );
+const char * const LOGO_IMAGE(DEMO_IMAGE_DIR "dali-logo.png");
 
 const float EXPLOSION_DURATION(1.2f);
 const unsigned int EMIT_INTERVAL_IN_MS(40);
@@ -187,8 +188,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 +212,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 +240,10 @@ void NewWindowController::Destroy( Application& app )
 void NewWindowController::AddBubbles( Actor& parentActor, const Vector2& stageSize)
 {
   mEmitter = Toolkit::BubbleEmitter::New( stageSize,
-                                          ResourceImage::New( DALI_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 +262,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 +274,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 +319,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 +329,7 @@ void NewWindowController::AddBlendingImageActor( Actor& parentActor )
   blendActor.SetSize(140, 140);
   parentActor.Add(blendActor);
 
-  blendActor.GetRendererAt(0u).GetMaterial().AddTexture(fb2, "sEffect");
+  blendActor.GetRendererAt(0u).GetTextures().SetImage( 1u, fb2 );
 }
 
 void NewWindowController::AddTextLabel( Actor& parentActor )
@@ -345,10 +343,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);
@@ -446,20 +443,16 @@ Geometry NewWindowController::CreateMeshGeometry()
   vertexFormat["aPosition"] = Property::VECTOR3;
   vertexFormat["aTexCoord"] = Property::VECTOR2;
   vertexFormat["aColor"] = Property::VECTOR3;
-  PropertyBuffer vertices = PropertyBuffer::New( vertexFormat, 5 );
-  vertices.SetData( vertexData );
+  PropertyBuffer vertices = PropertyBuffer::New( vertexFormat );
+  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, 12 );
-  indices.SetData( indexData );
+  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,9 +554,9 @@ 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, DALI_DEMO_THEME_PATH);
+  gApplication = Application::New(&argc, &argv, DEMO_THEME_PATH);
   RunTest(gApplication);
 
   return 0;