dl
dl::Factory类 参考

资源工厂,加载、管理、创建各种资源 更多...

#include <dl_factory.h>

Public 成员函数

void SetPath (std::string_view path_image="image/", std::string_view path_model="model/", std::string_view path_binary="binary/", std::string_view path_temp="temp/")
 设置 各种路径
 
void SetSpriteSampler (Sprite::Sampler sampler_normal, Sprite::Sampler sampler_ui)
 设置精灵的默认采样模式
 
Sprite::Sampler GetSpriteSampler (bool is_ui)
 返回精灵的默认采样模式
 
void SetReleaseMode ()
 设置发布模式,使用binary资源
 
void RegisterImagePath (std::string_view path, std::string_view name)
 注册图像加载路径
 
void LoadModel (std::string_view path_name, std::string_view name="")
 加载模型文件
 
std::vector< std::string > GetAllModel ()
 
std::string GetPathImage ()
 返回图像目录
 
std::string GetPathVoice ()
 返回音效目录
 
std::string GetPathModel ()
 返回模型目录
 
std::string GetPathBinary ()
 返回资源缓存目录,例如"binary/"
 
std::string GetPathBinary3D ()
 返回3d资源缓存目录,例如"binary/3d/"
 
std::string GetPathBinary2D ()
 返回2d资源缓存目录,例如"binary/2d/"
 
std::string GetPathTemp ()
 返回临时文件路径,例如"temp/"
 
std::string GetPathNameTemp (std::string_view str_fmt="")
 返回临时文件名,例如"temp/1"
 
gcActor CreateActor (std::string_view name)
 创建一个演员,通过指定模型文件
 
gcActor CreateActorDefault ()
 
CameraGetCamera ()
 返回相机(3d)
 
size_t LoadSkybox (std::string_view path)
 加载天空盒
 
void SetSkybox (size_t id)
 设置天空盒
 
void SetDebugView3D (DebugView3D type)
 设置调试绘图(3d)
 
DebugView3D GetDebugView3D ()
 
void UpdateDebugView ()
 
gcSprite CreateSpriteDefault (const Color &col=ColorDef::WHITE)
 创建默认精灵
 
gcSprite CreateSprite (const SpriteID &spr_id)
 创建一个精灵
 
gcSprite CreateSprite (std::string_view name, std::size_t index=0)
 创建一个精灵
 
gcSprite CreateSprite (size_t rt_id)
 创建一个精灵
 
gcSprite CreateSpriteRandom (std::string_view name)
 创建一个精灵,随机选中下标
 
bool RegisterSprite (std::string_view name, size_t index, Image *img, const Position &anchor={})
 注册一个精灵(动态)
 
bool UpdateSprite (std::string_view name, size_t index, Image *img, const Position &anchor={})
 更新一个精灵
 
bool HasSprite (std::string_view name)
 检测精灵是否存在
 
std::vector< gcSpriteCreateSpriteMulti (std::string_view name, std::size_t num=0, std::size_t index=0)
 创建多个精灵,从已加载的精灵表复制
 
gcSprite CloneSprite (gcSprite &spr)
 复制一个精灵
 
gcSprite CloneSprite (const gcSprite &spr)
 
std::vector< std::string > GetFolderAllSpriteName (std::string_view folder_name)
 返回一个文件夹下的所有精灵
 
size_t GetSpriteSheetNum (std::string_view name)
 返回精灵的sheet有多少张
 
SpriteID GetSpriteId (std::string_view name, size_t index)
 返回精灵的id
 
bool GetSpriteId (std::string_view name, size_t index, SpriteID &id)
 返回精灵的id
 
Size GetSpriteTexSize (const SpriteID &spr_id)
 返回精灵的纹理大小
 
Size GetSpriteTexSize (gcSprite &spr)
 
Quad GetSpriteQuad (const SpriteID &spr_id)
 返回精灵的默认quad
 
Quad GetSpriteQuad (gcSprite &spr)
 
std::string GetSpriteName (const SpriteID &spr_id)
 返回精灵的名字
 
std::string GetSpriteName (gcSprite &spr)
 
std::string GetSpriteNameIndex (const SpriteID &spr_id)
 返回精灵的名字和下标,例如 btn,0
 
std::string GetSpriteNameIndex (gcSprite &spr)
 
Position GetSpriteAnchor (const SpriteID &spr_id)
 返回精灵的默认锚点
 
Position GetSpriteAnchor (gcSprite &spr)
 
Color GetSpriteColor (const SpriteID &spr_id)
 返回精灵的默认颜色
 
