2
0
Fork 0

Update PluginEditor.cpp

Bitmap assets @2x support until better HiDPI and scalable GUI implementation
This commit is contained in:
George Reales 2020-05-22 15:24:57 +02:00
parent c60da130bd
commit 6ffc473ee3
1 changed files with 38 additions and 8 deletions

View File

@ -155,10 +155,20 @@ void ObxdAudioProcessorEditor::loadSkin (ObxdAudioProcessor& ownerFilter)
if (name == "voiceSwitch"){ if (name == "voiceSwitch"){
//if (voiceSwitch) voiceSwitch->setVisible(false); //if (voiceSwitch) voiceSwitch->setVisible(false);
#if JUCE_WIN || JUCE_LINUX
voiceSwitch = addList (x, y, w, h, ownerFilter, VOICE_COUNT, "VoiceCount", ImageCache::getFromFile(skinFolder.getChildFile("voices.png"))); } voiceSwitch = addList (x, y, w, h, ownerFilter, VOICE_COUNT, "VoiceCount", ImageCache::getFromFile(skinFolder.getChildFile("voices.png"))); }
#else
voiceSwitch = addList (x, y, w, h, ownerFilter, VOICE_COUNT, "VoiceCount", ImageCache::getFromFile(skinFolder.getChildFile("voices@2x.png"))); }
#endif
if (name == "legatoSwitch"){ if (name == "legatoSwitch"){
//if (legatoSwitch) legatoSwitch->setVisible(false); //if (legatoSwitch) legatoSwitch->setVisible(false);
#if JUCE_WIN || JUCE_LINUX
legatoSwitch = addList (x, y, w, h, ownerFilter, LEGATOMODE, "Legato", ImageCache::getFromFile(skinFolder.getChildFile("legato.png"))); } legatoSwitch = addList (x, y, w, h, ownerFilter, LEGATOMODE, "Legato", ImageCache::getFromFile(skinFolder.getChildFile("legato.png"))); }
#else
legatoSwitch = addList (x, y, w, h, ownerFilter, LEGATOMODE, "Legato", ImageCache::getFromFile(skinFolder.getChildFile("legato@2x.png"))); }
#endif
if (name == "menu") if (name == "menu")
{ {
@ -230,7 +240,12 @@ ButtonList* ObxdAudioProcessorEditor::addList (int x, int y, int width, int heig
Knob* ObxdAudioProcessorEditor::addKnob (int x, int y, int d, ObxdAudioProcessor& filter, int parameter, String /*name*/, float defval) Knob* ObxdAudioProcessorEditor::addKnob (int x, int y, int d, ObxdAudioProcessor& filter, int parameter, String /*name*/, float defval)
{ {
Knob* knob = new Knob (ImageCache::getFromFile(skinFolder.getChildFile("knob.png")), 144); #if JUCE_WIN || JUCE_LINUX
Knob* knob = new Knob (ImageCache::getFromFile(skinFolder.getChildFile("knob.png")), 48);
#else
Knob* knob = new Knob (ImageCache::getFromFile(skinFolder.getChildFile("knob@2x.png")), 96);
#endif
knobAttachments.add (new Knob::KnobAttachment (filter.getPluginState(), knobAttachments.add (new Knob::KnobAttachment (filter.getPluginState(),
filter.getEngineParameterId (parameter), filter.getEngineParameterId (parameter),
*knob)); *knob));
@ -255,7 +270,12 @@ void ObxdAudioProcessorEditor::clean()
TooglableButton* ObxdAudioProcessorEditor::addButton (int x, int y, int w, int h, ObxdAudioProcessor& filter, int parameter, String name) TooglableButton* ObxdAudioProcessorEditor::addButton (int x, int y, int w, int h, ObxdAudioProcessor& filter, int parameter, String name)
{ {
TooglableButton* button = new TooglableButton (ImageCache::getFromFile(skinFolder.getChildFile("button.png"))); #if JUCE_WIN || JUCE_LINUX
TooglableButton* button = new TooglableButton (ImageCache::getFromFile(skinFolder.getChildFile("button.png")));
#else
TooglableButton* button = new TooglableButton (ImageCache::getFromFile(skinFolder.getChildFile("button@2x.png")));
#endif
toggleAttachments.add (new TooglableButton::ToggleAttachment (filter.getPluginState(), toggleAttachments.add (new TooglableButton::ToggleAttachment (filter.getPluginState(),
filter.getEngineParameterId (parameter), filter.getEngineParameterId (parameter),
*button)); *button));
@ -444,23 +464,33 @@ void ObxdAudioProcessorEditor::mouseUp (const MouseEvent& e)
void ObxdAudioProcessorEditor::paint(Graphics& g) void ObxdAudioProcessorEditor::paint(Graphics& g)
{ {
g.fillAll (Colours::black); g.fillAll (Colours::black);
#if JUCE_WIN || JUCE_LINUX
const File mainFile(skinFolder.getChildFile("main.png")); const File mainFile(skinFolder.getChildFile("main.png"));
#else
const File mainFile(skinFolder.getChildFile("main@2x.png"));
#endif
if (skinFolder.exists() && mainFile.exists()) if (skinFolder.exists() && mainFile.exists())
{ {
const Image image = ImageCache::getFromFile(mainFile); const Image image = ImageCache::getFromFile(mainFile);
g.drawImage (image, #if JUCE_WIN || JUCE_LINUX
0, 0, image.getWidth()/2, image.getHeight()/2, // TODO this resize should be done on resized() g.drawImage (image,
0, 0, image.getWidth(), image.getHeight()); 0, 0, image.getWidth(), image.getHeight(),
0, 0, image.getWidth(), image.getHeight());
#else
g.drawImage (image,
0, 0, image.getWidth()/2, image.getHeight()/2,
0, 0, image.getWidth(), image.getHeight());
#endif
} }
else else
{ {
const Image image = ImageCache::getFromMemory(BinaryData::main_png, BinaryData::main_pngSize); const Image image = ImageCache::getFromMemory(BinaryData::main_png, BinaryData::main_pngSize);
g.setImageResamplingQuality(Graphics::ResamplingQuality::highResamplingQuality); // g.setImageResamplingQuality(Graphics::ResamplingQuality::highResamplingQuality);
g.drawImage (image, g.drawImage (image,
0, 0, image.getWidth(), image.getHeight(), 0, 0, image.getWidth(), image.getHeight(),