DirectRendering:
[platform/core/uifw/dali-core.git] / dali / graphics-api / graphics-types.h
index 698a7be..2ce4b5a 100644 (file)
@@ -2,7 +2,7 @@
 #define DALI_GRAPHICS_API_TYPES
 
 /*
- * Copyright (c) 2021 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2022 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.
@@ -24,6 +24,8 @@
 #include <utility>
 #include <vector>
 
+#include <dali/public-api/signals/callback.h>
+
 namespace Dali
 {
 namespace Graphics
@@ -165,7 +167,24 @@ enum class BlendOp
   REVERSE_SUBTRACT = 2,
   MIN              = 3,
   MAX              = 4,
-};
+  MULTIPLY         = 5,
+  SCREEN           = 6,
+  OVERLAY          = 7,
+  DARKEN           = 8,
+  LIGHTEN          = 9,
+  COLOR_DODGE      = 10,
+  COLOR_BURN       = 11,
+  HARD_LIGHT       = 12,
+  SOFT_LIGHT       = 13,
+  DIFFERENCE       = 14,
+  EXCLUSION        = 15,
+  HUE              = 16,
+  SATURATION       = 17,
+  COLOR            = 18,
+  LUMINOSITY       = 19,
+};
+
+const BlendOp ADVANCED_BLEND_OPTIONS_START(BlendOp::MULTIPLY);
 
 /**
  * @brief Compare operators
@@ -926,6 +945,7 @@ struct TextureUpdateInfo
   Extent2D srcExtent2D{};
   uint32_t srcOffset{};
   uint32_t srcSize{};
+  uint32_t srcStride{};
   Format   srcFormat{}; ///< Should match dstTexture's format, otherwise conversion may occur
 };
 
@@ -1003,11 +1023,17 @@ struct ColorAttachment
  */
 struct DepthStencilAttachment
 {
-  // TODO:
-  Texture* depthTexture;
-  Texture* stencilTexture;
-  uint32_t depthLevel;
-  uint32_t stencilLevel;
+  enum class Usage
+  {
+    WRITE, // If no texture, will create a RenderBuffer instead
+    NONE   // If no attachment/RenderBuffer required
+  };
+  Texture* depthTexture{nullptr};
+  Texture* stencilTexture{nullptr};
+  uint32_t depthLevel{0};
+  uint32_t stencilLevel{0};
+  Usage    depthUsage{Usage::NONE};
+  Usage    stencilUsage{Usage::NONE};
 };
 
 /**
@@ -1300,7 +1326,8 @@ enum class GraphicsStructureType : uint32_t
   SAMPLER_CREATE_INFO_STRUCT,
   SHADER_CREATE_INFO_STRUCT,
   TEXTURE_CREATE_INFO_STRUCT,
-  RENDER_TARGET_CREATE_INFO_STRUCT
+  RENDER_TARGET_CREATE_INFO_STRUCT,
+  SYNC_OBJECT_CREATE_INFO_STRUCT
 };
 
 /**