Color GetSpriteColor (gcSprite &spr)
 
gcAnimation CreateAnimation (std::string_view name, std::string_view state, unsigned dir=0)
 创建精灵动画
 
gcAnimation CloneAnimation (gcAnimation ani)
 
gcSprite RenderSprite (std::string_view name, size_t index=0)
 创建临时精灵,并绘制
 
gcSprite RenderSpriteDefault ()
 
gcText RenderText ()
 创建临时文本,并绘制
 
gcAnimation RenderAnimation (std::string_view name, std::string_view state, unsigned dir=0)
 
size_t LoadFont (std::string_view path_name)
 加载字体
 
size_t GetFontSize ()
 返回加载的字体数量
 
CharImageGetChar (const CharInfo &info)
 获得字符图像
 
float CreateSpriteChar (const CharInfo &info, gcSprite &spr, gcSprite &spr_outline)
 创建一个字符精灵
 
float CreateSpriteChar (const CharInfo &info, gcSprite &spr)
 
gcText CreateText (size_t font_id=0, unsigned font_size=16, const Color &col=ColorDef::WHITE, unsigned font_outline=0, const Color &col_outline=ColorDef::BLACK, unsigned font_shadow=0, const Color &col_shadow=ColorDef::BLACK)
 创建一个文本
 
gcText CreateTextDefault ()
 
gcText CloneText (gcText txt, bool copy_str=true)
 复制一个文本
 
CoorGetRootCoor (size_t i)
 返回根坐标系
 
void AddColor (std::string_view name, const Color &col)
 添加一个颜色
 
Color GetColor (std::string_view name)
 返回一个颜色
 
std::optional< ColorGetColorCheck (std::string_view name)
 返回一个颜色,会检查
 
void LoadColorJson (std::string_view path_name)
 从json文件加载颜色标签
 
void SetOrderPickup (float order)
 设置拾取ui的当前order
 
float GetOrderPickup ()
 
void SetOrderPickupShow (bool show)
 
bool GetOrderPickupShow ()
 
void DeleteBinary (bool b_all, bool b_2d, bool b_3d)
 删除输出目录内容
 
void ExportTexture2D ()
 导出所有2d纹理
 
bool CompressMir2Res (std::string_view path)
 打包传奇补丁包(TODO 有问题不要使用)
 
FactoryImpGetImp ()
 
void _render_sprite (Sprite *spr)
 
void _add_pickup_sprite (Sprite *spr)
 
void _add_pickup_text (Text *txt)
 
void _clear_pickup ()
 
void _render_pickup ()
 

友元

class System
 
class Engine
 

详细描述

资源工厂,加载、管理、创建各种资源

在文件 dl_factory.h40 行定义.

成员函数说明

◆ _add_pickup_sprite()

void dl::Factory::_add_pickup_sprite ( Sprite * spr)
inline

在文件 dl_factory.h498 行定义.

◆ _add_pickup_text()

void dl::Factory::_add_pickup_text ( Text * txt)
inline

在文件 dl_factory.h502 行定义.

◆ _clear_pickup()

void dl::Factory::_clear_pickup ( )
inline

在文件 dl_factory.h506 行定义.

◆ _render_pickup()

void dl::Factory::_render_pickup ( )

◆ _render_sprite()

void dl::Factory::_render_sprite ( Sprite * spr)

◆ AddColor()

void dl::Factory::AddColor ( std::string_view name,
const Color & col )

添加一个颜色

参数
[in]name名字
[in]col颜色值
注解
例如 (bg, 0xff123456),在Text格式化中就可以使用标签{c_bg}修改颜色

◆ CloneAnimation()

gcAnimation dl::Factory::CloneAnimation ( gcAnimation ani)

◆ CloneSprite() [1/2]

gcSprite dl::Factory::CloneSprite ( const gcSprite & spr)
inline

在文件 dl_factory.h285 行定义.

◆ CloneSprite() [2/2]

gcSprite dl::Factory::CloneSprite ( gcSprite & spr)

复制一个精灵

◆ CloneText()

gcText dl::Factory::CloneText ( gcText txt,
bool copy_str = true )
inline

复制一个文本

在文件 dl_factory.h420 行定义.

◆ CompressMir2Res()

bool dl::Factory::CompressMir2Res ( std::string_view path)

打包传奇补丁包(TODO 有问题不要使用)

◆ CreateActor()

gcActor dl::Factory::CreateActor ( std::string_view name)

创建一个演员,通过指定模型文件

参数
[in]name名字
返回值
失败返回默认演员,错误写入日志。

◆ CreateActorDefault()

