/*
- * Copyright (c) 2019 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.
#include "model-skybox.h"
#include "model-pbr.h"
#include <dali/integration-api/debug.h>
-#include <dali/devel-api/adaptor-framework/file-loader.h>
+#include <dali/devel-api/adaptor-framework/file-stream.h>
using namespace Dali;
using namespace Toolkit;
// The Init signal is received once (only) during the Application lifetime
void Create( Application& application )
{
- // Disable indicator
- Dali::Window winHandle = application.GetWindow();
- winHandle.ShowIndicator( Dali::Window::INVISIBLE );
-
- // Get a handle to the stage
- Stage stage = Stage::GetCurrent();
- stage.SetBackgroundColor( Color::BLACK );
+ // Get a handle to the window
+ Window window = application.GetWindow();
+ window.SetBackgroundColor( Color::BLACK );
mAnimation = Animation::New( 1.0f );
mLabel = TextLabel::New( "R:1 M:0" );
- mLabel.SetAnchorPoint( AnchorPoint::TOP_CENTER );
- mLabel.SetParentOrigin( ParentOrigin::TOP_CENTER );
- mLabel.SetSize( stage.GetSize().width * 0.5f, stage.GetSize().height * 0.083f );
+ mLabel.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::TOP_CENTER );
+ mLabel.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::TOP_CENTER );
+ mLabel.SetProperty( Actor::Property::SIZE, Vector2( window.GetSize().GetWidth() * 0.5f, window.GetSize().GetHeight() * 0.083f ) );
mLabel.SetProperty( TextLabel::Property::HORIZONTAL_ALIGNMENT, "CENTER" );
mLabel.SetProperty( TextLabel::Property::VERTICAL_ALIGNMENT, "CENTER" );
mLabel.SetProperty( TextLabel::Property::TEXT_COLOR, Color::WHITE );
// Step 3. Initialise Main Actor
InitActors();
- // Respond to a click anywhere on the stage
- stage.GetRootLayer().TouchSignal().Connect( this, &BasicPbrController::OnTouch );
+ // Respond to a click anywhere on the window
+ window.GetRootLayer().TouchSignal().Connect( this, &BasicPbrController::OnTouch );
// Respond to key events
- stage.KeyEventSignal().Connect( this, &BasicPbrController::OnKeyEvent );
+ window.KeyEventSignal().Connect( this, &BasicPbrController::OnKeyEvent );
mDoubleTapTime = Timer::New(150);
mDoubleTapTime.TickSignal().Connect( this, &BasicPbrController::OnDoubleTapTime );
/**
* This function will change the material Roughness, Metalness or the model orientation when touched
*/
- bool OnTouch( Actor actor, const TouchData& touch )
+ bool OnTouch( Actor actor, const TouchEvent& touch )
{
const PointState::Type state = touch.GetState( 0 );
}
case PointState::MOTION:
{
- const Stage stage = Stage::GetCurrent();
- const Size size = stage.GetSize();
+ const Window window = mApplication.GetWindow();
+ const Size size = window.GetSize();
const float scaleX = size.width;
const float scaleY = size.height;
const Vector2 point = touch.GetScreenPosition(0);
const Quaternion yawRot(Radian(Degree(angle2 * -200.0f)), modelOrientation.Rotate( Vector3::YAXIS ) );
mModelOrientation = mModelOrientation * yawRot * pitchRot ;
- mSkybox.GetActor().SetOrientation( mModelOrientation );
- actor1.SetOrientation( mModelOrientation );
- actor2.SetOrientation( mModelOrientation );
+ mSkybox.GetActor().SetProperty( Actor::Property::ORIENTATION, mModelOrientation );
+ actor1.SetProperty( Actor::Property::ORIENTATION, mModelOrientation );
+ actor2.SetProperty( Actor::Property::ORIENTATION, mModelOrientation );
mPointZ = point;
}
*/
void InitActors()
{
- Stage stage = Stage::GetCurrent();
+ Window window = mApplication.GetWindow();
+ Vector2 windowSize = window.GetSize();
mSkybox.Init( SKYBOX_SCALE );
mModel[0].Init( mShader, SPHERE_URL, Vector3::ZERO, SPHERE_SCALE );
// Creating root and camera actor for rendertask for 3D Scene rendering
mUiRoot = Actor::New();
m3dRoot = Actor::New();
- CameraActor cameraUi = CameraActor::New(stage.GetSize());
- cameraUi.SetAnchorPoint(AnchorPoint::CENTER);
- cameraUi.SetParentOrigin(ParentOrigin::CENTER);
+ CameraActor cameraUi = CameraActor::New(window.GetSize());
+ cameraUi.SetProperty( Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
+ cameraUi.SetProperty( Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
- RenderTask rendertask = Stage::GetCurrent().GetRenderTaskList().CreateTask();
+ RenderTask rendertask = window.GetRenderTaskList().CreateTask();
rendertask.SetCameraActor( cameraUi );
rendertask.SetSourceActor( mUiRoot );
- mUiRoot.SetAnchorPoint(AnchorPoint::TOP_LEFT);
- mUiRoot.SetParentOrigin(ParentOrigin::TOP_LEFT);
- mUiRoot.SetSize(stage.GetSize());
+ mUiRoot.SetProperty(Actor::Property::ANCHOR_POINT,AnchorPoint::TOP_LEFT);
+ mUiRoot.SetProperty(Actor::Property::PARENT_ORIGIN,ParentOrigin::TOP_LEFT);
+ mUiRoot.SetProperty(Actor::Property::SIZE, Vector2(window.GetSize()) );
- m3dRoot.SetAnchorPoint(AnchorPoint::CENTER);
- m3dRoot.SetParentOrigin(ParentOrigin::CENTER);
+ m3dRoot.SetProperty(Actor::Property::ANCHOR_POINT,AnchorPoint::CENTER);
+ m3dRoot.SetProperty(Actor::Property::PARENT_ORIGIN,ParentOrigin::CENTER);
// Setting camera parameters for 3D Scene
- mSkybox.GetActor().SetPosition( CAMERA_DEFAULT_POSITION );
- CameraActor camera3d = stage.GetRenderTaskList().GetTask(0).GetCameraActor();
+ mSkybox.GetActor().SetProperty( Actor::Property::POSITION, CAMERA_DEFAULT_POSITION );
+ CameraActor camera3d = window.GetRenderTaskList().GetTask(0).GetCameraActor();
camera3d.SetInvertYAxis( true );
- camera3d.SetPosition( CAMERA_DEFAULT_POSITION );
+ camera3d.SetProperty( Actor::Property::POSITION, CAMERA_DEFAULT_POSITION );
camera3d.SetNearClippingPlane( CAMERA_DEFAULT_NEAR );
camera3d.SetFarClippingPlane( CAMERA_DEFAULT_FAR );
camera3d.SetFieldOfView( Radian( Degree( CAMERA_DEFAULT_FOV ) ) );
- stage.Add( cameraUi );
- stage.Add( mUiRoot );
- stage.Add( m3dRoot );
+ window.Add( cameraUi );
+ window.Add( mUiRoot );
+ window.Add( m3dRoot );
m3dRoot.Add( mSkybox.GetActor() );
m3dRoot.Add( mModel[0].GetActor() );
m3dRoot.Add( mModel[1].GetActor() );
- if( (stage.GetSize().x > 360.0f) && (stage.GetSize().y > 360.0f) )
+ if( (windowSize.x > 360.0f) && (windowSize.y > 360.0f) )
{
mUiRoot.Add( mLabel );
}
*/
bool LoadShaderCode( const std::string& fullpath, std::vector<char>& output )
{
- std::streampos bufferSize = 0;
- Dali::Vector<char> fileBuffer;
- if( !Dali::FileLoader::ReadFile( fullpath, bufferSize, fileBuffer, FileLoader::FileType::BINARY ) )
- {
- DALI_LOG_WARNING( "file open failed for: \"%s\"", fullpath );
- return false;
- }
-
- FILE* file = fmemopen( &fileBuffer[0], bufferSize, "rb" );
+ Dali::FileStream fileStream( fullpath, FileStream::READ | FileStream::BINARY );
+ FILE* file = fileStream.GetFile();
if( NULL == file )
{
return false;
retValue = ( result >= 0 );
}
}
- fclose( file );
+
return retValue;
}