24 if (
x == x_ &&
y == y_ &&
w == w_ &&
h == h_)
return;
25 x_ =
x; y_ =
y; w_ =
w; h_ =
h;
29 float x()
const {
return x_; }
30 float y()
const {
return y_; }
31 float w()
const {
return w_; }
32 float h()
const {
return h_; }
39 rgba_pixels_ = std::move(rgba);
42 encoded_bytes_.clear();
56 file_path_ = std::move(
path);
58 encoded_bytes_.clear();
65 const std::vector<uint8_t>&
rgba_pixels()
const {
return rgba_pixels_; }
66 const std::vector<uint8_t>&
encoded_bytes()
const {
return encoded_bytes_; }
71 const std::string&
file_path()
const {
return file_path_; }
80 float x_ = 0, y_ = 0, w_ = 0, h_ = 0;
81 std::vector<uint8_t> rgba_pixels_;
82 std::vector<uint8_t> encoded_bytes_;
83 std::string encoded_key_;
84 std::string file_path_;
86 int pixel_height_ = 0;
Definition canvas.hpp:240
void set_file_path(std::string path)
Attach a path to an encoded image on disk.
Definition scene_image.hpp:55
void set_encoded_bytes(std::vector< uint8_t > bytes)
Attach an encoded image blob (PNG/JPEG bytes).
int pixel_width() const
Definition scene_image.hpp:72
float y() const
Definition scene_image.hpp:30
int pixel_height() const
Definition scene_image.hpp:73
float h() const
Definition scene_image.hpp:32
void set_rgba_pixels(std::vector< uint8_t > rgba, int pixel_width, int pixel_height)
Attach a decoded RGBA byte buffer.
Definition scene_image.hpp:37
float w() const
Definition scene_image.hpp:31
float x() const
Definition scene_image.hpp:29
const std::vector< uint8_t > & encoded_bytes() const
Definition scene_image.hpp:66
void set_rect(float x, float y, float w, float h)
Definition scene_image.hpp:23
SceneImage()
Definition scene_image.hpp:21
const std::string & file_path() const
Definition scene_image.hpp:71
SceneRect local_bounds() const override
Local-coordinate bounding box (pre-transform, pre-opacity).
Definition scene_image.hpp:76
void paint_geometry(Canvas &canvas) const override
Paint this node (and its sub-tree) into canvas.
const std::vector< uint8_t > & rgba_pixels() const
Definition scene_image.hpp:65
const std::string & encoded_bytes_key() const
Lowercase hex SHA-256 of encoded_bytes(); empty when none are set.
Definition scene_image.hpp:68
void mark_dirty()
Mark this node and (recursively) every ancestor dirty.
SceneNode(SceneNodeKind kind)
Definition scene_node.hpp:108
Definition affine_transform.hpp:24
SceneNodeKind
Kind discriminator — keeps dynamic_cast off the hot path.
Definition scene_node.hpp:91
@ image
Definition scene_node.hpp:95
@ path
Definition scene_node.hpp:93
Axis-aligned bounding box used for repaint-rect math.
Definition scene_node.hpp:27