mirror of
https://github.com/godotengine/godot.git
synced 2025-12-07 22:00:10 +00:00
Image: Make fill method also fill the mipmaps
This commit is contained in:
parent
3d91a48298
commit
666ed1b51c
2 changed files with 11 additions and 7 deletions
|
|
@ -3071,13 +3071,13 @@ void Image::fill(const Color &p_color) {
|
|||
ERR_FAIL_COND_MSG(is_compressed(), "Cannot fill in compressed image formats.");
|
||||
|
||||
uint8_t *dst_data_ptr = data.ptrw();
|
||||
|
||||
int pixel_size = get_format_pixel_size(format);
|
||||
int64_t pixel_count = data.size() / pixel_size;
|
||||
|
||||
// Put first pixel with the format-aware API.
|
||||
_set_color_at_ofs(dst_data_ptr, 0, p_color);
|
||||
|
||||
_repeat_pixel_over_subsequent_memory(dst_data_ptr, pixel_size, width * height);
|
||||
_repeat_pixel_over_subsequent_memory(dst_data_ptr, pixel_size, pixel_count);
|
||||
}
|
||||
|
||||
void Image::fill_rect(const Rect2i &p_rect, const Color &p_color) {
|
||||
|
|
|
|||
|
|
@ -267,13 +267,17 @@ TEST_CASE("[Image] Modifying pixels of an image") {
|
|||
|
||||
// Fill image with color
|
||||
image2->fill(Color(0.5, 0.5, 0.5, 0.5));
|
||||
for (int y = 0; y < image2->get_height(); y++) {
|
||||
for (int x = 0; x < image2->get_width(); x++) {
|
||||
for (int m = 0; m < image2->get_mipmap_count(); m++) {
|
||||
Ref<Image> mip_image = image2->get_image_from_mipmap(m);
|
||||
|
||||
for (int y = 0; y < mip_image->get_height(); y++) {
|
||||
for (int x = 0; x < mip_image->get_width(); x++) {
|
||||
CHECK_MESSAGE(
|
||||
image2->get_pixel(x, y).r > 0.49,
|
||||
mip_image->get_pixel(x, y).r > 0.49,
|
||||
"fill() should colorize all pixels of the image.");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Fill rect with color
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue