Merge "VectorImageRenderer: Remove TizenVectorImageRenderer dependency" into devel...
[platform/core/uifw/dali-adaptor.git] / dali / internal / graphics / gles-impl / gles-graphics-types.h
index 35893c8..18069eb 100644 (file)
@@ -865,12 +865,12 @@ struct GLTextureFormatType
       }
       case Graphics::Format::ETC2_R8G8B8A8_UNORM_BLOCK:
       {
-        Assign(0, 0);
+        Assign(GL_COMPRESSED_RGBA8_ETC2_EAC, 0);
         break;
       }
       case Graphics::Format::ETC2_R8G8B8A8_SRGB_BLOCK:
       {
-        Assign(0, 0);
+        Assign(GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, 0);
         break;
       }
       case Graphics::Format::EAC_R11_UNORM_BLOCK:
@@ -1820,6 +1820,81 @@ struct GLBlendOp
         glBlendOp = GL_MAX;
         break;
       }
+      case Graphics::BlendOp::MULTIPLY:
+      {
+        glBlendOp = GL_MULTIPLY;
+        break;
+      }
+      case Graphics::BlendOp::SCREEN:
+      {
+        glBlendOp = GL_SCREEN;
+        break;
+      }
+      case Graphics::BlendOp::OVERLAY:
+      {
+        glBlendOp = GL_OVERLAY;
+        break;
+      }
+      case Graphics::BlendOp::DARKEN:
+      {
+        glBlendOp = GL_DARKEN;
+        break;
+      }
+      case Graphics::BlendOp::LIGHTEN:
+      {
+        glBlendOp = GL_LIGHTEN;
+        break;
+      }
+      case Graphics::BlendOp::COLOR_DODGE:
+      {
+        glBlendOp = GL_COLORDODGE;
+        break;
+      }
+      case Graphics::BlendOp::COLOR_BURN:
+      {
+        glBlendOp = GL_COLORBURN;
+        break;
+      }
+      case Graphics::BlendOp::HARD_LIGHT:
+      {
+        glBlendOp = GL_HARDLIGHT;
+        break;
+      }
+      case Graphics::BlendOp::SOFT_LIGHT:
+      {
+        glBlendOp = GL_SOFTLIGHT;
+        break;
+      }
+      case Graphics::BlendOp::DIFFERENCE:
+      {
+        glBlendOp = GL_DIFFERENCE;
+        break;
+      }
+      case Graphics::BlendOp::EXCLUSION:
+      {
+        glBlendOp = GL_EXCLUSION;
+        break;
+      }
+      case Graphics::BlendOp::HUE:
+      {
+        glBlendOp = GL_HSL_HUE;
+        break;
+      }
+      case Graphics::BlendOp::SATURATION:
+      {
+        glBlendOp = GL_HSL_SATURATION;
+        break;
+      }
+      case Graphics::BlendOp::COLOR:
+      {
+        glBlendOp = GL_HSL_COLOR;
+        break;
+      }
+      case Graphics::BlendOp::LUMINOSITY:
+      {
+        glBlendOp = GL_HSL_LUMINOSITY;
+        break;
+      }
     }
   }
 
@@ -2018,14 +2093,67 @@ enum class GLESVersion
 };
 
 /**
+ * @brief Types of bond texture cached in the context
+ */
+enum class BoundTextureType
+{
+  TEXTURE_2D,
+  TEXTURE_3D,
+  TEXTURE_CUBEMAP,
+  TEXTURE_EXTERNAL_OES
+};
+
+/**
+ * This class stores indirect pointer, used by the CommandBuffer
+ * to store data allocated within resizeable pool
+ */
+template<class T>
+struct IndirectPtr
+{
+  uint32_t ptr;  // relative pointer
+  void**   base; // base pointer
+
+  inline T* operator->()
+  {
+    return reinterpret_cast<T*>((reinterpret_cast<uint8_t*>(*base) + ptr));
+  }
+
+  inline T& operator*()
+  {
+    return *reinterpret_cast<T*>((reinterpret_cast<uint8_t*>(*base) + ptr));
+  }
+
+  // Returns indirect pointer casted to requested type
+  T* Ptr() const
+  {
+    auto val = reinterpret_cast<T*>((reinterpret_cast<uint8_t*>(*base) + ptr));
+    return val;
+  }
+
+  inline T& operator[](int index)
+  {
+    return reinterpret_cast<T*>((reinterpret_cast<uint8_t*>(*base) + ptr))[index];
+  }
+
+  // Fake assignment operator for void* type
+  inline IndirectPtr<T>& operator=(void* p)
+  {
+    ptr  = 0;
+    base = nullptr;
+    return *this;
+  }
+};
+
+/**
  * The descriptor of BeginRenderPass command
  */
 struct BeginRenderPassDescriptor
 {
-  const GLES::RenderPass*   renderPass{};
-  const GLES::RenderTarget* renderTarget{};
-  Rect2D                    renderArea{};
-  std::vector<ClearValue>   clearValues{};
+  const GLES::RenderPass*   renderPass;
+  const GLES::RenderTarget* renderTarget;
+  Rect2D                    renderArea;
+  IndirectPtr<ClearValue>   clearValues;
+  uint32_t                  clearValuesCount;
 };
 
 } // namespace Dali::Graphics::GLES