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 #ifndef INC_MI32_MG2RASTT_H
00035 #define INC_MI32_MG2RASTT_H
00036
00037 #ifndef INC_MI32_MG2MEM32RGBA_H
00038 #include <mi32/mg2mem32rgba.h>
00039 #endif
00040
00041 #ifndef INC_RVC_OPACITYMASK_H
00042 #include <rvc/opacitymask.h>
00043 #endif
00044
00045 namespace MGD {
00046
00047
00048
00053 class DEVICE_RASTER_TRANS_MASK: public DEVICE_MEM32RGBA {
00054
00055 public:
00056
00059 DEVICE_RASTER_TRANS_MASK ();
00060
00062 virtual ~DEVICE_RASTER_TRANS_MASK ();
00063
00064
00065
00067 ERRVALUE Create (
00068 RVC::OBJECT& ParentObject,
00069 const RVC::DESCRIPTOR& Descriptor,
00070 RVC::RASTER::MAKEPARMS& MakeParms,
00071 const RVC::CREDENTIALS* Credentials = 0
00072 );
00073
00075 ERRVALUE Create (
00076 RVC::OBJITEM& ObjItem,
00077 RVC::RASTER::MAKEPARMS& MakeParms,
00078 const RVC::CREDENTIALS* Credentials = 0
00079 );
00080
00082 ERRVALUE GetObjItemRaster (
00083 RVC::OBJITEM& ObjItem
00084 ) const { return (m_ObjRaster.GetObjItem(ObjItem)); }
00085
00087 ERRVALUE GetObjItemMask (
00088 RVC::OBJITEM& ObjItem
00089 ) const { return (m_ObjMask.GetObjItem(ObjItem)); }
00090
00093 ERRVALUE Open (
00094 const RVC::OBJITEM& ObjItem,
00095 const RVC::CREDENTIALS* Credentials = 0
00096 );
00097
00098 protected:
00099
00100 class CONTEXT : public DEVICE_MEM32RGBA::CONTEXT {
00101 public:
00102
00103 virtual ~CONTEXT ();
00104
00105 protected:
00106
00107 CONTEXT (
00108 DEVICE_RASTER_TRANS_MASK *pDevice
00109 );
00110
00111 private:
00112 #ifndef GENERATING_DOXYGEN_OUTPUT
00113 CONTEXT(const CONTEXT&);
00114
00115 friend class MGD::DEVICE_RASTER_TRANS_MASK;
00116 #endif // GENERATING_DOXYGEN_OUTPUT
00117
00118 };
00119
00121 virtual UINT8* v_GetImagePointer (
00122 INT32 x,
00123 INT32 y,
00124 INT32 len,
00125 UINT16 FrameBuffer
00126 );
00127
00134 virtual UINT8* v_GetImagePointerNoRead (
00135 INT32 x,
00136 INT32 y,
00137 INT32 len,
00138 UINT16 FrameBuffer
00139 );
00140
00146 virtual ERRVALUE v_WriteImageBuffer (
00147 INT32 x,
00148 INT32 y,
00149 INT32 len,
00150 UINT8 *buf,
00151 UINT16 FrameBuffer
00152 );
00153
00154 private:
00155 #ifndef GENERATING_DOXYGEN_OUTPUT
00156 friend class CONTEXT;
00157
00159 DEVICE_RASTER_TRANS_MASK(const DEVICE_RASTER_TRANS_MASK&);
00160
00161 RVC::RASTER m_ObjRaster;
00162 RVC::OPACITYMASK m_ObjMask;
00163 int m_TileSizeX;
00164 int m_TileSizeY;
00165 bool m_bUseMemory;
00166 bool m_bDirty;
00167
00168 SIMPLE_ARRAY<UINT8> m_pixbuf;
00169 SIMPLE_ARRAY<UINT8> m_rastbuf;
00170 SIMPLE_ARRAY<UINT8> m_maskbuf;
00171
00172 ERRVALUE ReadPixArray ();
00173 ERRVALUE ReadSpan (UINT8 *pixbuf, INT32 row, INT32 col, INT32 ncols);
00174 ERRVALUE WritePixArray ();
00175 ERRVALUE WriteSpan (const UINT8 *pixbuf, INT32 row, INT32 col, INT32 ncols);
00176
00177 virtual MGD::CONTEXT* v_CreateContext ();
00178
00179 #endif // GENERATING_DOXYGEN_OUTPUT
00180
00181 };
00182
00183
00184
00185 }
00186
00187
00188 #endif // INC_MI32_MG2RASTT_H