imageUtils.h
Engine/source/gfx/bitmap/imageUtils.h
Namespaces:
namespace
Detailed Description
1 2//----------------------------------------------------------------------------- 3// Copyright (c) 2016 GarageGames, LLC 4// 5// Permission is hereby granted, free of charge, to any person obtaining a copy 6// of this software and associated documentation files (the "Software"), to 7// deal in the Software without restriction, including without limitation the 8// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 9// sell copies of the Software, and to permit persons to whom the Software is 10// furnished to do so, subject to the following conditions: 11// 12// The above copyright notice and this permission notice shall be included in 13// all copies or substantial portions of the Software. 14// 15// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 20// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 21// IN THE SOFTWARE. 22//----------------------------------------------------------------------------- 23 24#ifndef _IMAGE_UTILS_H_ 25#define _IMAGE_UTILS_H_ 26 27#ifndef _SWIZZLE_H_ 28#include "core/util/swizzle.h" 29#endif 30#ifndef _GFXENUMS_H_ 31#include "gfx/gfxEnums.h" 32#endif 33#ifndef _MMATHFN_H_ 34#include "math/mMathFn.h" 35#endif 36 37struct DDSFile; 38 39namespace ImageUtil 40{ 41 enum CompressQuality 42 { 43 LowQuality, 44 MediumQuality, 45 HighQuality 46 }; 47 48 // compress raw pixel data, expects rgba format 49 bool rawCompress(const U8 *srcRGBA, U8 *dst, const S32 width, const S32 height, const GFXFormat compressFormat, const CompressQuality compressQuality = LowQuality); 50 // compress DDSFile 51 bool ddsCompress(DDSFile *srcDDS, const GFXFormat compressFormat, const CompressQuality compressQuality = LowQuality); 52 // decompress compressed pixel data, dest data should be rgba format 53 bool decompress(const U8 *src, U8 *dstRGBA, const S32 width, const S32 height, const GFXFormat srcFormat); 54 //swizzle dds file 55 void swizzleDDS(DDSFile *srcDDS, const Swizzle<U8, 4> &swizzle); 56 //check if a GFXFormat is compressed 57 bool isCompressedFormat(const GFXFormat format); 58 bool isSRGBFormat(const GFXFormat format); 59 //check if a GFXFormat has an alpha channel 60 bool isAlphaFormat(const GFXFormat format); 61 62 //convert to sRGB format 63 GFXFormat toSRGBFormat(const GFXFormat format); 64 65 U32 getMaxMipCount(const U32 width, const U32 height); 66}; 67 68#endif 69