Alien-FreeImage
view release on metacpan or search on metacpan
src/Source/FreeImage/PluginDDS.cpp view on Meta::CPAN
static void DLL_CALLCONV
Close(FreeImageIO *io, fi_handle handle, void *data) {
}
// ----------------------------------------------------------
static FIBITMAP * DLL_CALLCONV
Load(FreeImageIO *io, fi_handle handle, int page, int flags, void *data) {
DDSHEADER header;
FIBITMAP *dib = NULL;
memset(&header, 0, sizeof(header));
io->read_proc(&header, 1, sizeof(header), handle);
#ifdef FREEIMAGE_BIGENDIAN
SwapHeader(&header);
#endif
if (header.surfaceDesc.ddpfPixelFormat.dwFlags & DDPF_RGB) {
dib = LoadRGB (header.surfaceDesc, io, handle, page, flags, data);
}
else if (header.surfaceDesc.ddpfPixelFormat.dwFlags & DDPF_FOURCC) {
switch (header.surfaceDesc.ddpfPixelFormat.dwFourCC) {
case FOURCC_DXT1:
dib = LoadDXT (1, header.surfaceDesc, io, handle, page, flags, data);
break;
case FOURCC_DXT3:
dib = LoadDXT (3, header.surfaceDesc, io, handle, page, flags, data);
break;
case FOURCC_DXT5:
dib = LoadDXT (5, header.surfaceDesc, io, handle, page, flags, data);
break;
}
}
return dib;
}
/*
static BOOL DLL_CALLCONV
Save(FreeImageIO *io, FIBITMAP *dib, fi_handle handle, int page, int flags, void *data) {
return FALSE;
}
*/
// ==========================================================
// Init
// ==========================================================
void DLL_CALLCONV
InitDDS(Plugin *plugin, int format_id) {
s_format_id = format_id;
plugin->format_proc = Format;
plugin->description_proc = Description;
plugin->extension_proc = Extension;
plugin->regexpr_proc = RegExpr;
plugin->open_proc = Open;
plugin->close_proc = Close;
plugin->pagecount_proc = NULL;
plugin->pagecapability_proc = NULL;
plugin->load_proc = Load;
plugin->save_proc = NULL; //Save; // not implemented (yet?)
plugin->validate_proc = Validate;
plugin->mime_proc = MimeType;
plugin->supports_export_bpp_proc = SupportsExportDepth;
plugin->supports_export_type_proc = SupportsExportType;
plugin->supports_icc_profiles_proc = NULL;
}
( run in 1.396 second using v1.01-cache-2.11-cpan-d7f47b0818f )