dl
dl_tool_debug_info.h
浏览该文件的文档.
1
11#pragma once
12
13#ifndef DL_DISABLE_RENDER
14
15#include "render/dl_factory.h"
16#include "render/dl_camera.h"
17#include "system/dl_system.h"
18
19namespace dl::Tool
20{
21
24{
25public:
30 static DebugInfo* Create()
31 {
32 DebugInfo* ret = new DebugInfo;
33 ret->_init();
34 return ret;
35 }
36
38 {
39 return _txt;
40 }
41
42 void Render(std::string_view str = "")
43 {
44 const RenderInfo2D ri_2d = g_system->GetRenderInfo2D();
45 const RenderInfo3D ri_3d = g_system->GetRenderInfo3D();
46
47 std::string str_all = fmt::format(
48 "fps:[t_4][c_yellow]{}[c]\n"
49 "dc2d:[t_4][c_yellow]{}+{}({})[c]\n"
50 "spr:[t_4][c_yellow]{}+{}[c]\n"
51 "gfx:[t_4][c_yellow]{}[c]\n"
52 "order:[t_4][c_yellow]{}({})[c]\n"
53 "dc3d:[t_4][c_yellow]{}[c]\n"
54 "actor:[t_4][c_yellow]{}[c]\n"
55 "light:[t_4][c_yellow]{}, {}, {}[c]\n"
56 "size:[t_4][c_yellow]{}({})[c]\n"
57 "mouse:[t_4][c_yellow]{}[c]\n"
58 "camera:[t_4][c_yellow]{}[c]",
59 g_time->GetFPS(),
63 g_ui->GetPanelAll().GetSize(), g_factory->GetOrderPickup(),
64 ri_3d._numDrawCall,
65 ri_3d._numActor,
66 ri_3d._numLightDir, ri_3d._numLightDot, ri_3d._numLightSpot,
67 to_string(g_system->GetWindowSize()), to_string(g_ui->GetStandardSize()),
68 to_string(g_input->GetCursorPosition()),
69 to_string(g_factory->GetCamera()->GetPosition()));
70
71 if (!str.empty())
72 {
73 str_all += "\n";
74 str_all += str;
75 }
76 _coor->SetScale(g_ui->GetScale());
77 _txt->SetString(str_all);
78 _txt->Render();
79 }
81 {
82 delete _coor;
83 }
84private:
85 Coor* _coor;
86 gcText _txt;
87
88 void _init()
89 {
90 _coor = Coor::Create();
91 _txt = g_factory->CreateText(0, 16, ColorDef::GREEN);
92 _txt->GetCoor()->SetParent(_coor);
93 _txt->SetBackground(true);
94 _txt->SetFormat(true);
95 }
96};
97
98}
99#endif
2d坐标系
void SetParent(Coor *coor)
static Coor * Create(Coor *parent=nullptr)
void SetFormat(bool open)
设置是否要格式化字符串(默认为否)
Coor * GetCoor()
返回坐标系
void SetBackground(bool open, const Color &col=ColorDef::TEXT_BG)
设置背景精灵
常见调试信息打印
void Render(std::string_view str="")
static DebugInfo * Create()
构造
摄像机(3d)
资源工厂
窗口主系统
constexpr auto Add(const C &container)
求和sum
constexpr Color GREEN
Input * g_input
Factory * g_factory
std::string to_string(T v)
to_string包装
GC< Text > gcText
System * g_system
Time * g_time
UI::Manager * g_ui
size_t _numSwitchPso
PSO切换次数
std::array< size_t, 16 > _numGfx
GFX顶点数
size_t _numSpriteTranslucent
绘制半透明精灵数量
size_t _numDrawCall
drawcall数量
size_t _numSprite
绘制精灵数量
size_t _numDrawCallTranslucent
半透明drawcall数量
size_t _numLightDir
平行光
size_t _numLightDot
点光源
size_t _numDrawCall
drawcall数量
size_t _numActor
actor数量
size_t _numLightSpot
聚光灯