From 70b82d1981c0de3c7b77670ff8abcfeb26815142 Mon Sep 17 00:00:00 2001 From: chai Date: Tue, 12 Mar 2019 00:39:26 +0800 Subject: *misc --- Source/Asura.Engine/Graphics/ImageData.h | 34 ++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 15 deletions(-) (limited to 'Source/Asura.Engine/Graphics/ImageData.h') diff --git a/Source/Asura.Engine/Graphics/ImageData.h b/Source/Asura.Engine/Graphics/ImageData.h index 925a5a0..931eaa3 100644 --- a/Source/Asura.Engine/Graphics/ImageData.h +++ b/Source/Asura.Engine/Graphics/ImageData.h @@ -13,43 +13,47 @@ namespace AsuraEngine { namespace Graphics { - - class ImageData final : public Filesystem::DecodedData, public Scripting::Portable + + class ImageData ASURA_FINAL + : public Filesystem::DecodedData + , public Scripting::Portable { public: /// /// 解析图片数据文件,并构建像素信息,如果解析失败,抛出异常 /// - ImageData(const Filesystem::DataBuffer* buffer); + ImageData(const Filesystem::DataBuffer& buffer); + ~ImageData(); Color GetPixel(uint x, uint y); - uint width, height; + uint width, height; PixelFormat format; std::size_t size; byte* pixels; - //---------------------------------------------------------------------------------------------------------- - - LUAX_DECL_FACTORY(ImageData); - - LUAX_DECL_METHOD(l_GetPixel); - LUAX_DECL_METHOD(l_GetSize); - - //---------------------------------------------------------------------------------------------------------- - private: - // stb用来加载JPEG、TGA、BMP,lodePNG加载png图片 - void Decode(const Filesystem::DataBuffer* buffer) override; + void Decode(const Filesystem::DataBuffer& buffer) override; /// /// 在第一次准备image data时构建所有提供的decoder。在几个decoders中间选择解析策略。 /// static std::list ImageDecoders; + public: + + //---------------------------------------------------------------------------------------------------------- + + LUAX_DECL_FACTORY(ImageData); + + LUAX_DECL_METHOD(l_GetPixel); + LUAX_DECL_METHOD(l_GetSize); + + //---------------------------------------------------------------------------------------------------------- + }; } -- cgit v1.1-26-g67d0