mirror of
https://github.com/RetroDECK/ES-DE.git
synced 2024-11-25 15:45:38 +00:00
Refactored some image resizing functions.
This commit is contained in:
parent
c73ff02012
commit
b4338a3fb7
|
@ -149,8 +149,7 @@ GuiMetaDataEd::GuiMetaDataEd(MetaDataList* md,
|
||||||
case MD_BOOL: {
|
case MD_BOOL: {
|
||||||
ed = std::make_shared<SwitchComponent>();
|
ed = std::make_shared<SwitchComponent>();
|
||||||
// Make the switches slightly smaller.
|
// Make the switches slightly smaller.
|
||||||
glm::vec2 switchSize {ed->getSize() * 0.9f};
|
ed->setSize(glm::ceil(ed->getSize() * 0.9f));
|
||||||
ed->setResize(ceilf(switchSize.x), switchSize.y);
|
|
||||||
|
|
||||||
ed->setChangedColor(ICONCOLOR_USERMARKED);
|
ed->setChangedColor(ICONCOLOR_USERMARKED);
|
||||||
row.addElement(ed, false, true);
|
row.addElement(ed, false, true);
|
||||||
|
|
|
@ -104,8 +104,8 @@ public:
|
||||||
virtual glm::vec2 getSize() const { return mSize; }
|
virtual glm::vec2 getSize() const { return mSize; }
|
||||||
void setSize(const glm::vec2& size) { setSize(size.x, size.y); }
|
void setSize(const glm::vec2& size) { setSize(size.x, size.y); }
|
||||||
void setSize(const float w, const float h);
|
void setSize(const float w, const float h);
|
||||||
virtual void setResize(float width, float height) {}
|
virtual void setResize(const float width, const float height) {}
|
||||||
virtual void setResize(float width, float height, bool rasterize) {}
|
virtual void setResize(const glm::vec2& size, bool rasterize = true) {}
|
||||||
virtual void onSizeChanged() {}
|
virtual void onSizeChanged() {}
|
||||||
|
|
||||||
virtual glm::vec2 getRotationSize() const { return getSize(); }
|
virtual glm::vec2 getRotationSize() const { return getSize(); }
|
||||||
|
|
|
@ -32,7 +32,7 @@ void AnimatedImageComponent::load(const AnimationDef* def)
|
||||||
}
|
}
|
||||||
|
|
||||||
auto img = std::unique_ptr<ImageComponent>(new ImageComponent);
|
auto img = std::unique_ptr<ImageComponent>(new ImageComponent);
|
||||||
img->setResize(mSize.x, mSize.y);
|
img->setResize(mSize);
|
||||||
img->setImage(std::string(def->frames[i].path), false);
|
img->setImage(std::string(def->frames[i].path), false);
|
||||||
|
|
||||||
mFrames.push_back(ImageFrame(std::move(img), def->frames[i].time));
|
mFrames.push_back(ImageFrame(std::move(img), def->frames[i].time));
|
||||||
|
@ -53,9 +53,8 @@ void AnimatedImageComponent::reset()
|
||||||
|
|
||||||
void AnimatedImageComponent::onSizeChanged()
|
void AnimatedImageComponent::onSizeChanged()
|
||||||
{
|
{
|
||||||
for (auto it = mFrames.cbegin(); it != mFrames.cend(); ++it) {
|
for (auto it = mFrames.cbegin(); it != mFrames.cend(); ++it)
|
||||||
it->first->setResize(mSize.x, mSize.y);
|
it->first->setResize(mSize);
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AnimatedImageComponent::update(int deltaTime)
|
void AnimatedImageComponent::update(int deltaTime)
|
||||||
|
|
|
@ -123,16 +123,16 @@ void ImageComponent::setImage(const std::shared_ptr<TextureResource>& texture, b
|
||||||
resize();
|
resize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageComponent::setResize(float width, float height)
|
void ImageComponent::setResize(const float width, const float height)
|
||||||
{
|
{
|
||||||
mTargetSize = glm::vec2 {width, height};
|
mTargetSize = glm::vec2 {width, height};
|
||||||
mTargetIsMax = false;
|
mTargetIsMax = false;
|
||||||
resize();
|
resize();
|
||||||
}
|
}
|
||||||
|
|
||||||
void ImageComponent::setResize(float width, float height, bool rasterize)
|
void ImageComponent::setResize(const glm::vec2& size, bool rasterize)
|
||||||
{
|
{
|
||||||
mTargetSize = glm::vec2 {width, height};
|
mTargetSize = size;
|
||||||
mTargetIsMax = false;
|
mTargetIsMax = false;
|
||||||
resize(rasterize);
|
resize(rasterize);
|
||||||
}
|
}
|
||||||
|
|
|
@ -39,11 +39,7 @@ public:
|
||||||
// Can be set before or after an image is loaded.
|
// Can be set before or after an image is loaded.
|
||||||
// setMaxSize() and setResize() are mutually exclusive.
|
// setMaxSize() and setResize() are mutually exclusive.
|
||||||
void setResize(const float width, const float height) override;
|
void setResize(const float width, const float height) override;
|
||||||
void setResize(const glm::vec2& size, bool rasterize = true)
|
void setResize(const glm::vec2& size, bool rasterize = true) override;
|
||||||
{
|
|
||||||
setResize(size.x, size.y, rasterize);
|
|
||||||
}
|
|
||||||
void setResize(const float width, const float height, bool rasterize) override;
|
|
||||||
|
|
||||||
// Resize the image to be as large as possible but fit within a box of this size.
|
// Resize the image to be as large as possible but fit within a box of this size.
|
||||||
// Can be set before or after an image is loaded.
|
// Can be set before or after an image is loaded.
|
||||||
|
|
|
@ -22,7 +22,6 @@ public:
|
||||||
void render(const glm::mat4& parentTrans) override;
|
void render(const glm::mat4& parentTrans) override;
|
||||||
void onSizeChanged() override { mImage.setSize(mSize); }
|
void onSizeChanged() override { mImage.setSize(mSize); }
|
||||||
|
|
||||||
void setResize(float width, float height) override { setSize(width, height); }
|
|
||||||
bool getState() const { return mState; }
|
bool getState() const { return mState; }
|
||||||
void setState(bool state);
|
void setState(bool state);
|
||||||
std::string getValue() const override;
|
std::string getValue() const override;
|
||||||
|
|
|
@ -76,12 +76,6 @@ public:
|
||||||
|
|
||||||
void update(int deltaTime) override;
|
void update(int deltaTime) override;
|
||||||
|
|
||||||
// Resize the video to fit this size. If one axis is zero, scale that axis to maintain
|
|
||||||
// aspect ratio. If both are non-zero, potentially break the aspect ratio. If both are
|
|
||||||
// zero, no resizing. This can be set before or after a video is loaded.
|
|
||||||
// setMaxSize() and setResize() are mutually exclusive.
|
|
||||||
virtual void setResize(float width, float height) override = 0;
|
|
||||||
|
|
||||||
// Resize the video to be as large as possible but fit within a box of this size.
|
// Resize the video to be as large as possible but fit within a box of this size.
|
||||||
// This can be set before or after a video is loaded.
|
// This can be set before or after a video is loaded.
|
||||||
// Never breaks the aspect ratio. setMaxSize() and setResize() are mutually exclusive.
|
// Never breaks the aspect ratio. setMaxSize() and setResize() are mutually exclusive.
|
||||||
|
|
|
@ -60,12 +60,12 @@ VideoFFmpegComponent::VideoFFmpegComponent()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
void VideoFFmpegComponent::setResize(float width, float height)
|
void VideoFFmpegComponent::setResize(const float width, const float height)
|
||||||
{
|
{
|
||||||
// This resize function is used when stretching videos to full screen in the video screensaver.
|
// This resize function is used when stretching videos to full screen in the video screensaver.
|
||||||
mTargetSize = glm::vec2 {width, height};
|
mTargetSize = glm::vec2 {width, height};
|
||||||
mTargetIsMax = false;
|
mTargetIsMax = false;
|
||||||
mStaticImage.setResize(width, height);
|
mStaticImage.setResize(mTargetSize);
|
||||||
resize();
|
resize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ public:
|
||||||
// aspect ratio. If both are non-zero, potentially break the aspect ratio. If both are
|
// aspect ratio. If both are non-zero, potentially break the aspect ratio. If both are
|
||||||
// zero, no resizing. This can be set before or after a video is loaded.
|
// zero, no resizing. This can be set before or after a video is loaded.
|
||||||
// setMaxSize() and setResize() are mutually exclusive.
|
// setMaxSize() and setResize() are mutually exclusive.
|
||||||
void setResize(float width, float height) override;
|
void setResize(const float width, const float height) override;
|
||||||
|
|
||||||
// Resize the video to be as large as possible but fit within a box of this size.
|
// Resize the video to be as large as possible but fit within a box of this size.
|
||||||
// This can be set before or after a video is loaded.
|
// This can be set before or after a video is loaded.
|
||||||
|
|
Loading…
Reference in a new issue