Commit Graph

113 Commits

Author SHA1 Message Date
17e75c830f Document Texture, CompressedTexture and Placeholder classes 2022-11-11 19:07:57 +01:00
9ec7aadc06 Merge pull request #66017 from Mickeon/rename-image-copy-rect
Rename Image's `get_rect` to `get_region`
2022-11-02 22:36:57 +01:00
f7c611ab71 Style: Misc docs and comment style and language fixes
- Removed empty paragraphs in XML.
- Consistently use bold style for "Example:", on a new line.
- Fix usage of `[code]` when hyperlinks could be used (`[member]`, `[constant]`).
- Fix invalid usage of backticks for inline code in BBCode.
- Fix some American/British English spelling inconsistencies.
- Other minor fixes spotted along the way, including typo fixes with codespell.
- Don't specify `@GlobalScope` for `enum` and `constant`.
2022-11-02 19:01:18 +01:00
ebf86c96e9 Rename Image's get_rect to get_region
Also renames its parameter to from "rect" to "region".
2022-11-01 23:35:48 +01:00
05a9637d5d Fix small mistakes throughout much of the documentation 2022-10-21 00:20:59 +02:00
072f6feaba Make some Image methods static 2022-10-14 14:34:15 +02:00
6d2aa8f1b6 Undo #51969, generate_mipmaps runs on caller thread. 2022-10-04 18:45:41 +01:00
ea2192b99e [doc] Use "param" instead of "code" to refer to parameters (6) 2022-08-12 12:07:53 -04:00
c5d7115038 Rename the argument tag to param in XML documentation 2022-08-08 22:34:31 +03:00
c8cdc10902 Merge pull request #62861 from samdze/image-size-vector2i
Make Image.get_size() return a Vector2i instead of a Vector2
2022-08-08 12:55:07 +02:00
eea14a0edc Merge pull request #63005 from Chaosus/image_rotate
Implement `rotate_90/rotate_180` functions to `Image`
2022-07-19 15:21:16 +02:00
84431bd782 Use integer types in Image and ImageTexture methods
- 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-18 19:43:32 -05:00
7e66903d56 Implement rotate_90/rotate_180 functions to Image 2022-07-15 11:50:42 +03:00
e27c5acedd Make Image.get_size() return a Vector2i instead of a Vector2 2022-07-09 22:05:58 +02:00
d2900429e8 Add static methods for creating Image and ImageTexture 2022-07-08 13:40:47 +02:00
42f7f0894e Restore the openexr grayscale property. 2022-06-23 21:10:59 -07:00
661808a84e Document the MovieWriter class and associated project settings 2022-06-23 00:31:31 +02:00
8f05bd97b5 Add support for saving WebP images 2022-06-21 08:27:51 -05:00
5786516d4d Implement Running Godot as Movie Writer
* 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-06-21 11:28:47 +02:00
3ca4514866 Merge pull request #50175 from kleonc/image-blit-blend-fix-rects
`Image.blit_rect/blend_rect` Fix rects calculations for negative arguments
2022-04-19 16:30:08 +02:00
45f74ceb85 Add PortableCompressedTexture
* 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-30 10:39:41 +02:00
b68dd2e189 Add an XML schema for documentation
This makes it easier to spot syntax errors when editing the
class reference. The schema is referenced locally so validation
can still work offline.

Each class XML's schema conformance is also checked on GitHub Actions.
2022-02-15 00:03:31 +01:00
419b342a9a Faster CVTT by reducing quality.
Make BC6 and BC7 CVTT faster while still having better quality than DXT5.
2022-02-04 15:15:26 -08:00
8898d6dadc Dictionary: Serialize empty dict as {} instead of {\n}
Also make sure to always convert multiline dictionaries to a single line for
its EditorHelp representation, as multiline values break formatting.
2022-01-18 11:31:21 +01:00
40be15920f Remove support for PVRTC texture encoding and decoding
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-14 21:08:22 +01:00
c01c4c687b Fix link to the supported image formats in the Image class
It previously linked to this page which doesn't exist. https://docs.godotengine.org/en/latest/getting_started/workflow/assets/importing_images.html#supported-image-formats

