CrossFramework Library
|
00001 00006 #if defined(XG3D_INCLUDED_RENDERER_HPP) 00007 #else 00008 #define XG3D_INCLUDED_RENDERER_HPP 00009 00010 //------------------------------------------------------------ 00011 #include <XBase/Color4.hpp> 00012 #include <XBase/NonCopyable.hpp> 00013 #include <XG3D/BuiltInTypes.hpp> 00014 #include <XG3D/Engine.hpp> 00015 #include <XG3D/TexId.hpp> 00016 00017 #if defined(XG3D_ENGINE_GLSERIES) 00018 #include <XG3D/Renderer_GL.hpp> 00019 #endif 00020 00021 //------------------------------------------------------------ 00022 namespace XBase { 00023 class Display; 00024 class Screen; 00025 struct Matrix34POD; 00026 struct Matrix44POD; 00027 } 00028 namespace XG3D { 00029 class TexSetting; 00030 } 00031 00032 //------------------------------------------------------------ 00033 namespace XG3D { 00035 00036 00039 class Renderer : public ::XBase::NonCopyable 00040 { 00041 public: 00043 00044 static Renderer& Instance(); 00046 00048 00049 Renderer( ::XBase::Display& aSampleDisplay ); 00050 ~Renderer(); 00052 00054 00055 00056 void reset(); 00058 00060 00061 void fbClear(); 00062 void fbSetClearColor( const ::XBase::Color4POD& aColor ); 00063 void fbSetClearDepth( float aDepth ); 00064 void fbSetColorUpdate( bool aIsEnable ); 00065 void fbSetDepthUpdate( bool aIsEnable ); 00066 // void fbSetDepthCompare( DepthCompare ); ///< 深度比較の式を設定する。初期値 DepthCompare_Always 。 00067 void fbSetViewport( uint aBaseX , uint aBaseY , uint aWidth , uint aHeight ); 00068 00069 00071 00072 void sdSetMtxProjection( const ::XBase::Matrix44POD& ); 00073 void sdSetMtxModelView( const ::XBase::Matrix34POD& ); 00074 void sdSetTex( TexId , const TexSetting& ); 00075 00076 00078 00079 void waitDrawDone(); 00080 00081 00083 00084 void copyToDisplay( ::XBase::Display& ); 00085 void copyToScreen( ::XBase::Screen& ); 00086 00087 00088 private: 00089 ::XBase::Display& mDisplay; 00090 Renderer_EXT mEXT; 00091 }; 00092 00094 } 00095 //------------------------------------------------------------ 00096 #endif 00097 // EOF