From f1150c8895518f78f8c2b9c4cb1464ffaffdf16e Mon Sep 17 00:00:00 2001 From: Richard Huang Date: Fri, 19 Feb 2021 15:28:44 +0000 Subject: [PATCH] Update common test harness files for shader reflection Change-Id: Ib0d76e99d41df1f09377b35fd4a34a0430e5bf96 --- .../src/dali-scene-loader-internal/CMakeLists.txt | 1 + .../src/dali-scene-loader/CMakeLists.txt | 1 + .../src/dali-toolkit-internal/CMakeLists.txt | 1 + .../src/dali-toolkit-styling/CMakeLists.txt | 1 + .../src/dali-toolkit-third-party/CMakeLists.txt | 1 + automated-tests/src/dali-toolkit/CMakeLists.txt | 1 + .../test-graphics-controller.cpp | 9 ++ .../test-graphics-controller.h | 9 ++ .../test-graphics-reflection.cpp | 106 +++++++++++++++++++++ .../test-graphics-reflection.h | 52 ++++++++++ 10 files changed, 182 insertions(+) create mode 100644 automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.cpp create mode 100644 automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.h diff --git a/automated-tests/src/dali-scene-loader-internal/CMakeLists.txt b/automated-tests/src/dali-scene-loader-internal/CMakeLists.txt index f9de035..539bcd4 100755 --- a/automated-tests/src/dali-scene-loader-internal/CMakeLists.txt +++ b/automated-tests/src/dali-scene-loader-internal/CMakeLists.txt @@ -49,6 +49,7 @@ SET(TEST_HARNESS_SOURCES ${TEST_HARNESS_DIR}/test-graphics-texture.cpp ${TEST_HARNESS_DIR}/test-graphics-sampler.cpp ${TEST_HARNESS_DIR}/test-graphics-pipeline.cpp + ${TEST_HARNESS_DIR}/test-graphics-reflection.cpp ${TEST_HARNESS_DIR}/test-platform-abstraction.cpp ${TEST_HARNESS_DIR}/test-render-controller.cpp ${TEST_HARNESS_DIR}/test-trace-call-stack.cpp diff --git a/automated-tests/src/dali-scene-loader/CMakeLists.txt b/automated-tests/src/dali-scene-loader/CMakeLists.txt index 55ba896..6c44670 100755 --- a/automated-tests/src/dali-scene-loader/CMakeLists.txt +++ b/automated-tests/src/dali-scene-loader/CMakeLists.txt @@ -63,6 +63,7 @@ SET(TEST_HARNESS_SOURCES ${TEST_HARNESS_DIR}/test-graphics-texture.cpp ${TEST_HARNESS_DIR}/test-graphics-sampler.cpp ${TEST_HARNESS_DIR}/test-graphics-pipeline.cpp + ${TEST_HARNESS_DIR}/test-graphics-reflection.cpp ${TEST_HARNESS_DIR}/test-platform-abstraction.cpp ${TEST_HARNESS_DIR}/test-render-controller.cpp ${TEST_HARNESS_DIR}/test-trace-call-stack.cpp diff --git a/automated-tests/src/dali-toolkit-internal/CMakeLists.txt b/automated-tests/src/dali-toolkit-internal/CMakeLists.txt index 7d26e43..cd5e140 100755 --- a/automated-tests/src/dali-toolkit-internal/CMakeLists.txt +++ b/automated-tests/src/dali-toolkit-internal/CMakeLists.txt @@ -85,6 +85,7 @@ SET(TEST_HARNESS_SOURCES ../dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.cpp ../dali-toolkit/dali-toolkit-test-utils/test-graphics-texture.cpp ../dali-toolkit/dali-toolkit-test-utils/test-graphics-pipeline.cpp + ../dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.cpp ../dali-toolkit/dali-toolkit-test-utils/test-graphics-sampler.cpp ../dali-toolkit/dali-toolkit-test-utils/test-platform-abstraction.cpp ../dali-toolkit/dali-toolkit-test-utils/test-render-controller.cpp diff --git a/automated-tests/src/dali-toolkit-styling/CMakeLists.txt b/automated-tests/src/dali-toolkit-styling/CMakeLists.txt index 4c179b8..ebbc8cb 100644 --- a/automated-tests/src/dali-toolkit-styling/CMakeLists.txt +++ b/automated-tests/src/dali-toolkit-styling/CMakeLists.txt @@ -51,6 +51,7 @@ SET(TEST_HARNESS_SOURCES ../dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.cpp ../dali-toolkit/dali-toolkit-test-utils/test-graphics-texture.cpp ../dali-toolkit/dali-toolkit-test-utils/test-graphics-pipeline.cpp + ../dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.cpp ../dali-toolkit/dali-toolkit-test-utils/test-graphics-sampler.cpp ../dali-toolkit/dali-toolkit-test-utils/test-render-controller.cpp ../dali-toolkit/dali-toolkit-test-utils/test-trace-call-stack.cpp diff --git a/automated-tests/src/dali-toolkit-third-party/CMakeLists.txt b/automated-tests/src/dali-toolkit-third-party/CMakeLists.txt index a4055b9..e8fa652 100644 --- a/automated-tests/src/dali-toolkit-third-party/CMakeLists.txt +++ b/automated-tests/src/dali-toolkit-third-party/CMakeLists.txt @@ -38,6 +38,7 @@ SET(TEST_HARNESS_SOURCES ../dali-toolkit/dali-toolkit-test-utils/test-graphics-texture.cpp ../dali-toolkit/dali-toolkit-test-utils/test-graphics-sampler.cpp ../dali-toolkit/dali-toolkit-test-utils/test-graphics-pipeline.cpp + ../dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.cpp ../dali-toolkit/dali-toolkit-test-utils/test-platform-abstraction.cpp ../dali-toolkit/dali-toolkit-test-utils/test-render-controller.cpp ../dali-toolkit/dali-toolkit-test-utils/test-trace-call-stack.cpp diff --git a/automated-tests/src/dali-toolkit/CMakeLists.txt b/automated-tests/src/dali-toolkit/CMakeLists.txt index 072fecc..6dddc1a 100755 --- a/automated-tests/src/dali-toolkit/CMakeLists.txt +++ b/automated-tests/src/dali-toolkit/CMakeLists.txt @@ -115,6 +115,7 @@ SET(TEST_HARNESS_SOURCES dali-toolkit-test-utils/test-graphics-controller.cpp dali-toolkit-test-utils/test-graphics-texture.cpp dali-toolkit-test-utils/test-graphics-pipeline.cpp + dali-toolkit-test-utils/test-graphics-reflection.cpp dali-toolkit-test-utils/test-graphics-sampler.cpp dali-toolkit-test-utils/test-platform-abstraction.cpp dali-toolkit-test-utils/test-render-controller.cpp diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.cpp index a8357c1..41d13c9 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.cpp +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.cpp @@ -18,6 +18,7 @@ #include "test-graphics-buffer.h" #include "test-graphics-command-buffer.h" +#include "test-graphics-reflection.h" #include "test-graphics-sampler.h" #include "test-graphics-texture.h" @@ -766,6 +767,14 @@ const Graphics::TextureProperties& TestGraphicsController::GetTextureProperties( return textureProperties; } +const Graphics::Reflection& TestGraphicsController::GetPipelineReflection(const Graphics::Pipeline& pipeline) +{ + static TestGraphicsReflection reflection(mGl); + mCallStack.PushCall("Controller::GetPipelineReflection", ""); + + return reflection; +} + bool TestGraphicsController::PipelineEquals(const Graphics::Pipeline& pipeline0, const Graphics::Pipeline& pipeline1) const { mCallStack.PushCall("Controller::PipelineEquals", ""); diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.h b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.h index e39c1a5..bf2ba21 100644 --- a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.h +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.h @@ -21,6 +21,7 @@ #include "test-gl-abstraction.h" #include "test-gl-context-helper-abstraction.h" #include "test-gl-sync-abstraction.h" +#include "test-graphics-reflection.h" namespace Dali { @@ -267,6 +268,14 @@ public: const Graphics::TextureProperties& GetTextureProperties(const Graphics::Texture& texture) override; /** + * @brief Returns the reflection of the given pipeline + * + * @param[in] pipeline The pipeline + * @return The reflection of the pipeline + */ + const Graphics::Reflection& GetPipelineReflection(const Graphics::Pipeline& pipeline) override; + + /** * @brief Tests whether two Pipelines are the same. * * On the higher level, this function may help wit creating pipeline cache. diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.cpp b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.cpp new file mode 100644 index 0000000..9bce79a2 --- /dev/null +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.cpp @@ -0,0 +1,106 @@ +/* + * 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 "test-graphics-reflection.h" + +namespace Dali +{ +TestGraphicsReflection::TestGraphicsReflection(TestGlAbstraction& gl) +: mGl(gl) +{ +} + +uint32_t TestGraphicsReflection::GetVertexAttributeLocation(const std::string& name) const +{ + return 0u; +} + +Dali::Graphics::VertexInputAttributeFormat TestGraphicsReflection::GetVertexAttributeFormat(uint32_t location) const +{ + return Dali::Graphics::VertexInputAttributeFormat{}; +} + +std::string TestGraphicsReflection::GetVertexAttributeName(uint32_t location) const +{ + return 0u; +} + +std::vector TestGraphicsReflection::GetVertexAttributeLocations() const +{ + return std::vector{}; +} + +uint32_t TestGraphicsReflection::GetUniformBlockCount() const +{ + return 0u; +} + +uint32_t TestGraphicsReflection::GetUniformBlockBinding(uint32_t index) const +{ + return 0u; +} + +uint32_t TestGraphicsReflection::GetUniformBlockSize(uint32_t index) const +{ + return 0u; +} + +bool TestGraphicsReflection::GetUniformBlock(uint32_t index, Dali::Graphics::UniformBlockInfo& out) const +{ + return true; +} + +std::vector TestGraphicsReflection::GetUniformBlockLocations() const +{ + return std::vector{}; +} + +std::string TestGraphicsReflection::GetUniformBlockName(uint32_t blockIndex) const +{ + return std::string{}; +} + +uint32_t TestGraphicsReflection::GetUniformBlockMemberCount(uint32_t blockIndex) const +{ + return 0u; +} + +std::string TestGraphicsReflection::GetUniformBlockMemberName(uint32_t blockIndex, uint32_t memberLocation) const +{ + return std::string{}; +} + +uint32_t TestGraphicsReflection::GetUniformBlockMemberOffset(uint32_t blockIndex, uint32_t memberLocation) const +{ + return 0u; +} + +bool TestGraphicsReflection::GetNamedUniform(const std::string& name, Dali::Graphics::UniformInfo& out) const +{ + return true; +} + +std::vector TestGraphicsReflection::GetSamplers() const +{ + return std::vector{}; +} + +Graphics::ShaderLanguage TestGraphicsReflection::GetLanguage() const +{ + return Graphics::ShaderLanguage::GLSL_3_1; +} + +} // namespace Dali diff --git a/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.h b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.h new file mode 100644 index 0000000..1c9f62b --- /dev/null +++ b/automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.h @@ -0,0 +1,52 @@ +#ifndef DALI_TEST_GRAPHICS_REFLECTION_H +#define DALI_TEST_GRAPHICS_REFLECTION_H + +/* + * 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 +#include "test-gl-abstraction.h" + +namespace Dali +{ +class TestGraphicsReflection : public Graphics::Reflection +{ +public: + TestGraphicsReflection(TestGlAbstraction& gl); + + uint32_t GetVertexAttributeLocation(const std::string& name) const override; + Dali::Graphics::VertexInputAttributeFormat GetVertexAttributeFormat(uint32_t location) const override; + std::string GetVertexAttributeName(uint32_t location) const override; + std::vector GetVertexAttributeLocations() const override; + uint32_t GetUniformBlockCount() const override; + uint32_t GetUniformBlockBinding(uint32_t index) const override; + uint32_t GetUniformBlockSize(uint32_t index) const override; + bool GetUniformBlock(uint32_t index, Dali::Graphics::UniformBlockInfo& out) const override; + std::vector GetUniformBlockLocations() const override; + std::string GetUniformBlockName(uint32_t blockIndex) const override; + uint32_t GetUniformBlockMemberCount(uint32_t blockIndex) const override; + std::string GetUniformBlockMemberName(uint32_t blockIndex, uint32_t memberLocation) const override; + uint32_t GetUniformBlockMemberOffset(uint32_t blockIndex, uint32_t memberLocation) const override; + bool GetNamedUniform(const std::string& name, Dali::Graphics::UniformInfo& out) const override; + std::vector GetSamplers() const override; + Graphics::ShaderLanguage GetLanguage() const override; + + TestGlAbstraction& mGl; +}; + +} // namespace Dali + +#endif //DALI_TEST_GRAPHICS_REFLECTION_H -- 2.7.4