造轮子
文章平均质量分 90
异次元的归来
Game_Develop_Forever
展开
-
STL tuple源码分析
STL还提供了两个便捷的函数创建tuple,一个是make_tuple,一个是tie,两者的区别在于返回的tuple类型有差异,一个返回参数类型为值类型的tuple(除非传入的参数是reference_wrapper),一个返回的是引用类型的tuple。如果tuple的元素个数不止一个,那结果直接就是true,而只有一个元素时,需要进行一系列的判断,首先两个tuple的类型不能相同,然后,传入的tuple参数不能直接构造tuple的参数类型,也不能直接convert到tuple的参数类型。原创 2024-01-14 13:17:38 · 956 阅读 · 0 评论 -
STL pair源码分析
不难发现,只要传入pair的两个类型任意一个的默认构造函数是explicit的,那么pair的这个默认构造函数就是explicit的,这一点也很好理解。首先是一开始template的声明,这里加了一个enable_if_t<bool, T>,它用来进行编译检查,即只有第一个模板参数推导出来结果为true时,后面的T才生效,也就是说,如果检查失败,就不存在对应的T,这里的template声明就是非法,编译期间就会报错。有点令人意外的是p2,它传入的参数明明是int&,但pair的参数类型却是int。原创 2023-11-25 15:57:49 · 495 阅读 · 0 评论 -
Step 1 搭建一个简单的渲染框架
另外,由于GPU指令的执行对CPU来说是异步的,因此还需要一个ID3D12Fence用于同步。在渲染结束之后,同样我们要把当前back buffer的状态切回渲染前的,如果是多缓冲要切到下一个可用的back buffer,执行掉中间产生的所有渲染指令,显示到屏幕上。初始化过程中我们需要创建若干back buffer和一个depth buffer,这两个buffer的创建方式有区别,但它们本质上都属于资源,因此给它们各自一个类,然后共同继承D3D12Resource这个类,这个类包含一些对资源的通用操作。原创 2023-10-14 17:04:31 · 242 阅读 · 0 评论