Transparency demo.

This commit is contained in:
2024-08-05 12:55:33 -04:00
parent 91bb1e1be8
commit 2622077f60
3 changed files with 26 additions and 4 deletions

View File

@@ -30,5 +30,12 @@ namespace JUI
void Draw() override;
void Update(float delta) override;
bool FitImageToParent() const;
void FitImageToParent(bool on);
protected:
bool fit_image_to_parent;
};
}

View File

@@ -132,10 +132,7 @@ JUI::Scene* CreateScene() {
//win_element->SetPadding(1_px);
// End Window //
auto darkie = new Image(root, sample_texture);
darkie->SetPosition({25_percent, 25_percent});
darkie->SetSize({25_percent, 25_percent});
auto list = new VerticalListLayout(win_element->GetViewportInstance());
list->SetPadding(10_px);
@@ -179,6 +176,9 @@ JUI::Scene* CreateScene() {
text->SetTextSize(48);
text->SetTextColor({255, 0, 0});
auto darkie = new Image(root, sample_texture);
darkie->FitImageToParent(true);
darkie->Color({255,255,255,128});
root->SetViewportSize(800, 600);
@@ -212,6 +212,7 @@ public:
void OnRefresh(float elapsed) override {
Update();
JGL::Update(getSize());
scene->SetViewportSize(getSize().x, getSize().y);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();

View File

@@ -28,11 +28,25 @@ namespace JUI
void Image::Draw() {
// TODO: Factor in margin?
ImageBase::Draw(GetAbsolutePosition(), GetAbsoluteSize());
if (fit_image_to_parent)
{
auto old_scale = scale;
scale = GetAbsoluteSize() / texture->GetDimensions();
ImageBase::Draw(GetAbsolutePosition(), GetAbsoluteSize());
scale = old_scale;
} else
{
ImageBase::Draw(GetAbsolutePosition(), GetAbsoluteSize());
}
Widget::Draw();
}
void Image::Update(float delta) {
Widget::Update(delta);
}
bool Image::FitImageToParent() const { return fit_image_to_parent; }
void Image::FitImageToParent(bool on) { fit_image_to_parent = on; }
}