https://code.soundsoftware.ac.uk/https://code.soundsoftware.ac.uk/favicon.ico?15040038542015-03-11T17:29:11ZSound Software .ac.ukSonic Visualiser - Feature #1158: true retina rendering on os/xhttps://code.soundsoftware.ac.uk/issues/1158?journal_id=22562015-03-11T17:29:11ZChris Cannamcannam@all-day-breakfast.com
<ul></ul><p>Sorts of layer:</p>
<ul>
<li>Scrollable, cheap to render: <code>TimeRulerLayer</code> - could cache or render directly</li>
<li>Scrollable, expensive, has own cache: <code>WaveformLayer</code> </li>
<li>Scrollable, expensive, lacks own cache: <code>TimeValueLayer</code> in e.g. curve mode</li>
<li>Non-scrollable, can be expensive, lacks own cache: <code>TimeValueLayer</code> in e.g. point mode</li>
<li>Non-scrollable, expensive, has own cache: <code>SpectrogramLayer</code></li>
<li>Sometimes scrollable, expensive, has own cache: <code>Colour3dPlotLayer</code></li>
</ul>
<p>Many layers are sometimes scrollable, e.g. note layers are scrollable if not the top layer (so that local features are not being highlighted). I think much of the theoretical utility of the scrollable cache lies in managing the cost when a very large number of translucent layers is present on the same view, in which situation usually all but the top one will get cached. But this will fail as soon as they are placed over a non-scrollable background layer like a spectrogram, since the scrollable cache only caches as far as the first non-scrollable layer.</p> Sonic Visualiser - Feature #1158: true retina rendering on os/xhttps://code.soundsoftware.ac.uk/issues/1158?journal_id=22572015-03-11T17:32:32ZChris Cannamcannam@all-day-breakfast.com
<ul></ul><p>... So we could probably get rid of the scrollable cache. The problem is that then each layer that has its own cache would have to do all its own scaling work, and that is complex.</p> Sonic Visualiser - Feature #1158: true retina rendering on os/xhttps://code.soundsoftware.ac.uk/issues/1158?journal_id=22582015-03-11T17:43:40ZChris Cannamcannam@all-day-breakfast.com
<ul></ul><p>... So it may be better to ensure that layers always get a NxN-scale pixmap to render into, not the View directly. That means they have essentially the same behaviour as on other platforms, although they will need to scale fonts back up again (other platforms have proportionately bigger fonts everywhere when running in hi-dpi environments).</p>
<p>Then we could perhaps create a fake View-stub object with suitably scaled versions of dimension reporting and axis scaling functions to pass in to the layer render call?</p>
<p>Memory usage will be much higher though...</p> Sonic Visualiser - Feature #1158: true retina rendering on os/xhttps://code.soundsoftware.ac.uk/issues/1158?journal_id=23512015-04-27T16:48:46ZChris Cannamcannam@all-day-breakfast.com
<ul><li><strong>File</strong> <a href="/attachments/download/1475/sv-retina-experimental.png">sv-retina-experimental.png</a> added</li></ul> Sonic Visualiser - Feature #1158: true retina rendering on os/xhttps://code.soundsoftware.ac.uk/issues/1158?journal_id=23522015-04-27T16:53:37ZChris Cannamcannam@all-day-breakfast.com
<ul><li><strong>File</strong> <a href="/attachments/download/1476/sv-nonretina.png">sv-nonretina.png</a> added</li></ul> Sonic Visualiser - Feature #1158: true retina rendering on os/xhttps://code.soundsoftware.ac.uk/issues/1158?journal_id=23532015-04-27T17:02:22ZChris Cannamcannam@all-day-breakfast.com
<ul></ul><p>Problems noted so far:</p>
<ul>
<li>Text rendered with drawVisibleText appears too small</li>
<li>Much of the text in the vertical scale is too small</li>
<li>The text in the time ruler is too small</li>
<li>When mousing over a feature, the wrong feature is highlighted (although the right information is shown in the local feature identification box at top right)</li>
<li>The zoom wheels are low-res</li>
<li>It is noticeably slower to scroll</li>
</ul>
<p>The layout is also very ugly in many other ways distinctive to the OS/X port, but this issue is about retina support only.</p> Sonic Visualiser - Feature #1158: true retina rendering on os/xhttps://code.soundsoftware.ac.uk/issues/1158?journal_id=32872016-12-15T15:00:34ZChris Cannamcannam@all-day-breakfast.com
<ul></ul><p>The zoom wheels are still low-resolution, but everything else from that list is fixed.</p> Sonic Visualiser - Feature #1158: true retina rendering on os/xhttps://code.soundsoftware.ac.uk/issues/1158?journal_id=32882016-12-15T15:03:03ZChris Cannamcannam@all-day-breakfast.com
<ul></ul><p>Another missing piece: when you export an image from the layer, you get non-retina resolution only.</p> Sonic Visualiser - Feature #1158: true retina rendering on os/xhttps://code.soundsoftware.ac.uk/issues/1158?journal_id=32892016-12-15T15:32:22ZChris Cannamcannam@all-day-breakfast.com
<ul></ul><p>Zoom wheels are now retina (but the other thing is still outstanding).</p>