mirror of
https://github.com/ptitSeb/Serious-Engine
synced 2024-11-24 19:30:26 +01:00
72 lines
2.8 KiB
C++
72 lines
2.8 KiB
C++
/* Copyright (c) 2002-2012 Croteam Ltd.
|
|
This program is free software; you can redistribute it and/or modify
|
|
it under the terms of version 2 of the GNU General Public License as published by
|
|
the Free Software Foundation
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License along
|
|
with this program; if not, write to the Free Software Foundation, Inc.,
|
|
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */
|
|
|
|
#ifndef SE_INCL_IMAGEINFO_H
|
|
#define SE_INCL_IMAGEINFO_H
|
|
#ifdef PRAGMA_ONCE
|
|
#pragma once
|
|
#endif
|
|
|
|
/*
|
|
* class of CroTeam RAW image description (bitmap) and several image manipulation routines
|
|
*/
|
|
|
|
#define UNSUPPORTED_FILE 0L
|
|
#define PCX_FILE 1L
|
|
#define TGA_FILE 2L
|
|
|
|
class ENGINE_API CImageInfo {
|
|
public:
|
|
PIX ii_Width; // width of image in pixels
|
|
PIX ii_Height; // height of image in pixels
|
|
SLONG ii_BitsPerPixel; // depth of image (color bits; 24 or 32=24+8 alpha)
|
|
UBYTE *ii_Picture; // pointer to picture contents (raw bytes)
|
|
private:
|
|
void LoadTGA_t( const CTFileName &strFileName); // throw char *
|
|
void LoadPCX_t( const CTFileName &strFileName); // throw char *
|
|
public:
|
|
// constructor and destructor are must have
|
|
CImageInfo();
|
|
~CImageInfo();
|
|
// reads image info raw format from file
|
|
void Read_t( CTStream *inFile); // throw char *
|
|
// writes image info raw format to file
|
|
void Write_t( CTStream *outFile) const; // throw char *
|
|
|
|
// initializes structure members and attaches pointer to image
|
|
void Attach( UBYTE *pPicture, PIX pixWidth, PIX pixHeight, SLONG slBitsPerPixel);
|
|
// clears the content of an image info structure but does not free allocated memory
|
|
void Detach(void);
|
|
// clears the content of an image info structure and frees allocated memory
|
|
void Clear(void);
|
|
// expand image edges
|
|
void ExpandEdges( INDEX ctPasses=8192);
|
|
|
|
// sets image info structure members with info form file of any supported graphic format,
|
|
// but does not load picture content nor palette; returns format type (see #defines)
|
|
// (supported formats: CroTeam's RAW, PCX24, TGA32 uncompressed)
|
|
INDEX GetGfxFileInfo_t( const CTFileName &strFileName); // throw char *
|
|
// sets image info structure members with info form file of any supported graphic format
|
|
// and loads picture content and, eventually, palette
|
|
void LoadAnyGfxFormat_t( const CTFileName &strFileName); // throw char *
|
|
|
|
// converts image info structure and content to PCX or TGA format and saves it to file
|
|
void SaveTGA_t( const CTFileName &strFileName) const; // throw char *
|
|
};
|
|
|
|
|
|
#endif /* include-once check. */
|
|
|