gcActor dl::Factory::CreateActorDefault ( )
inline

在文件 dl_factory.h186 行定义.

◆ CreateAnimation()

gcAnimation dl::Factory::CreateAnimation ( std::string_view name,
std::string_view state,
unsigned dir = 0 )

创建精灵动画

参数
[in]name动画名(集合)
[in]state状态
[in]dir方向

◆ CreateSprite() [1/3]

gcSprite dl::Factory::CreateSprite ( const SpriteID & spr_id)

创建一个精灵

参数
[in]spr_id精灵id

◆ CreateSprite() [2/3]

gcSprite dl::Factory::CreateSprite ( size_t rt_id)

创建一个精灵

参数
[in]rt_idRenderTarget的id

◆ CreateSprite() [3/3]

gcSprite dl::Factory::CreateSprite ( std::string_view name,
std::size_t index = 0 )

创建一个精灵

参数
[in]name名字,例如“ui.btn0”
[in]index下标
返回值
失败返回默认精灵,错误产生日志。

◆ CreateSpriteChar() [1/2]

float dl::Factory::CreateSpriteChar ( const CharInfo & info,
gcSprite & spr )
inline

在文件 dl_factory.h389 行定义.

◆ CreateSpriteChar() [2/2]

float dl::Factory::CreateSpriteChar ( const CharInfo & info,
gcSprite & spr,
gcSprite & spr_outline )

创建一个字符精灵

参数
[in]info字符信息
[out]spr返回的精灵
[out]spr_outline返回的精灵(描边),如果描边大小为0,则不会返回
返回值
横向偏移距离
注解
在横向排列文字时,使用返回值进行偏移

◆ CreateSpriteDefault()

gcSprite dl::Factory::CreateSpriteDefault ( const Color & col = ColorDef::WHITE)
nodiscard

创建默认精灵

◆ CreateSpriteMulti()

std::vector< gcSprite > dl::Factory::CreateSpriteMulti ( std::string_view name,
std::size_t num = 0,
std::size_t index = 0 )

创建多个精灵,从已加载的精灵表复制

参数
[in]name名字,例如“ui.btn0”
[in]num数量,为0时表示全部
[in]index下标起始

◆ CreateSpriteRandom()

gcSprite dl::Factory::CreateSpriteRandom ( std::string_view name)
inline

创建一个精灵,随机选中下标

参数
[in]name名字,例如“ui.btn0”

在文件 dl_factory.h243 行定义.

◆ CreateText()

gcText dl::Factory::CreateText ( size_t font_id = 0,
unsigned font_size = 16,
const Color & col = ColorDef::WHITE,
unsigned font_outline = 0,
const Color & col_outline = ColorDef::BLACK,
unsigned font_shadow = 0,
const Color & col_shadow = ColorDef::BLACK )

创建一个文本

参数
[in]font_id字体编号
[in]font_size字体大小(单位为像素,英文字母大约为一半大小)
[in]col颜色
[in]font_outline描边大小
[in]col_outline描边颜色
[in]font_shadow阴影偏移
[in]col_shadow阴影颜色
返回值
失败返回nullptr

◆ CreateTextDefault()

gcText dl::Factory::CreateTextDefault ( )
inline

在文件 dl_factory.h411 行定义.

◆ DeleteBinary()

void dl::Factory::DeleteBinary ( bool b_all,
bool b_2d,
bool b_3d )

删除输出目录内容

◆ ExportTexture2D()

void dl::Factory::ExportTexture2D ( )

导出所有2d纹理

◆ GetAllModel()

std::vector< std::string > dl::Factory::GetAllModel ( )

◆ GetCamera()

Camera * dl::Factory::GetCamera ( )

返回相机(3d)

注解
未设置前就有一个默认的

◆ GetChar()

CharImage * dl::Factory::GetChar ( const CharInfo & info)

获得字符图像

参数
[in]info字符信息

◆ GetColor()

Color dl::Factory::GetColor ( std::string_view name)

返回一个颜色

参数
[in]name通过AddColor添加的颜色,如果是开头为0x,则返回对应十六进制颜色
返回值
失败返回白色,并发出警告
注解
如果传入16进制颜色,必须是完整的,比如0x00ff00ff

◆ GetColorCheck()

std::optional< Color > dl::Factory::GetColorCheck ( std::string_view name)

返回一个颜色,会检查

◆ GetDebugView3D()

DebugView3D dl::Factory::GetDebugView3D ( )

◆ GetFolderAllSpriteName()

std::vector< std::string > dl::Factory::GetFolderAllSpriteName ( std::string_view folder_name)

