class new in Git master
StbDxtImageConverterBC1/BC3 compressor using stb_dxt.
Converts uncompressed 2D, 2D array or cube and 3D RGB and RGBA images to block-compressed BC1/BC3 images using the stb_
Usage
This plugin depends on the Trade library and is built if MAGNUM_WITH_STBDXTIMAGECONVERTER
is enabled when building Magnum Plugins. To use as a dynamic plugin, load "StbDxtImageConverter"
via Corrade::
Additionally, if you're using Magnum as a CMake subproject, bundle the magnum-plugins repository and do the following:
set(MAGNUM_WITH_STBDXTIMAGECONVERTER ON CACHE BOOL "" FORCE) add_subdirectory(magnum-plugins EXCLUDE_FROM_ALL) # So the dynamically loaded plugin gets built implicitly add_dependencies(your-app MagnumPlugins::StbDxtImageConverter)
To use as a static plugin or as a dependency of another plugin with CMake, put FindMagnumPlugins.cmake into your modules/
directory, request the StbDxtImageConverter
component of the MagnumPlugins
package and link to the MagnumPlugins::StbDxtImageConverter
target:
find_package(MagnumPlugins REQUIRED StbDxtImageConverter) # ... target_link_libraries(your-app PRIVATE MagnumPlugins::StbDxtImageConverter)
See Downloading and building plugins, Plugin usage with CMake and Loading and using plugins and File format support for more information.
Behavior and limitations
An PixelFormat::alpha
configuration option.
Image flags are passed through unchanged. 3D images are compressed slice-by-slice, independently of whether ImageFlag3D::
The input image size is expected to be divisible by four in the X and Y dimension. If your image doesn't fit this requirement, you have to pad/crop or resample it first. Since 3D images are compressed slice-by-slice, there's no restriction on the Z dimension.
Unlike image converters dealing with uncompressed pixel formats, the image isn't Y-flipped on export due to the nontrivial amount of work involved with Y-flipping block-compressed data. This is in line with importers of compressed pixel formats such as AstcImporter, DdsImporter or KtxImporter, which don't Y-flip compressed formats on import either.
Plugin-specific configuration
Various compressor options can be set through configuration(). See below for all options and their default values:
[configuration] # Store the alpha channel. If enabled, the output format is BC3 (128 bits per # block), if disabled the format is BC1 (64 bits per block). By default it's # inferred from whether the input is RGB or RGBA. alpha= # High-quality mode, does two refinement steps instead of one. ~30–40% # slower. highQuality=false
See Editing plugin-specific configuration for more information and an example showing how to edit the configuration values.
Base classes
- class AbstractImageConverter
- Base for image converter plugins.
Constructors, destructors, conversion operators
-
StbDxtImageConverter(PluginManager::
AbstractManager& manager, const Containers:: StringView& plugin) explicit - Plugin manager constructor.