00001
00018 #ifndef INC_MI32_MG2MEM1_H
00019 #define INC_MI32_MG2MEM1_H
00020
00021 #ifndef INC_MI32_MG2BINARY_H
00022 #include <mi32/mg2binary.h>
00023 #endif
00024
00025 #ifndef INC_MI32_BITSET_H
00026 #include <mi32/bitset.h>
00027 #endif
00028
00029
00030 namespace MGD {
00031
00037 class DEVICE_MEM1 : public MGD::DEVICE_BINARY {
00038 public:
00039
00040 class CONTEXT : public MGD::DEVICE_BINARY::CONTEXT {
00041 public:
00043 virtual ~CONTEXT ();
00044
00045 protected:
00047 CONTEXT (
00048 MGD::DEVICE_MEM1 *pDevice
00049 );
00050
00051 private:
00052 #ifndef GENERATING_DOXYGEN_OUTPUT
00053 typedef DEVICE_BINARY::CONTEXT BASECLASS;
00054
00055 CONTEXT (const CONTEXT&);
00056 CONTEXT& operator= (const CONTEXT&);
00057
00058 MGD::DEVICE_MEM1 *m_DevMem1;
00059
00060 friend class MGD::DEVICE_MEM1;
00061
00062 virtual ERRVALUE v_PutPixel (INT32 x, INT32 y, MGD::PIXEL pixel);
00063 #endif // GENERATING_DOXYGEN_OUTPUT
00064 };
00065
00067 DEVICE_MEM1 ();
00068
00070 virtual ~DEVICE_MEM1 ();
00071
00073 void Copy (
00074 const DEVICE_MEM1& rhs
00075 ) {
00076 if (&rhs != this) {
00077 m_width = rhs.m_width;
00078 m_buf = rhs.m_buf;
00079 }
00080 return;
00081 }
00082
00083 ERRVALUE Create (
00084 INT32 height,
00085 INT32 width,
00086 bool StartValue = false
00087 );
00088
00089 void CombineMasks (
00090 const BITSET_UNOWNED& rhs,
00091 PIXELFUNC PixelFunc
00092 );
00093
00094 const BITSET_SHARED& GetImage (
00095 ) const { return (m_buf); }
00096
00097 void SetImage (
00098 const BITSET_SHARED& image
00099 ) { m_buf = image; }
00100
00101 void SetImage (
00102 const BITSET_UNOWNED& image
00103 ) { m_buf = image; }
00104
00105 private:
00106 #ifndef GENERATING_DOXYGEN_OUTPUT
00107 DEVICE_MEM1 (const DEVICE_MEM1&);
00108 DEVICE_MEM1& operator= (const DEVICE_MEM1&);
00109
00110 BITSET_SHARED m_buf;
00111 UINT32 m_width;
00112
00113
00114 virtual MGD::CONTEXT* v_CreateContext ();
00115 virtual ERRVALUE v_FillSpan (MGD::CONTEXT* vgc, INT32 x1, INT32 x2, INT32 y);
00116
00117 virtual bool v_GetRange (INT32 x, INT32 y, INT32 x2, INT32& endx) const;
00118 virtual bool v_GetValue (INT32 x, INT32 y) const;
00119 virtual void v_SetAll (bool value);
00120 #endif // GENERATING_DOXYGEN_OUTPUT
00121 };
00122
00123 }
00124
00125 #endif // INC_MI32_MG2MEM1_H
00126