/*
- * Copyright (c) 2017 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2021 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 <dali/dali.h>
#include <dali-toolkit/dali-toolkit.h>
+#include <dali/dali.h>
+
+#include "generated/rendering-triangle-frag.h"
+#include "generated/rendering-triangle-vert.h"
using namespace Dali;
using namespace Toolkit;
-namespace
-{
-
-/*
- * Vertex shader
- */
-const char* VERTEX_SHADER = DALI_COMPOSE_SHADER(
-attribute mediump vec2 aPosition;\n // DALi shader builtin
-uniform mediump mat4 uMvpMatrix;\n // DALi shader builtin
-uniform mediump vec3 uSize;\n // DALi shader builtin
-\n
-void main()\n
-{\n
- mediump vec4 vertexPosition = vec4(aPosition, 0.0, 1.0);\n
- vertexPosition.xyz *= uSize;\n
- gl_Position = uMvpMatrix * vertexPosition;\n
-}\n
-);
-
-/*
- * Fragment shader
- */
-const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER(
-uniform mediump vec4 uColor;\n
-\n
-void main()\n
-{\n
- gl_FragColor = uColor;\n
-}\n
-);
-
-}
-
// This example shows how to draw a triangle in actor's color
//
class DrawTriangleController : public ConnectionTracker
{
public:
-
- DrawTriangleController( Application& application )
- : mApplication( application )
+ DrawTriangleController(Application& application)
+ : mApplication(application)
{
// Connect to the Application's Init signal
- mApplication.InitSignal().Connect( this, &DrawTriangleController::Create );
+ mApplication.InitSignal().Connect(this, &DrawTriangleController::Create);
}
~DrawTriangleController()
}
// The Init signal is received once (only) during the Application lifetime
- void Create( Application& application )
+ void Create(Application& application)
{
- // Get a handle to the stage
- Stage stage = Stage::GetCurrent();
- stage.SetBackgroundColor( Color::WHITE );
+ // Get a handle to the window
+ Window window = application.GetWindow();
+ window.SetBackgroundColor(Color::WHITE);
// Step 1. Create shader
CreateTriangleShader();
// Step 4. Create an Actor
CreateActor();
- // Respond to a click anywhere on the stage
- stage.GetRootLayer().TouchSignal().Connect( this, &DrawTriangleController::OnTouch );
+ // Respond to a click anywhere on the window
+ window.GetRootLayer().TouchedSignal().Connect(this, &DrawTriangleController::OnTouch);
// Respond to key events
- stage.KeyEventSignal().Connect( this, &DrawTriangleController::OnKeyEvent );
+ window.KeyEventSignal().Connect(this, &DrawTriangleController::OnKeyEvent);
}
- bool OnTouch( Actor actor, const TouchData& touch )
+ bool OnTouch(Actor actor, const TouchEvent& touch)
{
// quit the application
mApplication.Quit();
* Will use this to quit the application if Back or the Escape key is received
* @param[in] event The key event information
*/
- void OnKeyEvent( const KeyEvent& event )
+ 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 ) )
+ if(IsKey(event, Dali::DALI_KEY_ESCAPE) || IsKey(event, Dali::DALI_KEY_BACK))
{
mApplication.Quit();
}
void CreateTriangleGeometry()
{
Vector2 vertices[] = {
- Vector2( -1.0f, -1.0f ),
- Vector2( 1.0f, 1.0f ),
- Vector2( -1.0f, 1.0f )
- };
+ Vector2(-1.0f, -1.0f),
+ Vector2(1.0f, 1.0f),
+ Vector2(-1.0f, 1.0f)};
- PropertyBuffer vertexBuffer = PropertyBuffer::New( Property::Map()
- .Add( "aPosition", Property::VECTOR2 ) );
- vertexBuffer.SetData( vertices, sizeof(vertices) / sizeof(Vector2) );
+ VertexBuffer vertexBuffer = VertexBuffer::New(Property::Map()
+ .Add("aPosition", Property::VECTOR2));
+ vertexBuffer.SetData(vertices, sizeof(vertices) / sizeof(Vector2));
mGeometry = Geometry::New();
- mGeometry.AddVertexBuffer( vertexBuffer );
- mGeometry.SetType( Geometry::TRIANGLES );
+ mGeometry.AddVertexBuffer(vertexBuffer);
+ mGeometry.SetType(Geometry::TRIANGLES);
}
/**
*/
void CreateTriangleShader()
{
- mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER );
+ mShader = Shader::New(SHADER_RENDERING_TRIANGLE_VERT, SHADER_RENDERING_TRIANGLE_FRAG);
}
/**
*/
void CreateRenderer()
{
- mRenderer = Renderer::New( mGeometry, mShader );
+ mRenderer = Renderer::New(mGeometry, mShader);
}
/**
*/
void CreateActor()
{
- Stage stage = Stage::GetCurrent();
- Size size = stage.GetSize() * 0.25f;
- mActor = Actor::New();
- mActor.SetProperty( Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER );
- mActor.SetProperty( Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER );
- mActor.SetPosition( Vector3( 0.0f, 0.0f, 0.0f ) );
- mActor.SetProperty( Actor::Property::COLOR, Color::RED );
- mActor.SetSize( Vector3( size.x, size.x, size.x ) );
- mActor.AddRenderer( mRenderer );
- stage.Add( mActor );
+ Window window = mApplication.GetWindow();
+ Size size = Vector2(window.GetSize()) * 0.25f;
+ mActor = Actor::New();
+ mActor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
+ mActor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
+ mActor.SetProperty(Actor::Property::POSITION, Vector3(0.0f, 0.0f, 0.0f));
+ mActor.SetProperty(Actor::Property::COLOR, Color::RED);
+ mActor.SetProperty(Actor::Property::SIZE, Vector3(size.x, size.x, size.x));
+ mActor.AddRenderer(mRenderer);
+ window.Add(mActor);
}
private:
- Application& mApplication;
+ Application& mApplication;
Renderer mRenderer;
- Shader mShader;
+ Shader mShader;
Geometry mGeometry;
- Actor mActor;
+ Actor mActor;
};
-int DALI_EXPORT_API main( int argc, char **argv )
+int DALI_EXPORT_API main(int argc, char** argv)
{
- Application application = Application::New( &argc, &argv );
- DrawTriangleController test( application );
+ Application application = Application::New(&argc, &argv);
+ DrawTriangleController test(application);
application.MainLoop();
return 0;
}