<2021SC@SDUSC> 开源游戏引擎 Overload 代码模块分析 之 OvGame(四)—— Utils(终)大纲及 FPSCounter & Debug(上)大纲及 DriverInfo

本文详细分析了开源游戏引擎 Overload 的 Utils 模块中的 FPSCounter 和 Debug 模块的 DriverInfo。介绍了 FPSCounter 类的构造和更新功能,用于显示帧率,以及 DriverInfo 类如何展示驱动信息。文章探讨了这两个组件如何利用 OvUI 框架创建面板和文本。
摘要由CSDN通过智能技术生成

2021SC@SDUSC
开源游戏引擎 Overload 代码模块分析 之 OvGame(四)—— Utils(终)大纲及 FPSCounter & Debug(上)大纲及 DriverInfo

前言

正如上篇所说,本篇是为了 OvGame 的 Core 的 Game 部分,将先探究 OvGame 的其它文件: Utils 的 FPSCounter 以及 Debug 的 DriverInfo

另外,若想先大致了解该引擎各个大模块,可前往笔者这篇相关文章查看。
若想了解 OvGame 大纲,可前往笔者这篇文章

现在,让我们先了解一下 Utils 大纲及其 FPSCounter:

分析

1、Utils

1.1 大纲

Utils 文件包括了下列文件:
Utils.h
Utils.cpp
显然,该文件仅有一个 FPSCounter 部分,所以本篇也就直接是 Utils 的终篇了。现在开始探究 FPSCounter:

1.2 FPSCounter.h

1.2.1 头文件
#include <OvUI/Panels/PanelUndecorated.h>
#include <OvUI/Widgets/Texts/TextColored.h>

#include <OvWindowing/Window.h>

该文件包含的头文件都是来自 Overload 的其它模块,在此不多讲述,遇到再简单探究

1.2.2 主体代码

主体是一个 FPSCounter 类,作用是显示帧速率的面板,定义如下:

	class FPSCounter : public OvUI::Panels::PanelUndecorated
	{
   
	public:
		/**
		* Constructor
		* @param p_window
		*/
		FPSCounter(OvWindowing::Window& p_window);

		/**
		* Update the data
		* @param p_deltaTime
		*/
		void Update(float p_deltaTime);

	private:
		OvUI::Widgets::Texts::TextColored m_text;

		OvWindowing::Window& m_window;
		float m_elapsed = 0.0f;
		uint32_t m_frames = 0;
	};

首先,该类公有继承了 Overload 的模块 OvUI 中的 PanelUndecorated 类,功能是一个简单的面板,可以变形但没有样式(没有背景等),但它还层层向上公有继承了许多 OvUI::Panels 下的类,从底层至顶层依次是:

1、APanelTransformable 类,是一个本地化在画布中的面板。
2、Apanel 类,是画布的一个组件,是 UI 中的一种窗口。
3、任何小部件容器的基类 WidgetContainer 类与任何可绘制类的接口 IDrawable 类。

其次,FPSCounter 的变量还加入了有色文本类 TextColored 与窗口类 Window,此外定义了变量运行时间与帧数;函数也不多,咱们在 cpp 文件中深入探究:

1.3 FPSCounter.cpp

头文件仅有上述的 OvGame/Utils/FPSCounter.h,所以咱们直接看函数:

FPSCounter(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值