- 博客(25)
- 收藏
- 关注
原创 vulkan交换链创建
可以看到是context的一个成员变量,还是用unique pointer 管理的。具体看一下createSwapChain。还得再看看Texture,递归学习了(又得看imageView。
2024-05-31 11:44:55 133
原创 创建vulkan context部分代码
看了下,主要是设置要启动的vulkan1.2特性而enable12Features_本身是一个static变量。
2024-05-30 14:47:47 1347
原创 vulkan 图形管道创建--对比计算管线
图形管线看上去就是设置我这次绘制的状态,例如,要不要做颜色混合,要不要深度测试,要用那些shader绘制到image之前,要吧image变成VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL(不用也行,这个得等我深刻理解vulkan了)
2024-04-13 17:18:16 249 1
原创 c++模板类参数推导guide
这时候我们可以写一个 Deduction Guid帮助模板类推导,具体写法为。这里我用的msvc编译器,cpp20标准,推导出的s类型为。我们使用字符串字面量来实例化这个模板类。这可能不太实用,我希望能推导出一个。然后我们就可以得到一个。假设有这么一个模板类。
2024-04-05 22:20:27 116 1
原创 c++ static_assert 用法
假设我们有一个模板类,我们希望用于实例化这个模板类的类型有默认的构造函数,我们可以使用。是没有默认的构造函数的,我们编译这个代码,就会报类似于。类去实例化这个模板,但是仔细看,我们让。下面有一个非常简单的例子。
2024-03-25 20:14:13 231 1
原创 设计模式: 组合构造器
为了使用户使用构造器,往往需要把原本被构造的对象的构造函数藏起来不让用通常支持流式操作构造器往往有的良好的语义性(值每个函数都清楚的解释了自己在干什么)但是我觉得除非有良好的文档,要不然如何去构造一个对象都得去实际查看别人的代码,看看别人是怎么构造的。但是实际上就自己公司的代码来看,文档这东西属于稀罕物件。。。构造器看上去确实挺优雅的,但是用不用,还是具体再说吧,毕竟设计模式并不是什么放之四海皆准的准则,只要大的方向没变就好。
2024-03-21 14:39:16 170 1
原创 c++简单的构造器模式
我们还可以利用add_child 的返回值,让构造器支持流式操作。上述写法虽然可以实现需求,但是不够灵活,属实是trash!稍微好一点,我们更进一步,专门给这个类加一个构造器。假设我么在制作一个html网页相关的类。我们专门给这个需求构造一个类。
2024-03-17 10:30:33 358
原创 c++使用元函数编译器求值
在上面这个例子中,我们定义一个Factorial的全特化(full template specialization)指定base case,一个元函数往往通过类模板实现的,例如下面的。这个过程都是在编译器完成的。,一直执行下去,直到遇到。
2024-03-09 17:21:35 398 1
原创 c++模板约束
这个时候不需要编译,ide已经提示我们输入了错了的参数,如果我们编译一下。在倒数第二行,我们传入了错误的参数,他的报错是这样的。模板编程的错误信息非常难读,例如下面例子。
2024-03-02 10:05:26 498
原创 c++ 常用 stl 算法 copy,fill,generate
下面代码使用fill函数给chars从头到尾填充了字符’5’然后又用copy函数拷贝到标准输出流,用空格分隔。
2024-02-15 11:42:37 394
原创 c++ 20 format 基本使用方法
7 代表占7个字符位置大小,用空格填充。{:>7.2f} 的意思是。‘:’代表开始声明格式。.2f代表保留两位小数。
2024-02-07 17:55:37 474 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人