X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Frefraction-effect%2Frefraction-effect-example.cpp;h=b6eebe397c92b91cea26682c59fee6b6be67735a;hb=1a473d5189ca7e7d55aca3a64a8a4ff2dc3b6c67;hp=f713ee9a45829046cb573acfa180826df3bc6ed0;hpb=a832af2813558a32f0a18747f3e6134ff6f6f301;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/refraction-effect/refraction-effect-example.cpp b/examples/refraction-effect/refraction-effect-example.cpp index f713ee9..b6eebe3 100644 --- a/examples/refraction-effect/refraction-effect-example.cpp +++ b/examples/refraction-effect/refraction-effect-example.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 Samsung Electronics Co., Ltd. + * Copyright (c) 2020 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. @@ -18,11 +18,12 @@ // EXTERNAL INCLUDES #include #include -#include +#include +#include -#include #include #include +#include // INTERNAL INCLUDES #include "shared/view.h" @@ -242,13 +243,13 @@ private: // The Init signal is received once (only) during the Application lifetime void Create(Application& application) { - Stage stage = Stage::GetCurrent(); - Vector2 stageSize = stage.GetSize(); + Window window = application.GetWindow(); + Vector2 windowSize = window.GetSize(); - stage.KeyEventSignal().Connect(this, &RefractionEffectExample::OnKeyEvent); + window.KeyEventSignal().Connect(this, &RefractionEffectExample::OnKeyEvent); // Creates a default view with a default tool bar. - // The view is added to the stage. + // The view is added to the window. Toolkit::ToolBar toolBar; Toolkit::Control view; mContent = DemoHelper::CreateView( application, @@ -260,21 +261,21 @@ private: // Add a button to change background. (right of toolbar) mChangeTextureButton = Toolkit::PushButton::New(); - mChangeTextureButton.SetProperty( Toolkit::DevelButton::Property::UNSELECTED_BACKGROUND_VISUAL, CHANGE_TEXTURE_ICON ); - mChangeTextureButton.SetProperty( Toolkit::DevelButton::Property::SELECTED_BACKGROUND_VISUAL, CHANGE_TEXTURE_ICON_SELECTED ); + mChangeTextureButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, CHANGE_TEXTURE_ICON ); + mChangeTextureButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, CHANGE_TEXTURE_ICON_SELECTED ); mChangeTextureButton.ClickedSignal().Connect( this, &RefractionEffectExample::OnChangeTexture ); toolBar.AddControl( mChangeTextureButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, - Toolkit::Alignment::HorizontalRight, + Toolkit::Alignment::HORIZONTAL_RIGHT, DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); // Add a button to change mesh pattern. ( left of bar ) mChangeMeshButton = Toolkit::PushButton::New(); - mChangeMeshButton.SetProperty( Toolkit::DevelButton::Property::UNSELECTED_BACKGROUND_VISUAL, CHANGE_MESH_ICON ); - mChangeMeshButton.SetProperty( Toolkit::DevelButton::Property::SELECTED_BACKGROUND_VISUAL, CHANGE_MESH_ICON_SELECTED ); + mChangeMeshButton.SetProperty( Toolkit::Button::Property::UNSELECTED_BACKGROUND_VISUAL, CHANGE_MESH_ICON ); + mChangeMeshButton.SetProperty( Toolkit::Button::Property::SELECTED_BACKGROUND_VISUAL, CHANGE_MESH_ICON_SELECTED ); mChangeMeshButton.ClickedSignal().Connect( this, &RefractionEffectExample::OnChangeMesh ); toolBar.AddControl( mChangeMeshButton, DemoHelper::DEFAULT_VIEW_STYLE.mToolBarButtonPercentage, - Toolkit::Alignment::HorizontalLeft, + Toolkit::Alignment::HORIZONTAL_LEFT, DemoHelper::DEFAULT_MODE_SWITCH_PADDING ); @@ -283,7 +284,7 @@ private: mShaderFlat = Shader::New( VERTEX_SHADER_FLAT, FRAGMENT_SHADER_FLAT ); mGeometry = CreateGeometry( MESH_FILES[mCurrentMeshId] ); - Texture texture = DemoHelper::LoadStageFillingTexture( TEXTURE_IMAGES[mCurrentTextureId] ); + Texture texture = DemoHelper::LoadWindowFillingTexture( window.GetSize(), TEXTURE_IMAGES[mCurrentTextureId] ); mTextureSet = TextureSet::New(); mTextureSet.SetTexture( 0u, texture ); @@ -292,12 +293,12 @@ private: mMeshActor = Actor::New(); mMeshActor.AddRenderer( mRenderer ); - mMeshActor.SetSize( stageSize ); - mMeshActor.SetParentOrigin(ParentOrigin::CENTER); + mMeshActor.SetProperty( Actor::Property::SIZE, windowSize ); + mMeshActor.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER); mContent.Add( mMeshActor ); // Connect the callback to the touch signal on the mesh actor - mContent.TouchSignal().Connect( this, &RefractionEffectExample::OnTouch ); + mContent.TouchedSignal().Connect( this, &RefractionEffectExample::OnTouch ); // shader used when the finger is touching the screen. render refraction effect mShaderRefraction = Shader::New( VERTEX_SHADER_REFRACTION, FRAGMENT_SHADER_REFRACTION ); @@ -309,13 +310,13 @@ private: mEffectStrengthIndex = mMeshActor.RegisterProperty( "uEffectStrength", 0.f ); - Vector3 lightPosition( -stageSize.x*0.5f, -stageSize.y*0.5f, stageSize.x*0.5f ); // top_left + Vector3 lightPosition( -windowSize.x*0.5f, -windowSize.y*0.5f, windowSize.x*0.5f ); // top_left mMeshActor.RegisterProperty( "uLightPosition", lightPosition ); Property::Index lightSpinOffsetIndex = mMeshActor.RegisterProperty( "uLightSpinOffset", Vector2::ZERO ); mSpinAngleIndex = mMeshActor.RegisterProperty("uSpinAngle", 0.f ); - Constraint constraint = Constraint::New( mMeshActor, lightSpinOffsetIndex, LightOffsetConstraint(stageSize.x*0.1f) ); + Constraint constraint = Constraint::New( mMeshActor, lightSpinOffsetIndex, LightOffsetConstraint(windowSize.x*0.1f) ); constraint.AddSource( LocalSource(mSpinAngleIndex) ); constraint.Apply(); @@ -346,12 +347,12 @@ private: bool OnChangeTexture( Toolkit::Button button ) { mCurrentTextureId = ( mCurrentTextureId + 1 ) % NUM_TEXTURE_IMAGES; - Texture texture = DemoHelper::LoadStageFillingTexture( TEXTURE_IMAGES[mCurrentTextureId] ); + Texture texture = DemoHelper::LoadWindowFillingTexture( mApplication.GetWindow().GetSize(), TEXTURE_IMAGES[mCurrentTextureId] ); mTextureSet.SetTexture( 0u, texture ); return true; } - bool OnTouch( Actor actor, const TouchData& event ) + bool OnTouch( Actor actor, const TouchEvent& event ) { switch( event.GetState( 0 ) ) { @@ -457,7 +458,7 @@ private: vertexFormat["aPosition"] = Property::VECTOR3; vertexFormat["aNormal"] = Property::VECTOR3; vertexFormat["aTexCoord"] = Property::VECTOR2; - PropertyBuffer surfaceVertices = PropertyBuffer::New( vertexFormat ); + VertexBuffer surfaceVertices = VertexBuffer::New( vertexFormat ); surfaceVertices.SetData( &vertices[0], vertices.size() ); Geometry surface = Geometry::New(); @@ -471,14 +472,24 @@ private: std::vector& vertexPositions, Vector& faceIndices) { - std::ifstream ifs( objFileName.c_str(), std::ios::in ); + std::streampos bufferSize = 0; + Dali::Vector fileBuffer; + if( !Dali::FileLoader::ReadFile( objFileName, bufferSize, fileBuffer, Dali::FileLoader::FileType::TEXT ) ) + { + DALI_LOG_WARNING( "file open failed for: \"%s\"", objFileName.c_str() ); + return; + } + + fileBuffer.PushBack( '\0' ); + + std::stringstream iss( &fileBuffer[0], std::ios::in ); boundingBox.Resize( 6 ); boundingBox[0]=boundingBox[2]=boundingBox[4] = std::numeric_limits::max(); boundingBox[1]=boundingBox[3]=boundingBox[5] = -std::numeric_limits::max(); std::string line; - while( std::getline( ifs, line ) ) + while( std::getline( iss, line ) ) { if( line[0] == 'v' && std::isspace(line[1])) // vertex { @@ -509,7 +520,8 @@ private: } std::istringstream iss(line.substr(2), std::istringstream::in); - unsigned int indices[ numOfInt ]; + Dali::Vector indices; + indices.Resize(numOfInt); unsigned int i=0; while( iss >> indices[i++] && i < numOfInt); unsigned int step = (i+1) / 3; @@ -518,8 +530,6 @@ private: faceIndices.PushBack( indices[2*step]-1 ); } } - - ifs.close(); } void ShapeResizeAndTexureCoordinateCalculation( const Vector& boundingBox, @@ -529,8 +539,8 @@ private: Vector3 bBoxSize( boundingBox[1] - boundingBox[0], boundingBox[3] - boundingBox[2], boundingBox[5] - boundingBox[4]); Vector3 bBoxMinCorner( boundingBox[0], boundingBox[2], boundingBox[4] ); - Vector2 stageSize = Stage::GetCurrent().GetSize(); - Vector3 scale( stageSize.x / bBoxSize.x, stageSize.y / bBoxSize.y, 1.f ); + Vector2 windowSize = mApplication.GetWindow().GetSize(); + Vector3 scale( windowSize.x / bBoxSize.x, windowSize.y / bBoxSize.y, 1.f ); scale.z = (scale.x + scale.y)/2.f; textureCoordinates.reserve(vertexPositions.size()); @@ -551,7 +561,7 @@ private: */ void OnKeyEvent(const KeyEvent& event) { - if(event.state == KeyEvent::Down) + if(event.GetState() == KeyEvent::DOWN) { if( IsKey( event, Dali::DALI_KEY_ESCAPE) || IsKey( event, Dali::DALI_KEY_BACK) ) { @@ -588,20 +598,10 @@ private: /*****************************************************************************/ -static void -RunTest(Application& app) -{ - RefractionEffectExample theApp(app); - app.MainLoop(); -} - -/*****************************************************************************/ - int DALI_EXPORT_API main(int argc, char **argv) { Application app = Application::New(&argc, &argv, DEMO_THEME_PATH); - - RunTest(app); - + RefractionEffectExample theApp(app); + app.MainLoop(); return 0; }