CrossFramework Library
|
00001 00006 #if defined(XG3D_INCLUDED_RUNTIMETEX_HPP) 00007 #else 00008 #define XG3D_INCLUDED_RUNTIMETEX_HPP 00009 00010 //------------------------------------------------------------ 00011 #include <XBase/AutoMemBlock.hpp> 00012 #include <XBase/FunctionAttribute.hpp> 00013 #include <XBase/Color4.hpp> 00014 #include <XBase/Color4b.hpp> 00015 #include <XBase/IAllocator.hpp> 00016 #include <XBase/NonCopyable.hpp> 00017 #include <XG3D/BuiltInTypes.hpp> 00018 #include <XG3D/ITexRes.hpp> 00019 #include <XG3D/RuntimeTexContext.hpp> 00020 00021 //------------------------------------------------------------ 00022 namespace XG3D { 00024 00025 00037 class RuntimeTex 00038 : public ::XBase::NonCopyable 00039 , public ITexRes 00040 { 00041 public: 00043 00044 static pword_t CalcDataSize( const RuntimeTexContext& ); 00045 static pword_t RequireAlignment(); 00046 00047 00049 00050 00055 RuntimeTex( 00056 const RuntimeTexContext& aContext 00057 , ::XBase::IAllocator& aAllocator = ::XBase::IAllocator::Default() 00058 ); 00059 00061 ~RuntimeTex(); 00063 00065 00066 const RuntimeTexContext context()const; 00067 const ::XBase::MemBlock data()const; 00068 00069 00071 00072 void beginEdit(); 00073 void endEdit(); 00074 void setPixel( uint aX , uint aY , const ::XBase::Color4POD& ); 00075 void setPixel( uint aX , uint aY , const ::XBase::Color4bPOD& ); 00076 00077 00079 00080 XBASE_OVERRIDE( const TexResData texResData()const ); 00082 00083 private: 00084 const RuntimeTexContext mContext; 00085 ::XBase::AutoMemBlock mData; 00086 }; 00088 } 00089 //------------------------------------------------------------ 00090 #endif 00091 // EOF