summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRĂ©mi Verschelde <remi@verschelde.fr>2022-06-24 08:06:01 +0200
committerGitHub <noreply@github.com>2022-06-24 08:06:01 +0200
commit913598fec166b4742c6242f46b8b51a4df30f6fb (patch)
treea8ab02ab3b198dfe2911198fbc087dada1e0c5b3
parentecf187705eb59632cefa649b0f4b44dd3569c0fb (diff)
parent42f7f0894ed4884a0360ca583c955359e1c90e87 (diff)
Merge pull request #62368 from V-Sekai/exr-bug
Restore the openexr grayscale property.
-rw-r--r--core/io/image.cpp4
-rw-r--r--core/io/image.h2
-rw-r--r--doc/classes/Image.xml8
3 files changed, 11 insertions, 3 deletions
diff --git a/core/io/image.cpp b/core/io/image.cpp
index 97a46c29db..f065dac212 100644
--- a/core/io/image.cpp
+++ b/core/io/image.cpp
@@ -2324,11 +2324,11 @@ Error Image::save_exr(const String &p_path, bool p_grayscale) const {
return save_exr_func(p_path, Ref<Image>((Image *)this), p_grayscale);
}
-Vector<uint8_t> Image::save_exr_to_buffer() const {
+Vector<uint8_t> Image::save_exr_to_buffer(bool p_grayscale) const {
if (save_exr_buffer_func == nullptr) {
return Vector<uint8_t>();
}
- return save_exr_buffer_func(Ref<Image>((Image *)this), false);
+ return save_exr_buffer_func(Ref<Image>((Image *)this), p_grayscale);
}
Error Image::save_webp(const String &p_path, const bool p_lossy, const float p_quality) const {
diff --git a/core/io/image.h b/core/io/image.h
index 10c1156dae..2cad26f3e9 100644
--- a/core/io/image.h
+++ b/core/io/image.h
@@ -294,7 +294,7 @@ public:
Error save_jpg(const String &p_path, float p_quality = 0.75) const;
Vector<uint8_t> save_png_to_buffer() const;
Vector<uint8_t> save_jpg_to_buffer(float p_quality = 0.75) const;
- Vector<uint8_t> save_exr_to_buffer() const;
+ Vector<uint8_t> save_exr_to_buffer(bool p_grayscale) const;
Error save_exr(const String &p_path, bool p_grayscale) const;
Error save_webp(const String &p_path, const bool p_lossy = false, const float p_quality = 0.75f) const;
Vector<uint8_t> save_webp_to_buffer(const bool p_lossy = false, const float p_quality = 0.75f) const;
diff --git a/doc/classes/Image.xml b/doc/classes/Image.xml
index d2baf78a9e..43b03ce65e 100644
--- a/doc/classes/Image.xml
+++ b/doc/classes/Image.xml
@@ -380,6 +380,14 @@
[b]Note:[/b] The TinyEXR module is disabled in non-editor builds, which means [method save_exr] will return [constant ERR_UNAVAILABLE] when it is called from an exported project.
</description>
</method>
+ <method name="save_exr_to_buffer" qualifiers="const">
+ <return type="PackedByteArray" />
+ <argument index="0" name="grayscale" type="bool" default="false" />
+ <description>
+ Saves the image as an EXR file to a byte array. If [code]grayscale[/code] is [code]true[/code] and the image has only one channel, it will be saved explicitly as monochrome rather than one red channel. This function will return an empty byte array if Godot was compiled without the TinyEXR module.
+ [b]Note:[/b] The TinyEXR module is disabled in non-editor builds, which means [method save_exr] will return an empty byte array when it is called from an exported project.
+ </description>
+ </method>
<method name="save_jpg" qualifiers="const">
<return type="int" enum="Error" />
<argument index="0" name="path" type="String" />