Now, it should link here: https://docs.godotengine.org/en/latest/tutorials/assets_pipeline/importing_images.html#supported-image-formats
2021-12-06 00:01:19 +02:00
4038bc0c36 Fix Image.blit_rect/blend_rect() for negative p_dest point 2021-11-26 22:23:04 +01:00
91595b16e3 Add Image::fill_rect method 2021-11-23 18:06:23 +01:00
6c1bd4d227 Replace Godot docs URL with $DOCS_URL in XML class reference 2021-11-15 13:02:21 +01:00
862994a8ef doc: Update links to latest documentation after content reorganization 2021-10-06 13:48:48 +02:00
30a88f464b Document Image.generate_mipmaps() always running on the main thread 2021-08-22 02:22:04 +02:00
7adf4cc9b5 doc: Use self-closing tags for return and argument
For the time being we don't support writing a description for those, preferring
having all details in the method's description.

Using self-closing tags saves half the lines, and prevents contributors from
thinking that they should write the argument or return documentation there.
2021-07-30 15:29:52 +02:00
6256936d77 Merge pull request #50677 from Calinou/doc-image-save-exr-editor-only
Document `Image.save_exr()` only being available in editor builds
2021-07-28 15:29:52 +02:00
9787e631aa Fix miscellaneous doc typos and inconsistencies
This pull request fixes an assortment of typos, improves conciseness, and enhances clarity.
2021-07-22 14:01:39 -04:00
a1784c64b4 Document Image.save_exr() only being available in editor builds 2021-07-21 03:46:16 +02:00
0ff4095b36 Better format arguments in variant parser 2021-06-18 00:06:40 -03:00
0ab928e060 Import: Cleanup and optimize etcpak compression method
Avoid unnecessary allocation of temporary buffers for each mip, and creates
only one Image with the compressed data.
Also renames variable and reorders code for clarity.

Clarify that squish is now only used for decompression.

Documented which formats can be decompressed in Image.
2021-04-16 17:08:36 +02:00
8455e901f3 class reference proofreading 2021-03-19 13:21:20 +01:00
0d1d719178 doc: Sync classref with current source
And fix various bogus bindings following previous PRs.
2021-02-19 14:39:14 +01:00
b4a190e0bc Consistently use normal_map 2020-12-29 08:04:19 +00:00
46ea6750b4 Add interpolation parameter to resize_to_po2()
Image::resize_to_po2() now takes an optional p_interpolation parameter
that it passes directly to resize() with default value INTERPOLATE_BILINEAR.
2020-12-18 14:05:07 -04:00
9263f8eb4b Image: Rename PVRTC{2,4} to PVRTC1_{2,4}, drop COMPRESS_PVRTC2
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-12-10 23:14:04 +01:00
2c53e8b0e9 Use Vector2i instead of Vector2 for Image get_pixelv and set_pixelv
Co-authored-by: Andrii Doroshenko <xrayez@gmail.com>
2020-11-21 02:42:29 -05:00
0ee88d6705 Describe ImageTexture, Image creation and usage 2020-11-17 16:00:41 +02:00
0209e3790e Add Image.load_bmp_from_buffer() for run-time BMP image loading
This partially addresses
https://github.com/godotengine/godot-proposals/issues/676.
2020-10-20 23:52:45 +02:00
b9764b6109 Clarify get_data Image method 2020-09-11 11:10:18 -04:00
372136fe75 Environment: Refactor code for readability + more
- Makes all boolean setters/getters consistent.
- Fixes bug where `glow_hdr_bleed_scale` was not used.
- Split CameraEffects to their own source file.
- Reorder all Environment method and properties declarations,
  definitions and bindings to be consistent with each other
  and with the order of property bindings.
- Bind missing enum values added with SDFGI.
- Remove unused SDFGI enhance_ssr boolean.
- Sync doc changes after SDFGI merge and other misc changes.
2020-07-01 14:44:45 +02:00
31
09b324b5b6 Fix Image.create_from_data use_mipmaps doc
The Image.create_from_data doc describes the "use_mipmaps" argument as a
way to generate mipmaps, but this method only allocates and loads data.
This can cause confusion, where this function reads more or less data
than expected. Update the doc to be more specific that create_from_data
is loading the mipmaps from the raw data.
2020-06-13 17:18:02 -05:00
4ac78e6a5f doc: Sync classref with current source 2020-06-04 10:07:56 +02:00
d935a4348d Remove HQ2X and the Image.expand_2x_hq2x() method
As of Godot 3.0, HQ2X is no longer used to upscale the editor theme
and icons on hiDPI displays, which limited its effective uses.
HQ2X was also used to upscale the project theme when the "Use Hidpi"
project setting was enabled, but results were often less than ideal.
The new StyleBoxFlat and SVG support also make HQ2X less important
to have as a core feature.

This decreases binary sizes slightly (-150 KB on most platforms,
-212 KB on WebAssembly release).

This partially addresses #12419.
2020-05-16 16:10:50 +02:00