mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-17 22:11:58 +00:00
1
This commit is contained in:
@@ -0,0 +1,106 @@
|
||||
//
|
||||
// mxToolKit (c) 1999 by Mete Ciragan
|
||||
//
|
||||
// file: mxImage.h
|
||||
// implementation: all
|
||||
// last modified: Apr 15 1999, Mete Ciragan
|
||||
// copyright: The programs and associated files contained in this
|
||||
// distribution were developed by Mete Ciragan. The programs
|
||||
// are not in the public domain, but they are freely
|
||||
// distributable without licensing fees. These programs are
|
||||
// provided without guarantee or warrantee expressed or
|
||||
// implied.
|
||||
//
|
||||
#ifndef INCLUDED_MXIMAGE
|
||||
#define INCLUDED_MXIMAGE
|
||||
|
||||
|
||||
|
||||
#ifndef byte
|
||||
typedef unsigned char byte;
|
||||
#endif // byte
|
||||
|
||||
#ifndef word
|
||||
typedef unsigned short word;
|
||||
#endif // word
|
||||
|
||||
|
||||
|
||||
class mxImage
|
||||
{
|
||||
public:
|
||||
int width;
|
||||
int height;
|
||||
int bpp;
|
||||
void *data;
|
||||
void *palette;
|
||||
|
||||
// CREATORS
|
||||
mxImage () : width (0), height (0), bpp (0), data (0), palette (0)
|
||||
{
|
||||
}
|
||||
|
||||
mxImage (int w, int h, int bpp)
|
||||
{
|
||||
create (w, h, bpp);
|
||||
}
|
||||
|
||||
virtual ~mxImage ()
|
||||
{
|
||||
destroy ();
|
||||
}
|
||||
|
||||
// MANIPULATORS
|
||||
bool create (int w, int h, int pixelSize)
|
||||
{
|
||||
if (data)
|
||||
delete[] data;
|
||||
|
||||
if (palette)
|
||||
delete[] palette;
|
||||
|
||||
data = new byte[w * h * pixelSize / 8];
|
||||
if (!data)
|
||||
return false;
|
||||
|
||||
// allocate a palette for 8-bit images
|
||||
if (pixelSize == 8)
|
||||
{
|
||||
palette = new byte[768];
|
||||
if (!palette)
|
||||
{
|
||||
delete[] data;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else
|
||||
palette = 0;
|
||||
|
||||
width = w;
|
||||
height = h;
|
||||
bpp = pixelSize;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void destroy ()
|
||||
{
|
||||
if (data)
|
||||
delete[] data;
|
||||
|
||||
if (palette)
|
||||
delete[] palette;
|
||||
|
||||
data = palette = 0;
|
||||
width = height = bpp = 0;
|
||||
}
|
||||
|
||||
private:
|
||||
// NOT IMPLEMENTED
|
||||
mxImage (const mxImage&);
|
||||
mxImage& operator= (const mxImage&);
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif // INCLUDED_MXIMAGE
|
||||
Reference in New Issue
Block a user