summaryrefslogtreecommitdiff
path: root/core/io/image.cpp
AgeCommit message (Collapse)Author
2022-10-07Fix MSVC warnings, rename shadowed variables, fix uninitialized values, ↵bruvzg
change warnings=all to use /W4.
2022-09-29Use `constexpr` in the conditions with template parameters and `sizeof`s to ↵bruvzg
suppress C4127 warnings.
2022-09-04Replace Rect2(i) has_no_area with has_areaAaron Franke
2022-09-01Replace Vector2(i) with Size2(i) for methods returning a sizeJohan Aires Rastén
2022-08-08Merge pull request #62861 from samdze/image-size-vector2iRémi Verschelde
Make Image.get_size() return a Vector2i instead of a Vector2
2022-07-19Merge pull request #63005 from Chaosus/image_rotateRémi Verschelde
Implement `rotate_90/rotate_180` functions to `Image`
2022-07-18Use integer types in Image and ImageTexture methodsFireForge
- Image.blit_rect() - Image.blit_rect_mask() - Image.blend_rect() - Image.blend_rect_mask() - Image.fill_rect() - Image.get_used_rect() - Image.get_rect() - ImageTexture.set_size_override()
2022-07-15Implement `rotate_90/rotate_180` functions to `Image`Yuri Rubinsky
2022-07-09Make Image.get_size() return a Vector2i instead of a Vector2Samuele Zolfanelli
2022-07-08Add static methods for creating Image and ImageTexturekobewi
2022-06-23Restore the openexr grayscale property.K. S. Ernest (iFire) Lee
2022-06-23For in-engine processing allow saving openexr to a buffer.K. S. Ernest (iFire) Lee
2022-06-21Add support for saving WebP imagesAaron Franke
2022-06-21Implement Running Godot as Movie Writerreduz
* Allows running the game in "movie writer" mode. * It ensures entirely stable framerate, so your run can be saved stable and with proper sound (which is impossible if your CPU/GPU can't sustain doing this in real-time). * If disabling vsync, it can save movies faster than the game is run, but if you want to control the interaction it can get difficult. * Implements a simple, default MJPEG writer. This new features has two main use cases, which have high demand: * Saving game videos in high quality and ensuring the frame rate is *completely* stable, always. * Using Godot as a tool to make movies and animations (which is ideal if you want interaction, or creating them procedurally. No other software is as good for this). **Note**: This feature **IS NOT** for capturing real-time footage. Use something like OBS, SimpleScreenRecorder or FRAPS to achieve that, as they do a much better job at intercepting the compositor than Godot can probably do using Vulkan or OpenGL natively. If your game runs near real-time when capturing, you can still use this feature but it will play no sound (sound will be saved directly). Usage: $ godot --write-movie movie.avi [scene_file.tscn] Missing: * Options for configuring video writing via GLOBAL_DEF * UI Menu for launching with this mode from the editor. * Add to list of command line options. * Add a feature tag to override configurations when movie writing (fantastic for saving videos with highest quality settings).
2022-05-16Merge pull request #60126 from Calinou/image-improve-error-messagesRémi Verschelde
2022-05-11Fix invalid memory usage when using Image.convertHaoyu Qiu
2022-04-19Merge pull request #50175 from kleonc/image-blit-blend-fix-rectsHugo Locurcio
`Image.blit_rect/blend_rect` Fix rects calculations for negative arguments
2022-04-13Color: Rename `to_srgb`/`to_linear` to include base color spaceRémi Verschelde
This helps reduce confusion around sRGB <> Linear conversions by making both input and output color spaces explicit.
2022-04-11Improve error messages when creating Images from codeHugo Locurcio
The rationale behind the expected number of bytes is now displayed in clear (width, height, format, number of mipmaps expected if any).
2022-03-30Add PortableCompressedTexturereduz
* Resource that allows saving textures embedded in scenes or standalone. * Supports only formats that are portable: Lossy, Lossles or BasisUniversal This is something I wanted to add for a long time. I made it now because @fire requires it for importing GLTF2 files with embedded textures, but also this will allow saving Godot scenes as standalone binary files that will run in all platforms (because textures will load everywhere). This is ideal when you want to distribute individual standalone assets online in games that can be built from Godot scenes.
2022-03-28String: Remove TTR and DTR defines in non-tools buildRémi Verschelde
This ensures we don't use TTR in runtime code, as it's specifically meant to source translations for the editor.
2022-03-17Unify TextServer built-in module and GDExtension code.bruvzg
2022-03-09Change some math macros to constexprkobewi
Changes `MAX`, `MIN`, `ABS`, `CLAMP` and `SIGN`.
2022-02-04Faster CVTT by reducing quality.K. S. Ernest (iFire) Lee
Make BC6 and BC7 CVTT faster while still having better quality than DXT5.
2022-02-04Cleanup and move char functions to the `char_utils.h` header.bruvzg
2022-01-22Pad etcpak input to 4x4 blocks. Fixes #49981Lyuma
2022-01-14Remove support for PVRTC texture encoding and decodingHugo Locurcio
On the only platform where PVRTC is supported (iOS), ETC2 generally supersedes PVRTC in every possible way. The increased memory usage is not really a problem thanks to modern iOS' devices processing power being higher than its Android counterparts.
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-11-26Fix `Image.blit_rect/blend_rect()` for negative `p_dest` pointkleonc
2021-11-23Image Use memcpy() in fill(), fill_rect(), _put_pixelb(), _get_pixelb()kleonc
Co-authored-by: Lightning_A <aaronjrecord@gmail.com>
2021-11-23Add Image::fill_rect methodkleonc
2021-10-25Fixed implicit conversion of uint32_t to uint8_t in `image`Anton Christoffersson
2021-09-29Use functions defined in the their classes.Anilforextra
2021-06-28Validate image formats, check if resize_to_po2 failedPaweł Fertyk
2021-06-27Fix Image.adjust_bcs crash when image format is invalidHaoyu Qiu
2021-06-19Rename `instance()`->`instantiate()` when it's a verbLightning_A
2021-06-11Merge pull request #47835 from mortarroad/master-lossless-webpRémi Verschelde
Implement lossless WebP encoding
2021-06-11Implement lossless WebP encodingMorris Tabor
2021-06-08fix-vram-compressed-mipmapsfloppyhammer
2021-04-27Core: Drop custom `copymem`/`zeromem` definesRémi Verschelde
We've been using standard C library functions `memcpy`/`memset` for these since 2016 with 67f65f66391327b2967a20a89c3627e1dd6e84eb. There was still the possibility for third-party platform ports to override the definitions with a custom header, but this doesn't seem useful anymore.
2021-03-26Optimize image channel detectionJuan Linietsky
Speeds up compression
2021-02-12Add ability to change Icon Saturationreduz
-Allows for more theme freedom -Allows for entirely B&W themes.
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-29Consistently use normal_mapMarcel Admiraal
2020-12-28Rename empty() to is_empty()Marcel Admiraal
2020-12-19Rename Rect2 and Rect2i clip() to intersection()Marcel Admiraal
2020-12-18Add interpolation parameter to resize_to_po2()Theogen Ratkin
Image::resize_to_po2() now takes an optional p_interpolation parameter that it passes directly to resize() with default value INTERPOLATE_BILINEAR.
2020-12-10Image: Rename PVRTC{2,4} to PVRTC1_{2,4}, drop COMPRESS_PVRTC2Rémi Verschelde
We haven't had a proper implementation for COMPRESS_PVRTC2 (which is PVRTC1 2-bpp) in years, so let's drop it instead of keeping a compress type which doesn't work. The other enum values were renamed to clarify that our PVRTC2 and PVRTC4 are respectively PVRTC1 2-bpp and PVRTC1 4-bpp. PVRTC2 2-bpp and 4-bpp are not implemented yet.
2020-11-21Use Vector2i instead of Vector2 for Image get_pixelv and set_pixelvAaron Franke
Co-authored-by: Andrii Doroshenko <xrayez@gmail.com>
2020-11-16Remove empty lines around braces with the formatting scriptAaron Franke