123456789101112131415161718192021222324252627282930313233343536 |
- // SPDX-FileCopyrightText: 2021 Jorrit Rouwe
- // SPDX-License-Identifier: MIT
- #pragma once
- #include <Image/ZoomImage.h>
- #include <Jolt/Core/Color.h>
- /// Settings for blitting one surface to another with possibly different formats and dimensions. The blit
- /// routine can use filtering or blurring on the fly. Also it can perform some other
- /// basic opertions like converting an image to grayscale or alpha only surfaces.
- class BlitSettings
- {
- public:
- /// Constructor
- BlitSettings();
- /// Comparison operators
- bool operator == (const BlitSettings &inRHS) const;
-
- /// Default settings
- static const BlitSettings sDefault;
- /// Special operations that can be applied during the blit
- bool mConvertRGBToAlpha; ///< Convert RGB values to alpha values (RGB values remain untouched)
- bool mConvertAlphaToRGB; ///< Convert alpha values to grayscale RGB values (Alpha values remain untouched)
- bool mConvertToGrayScale; ///< Convert RGB values to grayscale values (Alpha values remain untouched)
- bool mInvertAlpha; ///< Invert alpha values
- bool mColorKeyAlpha; ///< If true, colors in the range mColorKeyStart..mColorKeyEnd will get an alpha of 0, other colors will get an alpha of 255
- Color mColorKeyStart;
- Color mColorKeyEnd;
- ZoomSettings mZoomSettings; ///< Settings for resizing the image
- };
- /// Copies an image from inSrc to inDst, converting it on the fly as defined by inBlitSettings
- bool BlitSurface(RefConst<Surface> inSrc, Ref<Surface> ioDst, const BlitSettings &inBlitSettings = BlitSettings::sDefault);
|