AUI Framework  develop
Cross-platform base for C++ UI apps
Loading...
Searching...
No Matches
AImageDrawable.h
1/*
2 * AUI Framework - Declarative UI toolkit for modern C++20
3 * Copyright (C) 2020-2024 Alex2772 and Contributors
4 *
5 * SPDX-License-Identifier: MPL-2.0
6 *
7 * This Source Code Form is subject to the terms of the Mozilla Public
8 * License, v. 2.0. If a copy of the MPL was not distributed with this
9 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
10 */
11
12//
13// Created by alex2 on 23.10.2020.
14//
15
16#pragma once
17
18
19#include <AUI/Image/IDrawable.h>
20#include <AUI/Common/SharedPtrTypes.h>
21#include <AUI/Image/AImage.h>
22#include <AUI/Render/IRenderer.h>
23
24class AImageDrawable: public IDrawable {
25private:
26 glm::ivec2 mSize;
27 std::variant<_<ITexture>, _<AImage>> mStorage;
28
29public:
30 explicit AImageDrawable(_<AImage> image);
31 virtual ~AImageDrawable();
32
33 void draw(IRenderer& render, const IDrawable::Params& params) override;
34
35 AImage rasterize(glm::ivec2 imageSize) override;
36
37 glm::ivec2 getSizeHint() override;
38};
39
40
glm::ivec2 getSizeHint() override
Definition ImageDrawable.cpp:31
AImage rasterize(glm::ivec2 imageSize) override
Converts possibly vector drawable to a raster image.
Definition ImageDrawable.cpp:53
void draw(IRenderer &render, const IDrawable::Params &params) override
Called when the image needs to be displayed. It is assumed that the renderer is already set to the de...
Definition ImageDrawable.cpp:36
An abstract image that determines itself how it is displayed. Essentially an abstraction from vector ...
Definition IDrawable.h:28
Base class for rendering.
Definition IRenderer.h:149
An std::weak_ptr with AUI extensions.
Definition SharedPtrTypes.h:178
Definition IDrawable.h:43