00001 00044 #ifndef INC_SPATMOD_IMAGETARGETMGD_H 00045 #define INC_SPATMOD_IMAGETARGETMGD_H 00046 00047 #ifndef INC_SPATMOD_IMAGETARGET_H 00048 #include <spatmod/imagetarget.h> 00049 #endif 00050 00051 namespace MGD { 00052 class CONTEXT; 00053 class DEVICE; 00054 } 00055 00056 namespace SPATMOD { 00057 namespace IMAGE { 00058 00059 //===================================================================================================================== 00060 00062 class TARGET_MGD : public TARGET { 00063 public: 00064 00067 TARGET_MGD ( 00068 STAGE *pInputStage 00069 ); 00070 00072 virtual ~TARGET_MGD (); 00073 00077 MGD::DEVICE* DetachDevice ( 00078 ) { MGD::DEVICE *pDevice = m_pDevice; m_pDevice = 0; return (pDevice); } 00079 00082 MGD::DEVICE* GetDevice ( 00083 ) const { return (m_pDevice); } 00084 00091 ERRVALUE SetDevice ( 00092 MGD::DEVICE *pDevice 00093 ); 00094 00096 void SetForceAlphaBlend (bool bForceAlphaBlend) { m_ForceAlphaBlend = bForceAlphaBlend; } 00097 00098 protected: 00099 00103 ERRVALUE AttachDevice ( 00104 MGD::DEVICE *& pDevice 00105 ); 00106 00107 // BASE overrides. 00108 00109 virtual ERRVALUE v_Initialize (); 00110 00113 virtual float v_QueryIterator ( 00114 const SECTION_ITERATOR& iterator 00115 ) const; 00116 00117 private: 00118 #ifndef GENERATING_DOXYGEN_OUTPUT 00119 MGD::DEVICE *m_pDevice; 00120 MGD::CONTEXT *m_pContext; 00121 bool m_IsOwner; 00122 bool m_SrcHasAlpha; 00123 bool m_TgtHasAlpha; 00124 bool m_ForceAlphaBlend; 00125 bool m_MatchDeviceFrameBuffers; 00126 int m_TgtAlphaPos; 00127 int m_TgtPixelBytes; 00128 mutable SIMPLE_ARRAY<UINT8> m_RowBuf; 00129 mutable SIMPLE_ARRAY<UINT8> m_MaskBuf; 00130 SIMPLE_ARRAY<UINT16> m_SampleTrans; 00131 UINT16 m_SrcSampleIdxAlpha; 00132 00133 ERRVALUE PushFrame (UINT16 frame, const SECTION& SubSection, const BUFFER& buffer, const UINT16 *SampleTrans, UINT16 SrcSampleIdxAlpha) const; 00134 00135 // TARGET overrides. 00136 virtual ERRVALUE v_PushBegin (const SECTION_ITERATOR& iterator); 00137 virtual ERRVALUE v_PushEnd (); 00138 virtual ERRVALUE v_PushSubSection (const SECTION& SubSection, const BUFFER& buffer); 00139 00140 #endif 00141 }; 00142 00143 //===================================================================================================================== 00144 00145 } // End namespace IMAGE 00146 } // End namespace SPATMOD 00147 00148 #endif // INC_SPATMOD_IMAGETARGETMGD_H
1.6.1