我们使用C++文件流(file stream)读取着色器内容,储存到几个string
对象里
右键源文件 新建 添加 新建项 选择C++类 名字改为Shader
这样之后,会出现Shader.h和Shader.cpp两个文件
在c++中 如果不宣告并定义的话 你将无法在main中使用这个函数
现在这个 .h*与 .cpp*的分页的意义是 把所有的宣告 全部都放入到.h*的文档里 .cpp*里只用写程式码不用考虑是否有宣告过
首先来看一下shader 的宣告
- 在h文件中,最开始会是这样,因为今天的内容很简单 不需要释放内存 所以只用使用 构造函数就可以 (文中shader 代表构造和析构函数)
- 构造函数 ,是一种特殊的方法。主要用来在创建对象时初始化对象, 即为对象成员变量赋初始值,总与new运算符一起使用在创建对象的语句中。特别的一个类可以有多个构造函数 ,可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载。
- 析构函数(destructor) 与构造函数相反,当对象结束其生命周期,如对象所在的函数已调用完毕时,系统自动执行析构函数。析构函数往往用来做“清理善后” 的工作(例如在建立对象时用new开辟了一片内存空间,delete会自动调用析构函数后释放内存)。
-
#pragma once class Shader { public: Shader(); //~Shader(); };
先传入档名
-
Shader(const char* vertexPath, const char* fragmentPath)
char* 读取档名
-
const 是因为 下面要是用“ 档名”的形式 写死 所以要使用const修饰 不然容易报错
-
写完之后 需要复制到 .cpp中
-