建档
This commit is contained in:
86
source/Asset/Asset_ImagePack.h
Normal file
86
source/Asset/Asset_ImagePack.h
Normal file
@@ -0,0 +1,86 @@
|
||||
#pragma once
|
||||
#ifdef _SWITCH_
|
||||
#include <switch.h>
|
||||
#endif
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <dirent.h>
|
||||
#include <SDL.h>
|
||||
#include <map>
|
||||
|
||||
#include "Tool/Ifstream_NPK.h"
|
||||
#include <zlib.h>
|
||||
|
||||
class Asset_ImagePack
|
||||
{
|
||||
public:
|
||||
struct NpkInfo
|
||||
{
|
||||
int Offset;
|
||||
int Length;
|
||||
std::string Path;
|
||||
};
|
||||
|
||||
// PNG结构体
|
||||
struct ImgInfo
|
||||
{
|
||||
// 图片格式
|
||||
int Type;
|
||||
// 压缩类型
|
||||
int CmpType;
|
||||
// 宽度
|
||||
int Width;
|
||||
// 高度
|
||||
int Height;
|
||||
// 大小
|
||||
int Size;
|
||||
// Xpos
|
||||
int Xpos;
|
||||
// Ypos
|
||||
int Ypos;
|
||||
// 帧域X
|
||||
int FrameXpos;
|
||||
// 帧域Y
|
||||
int FrameYpos;
|
||||
// 偏移
|
||||
int Offset;
|
||||
// Png位图数据
|
||||
BYTE *PNGdata;
|
||||
};
|
||||
|
||||
struct IMG // npk的img的结构体
|
||||
{
|
||||
std::string lpImgName; // img文件的路径
|
||||
int img_index; // img文件在npk文件里的序号
|
||||
unsigned imgOffset;
|
||||
unsigned imgSize;
|
||||
std::string lpBelongsFile; // 这个img属于哪个npk文件
|
||||
int png_sum; // 这个img文件有多少个 图片
|
||||
ImgInfo *lp_lplist; // 图片的数组..
|
||||
Uint32 UseTime = 0;
|
||||
};
|
||||
|
||||
public:
|
||||
Asset_ImagePack(const Asset_ImagePack &) = delete;
|
||||
Asset_ImagePack &operator=(const Asset_ImagePack &) = delete;
|
||||
Asset_ImagePack(Asset_ImagePack &&) = delete;
|
||||
Asset_ImagePack &operator=(Asset_ImagePack &&) = delete;
|
||||
// 全局访问点
|
||||
static Asset_ImagePack &GetInstance()
|
||||
{
|
||||
static Asset_ImagePack instance; // 局部静态变量,保证只初始化一次
|
||||
return instance;
|
||||
}
|
||||
|
||||
public:
|
||||
void Init();
|
||||
void ParseColor(BYTE *Tab, int Type, BYTE *SaveByte, int Offset);
|
||||
void LoadImgToMem(IMG *p);
|
||||
IMG *GetIMG(std::string imgName);
|
||||
|
||||
private:
|
||||
Asset_ImagePack(/* args */);
|
||||
~Asset_ImagePack();
|
||||
|
||||
std::map<std::string, IMG> map_npk;
|
||||
};
|
||||
Reference in New Issue
Block a user