Windows build fixes 76/257576/6
authorAdeel Kazmi <adeel.kazmi@samsung.com>
Tue, 27 Apr 2021 18:27:29 +0000 (19:27 +0100)
committerAdeel Kazmi <adeel.kazmi@samsung.com>
Wed, 28 Apr 2021 16:26:04 +0000 (16:26 +0000)
Change-Id: I8ce0746a5119df1df855d7980285e9bcf465f679

automated-tests/src/dali-scene-loader/CMakeLists.txt
automated-tests/src/dali-scene-loader/utc-Dali-MeshDefinition.cpp [new file with mode: 0644]
build/tizen/CMakeLists.txt
build/tizen/dali-scene-loader/CMakeLists.txt
dali-scene-loader/public-api/mesh-definition.cpp

index f0d84fb..693db47 100755 (executable)
@@ -16,6 +16,7 @@ SET(TC_SOURCES
   utc-Dali-Gltf2Loader.cpp
   utc-Dali-KtxLoader.cpp
   utc-Dali-MatrixStack.cpp
   utc-Dali-Gltf2Loader.cpp
   utc-Dali-KtxLoader.cpp
   utc-Dali-MatrixStack.cpp
+  utc-Dali-MeshDefinition.cpp
   utc-Dali-NodeDefinition.cpp
   utc-Dali-RendererState.cpp
   utc-Dali-ResourceBundle.cpp
   utc-Dali-NodeDefinition.cpp
   utc-Dali-RendererState.cpp
   utc-Dali-ResourceBundle.cpp
diff --git a/automated-tests/src/dali-scene-loader/utc-Dali-MeshDefinition.cpp b/automated-tests/src/dali-scene-loader/utc-Dali-MeshDefinition.cpp
new file mode 100644 (file)
index 0000000..37c170b
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+ * 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.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ */
+
+#include <vector>
+
+#include "dali-scene-loader/public-api/mesh-definition.h"
+#include <dali-test-suite-utils.h>
+
+using namespace Dali;
+using namespace Dali::SceneLoader;
+
+int UtcDaliMeshDefinitionBlobApplyMinMaxBothMinMaxApplied(void)
+{
+  using Container = std::vector<float>;
+
+  Container buffer = { 4.0f, 6.0f, 8.0f, 10.0f, 12.0f };
+  Container minValues = { 5.0f };
+  Container maxValues = { 10.0f };
+  Container result = {5.0f, 6.0f, 8.0f, 10.0f, 10.0f};
+
+  MeshDefinition::Blob::ApplyMinMax(minValues, maxValues, 5, buffer.data());
+
+  for( auto i = 0u; i < result.size(); ++i)
+  {
+    DALI_TEST_EQUALS(buffer[i], result[i], TEST_LOCATION);
+  }
+
+  END_TEST;
+}
+
+int UtcDaliMeshDefinitionBlobApplyMinMaxOnlyMin(void)
+{
+  using Container = std::vector<float>;
+
+  Container buffer = { 4.0f, 6.0f, 8.0f, 10.0f, 12.0f };
+  Container minValues = { 5.0f };
+  Container maxValues = {};
+  Container result = {5.0f, 6.0f, 8.0f, 10.0f, 12.0f};
+
+  MeshDefinition::Blob::ApplyMinMax(minValues, maxValues, 5, buffer.data());
+
+  for( auto i = 0u; i < result.size(); ++i)
+  {
+    DALI_TEST_EQUALS(buffer[i], result[i], TEST_LOCATION);
+  }
+
+  END_TEST;
+}
+
+int UtcDaliMeshDefinitionBlobApplyMinMaxOnlyMax(void)
+{
+  using Container = std::vector<float>;
+
+  Container buffer = { 4.0f, 6.0f, 8.0f, 10.0f, 12.0f };
+  Container minValues = { };
+  Container maxValues = { 10.0f };
+  Container result = {4.0f, 6.0f, 8.0f, 10.0f, 10.0f};
+
+  MeshDefinition::Blob::ApplyMinMax(minValues, maxValues, 5, buffer.data());
+
+  for( auto i = 0u; i < result.size(); ++i)
+  {
+    DALI_TEST_EQUALS(buffer[i], result[i], TEST_LOCATION);
+  }
+
+  END_TEST;
+}
+
+int UtcDaliMeshDefinitionBlobApplyMinMaxBothEmpty(void)
+{
+  using Container = std::vector<float>;
+
+  Container buffer = { 4.0f, 6.0f, 8.0f, 10.0f, 12.0f };
+  Container minValues;
+  Container maxValues;
+  Container result = {4.0f, 6.0f, 8.0f, 10.0f, 12.0f};
+
+  MeshDefinition::Blob::ApplyMinMax(minValues, maxValues, 5, buffer.data());
+
+  for( auto i = 0u; i < result.size(); ++i)
+  {
+    DALI_TEST_EQUALS(buffer[i], result[i], TEST_LOCATION);
+  }
+
+  END_TEST;
+}
+
index 1308a3f..00dd771 100644 (file)
@@ -295,6 +295,12 @@ SET_PROPERTY(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
 SET(SHADER_GENERATOR_NAME dali-shader-generator)
 SET(SHADER_GENERATOR_SOURCES ${ROOT_SRC_DIR}/dali-toolkit/shader-generator/shader-generator.cpp)
 
 SET(SHADER_GENERATOR_NAME dali-shader-generator)
 SET(SHADER_GENERATOR_SOURCES ${ROOT_SRC_DIR}/dali-toolkit/shader-generator/shader-generator.cpp)
 
+IF(WIN32)
+  # Allows execution of the shader generator executable as if it's in the cmake build directory rather
+  # than a Debug or Release subdirectory
+  SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
+ENDIF()
+
 IF(NOT ANDROID)
   ADD_EXECUTABLE(${SHADER_GENERATOR_NAME} ${SHADER_GENERATOR_SOURCES})
   INSTALL(TARGETS ${SHADER_GENERATOR_NAME} RUNTIME DESTINATION bin)
 IF(NOT ANDROID)
   ADD_EXECUTABLE(${SHADER_GENERATOR_NAME} ${SHADER_GENERATOR_SOURCES})
   INSTALL(TARGETS ${SHADER_GENERATOR_NAME} RUNTIME DESTINATION bin)
index 7789dda..8891e9d 100644 (file)
@@ -14,6 +14,8 @@ if(CMAKE_BUILD_TYPE MATCHES Debug)
        add_definitions("-DDEBUG_ENABLED")
 endif()
 
        add_definitions("-DDEBUG_ENABLED")
 endif()
 
+ADD_DEFINITIONS( "-DBUILDING_DALI_SCENE_LOADER" )
+
 foreach(flag ${PKGS_CFLAGS})
        set(extra_flags "${extra_flags} ${flag}")
 endforeach(flag)
 foreach(flag ${PKGS_CFLAGS})
        set(extra_flags "${extra_flags} ${flag}")
 endforeach(flag)
@@ -86,10 +88,21 @@ SET_PROPERTY(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES
              "${GENERATED_SHADER_DIR}/generated/"
              "${GENERATED_SHADER_DIR}/builtin-shader-extern-gen.h")
 
              "${GENERATED_SHADER_DIR}/generated/"
              "${GENERATED_SHADER_DIR}/builtin-shader-extern-gen.h")
 
+IF( WIN32)
+  # When Using VCPKG, the default is always set to Debug if CMAKE_BUILD_TYPE is not set
+  IF( NOT CMAKE_BUILD_TYPE )
+    SET(SHADER_GENERATOR_BINARY ${CMAKE_CURRENT_BINARY_DIR}/../Debug/${SHADER_GENERATOR_NAME})
+  ELSE()
+    SET(SHADER_GENERATOR_BINARY ${CMAKE_CURRENT_BINARY_DIR}/../${CMAKE_BUILD_TYPE}/${SHADER_GENERATOR_NAME})
+  ENDIF()
+ELSE()
+  SET(SHADER_GENERATOR_BINARY ${CMAKE_CURRENT_BINARY_DIR}/../${SHADER_GENERATOR_NAME})
+ENDIF()
+
 SET( BUILT_IN_SHADER_GEN_CPP "${GENERATED_SHADER_DIR}/generated/builtin-shader-gen.cpp")
 ADD_CUSTOM_COMMAND(OUTPUT ${BUILT_IN_SHADER_GEN_CPP}
 SET( BUILT_IN_SHADER_GEN_CPP "${GENERATED_SHADER_DIR}/generated/builtin-shader-gen.cpp")
 ADD_CUSTOM_COMMAND(OUTPUT ${BUILT_IN_SHADER_GEN_CPP}
-                   DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/../${SHADER_GENERATOR_NAME}
-                   COMMAND ${CMAKE_CURRENT_BINARY_DIR}/../${SHADER_GENERATOR_NAME} ${SHADER_SOURCE_DIR} ${SHADER_GENERATED_DIR})
+                   DEPENDS ${SHADER_GENERATOR_BINARY}
+                   COMMAND ${SHADER_GENERATOR_BINARY} ${SHADER_SOURCE_DIR} ${SHADER_GENERATED_DIR})
 
 SET( scene_loader_src_files ${scene_loader_src_files} ${BUILT_IN_SHADER_GEN_CPP} )
 
 
 SET( scene_loader_src_files ${scene_loader_src_files} ${BUILT_IN_SHADER_GEN_CPP} )
 
index 8317803..de37e30 100644 (file)
@@ -466,9 +466,9 @@ void MeshDefinition::Blob::ApplyMinMax(const std::vector<float>& min, const std:
                                 : (max.empty() ? [](const float* min, const float* max, uint32_t i, float& value) {
                                     value = std::max(min[i], value);
                                   }
                                 : (max.empty() ? [](const float* min, const float* max, uint32_t i, float& value) {
                                     value = std::max(min[i], value);
                                   }
-                                               : [](const float* min, const float* max, uint32_t i, float& value) {
+                                               : static_cast<ClampFn>([](const float* min, const float* max, uint32_t i, float& value) {
                                                    value = std::min(std::max(min[i], value), max[i]);
                                                    value = std::min(std::max(min[i], value), max[i]);
-                                                 });
+                                                 }));
 
   if(!clampFn)
   {
 
   if(!clampFn)
   {