00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046
00047
00048
00049
00050
00051 #ifndef INC_MI32_MG2MEM24_H
00052 #define INC_MI32_MG2MEM24_H
00053
00054 #ifndef INC_MI32_MGD2_H
00055 #include <mi32/mgd2.h>
00056 #endif
00057
00058
00059 namespace MGD {
00060
00061
00062 class CONTEXT_MEM24;
00063
00064 class DEVICE_MEM24 : public MGD::DEVICE {
00065
00066 public:
00067
00068 enum COLORORDER {
00069 COLORORDER_RGB,
00070 COLORORDER_BGR
00071 };
00072
00074 DEVICE_MEM24 ();
00075
00077 virtual ~DEVICE_MEM24 ();
00078
00079 ERRVALUE Create (
00080 INT32 height,
00081 INT32 width,
00082 COLORORDER colororder
00083 );
00084
00085 CAPABILITY GetCapabilities (
00086 ) const {
00087 return (v_GetCapabilities());
00088 }
00089
00090 protected:
00091
00093 virtual ERRVALUE v_FillSpan (
00094 MGD::CONTEXT* vgc,
00095 INT32 x1,
00096 INT32 x2,
00097 INT32 y
00098 );
00099
00100 virtual CAPABILITY v_GetCapabilities () const;
00101
00102 UINT32 m_BytesPerLine;
00103 bool m_bIsRGB;
00104
00105 private:
00106 #ifndef GENERATING_DOXYGEN_OUTPUT
00107
00108
00109 DEVICE_MEM24 (const DEVICE_MEM24&);
00110
00111 UINT8 *m_buf;
00112
00113 friend class MGD::CONTEXT_MEM24;
00114
00115 virtual CONTEXT* v_CreateContext ();
00116 virtual UINT8* v_GetImagePointer (INT32 x, INT32 y, INT32 len, UINT16 FrameBuffer);
00117 virtual COLORSPACE v_GetColorSpace () const;
00118
00119 #endif // GENERATING_DOXYGEN_OUTPUT
00120 };
00121
00122
00123 class CONTEXT_MEM24 : public MGD::CONTEXT {
00124 public:
00125
00126 virtual ~CONTEXT_MEM24();
00127
00128 protected:
00129
00130 UINT8 m_pixbyte0;
00131 UINT8 m_pixbyte1;
00132 UINT8 m_pixbyte2;
00133
00134 UINT8 m_maskbyte0;
00135 UINT8 m_maskbyte1;
00136 UINT8 m_maskbyte2;
00137
00139 CONTEXT_MEM24 (
00140 MGD::DEVICE_MEM24* disp
00141 );
00142
00143 void v_UpdateColor();
00144 void v_UpdatePlaneMask();
00145
00146 virtual ERRVALUE v_PutImageSpanDirect (
00147 INT32 x,
00148 INT32 y,
00149 INT32 len,
00150 const void* data,
00151 const UINT8* mask
00152 );
00153
00154 virtual ERRVALUE v_PutPixel (
00155 INT32 x,
00156 INT32 y,
00157 MGD::PIXEL pixel
00158 );
00159
00160 private:
00161 #ifndef GENERATING_DOXYGEN_OUTPUT
00162
00163 MGD::DEVICE_MEM24* m_DevMem24;
00164
00166 CONTEXT_MEM24(const CONTEXT_MEM24&);
00167
00168 friend class MGD::DEVICE_MEM24;
00169 #endif // GENERATING_DOXYGEN_OUTPUT
00170
00171
00172
00173 };
00174
00175
00176 }
00177
00178 #endif // INC_MI32_MG2MEM24_H
00179