<table><tr><td style="">zzag 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/D23582">View Revision</a></tr></table><br /><div><div><blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>It just swaps one bad thing for one equally bad.</p></blockquote>

<p>Yeah, what we have now and what friend keyword is are not far from each other. However, it's better to judge this revision by the end result. Public interface of X11WindowedOutput is leaner with less clutter.</p>

<blockquote style="border-left: 3px solid #a7b5bf; color: #464c5c; font-style: italic; margin: 4px 0 12px 0; padding: 4px 12px; background-color: #f8f9fc;"><p>Anyway, in this case the args and everything can just go in the constructor. You solve the case of being called multiple times and from which class all in one go.</p></blockquote>

<p>Totally agreed, we should embrace RAII rather than fight it, but sometimes it's better to go a bit off road in order to not go insane, for example would you be happy to work with QOpenGLTexture if it had a huge constructor with all possible parameters and no create() method, or if you had to fill in a struct with all parameters (hello, Vulkan!) and pass it to a constructor? :)</p>

<p>As for this patch, I think we can stick with private init() method for now and gradually switch to RAII wherever it's a reasonable thing to do.</p></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/D23582">https://phabricator.kde.org/D23582</a></div></div><br /><div><strong>To: </strong>zzag, KWin<br /><strong>Cc: </strong>davidedmundson, kwin, LeGast00n, The-Feren-OS-Dev, sbergeron, jraleigh, fbampaloukas, GB_2, mkulinski, ragreen, jackyalcine, Pitel, iodelay, crozbo, bwowk, ZrenBot, ngraham, alexeymin, himcesjf, lesliezhai, ali-mohamed, hardening, romangg, jensreuterberg, abetts, sebas, apol, mart<br /></div>