|
|
/**************************************************************************\
* * Copyright (c) 1999-2000 Microsoft Corporation * * Module Name: * * Scan operations * * Abstract: * * Definitions for the ScanOperation namespace. * * Notes: * * EpAlphaBlender, EpFormatConverter, and the scan operations, all use the * idea of the "closest" canonical format to a particular format. * We define this as follows: If the format is not extended, * the closest canonical format is sRGB. Otherwise, it's sRGB64. * * Revision History: * * 01/04/2000 agodfrey * Created it. * \**************************************************************************/
#include "precomp.hpp"
namespace ScanOperation { /**************************************************************************\
* * Operations which copy pixels, preserving the pixel format. * \**************************************************************************/ ScanOpFunc CopyOps[PIXFMT_MAX] = { NULL, // PIXFMT_UNDEFINED
Copy_1, // PIXFMT_1BPP_INDEXED
Copy_4, // PIXFMT_4BPP_INDEXED
Copy_8, // PIXFMT_8BPP_INDEXED
Copy_16, // PIXFMT_16BPP_GRAYSCALE
Copy_16, // PIXFMT_16BPP_RGB555
Copy_16, // PIXFMT_16BPP_RGB565
Copy_16, // PIXFMT_16BPP_ARGB1555
Copy_24, // PIXFMT_24BPP_RGB
Copy_32, // PIXFMT_32BPP_RGB
Copy_32, // PIXFMT_32BPP_ARGB
Copy_32, // PIXFMT_32BPP_PARGB
Copy_48, // PIXFMT_48BPP_RGB
Copy_64, // PIXFMT_64BPP_ARGB
Copy_64, // PIXFMT_64BPP_PARGB
Copy_24 // PIXFMT_24BPP_BGR
}; /**************************************************************************\
* * Operations which convert into the closest canonical format. * \**************************************************************************/ ScanOpFunc ConvertIntoCanonicalOps[PIXFMT_MAX] = { NULL, // PIXFMT_UNDEFINED
Convert_1_sRGB, // PIXFMT_1BPP_INDEXED
Convert_4_sRGB, // PIXFMT_4BPP_INDEXED
Convert_8_sRGB, // PIXFMT_8BPP_INDEXED
NULL, // !!! TODO // PIXFMT_16BPP_GRAYSCALE
Convert_555_sRGB, // PIXFMT_16BPP_RGB555
Convert_565_sRGB, // PIXFMT_16BPP_RGB565
Convert_1555_sRGB, // PIXFMT_16BPP_ARGB1555
Convert_24_sRGB, // PIXFMT_24BPP_RGB
Convert_32RGB_sRGB, // PIXFMT_32BPP_RGB
Copy_32, // PIXFMT_32BPP_ARGB
AlphaDivide_sRGB, // PIXFMT_32BPP_PARGB
Convert_48_sRGB64, // PIXFMT_48BPP_RGB
Copy_64, // PIXFMT_64BPP_ARGB
AlphaDivide_sRGB64, // PIXFMT_64BPP_PARGB
Convert_24BGR_sRGB // PIXFMT_24BPP_BGR
}; };
|