- 博客(10)
- 收藏
- 关注
原创 令人头疼的Lambda表达式和模板组合2
ComponentGroup结构体不包含任何一个成员变量,即使有成员函数但该结构体通常也是只占用1字节的内存,该结构体要配合下面的using AllComponents作为类型容器,不能提供成员变量(避免占用过多内存,如果不考虑这点可以添加),但是可以添加成员函数,这里没有添加而已。上述代码的主要作用就是利用一个不包含成员变量的结构体和使用参数包模板,通过使用别名和模板可以存储多个类型,而且整个结构体通常只占用1字节的内存。具体的类型传递见下文。
2024-08-19 07:14:56
42
原创 模板参数的一些情况
元编程(Metaprogramming)是一种编程技术,它允许程序编写代码来操作或生成其他代码,甚至在运行时动态修改自身的行为。元编程的核心思想是将代码视为数据,通过程序生成、分析或变更代码,以提高灵活性、减少重复代码或实现更复杂的逻辑。举例阶乘的运算。
2024-08-18 21:45:31
375
原创 令人头疼Lambda表示式和模板组合
Lambda表达式在C++中被视为一种特殊的匿名类,该类隐式地定义了一个operator(),使得lambda可以像函数一样被调用。当你将一个 lambda 表达式作为函数参数传递时,编译器会生成一个对应的类,其行为类似于传递一个可调用对象。这类对象通常具有 operator() 操作符,使其能够像函数一样调用。
2024-08-18 17:02:28
633
原创 自我记录-Hazel游戏引擎功能介绍与简介
从主函数文件所在在开始讲起,主函数会创建Application的子类sandbox,这会调用Application和sandbox的构造函数,而Application的构造函数中会有渲染器的开端。
2024-07-15 16:42:17
325
原创 Hazel的事件逻辑
这里的事件类基本上只完成两件事,根据输入进来的事件参数,利用传入参数把这个事件发生信息推入到输出流中,以及提供指示事件类型和事件类别的函数由EVENT_CLASS_TYPE和EVENT_CLASS_CATEGORY完成。
2024-05-13 23:44:39
745
1
原创 关于Hazel游戏引擎sandbox项目使用imgui函数的链接错误
1.静态构造imgui时,所有的代码会在编译时期被放入一个静态库中,Hazel作为一个动态库为其提供链接,换句话说,在编译Hazel的过程中,imgui的静态库会被混合到Hazel的二进制文件中。这个时候如果我们打算在Sandbox项目使用imgui的函数的时候,如果我们让Sandbox也链接到imgui的时候,每个项目都会有一个imgui的实例,它们是不共享的。因此,如果你试图在sandbox中访问由Hazel占用的imgui实例,就可能会引发访问冲突和运行时错误。
2024-04-15 16:14:46
207
1
原创 层设置使用迭代bug讨论
2当这些移动发生时,又因为我们正在追踪或迭代这个集合,如果我们继续使用之前的追踪或迭代状态,就可能会出现问题。无效的追踪状态可能会导致错误的行为,例如数据丢失,读取旧的或不正确的数据,或者访问无效的内存区域。一般对于应用的程序而言。层的设计都是使用动态数组来实现的,那么,在插入新的元素,尤其是在集合中部进行插入时,大部分或所有的元素都可能需要被移动,以便为新元素腾出空间。3.为了安全和正确地实施这种层插入迭代,一个好的做法是在集合发生这种实际移动之后,使当前的追踪或迭代状态失效,并重新开始追踪或迭代。
2024-04-15 15:12:12
186
1
原创 计算机组成原理-内存-自我记录
2.从内存读出数据,CPU会向内存发生一个31位的地址码,地址前5位用于查找数据所在的库,查找到后,关闭所在库中的所有字线电压,字线控制的是电容器的通电,因此电容器此时不与位线通电,从而隔离所有电容器0,然后将所有位线充电到0.5V。4.这个时候如何电容器存储的电压是1V,那么电荷会从电容器流向位线,数据就会丢失,但是位线有感测放大器,会检测到电压的微小变化,它也会将位线电压增至1V,以此防止数据流失。4. 当对字线施加电压,由于字线连接栅极,栅极通电压,晶体管就会打开,电子流过沟道。
2024-04-02 18:48:16
549
1
原创 Hazel引擎自我学习历程-程序运行逻辑
*值得注意的是创建Sandbox子类会先在其内部创建一个父类实例,并且调用其构造函数后才调用子类构造函数。相关 Sandbox类为Application子类,ExampleLayer为Layer的子类。两个函数的实习 ,传入的Imgui层的指针,调用的ImguiLayer类的OnAttact函数。调用所有层栈的更新函数目前只会调用void ImGuiLayer::OnUpdate()程序启动点文件EntryPoint.主函数在次文件之中,忽略日志类的设置。ImguiLayer类的OnAttact函数。
2024-04-01 19:58:18
172
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人