Browse Source

Vitalium: Use SVG Logo

closes #103
master
parent
commit
51eb55ff6f
8 changed files with 563 additions and 65211 deletions
  1. +418
    -65175
      ports-juce6.0/vitalium/resources/BinaryData.cpp
  2. +22
    -22
      ports-juce6.0/vitalium/resources/BinaryData.h
  3. +28
    -0
      ports-juce6.0/vitalium/resources/vitalium-unfa-bg.svg
  4. +16
    -0
      ports-juce6.0/vitalium/resources/vitalium-unfa-fg.svg
  5. BIN
      ports-juce6.0/vitalium/resources/vitalium-unfa.png
  6. +48
    -6
      ports-juce6.0/vitalium/source/interface/editor_sections/header_section.cpp
  7. +18
    -4
      ports-juce6.0/vitalium/source/interface/editor_sections/synth_section.h
  8. +13
    -4
      ports-juce6.0/vitalium/source/interface/look_and_feel/paths.h

+ 418
- 65175
ports-juce6.0/vitalium/resources/BinaryData.cpp
File diff suppressed because it is too large
View File


+ 22
- 22
ports-juce6.0/vitalium/resources/BinaryData.h View File

@@ -28,24 +28,6 @@ namespace BinaryData
extern const char* MontserratRegular_ttf;
const int MontserratRegular_ttfSize = 245708;
#endif
extern const char* default_vitalskin;
const int default_vitalskinSize = 12912;
#ifdef TUNINGS
extern const char* _5_Limit_scl;
const int _5_Limit_sclSize = 87;
#endif
#ifdef TUNINGS
extern const char* _7_Limit_scl;
const int _7_Limit_sclSize = 85;
#endif
#ifdef TUNINGS
extern const char* Pythagorean_scl;
const int Pythagorean_sclSize = 108;
#endif
#ifdef ICONS
extern const char* chorus_svg;
@@ -117,10 +99,28 @@ namespace BinaryData
const int shuffle_svgSize = 382;
#endif
extern const char* vitaliumunfa_png;
const int vitaliumunfa_pngSize = 36106;
#ifdef TUNINGS
extern const char* _5_Limit_scl;
const int _5_Limit_sclSize = 87;
#endif
#ifdef TUNINGS
extern const char* _7_Limit_scl;
const int _7_Limit_sclSize = 85;
#endif
#ifdef TUNINGS
extern const char* Pythagorean_scl;
const int Pythagorean_sclSize = 108;
#endif
extern const char* default_vitalskin;
const int default_vitalskinSize = 12912;
extern const char* vitaliumunfabg_svg;
const int vitaliumunfabg_svgSize = 1051;
extern const char* BinaryData_cpp;
const int BinaryData_cppSize = 2555792;
extern const char* vitaliumunfafg_svg;
const int vitaliumunfafg_svgSize = 540;
}

+ 28
- 0
ports-juce6.0/vitalium/resources/vitalium-unfa-bg.svg View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
version="1.1"
id="svg2"
width="467"
height="454"
viewBox="0 0 467 454"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs6" /><path
style="fill:#000000"
d="M 1.2108367,62.047902 62.997971,61.989002 99.163658,183.99976 54.997332,241.15662 Z"
id="path434" /><path
style="fill:#000000"
d="m 65.50489,276.3531 43.97832,-56.70387 10.72703,35.03033 -44.10171,56.89806 z"
id="path432" /><path
style="fill:#000000"
d="m 86.677062,347.04891 43.908578,-57.06729 10.74608,35.0751 -43.979338,56.9909 z"
id="path428" /><path
style="fill:#000000"
d="m 107.89578,417.68335 43.60593,-57.30193 11.29501,34.69185 -44.33816,57.37036 z"
id="path424" /><path
style="fill:#000000"
d="M 186.66288,70.532749 238.81788,1.5067382 336.57257,1.4121669 213.93016,161.08548 Z"
id="path436" /></svg>

