Merge "(Builder) Added Constants that can be used by Custom shaders" into devel/master
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Thu, 28 Jan 2021 21:07:37 +0000 (21:07 +0000)
committerGerrit Code Review <gerrit@review>
Thu, 28 Jan 2021 21:07:37 +0000 (21:07 +0000)
dali-toolkit/devel-api/builder/builder.h
dali-toolkit/internal/builder/builder-impl.cpp

index f10f037..b255c11 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_TOOLKIT_UIBUILDER_H
 
 /*
- * Copyright (c) 2020 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.
@@ -163,9 +163,23 @@ public:
    * @brief Adds user defined constants to all future style template or animation expansions
    *
    * e.g.
-   *   Property::Map map;
-   *   map["IMAGE_DIRECTORY"] = "/usr/share/images";
-   *   builder.AddConstants( map );
+   * @code
+   * Property::Map map;
+   * map["IMAGE_DIRECTORY"] = "/usr/share/images";
+   * builder.AddConstants( map );
+   * @endcode
+   *
+   * The following shows a list of constants available by default:
+   *
+   *  Constant                     | Description
+   * ----------------------------- | ----------------------------------------------------------------------------------------------------
+   *   DALI_IMAGE_DIR              | The Image Directory used by Toolkit.
+   *   DALI_SOUND_DIR              | The Sound Directory used by Toolkit.
+   *   DALI_STYLE_DIR              | The Style directory that the Toolkit uses.
+   *   DALI_STYLE_IMAGE_DIR        | The directory that stores all the images used by Toolkit's style.
+   *   DALI_SHADER_VERSION_PREFIX  | For use in custom shaders to prepend the shader version in use. @ref Shader::GetShaderVersionPrefix
+   *   DALI_VERTEX_SHADER_PREFIX   | For use in custom vertex shaders to preprocessor prefix used. @ref Shader::GetVertexShaderPrefix
+   *   DALI_FRAGMENT_SHADER_PREFIX | For use in custom vertex shaders to preprocessor prefix used. @ref Shader::GetFragmentShaderPrefix()
    *
    * @pre The Builder has been initialized.
    * @param map The user defined constants used in template expansions.
@@ -180,6 +194,8 @@ public:
    * builder.AddConstant( "IMAGE_DIRECTORY", "/usr/share/images" );
    * @endcode
    *
+   * @see AddConstants(const Property::Map&) for builder pre-defined default constants.
+   *
    * @pre The Builder has been initialized.
    * @param key The constant name to add or update
    * @param value The new value for the constant.
index 8bcdff1..88c51b6 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2020 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.
@@ -28,6 +28,7 @@
 #include <dali/public-api/object/type-info.h>
 #include <dali/public-api/object/type-registry.h>
 #include <dali/public-api/render-tasks/render-task-list.h>
+#include <dali/public-api/rendering/shader.h>
 #include <dali/public-api/signals/functor-delegate.h>
 #include <dali/devel-api/common/stage.h>
 #include <dali/devel-api/scripting/scripting.h>
@@ -156,13 +157,16 @@ Builder::Builder()
 {
   mParser = Dali::Toolkit::JsonParser::New();
 
-  Property::Map defaultDirs;
-  defaultDirs[TOKEN_STRING(DALI_IMAGE_DIR)]       = AssetManager::GetDaliImagePath();
-  defaultDirs[TOKEN_STRING(DALI_SOUND_DIR)]       = AssetManager::GetDaliSoundPath();
-  defaultDirs[TOKEN_STRING(DALI_STYLE_DIR)]       = AssetManager::GetDaliStylePath();
-  defaultDirs[TOKEN_STRING(DALI_STYLE_IMAGE_DIR)] = AssetManager::GetDaliStyleImagePath();
+  Property::Map defaultConstants;
+  defaultConstants[TOKEN_STRING(DALI_IMAGE_DIR)]              = AssetManager::GetDaliImagePath();
+  defaultConstants[TOKEN_STRING(DALI_SOUND_DIR)]              = AssetManager::GetDaliSoundPath();
+  defaultConstants[TOKEN_STRING(DALI_STYLE_DIR)]              = AssetManager::GetDaliStylePath();
+  defaultConstants[TOKEN_STRING(DALI_STYLE_IMAGE_DIR)]        = AssetManager::GetDaliStyleImagePath();
+  defaultConstants[TOKEN_STRING(DALI_SHADER_VERSION_PREFIX)]  = Shader::GetShaderVersionPrefix();
+  defaultConstants[TOKEN_STRING(DALI_VERTEX_SHADER_PREFIX)]   = Shader::GetVertexShaderPrefix();
+  defaultConstants[TOKEN_STRING(DALI_FRAGMENT_SHADER_PREFIX)] = Shader::GetFragmentShaderPrefix();
 
-  AddConstants( defaultDirs );
+  AddConstants(defaultConstants);
 }
 
 void Builder::LoadFromString( std::string const& data, Dali::Toolkit::Builder::UIFormat format )