olilarkin / wdl-ol

Enhanced version of Cockos' iPlug - A simple-to-use C++ framework for developing cross platform audio plugins and targeting multiple plugin APIs with the same code. VST / VST3 / Audiounit / RTAS / AAX (Native) formats supported. NOTE: THIS IS OBSOLETE, PLEASE SEE IPLUG2:
https://github.com/iplug2
936 stars 187 forks source link

Iplugquake #91

Closed AlexHarker closed 6 years ago

AlexHarker commented 6 years ago

Here's a significant start on rescaling windows (on Mac only for now). Compiled and tested for everything other than AAX using Cairo and LICE (don't have any demos for NanoVG or anything else). I've modified iPlugEffectCairo to demonstrate the effect. There are still some issues with containing windows not resizing (depending on host and plug-in type) but the basic work is done.

Scaling is done using the NSView which handles cursor scaling for interaction, and graphical resizing seamlessly. The quality with LICE seems fairly good. With Cairo the underlying context is screen resolution.

Plugins now get called again on resizing, but the controls no longer get deleted as this is unnecessary with the new improved approach. Graphics stores the scale, but doesn't use it for anything except correctly reprint the window dimensions (as opposed to the internal igrpahics dimensions which are independent of scale of display resolution.