<table><tr><td style="">davidedmundson added a comment.
</td><a style="text-decoration: none; padding: 4px 8px; margin: 0 8px 8px; float: right; color: #464C5C; font-weight: bold; border-radius: 3px; background-color: #F7F7F9; background-image: linear-gradient(to bottom,#fff,#f1f0f1); display: inline-block; border: 1px solid rgba(71,87,120,.2);" href="https://phabricator.kde.org/D26311">View Revision</a></tr></table><br /><div><div><p>Forget 2 outputs, this spec falls apart on simple scenarios.</p>

<p>I have a 1920x1080 monitor, I want it cropped to 1000x1000 physical pixels that represent 1000x1000 logical pixels<br />
I have a 1920x1080 monitor, I want it cropped to 1000x1000 physical pixels that represent 500x500 logical pixels</p>

<p>we can't do either.</p>

<p>The main thing this spec is trying to add (as opposed to just using scale) is the ability to crop, yet the spec only supports one possible case where you want to crop in one direction and scale to fit even though the code supports something more versatile.</p></div></div><br /><div><strong>INLINE COMMENTS</strong><div><div style="margin: 6px 0 12px 0;"><div style="border: 1px solid #C7CCD9; border-radius: 3px;"><div style="padding: 0; background: #F7F7F7; border-color: #e3e4e8; border-style: solid; border-width: 0 0 1px 0; margin: 0;"><div style="color: #74777d; background: #eff2f4; padding: 6px 8px; overflow: hidden;"><a style="float: right; text-decoration: none;" href="https://phabricator.kde.org/D26311#inline-148513">View Inline</a><span style="color: #4b4d51; font-weight: bold;">egl_gbm_backend.cpp:366</span></div>
<div style="font: 11px/15px "Menlo", "Consolas", "Monaco", monospace; white-space: pre-wrap; clear: both; padding: 4px 0; margin: 0;"><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">    <span class="n">glViewport</span><span class="p">(</span><span style="color: #aa2211">-<span class="bright"></span></span><span class="bright"></span><span class="n"><span class="bright">v</span></span><span class="bright"></span><span class="p"><span class="bright">.</span></span><span class="bright"></span><span class="n"><span class="bright">x</span></span><span class="bright"></span><span class="p"><span class="bright">()</span></span><span class="bright"> </span><span style="color: #aa2211"><span class="bright">*</span></span><span class="bright"> </span><span class="n"><span class="bright">scale</span></span><span class="bright"></span><span class="p"><span class="bright">,</span></span><span class="bright"> </span><span class="p"><span class="bright">(</span></span><span class="bright"></span><span class="n"><span class="bright">v</span></span><span class="bright"></span><span class="p"><span class="bright">.</span></span><span class="bright"></span><span class="n"><span class="bright">height</span></span><span class="bright"></span><span class="p"><span class="bright">()</span></span><span class="bright"> </span><span style="color: #aa2211"><span class="bright">-</span></span><span class="bright"> </span><span class="n"><span class="bright">overall</span></span><span class="bright"></span><span class="p"><span class="bright">.</span></span><span class="bright"></span><span class="n"><span class="bright">height</span></span><span class="bright"></span><span class="p"><span class="bright">()</span></span><span class="bright"> </span><span style="color: #aa2211"><span class="bright">+</span></span><span class="bright"> </span><span class="n"><span class="bright">v</span></span><span class="bright"></span><span class="p"><span class="bright">.</span></span><span class="bright"></span><span class="n"><span class="bright">y</span></span><span class="bright"></span><span class="p"><span class="bright">()</span>)</span> <span style="color: #aa2211">*</span> <span class="n">scale</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(251, 175, 175, .7);">               <span class="bright"></span><span class="n"><span class="bright">overall</span></span><span class="bright"></span><span class="p"><span class="bright">.</span></span><span class="bright"></span><span class="n"><span class="bright">width</span></span><span class="bright"></span><span class="p"><span class="bright">()</span></span><span class="bright"> </span><span style="color: #aa2211"><span class="bright">*</span></span><span class="bright"> </span><span class="n"><span class="bright">scale</span></span><span class="bright"></span><span class="p"><span class="bright">,</span></span> <span class="n">overall</span><span class="p">.</span><span class="n">height</span><span class="p">()</span> <span style="color: #aa2211">*</span> <span class="n">scale<span class="bright"></span></span><span class="bright"></span><span class="p"><span class="bright">);</span></span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">    <span class="n">glViewport</span><span class="p">(</span><span style="color: #aa2211">-<span class="bright"></span></span><span class="bright"></span><span class="n"><span class="bright">geo</span></span><span class="bright"></span><span class="p"><span class="bright">.</span></span><span class="bright"></span><span class="n"><span class="bright">x</span></span><span class="bright"></span><span class="p"><span class="bright">(</span>)</span> <span style="color: #aa2211">*</span> <span class="n">scale</span><span class="p">,</span>
</div><div style="padding: 0 8px; margin: 0 4px; background: rgba(151, 234, 151, .6);">               <span class="bright"></span><span class="p"><span class="bright">(</span></span><span class="bright"></span><span class="n"><span class="bright">geo</span></span><span class="bright"></span><span class="p"><span class="bright">.</span></span><span class="bright"></span><span class="n"><span class="bright">height</span></span><span class="bright"></span><span class="p"><span class="bright">()</span></span><span class="bright"> </span><span style="color: #aa2211"><span class="bright">-</span></span> <span class="n">overall</span><span class="p">.</span><span class="n">height</span><span class="p">()</span> <span class="bright"></span><span style="color: #aa2211"><span class="bright">+</span></span><span class="bright"> </span><span class="n"><span class="bright">geo</span></span><span class="bright"></span><span class="p"><span class="bright">.</span></span><span class="bright"></span><span class="n"><span class="bright">y</span></span><span class="bright"></span><span class="p"><span class="bright">())</span></span><span class="bright"> </span><span style="color: #aa2211">*</span> <span class="n">scale<span class="bright"></span></span><span class="bright"></span><span class="p"><span class="bright">,</span></span>
</div></div></div>
<div style="margin: 8px 0; padding: 0 12px;"><p style="padding: 0; margin: 8px;">By passing just a logical size, the scale value is effectively broken, which is a problem as we rely on it here.</p></div></div></div></div></div><br /><div><strong>REPOSITORY</strong><div><div>R108 KWin</div></div></div><br /><div><strong>REVISION DETAIL</strong><div><a href="https://phabricator.kde.org/D26311">https://phabricator.kde.org/D26311</a></div></div><br /><div><strong>To: </strong>romangg, KWin, davidedmundson<br /><strong>Cc: </strong>davidedmundson, kwin, LeGast00n, The-Feren-OS-Dev, sbergeron, jraleigh, zachus, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, ahiemstra, mart<br /></div>