]> git.sesse.net Git - kdenlive/blobdiff - src/colortools.h
Integrate with the required MLT hooks for getting Movit to work.
[kdenlive] / src / colortools.h
index af79f7fc656308a1571bb53f780cc6acc4d4f4f9..c55507cb59a972baabdbe1081d86b0647abd2ba2 100644 (file)
@@ -27,6 +27,8 @@ public:
 
     enum ColorsRGB { COL_R, COL_G, COL_B, COL_A, COL_Luma, COL_RGB };
 
+    enum ComponentsHSV { COM_H, COM_S, COM_V };
+
     /**
       @brief Draws a UV plane with given Y value.
       scaling defines how far to zoom in (or out). Lower value = zoom in.
@@ -64,11 +66,23 @@ public:
     /**
      @brief Draws a HSV plane with Hue on the x axis and hue difference on the y axis.
      This is for the Bézier Curves widget which allows to change the hue (y) of a certain hue.
+     MIN/MAX give the minimum/maximum hue difference, e.g. -128,+128.
      For the value ranges see:
      http://doc.qt.nokia.com/latest/qcolor.html#the-hsv-color-model
      */
     static QImage hsvHueShiftPlane(const QSize &size, const uint &S, const uint &V, const int &MIN, const int &MAX);
 
+    /**
+      Basic HSV plane with two components varying on the x and y axis.
+      If both components are the same, then the y axis will be considered.
+      MIN/MAX give the minimum/maximum saturation, usually 0..255.
+      Missing colour components will be taken from baseColor.
+      For shear == true, the image will be sheared such that the x axis goes through (0,0) and (1,1). offsetY can additionally
+      shift the whole x axis vertically.
+      */
+    static QImage hsvCurvePlane(const QSize &size, const QColor &baseColor,
+                                const ComponentsHSV &xVariant, const ComponentsHSV &yVariant, const bool &shear = false, const float offsetY = 0);
+
 signals:
     void signalYuvWheelCalculationFinished();
 };