+ 16
- 0
ports-juce6.0/vitalium/resources/vitalium-unfa-fg.svg View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->

<svg
version="1.1"
id="svg2"
width="467"
height="454"
viewBox="0 0 467 454"
xml:space="preserve"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs6" /><path
style="display:inline;fill:#000000"
d="M 92.702971,61.829015 154.12166,61.790333 201.05898,218.82881 367.95894,1.9755249 465.03525,2.3951663 184.22551,367.28588 Z"
id="path430" /></svg>

BIN
ports-juce6.0/vitalium/resources/vitalium-unfa.png View File

Before After
Width: 467  |  Height: 454  |  Size: 35KB

+ 48
- 6
ports-juce6.0/vitalium/source/interface/editor_sections/header_section.cpp View File

@@ -25,19 +25,37 @@

class LogoButton : public Button {
public:
LogoButton(const String& name) : Button(name), logo_(Paths::vitaliumLogo()) {
LogoButton(const String& name) : Button(name) {
image_component_.setComponent(this);
}

void setPaths(const Path& letter, const Path& ring) {
letter_ = letter;
ring_ = ring;
}

void resized() override {
logo_->setTransformToFit(getLocalBounds().toFloat(), RectanglePlacement::stretchToFit);
Rectangle<float> bounds = getLocalBounds().toFloat();
letter_.applyTransform(letter_.getTransformToScaleToFit(bounds, true));
ring_.applyTransform(ring_.getTransformToScaleToFit(bounds, true));

redoImage();
}

void paintButton(Graphics& g, bool hover, bool down) override {
logo_->setTransformToFit(getLocalBounds().toFloat(), RectanglePlacement::stretchToFit);
logo_->draw(g, 1.0f);
Rectangle<float> bounds = getLocalBounds().toFloat();
letter_.applyTransform(letter_.getTransformToScaleToFit(bounds, true));
ring_.applyTransform(ring_.getTransformToScaleToFit(bounds, true));

g.setColour(findColour(Skin::kShadow, true));

ColourGradient letter_gradient(letter_top_color_, 0.0f, 0.0f, letter_bottom_color_, 0.0f, getHeight(), false);
ColourGradient ring_gradient(ring_top_color_, 0.0f, 0.0f, ring_bottom_color_, 0.0f, getHeight(), false);
g.setGradientFill(letter_gradient);
g.fillPath(letter_);

g.setGradientFill(ring_gradient);
g.fillPath(ring_);

if (hover) {
g.setColour(findColour(Skin::kLightenScreen, true));
@@ -49,6 +67,18 @@ class LogoButton : public Button {
}
}

void setLetterColors(Colour top, Colour bottom) {
letter_top_color_ = top;
letter_bottom_color_ = bottom;
redoImage();
}

void setRingColors(Colour top, Colour bottom) {
ring_top_color_ = top;
ring_bottom_color_ = bottom;
redoImage();
}

void mouseEnter(const MouseEvent& e) override {
Button::mouseEnter(e);
image_component_.setColor(Colour(0xffdddddd));
@@ -65,12 +95,20 @@ class LogoButton : public Button {
private:
OpenGlImageComponent image_component_;

std::unique_ptr<Drawable> logo_;
Path letter_;
Path ring_;

Colour letter_top_color_;
Colour letter_bottom_color_;

Colour ring_top_color_;
Colour ring_bottom_color_;
};

LogoSection::LogoSection() : SynthSection("logo_section") {
#if !defined(NO_TEXT_ENTRY)
logo_button_ = std::make_unique<LogoButton>("logo");
logo_button_->setPaths(Paths::unfaLogoFg(), Paths::unfaLogoBg());
addAndMakeVisible(logo_button_.get());
addOpenGlComponent(logo_button_->getImageComponent());
logo_button_->addListener(this);
@@ -87,7 +125,11 @@ void LogoSection::resized() {
logo_button_->setBounds(logo_padding_x, logo_padding_y, logo_height, logo_height);
}

void LogoSection::paintBackground(Graphics&) {
void LogoSection::paintBackground(Graphics& g) {
if (logo_button_) {
logo_button_->setRingColors(findColour(Skin::kWidgetPrimary1, true), findColour(Skin::kWidgetPrimary2, true));
logo_button_->setLetterColors(findColour(Skin::kWidgetSecondary1, true), findColour(Skin::kWidgetSecondary2, true));
}
}

void LogoSection::buttonClicked(Button* clicked_button) {


+ 18
- 4
ports-juce6.0/vitalium/source/interface/editor_sections/synth_section.h View File

@@ -112,16 +112,30 @@ class LoadingWheel : public OpenGlQuad {
class AppLogo : public OpenGlImageComponent {
public:
AppLogo(String name) : OpenGlImageComponent(std::move(name)) {
logo_ = Paths::vitaliumLogo();
logo_letter_ = Paths::unfaLogoFg();
logo_ring_ = Paths::unfaLogoBg();
}

void paint(Graphics& g) override {
logo_->setTransformToFit(getLocalBounds().toFloat(), RectanglePlacement::stretchToFit);
logo_->draw(g, 1.0f);
logo_letter_.applyTransform(logo_letter_.getTransformToScaleToFit(getLocalBounds().toFloat(), true));
logo_ring_.applyTransform(logo_ring_.getTransformToScaleToFit(getLocalBounds().toFloat(), true));

Colour letter_top_color = findColour(Skin::kWidgetSecondary1, true);
Colour letter_bottom_color = findColour(Skin::kWidgetSecondary2, true);
Colour ring_top_color = findColour(Skin::kWidgetPrimary1, true);
Colour ring_bottom_color = findColour(Skin::kWidgetPrimary2, true);
ColourGradient letter_gradient(letter_top_color, 0.0f, 12.0f, letter_bottom_color, 0.0f, 96.0f, false);
ColourGradient ring_gradient(ring_top_color, 0.0f, 12.0f, ring_bottom_color, 0.0f, 96.0f, false);
g.setGradientFill(letter_gradient);
g.fillPath(logo_letter_);

g.setGradientFill(ring_gradient);
g.fillPath(logo_ring_);
}

private:
std::unique_ptr<Drawable> logo_;
Path logo_letter_;
Path logo_ring_;

JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(AppLogo)
};


+ 13
- 4
ports-juce6.0/vitalium/source/interface/look_and_feel/paths.h View File

@@ -24,7 +24,7 @@

class Paths {
public:
static constexpr int kLogoWidth = 1701;
static constexpr int kLogoWidth = 467;

Paths() = delete;

@@ -33,9 +33,18 @@ class Paths {
return drawable->getOutlineAsPath();
}

static std::unique_ptr<Drawable> vitaliumLogo() {
return Drawable::createFromImageData((const void*)BinaryData::vitaliumunfa_png,
BinaryData::vitaliumunfa_pngSize);
static Path unfaLogoBg() {
Path path = fromSvgData((const void*)BinaryData::vitaliumunfabg_svg, BinaryData::vitaliumunfabg_svgSize);
path.addLineSegment(Line<float>(0.0f, 0.0f, 0.0f, 0.0f), 0.2f);
path.addLineSegment(Line<float>(kLogoWidth, kLogoWidth, kLogoWidth, kLogoWidth), 0.2f);
return path;
}

static Path unfaLogoFg() {
Path path = fromSvgData((const void*)BinaryData::vitaliumunfafg_svg, BinaryData::vitaliumunfafg_svgSize);
path.addLineSegment(Line<float>(0.0f, 0.0f, 0.0f, 0.0f), 0.2f);
path.addLineSegment(Line<float>(kLogoWidth, kLogoWidth, kLogoWidth, kLogoWidth), 0.2f);
return path;
}

static Path chorus() {


Loading…
Cancel
Save