X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=examples%2Frendering-line%2Frendering-line.cpp;h=3b10e561108a339d49977d9d13afb7398b7f2377;hb=5a56ed534cbc24150d68f03ea7fba7cfcc653835;hp=70d55ccac30f9ed8adaed7713814b150766cf86b;hpb=94d678d62ca15faaced5deaf379f9ea4a6f16b7d;p=platform%2Fcore%2Fuifw%2Fdali-demo.git diff --git a/examples/rendering-line/rendering-line.cpp b/examples/rendering-line/rendering-line.cpp index 70d55cc..3b10e56 100644 --- a/examples/rendering-line/rendering-line.cpp +++ b/examples/rendering-line/rendering-line.cpp @@ -1,5 +1,5 @@ /* - * 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. @@ -15,56 +15,25 @@ * */ -#include #include +#include + +#include "generated/rendering-line-frag.h" +#include "generated/rendering-line-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 line in actor's color // class DrawLineController : public ConnectionTracker { public: - - DrawLineController( Application& application ) - : mApplication( application ) + DrawLineController(Application& application) + : mApplication(application) { // Connect to the Application's Init signal - mApplication.InitSignal().Connect( this, &DrawLineController::Create ); + mApplication.InitSignal().Connect(this, &DrawLineController::Create); } ~DrawLineController() @@ -73,11 +42,11 @@ public: } // 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 CreateLineShader(); @@ -91,11 +60,14 @@ public: // Step 4. Create an Actor CreateActor(); - // Respond to a click anywhere on the stage - stage.GetRootLayer().TouchSignal().Connect( this, &DrawLineController::OnTouch ); + // Respond to a click anywhere on the window + window.GetRootLayer().TouchedSignal().Connect(this, &DrawLineController::OnTouch); + + // Respond to key events + window.KeyEventSignal().Connect(this, &DrawLineController::OnKeyEvent); } - bool OnTouch( Actor actor, const TouchData& touch ) + bool OnTouch(Actor actor, const TouchEvent& touch) { // quit the application mApplication.Quit(); @@ -103,33 +75,49 @@ public: } /** + * @brief Called when any key event is received + * + * 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) + { + if(event.GetState() == KeyEvent::DOWN) + { + if(IsKey(event, Dali::DALI_KEY_ESCAPE) || IsKey(event, Dali::DALI_KEY_BACK)) + { + mApplication.Quit(); + } + } + } + + /** * This function creates a line geometry made of two vertices in order * to draw a diagonal line. */ void CreateLineGeometry() { Vector2 vertices[] = { - 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::LINES ); + mGeometry.AddVertexBuffer(vertexBuffer); + mGeometry.SetType(Geometry::LINES); } /** - * Creates a shader using inlined variable VERTEX_SHADER and FRAGMENT_SHADER + * Creates a shader using inlined variable SHADER_RENDERING_LINE_VERT and SHADER_RENDERING_LINE_FRAG * * Shaders are very basic and all they do is transforming vertices and applying actor's colour. */ void CreateLineShader() { - mShader = Shader::New( VERTEX_SHADER, FRAGMENT_SHADER ); + mShader = Shader::New(SHADER_RENDERING_LINE_VERT, SHADER_RENDERING_LINE_FRAG); } /** @@ -137,7 +125,7 @@ public: */ void CreateRenderer() { - mRenderer = Renderer::New( mGeometry, mShader ); + mRenderer = Renderer::New(mGeometry, mShader); } /** @@ -145,41 +133,31 @@ public: */ void CreateActor() { - Stage stage = Stage::GetCurrent(); - Size size = stage.GetSize() * 0.25f; - mActor = Actor::New(); - mActor.SetAnchorPoint( AnchorPoint::CENTER ); - mActor.SetParentOrigin( ParentOrigin::CENTER ); - mActor.SetPosition( Vector3( 0.0f, 0.0f, 0.0f ) ); - mActor.SetColor( Color::BLACK ); - 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::BLACK); + 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; }; -void RunTest( Application& application ) +int DALI_EXPORT_API main(int argc, char** argv) { - DrawLineController test( application ); - + Application application = Application::New(&argc, &argv); + DrawLineController test(application); application.MainLoop(); -} - -// Entry point for Linux & Tizen applications -// -int DALI_EXPORT_API main( int argc, char **argv ) -{ - Application application = Application::New( &argc, &argv ); - - RunTest( application ); - return 0; }