返回一个文件夹下的所有精灵

◆ GetFontSize()

size_t dl::Factory::GetFontSize ( )

返回加载的字体数量

◆ GetImp()

FactoryImp * dl::Factory::GetImp ( )
inline

在文件 dl_factory.h494 行定义.

◆ GetOrderPickup()

float dl::Factory::GetOrderPickup ( )
inline

在文件 dl_factory.h477 行定义.

◆ GetOrderPickupShow()

bool dl::Factory::GetOrderPickupShow ( )
inline

在文件 dl_factory.h480 行定义.

◆ GetPathBinary()

std::string dl::Factory::GetPathBinary ( )
inline

返回资源缓存目录,例如"binary/"

在文件 dl_factory.h141 行定义.

◆ GetPathBinary2D()

std::string dl::Factory::GetPathBinary2D ( )
inline

返回2d资源缓存目录,例如"binary/2d/"

在文件 dl_factory.h155 行定义.

◆ GetPathBinary3D()

std::string dl::Factory::GetPathBinary3D ( )
inline

返回3d资源缓存目录,例如"binary/3d/"

在文件 dl_factory.h148 行定义.

◆ GetPathImage()

std::string dl::Factory::GetPathImage ( )
inline

返回图像目录

在文件 dl_factory.h120 行定义.

◆ GetPathModel()

std::string dl::Factory::GetPathModel ( )
inline

返回模型目录

在文件 dl_factory.h134 行定义.

◆ GetPathNameTemp()

std::string dl::Factory::GetPathNameTemp ( std::string_view str_fmt = "")
inline

返回临时文件名,例如"temp/1"

参数
[in]str_fmt存在时添加后缀(额外添加.)

在文件 dl_factory.h170 行定义.

◆ GetPathTemp()

std::string dl::Factory::GetPathTemp ( )
inline

返回临时文件路径,例如"temp/"

在文件 dl_factory.h162 行定义.

◆ GetPathVoice()

std::string dl::Factory::GetPathVoice ( )
inline

返回音效目录

在文件 dl_factory.h127 行定义.

◆ GetRootCoor()

Coor * dl::Factory::GetRootCoor ( size_t i)

返回根坐标系

参数
[in]i下标 0作为2d全局使用
返回值
不需要用户手动释放,失败返回空

◆ GetSpriteAnchor() [1/2]

Position dl::Factory::GetSpriteAnchor ( const SpriteID & spr_id)

返回精灵的默认锚点

◆ GetSpriteAnchor() [2/2]

Position dl::Factory::GetSpriteAnchor ( gcSprite & spr)
inline

在文件 dl_factory.h331 行定义.

◆ GetSpriteColor() [1/2]

Color dl::Factory::GetSpriteColor ( const SpriteID & spr_id)

返回精灵的默认颜色

◆ GetSpriteColor() [2/2]

Color dl::Factory::GetSpriteColor ( gcSprite & spr)
inline

在文件 dl_factory.h336 行定义.

◆ GetSpriteId() [1/2]

SpriteID dl::Factory::GetSpriteId ( std::string_view name,
size_t index )

返回精灵的id

返回值
失败返回默认精灵,且打印警告

◆ GetSpriteId() [2/2]

bool dl::Factory::GetSpriteId ( std::string_view name,
size_t index,
SpriteID & id )

返回精灵的id

返回值
失败不会进行任何处理

◆ GetSpriteName() [1/2]

std::string dl::Factory::GetSpriteName ( const SpriteID & spr_id)

返回精灵的名字

◆ GetSpriteName() [2/2]

std::string dl::Factory::GetSpriteName ( gcSprite & spr)
inline

在文件 dl_factory.h321 行定义.

◆ GetSpriteNameIndex() [1/2]

std::string dl::Factory::GetSpriteNameIndex ( const SpriteID & spr_id)

返回精灵的名字和下标,例如 btn,0

◆ GetSpriteNameIndex() [2/2]

std::string dl::Factory::GetSpriteNameIndex ( gcSprite & spr)
inline

在文件 dl_factory.h326 行定义.

◆ GetSpriteQuad() [1/2]

Quad dl::Factory::GetSpriteQuad ( const SpriteID & spr_id)

返回精灵的默认quad

◆ GetSpriteQuad() [2/2]

Quad dl::Factory::GetSpriteQuad ( gcSprite & spr)
inline

在文件 dl_factory.h316 行定义.

◆ GetSpriteSampler()

Sprite::Sampler dl::Factory::GetSpriteSampler ( bool is_ui)
inline

返回精灵的默认采样模式

