diff options
Diffstat (limited to 'Source/Asura.Engine/graphics/texture.h')
| -rw-r--r-- | Source/Asura.Engine/graphics/texture.h | 66 | 
1 files changed, 66 insertions, 0 deletions
| diff --git a/Source/Asura.Engine/graphics/texture.h b/Source/Asura.Engine/graphics/texture.h new file mode 100644 index 0000000..81aa469 --- /dev/null +++ b/Source/Asura.Engine/graphics/texture.h @@ -0,0 +1,66 @@ +#ifndef __ASURA_ENGINE_TEXTURE_H__ +#define __ASURA_ENGINE_TEXTURE_H__ + +#include "Config.h" +#include "Math/Rect.hpp" +#include "Math/Vector2.hpp" +#include "Scripting/Luax.hpp" +#include "RenderState.h" +#include "GL.h" + +namespace AsuraEngine +{ +	namespace Graphics +	{ + +		class RenderTarget; + +		/// +		/// 2D࣬2d meshrender targetбʹáTextureȾԭϽǣϷϲԵѿϵΪ +		/// EditorҲϽΪԭ㣬Ϊ˷㡣 +		/// +		ASURA_ABSTRACT class Texture +		{ +		public: + +			Texture(); + +			virtual ~Texture(); + +			GLuint GetGLTextureHandle() const; + +			/// +			/// ȾtexturertϣԭϽǣң +			/// +			virtual void Render(const RenderTarget* rt, const RenderState& state) = 0; + +			///  +			/// ȾtextureһֵrtϣԭϽǣң졣 +			///  +			virtual void Render(const RenderTarget* rt, const Math::Rectf& quad, const RenderState& state) = 0; + +			/// +			/// ù˷ʽ +			/// +			void SetSmooth(bool smooth); + +			/// +			/// ظʽ +			/// +			void SetRepeated(); + +		protected: + +			/// +			/// OpenGL texture handle +			/// +			GLuint mTextureHandle; + +		}; + +		using Drawable = Texture; + +	} +} + +#endif
\ No newline at end of file | 
