]> git.sesse.net Git - kdenlive/commitdiff
Vectorscope: Fixed 75% points for YPbPr
authorSimon A. Eugster <simon.eu@gmail.com>
Sun, 5 Sep 2010 20:05:00 +0000 (20:05 +0000)
committerSimon A. Eugster <simon.eu@gmail.com>
Sun, 5 Sep 2010 20:05:00 +0000 (20:05 +0000)
svn path=/trunk/kdenlive/; revision=4849

src/vectorscope.cpp
src/vectorscope.h

index b046fa13f8c971a6f6b5226a7a6a69e3bcf82a4c..8f8b4dc49d2dd942d641c99c3d4d94e7b42f9b31 100644 (file)
@@ -186,6 +186,12 @@ QRect Vectorscope::scopeRect()
     pCy75 = m_vectorscopeGenerator->mapToCircle(scopeRect.size(), P75*VectorscopeGenerator::scaling*YUV_Cy);
     pMg75 = m_vectorscopeGenerator->mapToCircle(scopeRect.size(), P75*VectorscopeGenerator::scaling*YUV_Mg);
     pYl75 = m_vectorscopeGenerator->mapToCircle(scopeRect.size(), P75*VectorscopeGenerator::scaling*YUV_Yl);
+    qR75 = m_vectorscopeGenerator->mapToCircle(scopeRect.size(), P75*VectorscopeGenerator::scaling*YPbPr_R);
+    qG75 = m_vectorscopeGenerator->mapToCircle(scopeRect.size(), P75*VectorscopeGenerator::scaling*YPbPr_G);
+    qB75 = m_vectorscopeGenerator->mapToCircle(scopeRect.size(), P75*VectorscopeGenerator::scaling*YPbPr_B);
+    qCy75 = m_vectorscopeGenerator->mapToCircle(scopeRect.size(), P75*VectorscopeGenerator::scaling*YPbPr_Cy);
+    qMg75 = m_vectorscopeGenerator->mapToCircle(scopeRect.size(), P75*VectorscopeGenerator::scaling*YPbPr_Mg);
+    qYl75 = m_vectorscopeGenerator->mapToCircle(scopeRect.size(), P75*VectorscopeGenerator::scaling*YPbPr_Yl);
 
     return scopeRect;
 }
@@ -382,22 +388,40 @@ QImage Vectorscope::renderBackground(uint)
 
     // Draw 75% box
     if (m_a75PBox->isChecked()) {
-        davinci.drawLine(pR75, pYl75);
-        davinci.drawLine(pYl75, pG75);
-        davinci.drawLine(pG75, pCy75);
-        davinci.drawLine(pCy75, pB75);
-        davinci.drawLine(pB75, pMg75);
-        davinci.drawLine(pMg75, pR75);
+        if (m_aColorSpace_YUV->isChecked()) {
+            davinci.drawLine(pR75, pYl75);
+            davinci.drawLine(pYl75, pG75);
+            davinci.drawLine(pG75, pCy75);
+            davinci.drawLine(pCy75, pB75);
+            davinci.drawLine(pB75, pMg75);
+            davinci.drawLine(pMg75, pR75);
+        } else {
+            davinci.drawLine(qR75, qYl75);
+            davinci.drawLine(qYl75, qG75);
+            davinci.drawLine(qG75, qCy75);
+            davinci.drawLine(qCy75, qB75);
+            davinci.drawLine(qB75, qMg75);
+            davinci.drawLine(qMg75, qR75);
+        }
     }
 
     // Draw RGB/CMY points with 75% chroma (for NTSC)
     davinci.setPen(penThin);
-    davinci.drawEllipse(pR75, 3,3);
-    davinci.drawEllipse(pG75, 3,3);
-    davinci.drawEllipse(pB75, 3,3);
-    davinci.drawEllipse(pCy75, 3,3);
-    davinci.drawEllipse(pMg75, 3,3);
-    davinci.drawEllipse(pYl75, 3,3);
+    if (m_aColorSpace_YUV->isChecked()) {
+        davinci.drawEllipse(pR75, 3,3);
+        davinci.drawEllipse(pG75, 3,3);
+        davinci.drawEllipse(pB75, 3,3);
+        davinci.drawEllipse(pCy75, 3,3);
+        davinci.drawEllipse(pMg75, 3,3);
+        davinci.drawEllipse(pYl75, 3,3);
+    } else {
+        davinci.drawEllipse(qR75, 3,3);
+        davinci.drawEllipse(qG75, 3,3);
+        davinci.drawEllipse(qB75, 3,3);
+        davinci.drawEllipse(qCy75, 3,3);
+        davinci.drawEllipse(qMg75, 3,3);
+        davinci.drawEllipse(qYl75, 3,3);
+    }
 
     // Draw realtime factor (number of skipped pixels)
     if (m_aRealtime->isChecked()) {
index ed0a35d21d8b712350634c613b8051df6ecaa966..a126e73f7db912f4976e601c7632329762c071ec 100644 (file)
@@ -69,6 +69,7 @@ private:
     float m_gain;
 
     QPoint m_centerPoint, pR75, pG75, pB75, pCy75, pMg75, pYl75;
+    QPoint qR75, qG75, qB75, qCy75, qMg75, qYl75;
 
     /** Updates the dimension. Only necessary when the widget has been resized. */
     void updateDimensions();