Test harness sync 52/301052/1
authorDavid Steele <david.steele@samsung.com>
Tue, 7 Nov 2023 17:25:49 +0000 (17:25 +0000)
committerDavid Steele <david.steele@samsung.com>
Tue, 7 Nov 2023 17:25:49 +0000 (17:25 +0000)
Change-Id: I1b1abc2c020803afec166955fd52b928f57530d8

automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-controller.h
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-program.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-program.h
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.cpp
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/test-graphics-reflection.h

index 527b9f4..24bb51e 100644 (file)
@@ -1289,7 +1289,7 @@ Graphics::UniquePtr<Graphics::Program> TestGraphicsController::CreateProgram(con
   }
 
   mProgramCache.emplace_back();
-  mProgramCache.back().programImpl = new TestGraphicsProgramImpl(mGl, programCreateInfo, mVertexFormats, mCustomUniforms, mCustomUniformBlocks);
+  mProgramCache.back().programImpl = new TestGraphicsProgramImpl(*this, mGl, programCreateInfo, mVertexFormats, mCustomUniforms, mCustomUniformBlocks);
 
   for(auto& shader : *(programCreateInfo.shaderState))
   {
index 9540c3e..e14499b 100644 (file)
@@ -424,6 +424,15 @@ public: // ResourceId relative API.
   Graphics::UniquePtr<Graphics::Texture> ReleaseTextureFromResourceId(uint32_t resourceId) override;
 
 public: // Test Functions
+  void SetAutoAttrCreation(bool v)
+  {
+    mAutoAttrCreation = v;
+  }
+  bool AutoAttrCreation()
+  {
+    return mAutoAttrCreation;
+  }
+
   void SetVertexFormats(Property::Array& vfs)
   {
     mVertexFormats = vfs;
@@ -458,9 +467,9 @@ public:
   TestGraphicsSyncImplementation mGraphicsSyncImpl;
   TestGlContextHelperAbstraction mGlContextHelperAbstraction;
 
-  bool isDiscardQueueEmptyResult{true};
-  bool isDrawOnResumeRequiredResult{true};
-
+  bool            isDiscardQueueEmptyResult{true};
+  bool            isDrawOnResumeRequiredResult{true};
+  bool            mAutoAttrCreation{true};
   Property::Array mVertexFormats;
 
   struct ProgramCache
index 2706305..3c8418e 100644 (file)
 
 namespace Dali
 {
-TestGraphicsProgramImpl::TestGraphicsProgramImpl(TestGlAbstraction& gl, const Graphics::ProgramCreateInfo& createInfo, Property::Array& vertexFormats, std::vector<UniformData>& customUniforms, std::vector<TestGraphicsReflection::TestUniformBlockInfo>& customUniformBlocks)
-: mGl(gl),
+TestGraphicsProgramImpl::TestGraphicsProgramImpl(TestGraphicsController& controller, TestGlAbstraction& gl, const Graphics::ProgramCreateInfo& createInfo, Property::Array& vertexFormats, std::vector<UniformData>& customUniforms, std::vector<TestGraphicsReflection::TestUniformBlockInfo>& customUniformBlocks)
+: mController(controller),
+  mGl(gl),
   mId(gl.CreateProgram()),
   mCreateInfo(createInfo),
-  mReflection(gl, mId, vertexFormats, createInfo, customUniforms, customUniformBlocks)
+  mReflection(controller, gl, mId, vertexFormats, createInfo, customUniforms, customUniformBlocks)
 {
   // Ensure active sampler uniforms are set
   mGl.SetCustomUniforms(customUniforms);
index 8641800..b81185a 100644 (file)
 
 namespace Dali
 {
+class TestGraphicsController;
+
 class TestGraphicsProgramImpl
 {
 public:
-  TestGraphicsProgramImpl(TestGlAbstraction& gl, const Graphics::ProgramCreateInfo& createInfo, Property::Array& vertexFormats, std::vector<UniformData>& customUniforms, std::vector<TestGraphicsReflection::TestUniformBlockInfo>& customUniformBlocks);
+  TestGraphicsProgramImpl(TestGraphicsController& controller, TestGlAbstraction& gl, const Graphics::ProgramCreateInfo& createInfo, Property::Array& vertexFormats, std::vector<UniformData>& customUniforms, std::vector<TestGraphicsReflection::TestUniformBlockInfo>& customUniformBlocks);
 
   // For API
   const TestGraphicsReflection& GetReflection() const
@@ -45,6 +47,7 @@ public:
   bool GetParameter(uint32_t parameterId, void* outData);
 
 public:
+  TestGraphicsController&     mController;
   TestGlAbstraction&          mGl;
   uint32_t                    mId;
   Graphics::ProgramCreateInfo mCreateInfo;
index 2822c0a..7b3e6c8 100644 (file)
@@ -15,6 +15,7 @@
  */
 
 #include "test-graphics-reflection.h"
+#include "test-graphics-controller.h"
 #include "test-graphics-shader.h"
 
 #include <dali/public-api/object/property-map.h>
@@ -110,8 +111,9 @@ constexpr int GetSizeForType(Property::Type type)
 
 } // namespace
 
-TestGraphicsReflection::TestGraphicsReflection(TestGlAbstraction& gl, uint32_t programId, Property::Array& vfs, const Graphics::ProgramCreateInfo& createInfo, std::vector<UniformData>& customUniforms, std::vector<TestGraphicsReflection::TestUniformBlockInfo>& customUniformBlocks)
-: mGl(gl),
+TestGraphicsReflection::TestGraphicsReflection(TestGraphicsController& controller, TestGlAbstraction& gl, uint32_t programId, Property::Array& vfs, const Graphics::ProgramCreateInfo& createInfo, std::vector<UniformData>& customUniforms, std::vector<TestGraphicsReflection::TestUniformBlockInfo>& customUniformBlocks)
+: mController(controller),
+  mGl(gl),
   mCustomUniforms(customUniforms)
 {
   for(Property::Array::SizeType i = 0; i < vfs.Count(); ++i)
@@ -241,19 +243,19 @@ TestGraphicsReflection::TestGraphicsReflection(TestGlAbstraction& gl, uint32_t p
 
 uint32_t TestGraphicsReflection::GetVertexAttributeLocation(const std::string& name) const
 {
-  // Automatically assign locations to named attributes when requested
   auto iter = std::find(mAttributes.begin(), mAttributes.end(), name);
   if(iter != mAttributes.end())
   {
     return iter - mAttributes.begin();
   }
-  else
+  else if(mController.AutoAttrCreation())
   {
     uint32_t location = mAttributes.size();
     mAttributes.push_back(name);
     return location;
   }
-  return 0u;
+
+  return -1;
 }
 
 Dali::Graphics::VertexInputAttributeFormat TestGraphicsReflection::GetVertexAttributeFormat(uint32_t location) const
index e701e17..b598435 100644 (file)
 
 namespace Dali
 {
+class TestGraphicsController;
+
 class TestGraphicsReflection : public Graphics::Reflection
 {
 public:
   class TestUniformBlockInfo;
 
-  TestGraphicsReflection(TestGlAbstraction& gl, uint32_t program_id, Property::Array& vertexFormats, const Graphics::ProgramCreateInfo& createInfo, std::vector<UniformData>& customUniforms, std::vector<TestUniformBlockInfo>& customUniformBlocks);
+  TestGraphicsReflection(TestGraphicsController& controller, TestGlAbstraction& gl, uint32_t program_id, Property::Array& vertexFormats, const Graphics::ProgramCreateInfo& createInfo, std::vector<UniformData>& customUniforms, std::vector<TestUniformBlockInfo>& customUniformBlocks);
 
   uint32_t                                        GetVertexAttributeLocation(const std::string& name) const override;
   Dali::Graphics::VertexInputAttributeFormat      GetVertexAttributeFormat(uint32_t location) const override;
@@ -84,6 +86,7 @@ public: // Test methods
     return mUniformBlocks[index];
   }
 
+  TestGraphicsController&          mController;
   TestGlAbstraction&               mGl;
   mutable std::vector<std::string> mAttributes;
   std::vector<UniformData>         mCustomUniforms;