"L. Spiro Engine"
|
00001 00016 #ifndef __LSG_RENDERTARGETINTERFACE_H__ 00017 #define __LSG_RENDERTARGETINTERFACE_H__ 00018 00019 #include "../LSGGraphicsLib.h" 00020 00021 namespace lsg { 00022 00029 class CRenderTargetInterface { 00030 friend class CDirectX9RenderTargetManager; 00031 friend class CDirectX10RenderTargetManager; 00032 friend class CDirectX11RenderTargetManager; 00033 friend class COpenGlRenderTargetManager; 00034 friend class COpenGlEsRenderTargetManager; 00035 public : 00036 // == Various constructors. 00037 LSE_CALLCTOR CRenderTargetInterface(); 00038 00039 00040 // == Functions. 00046 LSE_INLINE LSUINT32 LSE_CALL GetWidth() const; 00047 00053 LSE_INLINE LSUINT32 LSE_CALL GetHeight() const; 00054 00062 virtual LSBOOL LSE_CALL SetsColorAutomatically() const; 00063 00069 LSE_INLINE LSUINT32 LSE_CALL GetId() const; 00070 00071 protected : 00072 // == Members. 00076 LSUINT32 m_ui32Id; 00077 00081 LSUINT32 m_ui32Width; 00082 00086 LSUINT32 m_ui32Height; 00087 00091 static LSUINT32 m_ui32IdCounter; 00092 00096 static CCriticalSection m_csBaseCrit; 00097 00098 00099 // == Functions. 00106 virtual LSBOOL LSE_CALL SetAsColorRenderTarget( LSUINT32 _ui32Slot ) const; 00107 00113 virtual LSBOOL LSE_CALL SetAsDepthStencilRenderTarget() const; 00114 00118 virtual LSVOID LSE_CALL EndAsRenderTarget() const; 00119 }; 00120 00121 00122 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00123 // DEFINITIONS 00124 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 00125 // == Functions. 00131 LSE_INLINE LSUINT32 LSE_CALL CRenderTargetInterface::GetWidth() const { return m_ui32Width; } 00132 00138 LSE_INLINE LSUINT32 LSE_CALL CRenderTargetInterface::GetHeight() const { return m_ui32Height; } 00139 00145 LSE_INLINE LSUINT32 LSE_CALL CRenderTargetInterface::GetId() const { 00146 return m_ui32Id; 00147 } 00148 00149 } // namespace lsg 00150 00151 #endif // __LSG_RENDERTARGETINTERFACE_H__