move Bitmap2DLoader codes to TextureLoader.h

This commit is contained in:
2020-07-28 18:47:22 +08:00
parent 5020f80060
commit 8518ace21e
2 changed files with 41 additions and 28 deletions

View File

@@ -3,6 +3,7 @@
#include<hgl/io/InputStream.h> #include<hgl/io/InputStream.h>
#include<hgl/type/BaseString.h> #include<hgl/type/BaseString.h>
#include<hgl/graph/Bitmap.h>
namespace hgl namespace hgl
{ {
namespace graph namespace graph
@@ -54,6 +55,27 @@ namespace hgl
bool Load(io::InputStream *is); bool Load(io::InputStream *is);
bool Load(const OSString &filename); bool Load(const OSString &filename);
};//class Texture2DLoader };//class Texture2DLoader
/**
* 2D位图加载
*/
class Bitmap2DLoader:public Texture2DLoader
{
protected:
BitmapData *bmp=nullptr;
public:
~Bitmap2DLoader();
void *OnBegin(uint32 total_bytes) override;
void OnEnd() override {}
BitmapData *GetBitmap();
};//class Bitmap2DLoader
BitmapData *LoadBitmapFromFile(const OSString &filename);
}//namespace graph }//namespace graph
}//namespace hgl }//namespace hgl
#endif//HGL_GRAPH_TEXTURE_LOADER_INCLUDE #endif//HGL_GRAPH_TEXTURE_LOADER_INCLUDE

View File

@@ -53,41 +53,32 @@ namespace hgl
namespace graph namespace graph
{ {
class Bitmap2DLoader:public Texture2DLoader Bitmap2DLoader::~Bitmap2DLoader()
{ {
protected: SAFE_CLEAR(bmp);
}
BitmapData *bmp=nullptr; void *Bitmap2DLoader::OnBegin(uint32 total_bytes)
{
SAFE_CLEAR(bmp);
public: bmp=new BitmapData;
~Bitmap2DLoader() bmp->width =file_header.width;
{ bmp->height =file_header.height;
SAFE_CLEAR(bmp); bmp->total_bytes=total_bytes;
}
void *OnBegin(uint32 total_bytes) override bmp->data=new char[total_bytes];
{
bmp=new BitmapData;
bmp->width =file_header.width; return bmp->data;
bmp->height =file_header.height; }
bmp->total_bytes=total_bytes;
bmp->data=new char[total_bytes]; BitmapData *Bitmap2DLoader::GetBitmap()
{
return bmp->data; BitmapData *result=bmp;
} bmp=nullptr;
return result;
void OnEnd() override {} }
BitmapData *GetBitmap()
{
BitmapData *result=bmp;
bmp=nullptr;
return result;
}
};//class Bitmap2DLoader
BitmapData *LoadBitmapFromFile(const OSString &filename) BitmapData *LoadBitmapFromFile(const OSString &filename)
{ {