Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 89ca9c5

Browse files
committedNov 12, 2024··
Add GIF import
Add GIF file loading Add `ResourceFormatLoader` for `AnimatedTexture` Add `ImageFrames` resource for handling image sequence Add `ImageFramesLoader` for resource loading image sequences Add `ResourceFormatLoader` for `ImageFrames`
1 parent ac1a497 commit 89ca9c5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

48 files changed

+5697
-0
lines changed
 

‎COPYRIGHT.txt

+5
Original file line numberDiff line numberDiff line change
@@ -254,6 +254,11 @@ Comment: The FreeType Project
254254
Copyright: 1996-2023, David Turner, Robert Wilhelm, and Werner Lemberg.
255255
License: FTL
256256

257+
Files: ./thirdparty/giflib/
258+
Comment: giflib
259+
Copyright: 1997-2024, Eric S. Raymond
260+
License: Expat
261+
257262
Files: ./thirdparty/glad/
258263
Comment: glad
259264
Copyright: 2013-2022, David Herberth

‎core/io/image.cpp

+10
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ ImageMemLoadFunc Image::_tga_mem_loader_func = nullptr;
109109
ImageMemLoadFunc Image::_bmp_mem_loader_func = nullptr;
110110
ScalableImageMemLoadFunc Image::_svg_scalable_mem_loader_func = nullptr;
111111
ImageMemLoadFunc Image::_ktx_mem_loader_func = nullptr;
112+
ImageMemLoadFunc Image::_gif_mem_loader_func = nullptr;
112113

113114
// External VRAM compression function pointers.
114115

@@ -3649,6 +3650,7 @@ void Image::_bind_methods() {
36493650
ClassDB::bind_method(D_METHOD("load_tga_from_buffer", "buffer"), &Image::load_tga_from_buffer);
36503651
ClassDB::bind_method(D_METHOD("load_bmp_from_buffer", "buffer"), &Image::load_bmp_from_buffer);
36513652
ClassDB::bind_method(D_METHOD("load_ktx_from_buffer", "buffer"), &Image::load_ktx_from_buffer);
3653+
ClassDB::bind_method(D_METHOD("load_gif_from_buffer", "buffer"), &Image::load_gif_from_buffer);
36523654

36533655
ClassDB::bind_method(D_METHOD("load_svg_from_buffer", "buffer", "scale"), &Image::load_svg_from_buffer, DEFVAL(1.0));
36543656
ClassDB::bind_method(D_METHOD("load_svg_from_string", "svg_str", "scale"), &Image::load_svg_from_string, DEFVAL(1.0));
@@ -4091,6 +4093,14 @@ Error Image::load_ktx_from_buffer(const Vector<uint8_t> &p_array) {
40914093
return _load_from_buffer(p_array, _ktx_mem_loader_func);
40924094
}
40934095

4096+
Error Image::load_gif_from_buffer(const Vector<uint8_t> &p_array) {
4097+
ERR_FAIL_NULL_V_MSG(
4098+
_gif_mem_loader_func,
4099+
ERR_UNAVAILABLE,
4100+
"The GIF module isn't enabled. Recompile the Redot editor or export template binary with the `module_gif_enabled=yes` SCons option.");
4101+
return _load_from_buffer(p_array, _gif_mem_loader_func);
4102+
}
4103+
40944104
void Image::convert_rg_to_ra_rgba8() {
40954105
ERR_FAIL_COND(format != FORMAT_RGBA8);
40964106
ERR_FAIL_COND(data.is_empty());

0 commit comments

Comments
 (0)
Please sign in to comment.