Change the precision of size and uSize from mediumP to highP
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / internal / visuals / wireframe / wireframe-visual.cpp
index 764ba27..3707465 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 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.
@@ -20,7 +20,7 @@
 #include "wireframe-visual.h"
 
 // INTERNAL INCLUDES
-#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
+#include <dali-toolkit/public-api/visuals/visual-properties.h>
 #include <dali-toolkit/internal/visuals/visual-factory-impl.h>
 #include <dali-toolkit/internal/visuals/visual-factory-cache.h>
 #include <dali-toolkit/internal/visuals/visual-string-constants.h>
@@ -42,13 +42,13 @@ const char * const INDEX_NAME("indices");
 
 const char* VERTEX_SHADER = DALI_COMPOSE_SHADER(
 attribute mediump vec2  aPosition;\n
-uniform   mediump mat4  uMvpMatrix;\n
-uniform   mediump vec3  uSize;\n
+uniform   highp   mat4  uMvpMatrix;\n
+uniform   highp   vec3  uSize;\n
 \n
 
 //Visual size and offset
 uniform mediump vec2 offset;\n
-uniform mediump vec2 size;\n
+uniform highp   vec2 size;\n
 uniform mediump vec4 offsetSizeMode;\n
 uniform mediump vec2 origin;\n
 uniform mediump vec2 anchorPoint;\n
@@ -69,11 +69,10 @@ void main()\n
 const char* FRAGMENT_SHADER = DALI_COMPOSE_SHADER(\n
   uniform lowp vec4 uColor;\n
   uniform lowp vec3 mixColor;\n
-  uniform lowp float opacity;\n
 \n
 void main()\n
 {\n
-  gl_FragColor = uColor * vec4( mixColor, opacity );\n
+  gl_FragColor = uColor * vec4( mixColor, 1.0 );\n
 }\n
 );
 
@@ -96,7 +95,7 @@ WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, Visua
   WireframeVisualPtr wireframeVisual( new WireframeVisual( factoryCache, actualVisual ) );
 
   // Instead of calling SetProperties, looking for the only valid property 'transform'
-  Property::Value* transformValue = properties.Find( DevelVisual::Property::TRANSFORM, TRANSFORM );
+  Property::Value* transformValue = properties.Find( Toolkit::Visual::Property::TRANSFORM, TRANSFORM );
   Property::Map transformMap;
   if( transformValue && transformValue->Get( transformMap ) )
   {
@@ -107,7 +106,7 @@ WireframeVisualPtr WireframeVisual::New( VisualFactoryCache& factoryCache, Visua
 }
 
 WireframeVisual::WireframeVisual( VisualFactoryCache& factoryCache, Visual::BasePtr actualVisual )
-: Visual::Base( factoryCache ),
+: Visual::Base( factoryCache, Visual::FittingMode::FILL, actualVisual ? actualVisual->GetType() : Toolkit::Visual::WIREFRAME ),
   mActualVisual( actualVisual )
 {
 }
@@ -149,13 +148,18 @@ void WireframeVisual::DoCreatePropertyMap( Property::Map& map ) const
   else
   {
     map.Clear();
-    map.Insert( Toolkit::DevelVisual::Property::TYPE, Toolkit::Visual::WIREFRAME );
+    map.Insert( Toolkit::Visual::Property::TYPE, Toolkit::Visual::WIREFRAME );
   }
 }
 
+void WireframeVisual::DoCreateInstancePropertyMap( Property::Map& map ) const
+{
+  // Do nothing
+}
+
 void WireframeVisual::DoSetProperties( const Property::Map& propertyMap )
 {
-  Property::Value* mixValue = propertyMap.Find( Toolkit::DevelVisual::Property::MIX_COLOR, MIX_COLOR );
+  Property::Value* mixValue = propertyMap.Find( Toolkit::Visual::Property::MIX_COLOR, MIX_COLOR );
   if( mixValue )
   {
     Vector4 mixColor;
@@ -164,11 +168,14 @@ void WireframeVisual::DoSetProperties( const Property::Map& propertyMap )
   }
 }
 
-void WireframeVisual::DoSetOnStage( Actor& actor )
+void WireframeVisual::DoSetOnScene( Actor& actor )
 {
   InitializeRenderer();
 
   actor.AddRenderer( mImpl->mRenderer );
+
+  // Wireframe generated and ready to display
+  ResourceReady( Toolkit::Visual::ResourceStatus::READY );
 }
 
 void WireframeVisual::InitializeRenderer()
@@ -209,7 +216,7 @@ Geometry WireframeVisual::CreateQuadWireframeGeometry()
 
   Property::Map quadVertexFormat;
   quadVertexFormat[POSITION_ATTRIBUTE_NAME] = Property::VECTOR2;
-  PropertyBuffer quadVertices = PropertyBuffer::New( quadVertexFormat );
+  VertexBuffer quadVertices = VertexBuffer::New( quadVertexFormat );
   quadVertices.SetData( quadVertexData, 4 );
 
   // Create indices
@@ -233,6 +240,16 @@ void WireframeVisual::OnSetTransform()
   }
 }
 
+Visual::Base& WireframeVisual::GetVisualObject()
+{
+  if( mActualVisual )
+  {
+    return *mActualVisual.Get();
+  }
+
+  return *this;
+}
+
 } // namespace Internal
 
 } // namespace Toolkit