#ifndef HGL_GRAPH_TILE_DATA_INCLUDE #define HGL_GRAPH_TILE_DATA_INCLUDE #include #include #include #include VK_NAMESPACE_USING namespace hgl { namespace graph { struct TileObject { int col,row; //当前tile在整个纹理中的tile位置 RectScope2d uv_pixel; //以象素为单位的tile位置和尺寸 RectScope2d uv_float; //以浮点为单位的tile位置和尺寸 };//struct TileObject /** * TileData是一种处理大量等同尺寸及格式贴图的管理机制,程序会自动根据显卡最大贴图处理能力来创建尽可能符合需求的贴图。(注:Tile的大小不必符合2次幂) * Tile的增加或删除,程序会自动排序,尽可能小的减少I/O消耗。 */ class TileData ///Tile纹理管理 { Device *device; protected: vulkan::Buffer *tile_buffer; /// to_pool; ///Add(bmp->data,bmp->total_bytes,bmp->width,bmp->height);} ///<增加一个Tile bool Delete(TileObject *); ///<删除一个Tile bool Change(TileObject *,const void *,const uint,const int=-1,const int=-1); ///<更改一个Tile的数据内容 void Clear(); ///<清除Tile数据 };//class TileData }//namespace graph }//namespace hgl #endif//HGL_GRAPH_TILE_DATA_INCLUDE