[prev in list] [next in list] [prev in thread] [next in thread]
List: kwin
Subject: Re: Review Request 114588: Background contrast shader (was: 3 different types of blur)
From: Fredrik_Höglund <fredrik () kde ! org>
Date: 2014-01-05 6:29:11
Message-ID: 20140105062911.15366.46091 () probe ! kde ! org
[Download RAW message or body]
[Attachment #2 (multipart/alternative)]
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/114588/#review46024
-----------------------------------------------------------
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment33434>
You should add your copyright here and in the other files :)
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment33438>
This is not an ideal way of storing a 4x4 array of floating point values in \
memory.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment33436>
By dividing by 100 here you are storing the values as fixed point numbers with \
less than 7 bits of precision for the fraction.
Xrender specified 16 bits for the fraction, but this was later found to be \
insufficient. It resulted in X being extended to allow IEEE 754 single precision \
floats to be stored in properties.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment33437>
QMatrix4x4 has a constructor that takes an array of 16 floating point values.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment32824>
The color matrix in the shader can't be set here since it can be different for \
different windows.
You have to use w->setData() to store it in the EffectWindow, and set it when you \
render the texture with the shader.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment32825>
This code is not needed since the cache isn't used.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment33439>
This function may need to be updated for this effect.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment32826>
The effect should not be applied behind the decoration.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment32827>
This effect only does one pass, so this function should only upload one region.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment32829>
Since pixels don't depend on neighboring pixels, I'm not sure if we need to \
reimplement this method at all.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment32828>
This whole block should be removed since the cache isn't used.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment32830>
This is not valid for this effect.
kwin/effects/backgroundcontrast/contrast.cpp
<https://git.reviewboard.kde.org/r/114588/#comment32831>
Should the effect be applied behind EffectFrames?
kwin/effects/backgroundcontrast/contrast.desktop
<https://git.reviewboard.kde.org/r/114588/#comment33433>
The ordering needs to be set so the effect is always applied after the blur \
effect.
kwin/effects/backgroundcontrast/contrast_config.ui
<https://git.reviewboard.kde.org/r/114588/#comment33440>
It looks like this file is just a copy of the .ui file from the blur effect.
kwin/effects/backgroundcontrast/contrastshader.h
<https://git.reviewboard.kde.org/r/114588/#comment32833>
This base class should be merged with GLSLContrastShader, since that's the only \
implementation.
kwin/effects/backgroundcontrast/contrastshader.h
<https://git.reviewboard.kde.org/r/114588/#comment32832>
This method is not implemented (or used).
kwin/effects/backgroundcontrast/contrastshader.h
<https://git.reviewboard.kde.org/r/114588/#comment32834>
This variable is not used, so it should be removed along with its setter and \
getter.
kwin/effects/backgroundcontrast/contrastshader.cpp
<https://git.reviewboard.kde.org/r/114588/#comment32835>
Unused variable.
- Fredrik Höglund
On Dec. 21, 2013, 7:16 p.m., Marco Martin wrote:
>
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/114588/
> -----------------------------------------------------------
>
> (Updated Dec. 21, 2013, 7:16 p.m.)
>
>
> Review request for kwin and Fredrik Höglund.
>
>
> Repository: kde-workspace
>
>
> Description
> -------
>
> This adds a new kwin effect that makes possible to apply a color transform matrix \
> to an area behind a window, this is an alternative approach, as a separate effect \
> compared to adding this to the blur effect that was attempted previously.
> the second part of the patch is in the repository kwindowsystem, branch \
> mart/kwin/backgroundContrast2 (is still not available on reviewboard) \
> https://projects.kde.org/projects/frameworks/kwindowsystem/repository/show?rev=mart%2Fkwin%2FbackgroundContrast2
>
>
> Diffs
> -----
>
> kwin/effects/CMakeLists.txt d1e2b0d
> kwin/effects/backgroundcontrast/.directory PRE-CREATION
> kwin/effects/backgroundcontrast/CMakeLists.txt PRE-CREATION
> kwin/effects/backgroundcontrast/backgroundcontrast.kdev4 PRE-CREATION
> kwin/effects/backgroundcontrast/contrast.cpp PRE-CREATION
> kwin/effects/backgroundcontrast/contrast.desktop PRE-CREATION
> kwin/effects/backgroundcontrast/contrast.h PRE-CREATION
> kwin/effects/backgroundcontrast/contrast.kcfg PRE-CREATION
> kwin/effects/backgroundcontrast/contrast_config.cpp PRE-CREATION
> kwin/effects/backgroundcontrast/contrast_config.desktop PRE-CREATION
> kwin/effects/backgroundcontrast/contrast_config.h PRE-CREATION
> kwin/effects/backgroundcontrast/contrast_config.ui PRE-CREATION
> kwin/effects/backgroundcontrast/contrastconfig.kcfgc PRE-CREATION
> kwin/effects/backgroundcontrast/contrastshader.h PRE-CREATION
> kwin/effects/backgroundcontrast/contrastshader.cpp PRE-CREATION
> kwin/libkwineffects/kwineffects.h 4cfd955
> kwin/scripting/scriptedeffect.h e642829
>
> Diff: https://git.reviewboard.kde.org/r/114588/diff/
>
>
> Testing
> -------
>
>
> Thanks,
>
> Marco Martin
>
>
[Attachment #5 (text/html)]
<html>
<body>
<div style="font-family: Verdana, Arial, Helvetica, Sans-Serif;">
<table bgcolor="#f9f3c9" width="100%" cellpadding="8" style="border: 1px #c9c399 \
solid;"> <tr>
<td>
This is an automatically generated e-mail. To reply, visit:
<a href="https://git.reviewboard.kde.org/r/114588/">https://git.reviewboard.kde.org/r/114588/</a>
</td>
</tr>
</table>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line3" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">3</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="cm"> * Copyright © 2011 Philipp Knechtges \
<philipp-dev@knechtges.com></span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">You should \
add your copyright here and in the other files :)</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line95" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">95</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="n">QVector</span><span class="o"><</span><span \
class="n">QVector</span><span class="o"><</span><span class="n">qreal</span><span \
class="o">></span> <span class="o">></span> <span \
class="n">colorTransform</span> <span class="o">=</span> <span \
class="n">QVector</span><span class="o"><</span><span \
class="n">QVector</span><span class="o"><</span><span class="n">qreal</span><span \
class="o">></span> <span class="o">></span><span class="p">(</span><span \
class="mi">4</span><span class="p">);</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This is not \
an ideal way of storing a 4x4 array of floating point values in memory.</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line112" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">112</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> \
<span class="n">colorTransform</span><span class="p">[</span><span \
class="n">j</span><span class="o">/</span><span class="mi">4</span><span \
class="p">][</span><span class="n">j</span><span class="o">%</span><span \
class="mi">4</span><span class="p">]</span> <span class="o">=</span> <span \
class="p">(</span><span class="n">qreal</span><span class="p">)</span><span \
class="n">cardinals</span><span class="p">[</span><span class="n">i</span> <span \
class="o">+</span> <span class="n">j</span><span class="p">]</span> <span \
class="o">/</span> <span class="mi">100</span><span class="p">;</span></pre></td> \
</tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">By dividing \
by 100 here you are storing the values as fixed point numbers with less than 7 bits \
of precision for the fraction.
Xrender specified 16 bits for the fraction, but this was later found to be \
insufficient. It resulted in X being extended to allow IEEE 754 single precision \
floats to be stored in properties. </pre>
</div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line114" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">114</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="n">QMatrix4x4</span> <span class="n">colorMatrix</span><span \
class="p">(</span><span class="n">colorTransform</span><span class="p">[</span><span \
class="mi">0</span><span class="p">][</span><span class="mi">0</span><span \
class="p">],</span> <span class="n">colorTransform</span><span \
class="p">[</span><span class="mi">0</span><span class="p">][</span><span \
class="mi">1</span><span class="p">],</span> <span \
class="n">colorTransform</span><span class="p">[</span><span class="mi">0</span><span \
class="p">][</span><span class="mi">2</span><span class="p">],</span> <span \
class="n">colorTransform</span><span class="p">[</span><span class="mi">0</span><span \
class="p">][</span><span class="mi">3</span><span class="p">],</span></pre></td> \
</tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">QMatrix4x4 \
has a constructor that takes an array of 16 floating point values.</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line118" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">118</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="n">shader</span><span class="o">-></span><span \
class="n">setColorMatrix</span><span class="p">(</span><span \
class="n">colorMatrix</span><span class="p">);</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The color \
matrix in the shader can't be set here since it can be different for different \
windows.
You have to use w->setData() to store it in the EffectWindow, and set it when you \
render the texture with the shader. </pre>
</div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line146" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">146</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="n">CacheEntry</span> <span class="n">it</span> <span class="o">=</span> <span \
class="n">windows</span><span class="p">.</span><span class="n">find</span><span \
class="p">(</span><span class="n">w</span><span class="p">);</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This code \
is not needed since the cache isn't used.</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line154" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">154</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="kt">bool</span> <span class="n">ContrastEffect</span><span \
class="o">::</span><span class="n">enabledByDefault</span><span \
class="p">()</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This \
function may need to be updated for this effect.</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line187" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">187</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="k">if</span> <span class="p">(</span><span class="n">value</span><span \
class="p">.</span><span class="n">isValid</span><span class="p">())</span> <span \
class="p">{</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The effect \
should not be applied behind the decoration.</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line231" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">231</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="kt">void</span> <span class="n">ContrastEffect</span><span \
class="o">::</span><span class="n">uploadGeometry</span><span class="p">(</span><span \
class="n">GLVertexBuffer</span> <span class="o">*</span><span \
class="n">vbo</span><span class="p">,</span> <span class="k">const</span> <span \
class="n">QRegion</span> <span class="o">&</span><span \
class="n">horizontal</span><span class="p">,</span> <span class="k">const</span> \
<span class="n">QRegion</span> <span class="o">&</span><span \
class="n">vertical</span><span class="p">)</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This effect \
only does one pass, so this function should only upload one region.</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line257" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">257</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="kt">void</span> <span class="n">ContrastEffect</span><span \
class="o">::</span><span class="n">prePaintWindow</span><span class="p">(</span><span \
class="n">EffectWindow</span><span class="o">*</span> <span class="n">w</span><span \
class="p">,</span> <span class="n">WindowPrePaintData</span><span \
class="o">&</span> <span class="n">data</span><span class="p">,</span> <span \
class="kt">int</span> <span class="n">time</span><span class="p">)</span></pre></td> \
</tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Since \
pixels don't depend on neighboring pixels, I'm not sure if we need to \
reimplement this method at all. </pre>
</div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line284" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">284</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="k">if</span> <span class="p">(</span><span class="n">m_shouldCache</span><span \
class="p">)</span> <span class="p">{</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This whole \
block should be removed since the cache isn't used.</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line368" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">368</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="kt">bool</span> <span class="n">blurBehindDecos</span> <span \
class="o">=</span> <span class="n">effects</span><span class="o">-></span><span \
class="n">decorationsHaveAlpha</span><span class="p">()</span> <span \
class="o">&&</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This is not \
valid for this effect.</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226779#file226779line399" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">399</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="kt">void</span> <span class="n">ContrastEffect</span><span \
class="o">::</span><span class="n">paintEffectFrame</span><span \
class="p">(</span><span class="n">EffectFrame</span> <span class="o">*</span><span \
class="n">frame</span><span class="p">,</span> <span class="n">QRegion</span> <span \
class="n">region</span><span class="p">,</span> <span class="kt">double</span> <span \
class="n">opacity</span><span class="p">,</span> <span class="kt">double</span> <span \
class="n">frameOpacity</span><span class="p">)</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Should the \
effect be applied behind EffectFrames?</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226780#file226780line17" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast.desktop</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">17</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; \
">X-KDE-Ordering=75</pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">The \
ordering needs to be set so the effect is always applied after the blur effect.</pre> \
</div> <br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226786#file226786line1" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrast_config.ui</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">1</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><?xml \
version="1.0" encoding="UTF-8"?></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">It looks \
like this file is just a copy of the .ui file from the blur effect.</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226788#file226788line30" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrastshader.h</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">30</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "><span \
class="n">class</span> <span class="n">ContrastShader</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This base \
class should be merged with GLSLContrastShader, since that's the only \
implementation.</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226788#file226788line57" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrastshader.h</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">57</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="kt">float</span> <span class="n">gaussian</span><span class="p">(</span><span \
class="kt">float</span> <span class="n">x</span><span class="p">,</span> <span \
class="kt">float</span> <span class="n">sigma</span><span class="p">)</span> <span \
class="k">const</span><span class="p">;</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This method \
is not implemented (or used).</pre> </div>
<br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226788#file226788line65" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrastshader.h</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">65</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="kt">int</span> <span class="n">mStrength</span><span \
class="p">;</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">This \
variable is not used, so it should be removed along with its setter and getter.</pre> \
</div> <br />
<div>
<table width="100%" border="0" bgcolor="white" style="border: 1px solid #C0C0C0; \
border-collapse: collapse; margin: 2px padding: 2px;"> <thead>
<tr>
<th colspan="4" bgcolor="#F0F0F0" style="border-bottom: 1px solid #C0C0C0; \
font-size: 9pt; padding: 4px 8px; text-align: left;"> <a \
href="https://git.reviewboard.kde.org/r/114588/diff/1/?file=226789#file226789line214" \
style="color: black; font-weight: bold; text-decoration: \
underline;">kwin/effects/backgroundcontrast/contrastshader.cpp</a> <span \
style="font-weight: normal;">
(Diff revision 1)
</span>
</th>
</tr>
</thead>
<tbody>
<tr>
<th bgcolor="#b1ebb0" style="border-right: 1px solid #C0C0C0;" \
align="right"><font size="2"></font></th> <td bgcolor="#c5ffc4" width="50%"><pre \
style="font-size: 8pt; line-height: 140%; margin: 0; "></pre></td> <th \
bgcolor="#b1ebb0" style="border-left: 1px solid #C0C0C0; border-right: 1px solid \
#C0C0C0;" align="right"><font size="2">214</font></th> <td bgcolor="#c5ffc4" \
width="50%"><pre style="font-size: 8pt; line-height: 140%; margin: 0; "> <span \
class="n">QByteArray</span> <span class="n">colorMatrix</span> <span \
class="o">=</span> <span class="s">"mat4(1.74631, -0.448073, -0.0452333, \
0.2685,\</span></pre></td> </tr>
</tbody>
</table>
<pre style="margin-left: 2em; white-space: pre-wrap; white-space: -moz-pre-wrap; \
white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: break-word;">Unused \
variable.</pre> </div>
<br />
<p>- Fredrik Höglund</p>
<br />
<p>On December 21st, 2013, 7:16 p.m. UTC, Marco Martin wrote:</p>
<table bgcolor="#fefadf" width="100%" cellspacing="0" cellpadding="8" \
style="background-image: \
url('https://git.reviewboard.kde.org/static/rb/images/review_request_box_top_bg.ab6f3b1072c9.png'); \
background-position: left top; background-repeat: repeat-x; border: 1px black \
solid;"> <tr>
<td>
<div>Review request for kwin and Fredrik Höglund.</div>
<div>By Marco Martin.</div>
<p style="color: grey;"><i>Updated Dec. 21, 2013, 7:16 p.m.</i></p>
<div style="margin-top: 1.5em;">
<b style="color: #575012; font-size: 10pt;">Repository: </b>
kde-workspace
</div>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Description </h1>
<table width="100%" bgcolor="#ffffff" cellspacing="0" cellpadding="10" \
style="border: 1px solid #b8b5a0"> <tr>
<td>
<pre style="margin: 0; padding: 0; white-space: pre-wrap; white-space: \
-moz-pre-wrap; white-space: -pre-wrap; white-space: -o-pre-wrap; word-wrap: \
break-word;">This adds a new kwin effect that makes possible to apply a color \
transform matrix to an area behind a window, this is an alternative approach, as a \
separate effect compared to adding this to the blur effect that was attempted \
previously.
the second part of the patch is in the repository kwindowsystem, branch \
mart/kwin/backgroundContrast2 (is still not available on reviewboard) \
https://projects.kde.org/projects/frameworks/kwindowsystem/repository/show?rev=mart%2Fkwin%2FbackgroundContrast2</pre>
</td>
</tr>
</table>
<h1 style="color: #575012; font-size: 10pt; margin-top: 1.5em;">Diffs</b> </h1>
<ul style="margin-left: 3em; padding-left: 0;">
<li>kwin/effects/CMakeLists.txt <span style="color: grey">(d1e2b0d)</span></li>
<li>kwin/effects/backgroundcontrast/.directory <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/CMakeLists.txt <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/backgroundcontrast.kdev4 <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrast.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrast.desktop <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrast.h <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrast.kcfg <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrast_config.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrast_config.desktop <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrast_config.h <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrast_config.ui <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrastconfig.kcfgc <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrastshader.h <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/effects/backgroundcontrast/contrastshader.cpp <span style="color: \
grey">(PRE-CREATION)</span></li>
<li>kwin/libkwineffects/kwineffects.h <span style="color: \
grey">(4cfd955)</span></li>
<li>kwin/scripting/scriptedeffect.h <span style="color: grey">(e642829)</span></li>
</ul>
<p><a href="https://git.reviewboard.kde.org/r/114588/diff/" style="margin-left: \
3em;">View Diff</a></p>
</td>
</tr>
</table>
</div>
</body>
</html>
_______________________________________________
kwin mailing list
kwin@kde.org
https://mail.kde.org/mailman/listinfo/kwin
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic