Files
Work/proto/source/rgb555.hpp
2024-08-07 09:16:27 -04:00

111 lines
1.7 KiB
C++

#ifndef _PROTO_RGB555_HPP_
#define _PROTO_RGB555_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
class RGB555
{
public:
RGB555(void);
RGB555(const RGB555 &someRGB555);
RGB555(BYTE red,BYTE green,BYTE blue);
~RGB555(); // the destructor cannot be virtual
RGB555 &operator=(const RGB555 &someRGB555);
BOOL operator==(const RGB555 &someRGB555);
BYTE red(void)const;
void red(BYTE red);
BYTE green(void)const;
void green(BYTE green);
BYTE blue(void)const;
void blue(BYTE blue);
private:
typedef struct tagBitFields
{
unsigned short Red : 5;
unsigned short Green : 5;
unsigned short Blue : 5;
unsigned short Filler : 1;
}RGBCOLOR;
RGBCOLOR mRGBColor;
};
inline
RGB555::RGB555(void)
{
red(0);
green(0);
blue(0);
}
inline
RGB555::RGB555(BYTE red,BYTE green,BYTE blue)
{
RGB555::red(red);
RGB555::green(green);
RGB555::blue(blue);
}
inline
RGB555::RGB555(const RGB555 &someRGB555)
{
*this=someRGB555;
}
inline
RGB555::~RGB555()
{
}
inline
RGB555 &RGB555::operator=(const RGB555 &someRGB555)
{
red(someRGB555.red());
green(someRGB555.green());
blue(someRGB555.blue());
return *this;
}
inline
BOOL RGB555::operator==(const RGB555 &someRGB555)
{
return red()==someRGB555.red()&&green()==someRGB555.green()&&blue()==someRGB555.blue();
}
inline
BYTE RGB555::red(void)const
{
return mRGBColor.Red;
}
inline
void RGB555::red(BYTE red)
{
mRGBColor.Red=red;
}
inline
BYTE RGB555::green(void)const
{
return mRGBColor.Green;
}
inline
void RGB555::green(BYTE green)
{
mRGBColor.Green=green;
}
inline
BYTE RGB555::blue(void)const
{
return mRGBColor.Blue;
}
inline
void RGB555::blue(BYTE blue)
{
mRGBColor.Blue=blue;
}
#endif