diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2020-12-19 09:34:41 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-19 09:34:41 +0100 |
commit | 16524d4ae1d2dc8643b97349dbbba603de77fc2b (patch) | |
tree | 3eba00e73e5f9567089e741cbbb398470dc5ed60 | |
parent | 33ad8c50484a2caf239f10ac6216a48ca378912c (diff) | |
parent | 46ea6750b422292e3f7bf15b5bb12aa4de68dbea (diff) |
Merge pull request #44445 from theogen-ratkin/master
Add interpolation parameter to resize_to_po2()
-rw-r--r-- | core/io/image.cpp | 6 | ||||
-rw-r--r-- | core/io/image.h | 2 | ||||
-rw-r--r-- | doc/classes/Image.xml | 6 |
3 files changed, 8 insertions, 6 deletions
diff --git a/core/io/image.cpp b/core/io/image.cpp index 7c32c02701..cd334ac6cb 100644 --- a/core/io/image.cpp +++ b/core/io/image.cpp @@ -993,7 +993,7 @@ bool Image::is_size_po2() const { return uint32_t(width) == next_power_of_2(width) && uint32_t(height) == next_power_of_2(height); } -void Image::resize_to_po2(bool p_square) { +void Image::resize_to_po2(bool p_square, Interpolation p_interpolation) { ERR_FAIL_COND_MSG(!_can_modify(format), "Cannot resize in compressed or custom image formats."); int w = next_power_of_2(width); @@ -1008,7 +1008,7 @@ void Image::resize_to_po2(bool p_square) { } } - resize(w, h); + resize(w, h, p_interpolation); } void Image::resize(int p_width, int p_height, Interpolation p_interpolation) { @@ -3077,7 +3077,7 @@ void Image::_bind_methods() { ClassDB::bind_method(D_METHOD("get_mipmap_offset", "mipmap"), &Image::get_mipmap_offset); - ClassDB::bind_method(D_METHOD("resize_to_po2", "square"), &Image::resize_to_po2, DEFVAL(false)); + ClassDB::bind_method(D_METHOD("resize_to_po2", "square", "interpolation"), &Image::resize_to_po2, DEFVAL(false), DEFVAL(INTERPOLATE_BILINEAR)); ClassDB::bind_method(D_METHOD("resize", "width", "height", "interpolation"), &Image::resize, DEFVAL(INTERPOLATE_BILINEAR)); ClassDB::bind_method(D_METHOD("shrink_x2"), &Image::shrink_x2); diff --git a/core/io/image.h b/core/io/image.h index 0151df0cf9..6b4488bd66 100644 --- a/core/io/image.h +++ b/core/io/image.h @@ -244,7 +244,7 @@ public: /** * Resize the image, using the preferred interpolation method. */ - void resize_to_po2(bool p_square = false); + void resize_to_po2(bool p_square = false, Interpolation p_interpolation = INTERPOLATE_BILINEAR); void resize(int p_width, int p_height, Interpolation p_interpolation = INTERPOLATE_BILINEAR); void shrink_x2(); bool is_size_po2() const; diff --git a/doc/classes/Image.xml b/doc/classes/Image.xml index 71db1e5106..414249f110 100644 --- a/doc/classes/Image.xml +++ b/doc/classes/Image.xml @@ -422,7 +422,7 @@ <argument index="2" name="interpolation" type="int" enum="Image.Interpolation" default="1"> </argument> <description> - Resizes the image to the given [code]width[/code] and [code]height[/code]. New pixels are calculated using [code]interpolation[/code]. See [code]interpolation[/code] constants. + Resizes the image to the given [code]width[/code] and [code]height[/code]. New pixels are calculated using the [code]interpolation[/code] mode defined via [enum Interpolation] constants. </description> </method> <method name="resize_to_po2"> @@ -430,8 +430,10 @@ </return> <argument index="0" name="square" type="bool" default="false"> </argument> + <argument index="1" name="interpolation" type="int" enum="Image.Interpolation" default="1"> + </argument> <description> - Resizes the image to the nearest power of 2 for the width and height. If [code]square[/code] is [code]true[/code] then set width and height to be the same. + Resizes the image to the nearest power of 2 for the width and height. If [code]square[/code] is [code]true[/code] then set width and height to be the same. New pixels are calculated using the [code]interpolation[/code] mode defined via [enum Interpolation] constants. </description> </method> <method name="rgbe_to_srgb"> |