在文件 dl_factory.h77 行定义.

◆ GetSpriteSheetNum()

size_t dl::Factory::GetSpriteSheetNum ( std::string_view name)

返回精灵的sheet有多少张

◆ GetSpriteTexSize() [1/2]

Size dl::Factory::GetSpriteTexSize ( const SpriteID & spr_id)

返回精灵的纹理大小

◆ GetSpriteTexSize() [2/2]

Size dl::Factory::GetSpriteTexSize ( gcSprite & spr)
inline

在文件 dl_factory.h311 行定义.

◆ HasSprite()

bool dl::Factory::HasSprite ( std::string_view name)

检测精灵是否存在

◆ LoadColorJson()

void dl::Factory::LoadColorJson ( std::string_view path_name)

从json文件加载颜色标签

注解
key-value的单层模式,例如 "base.river": "0x4a90d9ff"

◆ LoadFont()

size_t dl::Factory::LoadFont ( std::string_view path_name)

加载字体

参数
[in]path_name路径名称
注解
0号为默认字体已被占用

◆ LoadModel()

void dl::Factory::LoadModel ( std::string_view path_name,
std::string_view name = "" )

加载模型文件

参数
[in]path_name绝对路径 或 资源路径
[in]name自定义名称

◆ LoadSkybox()

size_t dl::Factory::LoadSkybox ( std::string_view path)

加载天空盒

参数
[in]path路径
返回值
返回id

◆ RegisterImagePath()

void dl::Factory::RegisterImagePath ( std::string_view path,
std::string_view name )
inline

注册图像加载路径

参数
[in]path_name路径
[in]name路径别名

在文件 dl_factory.h93 行定义.

◆ RegisterSprite()

bool dl::Factory::RegisterSprite ( std::string_view name,
size_t index,
Image * img,
const Position & anchor = {} )

注册一个精灵(动态)

参数
[in]name命名
[in]index下标
[in]img图像
[in]anchor锚点
注解
注意,此操作是非常慢的

◆ RenderAnimation()

gcAnimation dl::Factory::RenderAnimation ( std::string_view name,
std::string_view state,
unsigned dir = 0 )

◆ RenderSprite()

gcSprite dl::Factory::RenderSprite ( std::string_view name,
size_t index = 0 )

创建临时精灵,并绘制

注解
不能再调用Render

◆ RenderSpriteDefault()

gcSprite dl::Factory::RenderSpriteDefault ( )

◆ RenderText()

gcText dl::Factory::RenderText ( )

创建临时文本,并绘制

注解
不能再调用Render

◆ SetDebugView3D()

void dl::Factory::SetDebugView3D ( DebugView3D type)

设置调试绘图(3d)

◆ SetOrderPickup()

void dl::Factory::SetOrderPickup ( float order)

设置拾取ui的当前order

◆ SetOrderPickupShow()

void dl::Factory::SetOrderPickupShow ( bool show)
inline

在文件 dl_factory.h479 行定义.

◆ SetPath()

void dl::Factory::SetPath ( std::string_view path_image = "image/",
std::string_view path_model = "model/",
std::string_view path_binary = "binary/",
std::string_view path_temp = "temp/" )
inline

设置 各种路径

注解
请在System::Start之前设置。如果不调用,会使用默认值

在文件 dl_factory.h49 行定义.

◆ SetReleaseMode()

void dl::Factory::SetReleaseMode ( )
inline

设置发布模式,使用binary资源

在文件 dl_factory.h84 行定义.

◆ SetSkybox()

void dl::Factory::SetSkybox ( size_t id)

设置天空盒

参数
[in]size_tid

◆ SetSpriteSampler()

void dl::Factory::SetSpriteSampler ( Sprite::Sampler sampler_normal,
Sprite::Sampler sampler_ui )
inline

设置精灵的默认采样模式

在文件 dl_factory.h69 行定义.

◆ UpdateDebugView()

void dl::Factory::UpdateDebugView ( )

◆ UpdateSprite()

bool dl::Factory::UpdateSprite ( std::string_view name,
size_t index,
Image * img,
const Position & anchor = {} )

更新一个精灵

参数
[in]name命名
[in]index下标
[in]img图像(必须和原大小一致)
[in]anchor锚点(本次启动有效。若仅为了更新锚点,请勿调用此接口)
注解
注意,此操作是非常慢的

友元及相关符号说明

◆ Engine

friend class Engine
friend

在文件 dl_factory.h43 行定义.

◆ System

friend class System
friend

在文件 dl_factory.h42 行定义.


该类的文档由以下文件生成: