資源簡介
里面有txt的使用說明,順代如果要直接點擊exe ,那么需要把用到的各個 .dll復制到和exe同一個目錄下,頂點著色器和片源著色器文檔也要復制過去

代碼片段和文件信息
#include?“Angel.h“
namespace?Angel?{
//?Create?a?NULL-terminated?string?by?reading?the?provided?file
static?char*
readShaderSource(const?char*?shaderFile)
{
????//FILE*?fp?=?fopen(shaderFile?“r“);
//由于vs甚么安全性的原因,不讓使用fopen,用下面的fopen_s代替;
FILE?*fp;
fopen_s(&fp?shaderFile?“r“);
????if?(?fp?==?NULL?)?{?return?NULL;?}
????fseek(fp?0L?SEEK_END);
????long?size?=?ftell(fp);
????fseek(fp?0L?SEEK_SET);
????char*?buf?=?new?char[size?+?1];
????fread(buf?1?size?fp);
????buf[size]?=?‘\0‘;
????fclose(fp);
????return?buf;
}
//?Create?a?GLSL?program?object?from?vertex?and?fragment?shader?files
GLuint
InitShader(const?char*?vShaderFile?const?char*?fShaderFile)
{
????struct?Shader?{
const?char*??filename;
GLenum???????type;
GLchar*??????source;
????}??shaders[2]?=?{
{?vShaderFile?GL_VERTEX_SHADER?NULL?}
{?fShaderFile?GL_FRAGMENT_SHADER?NULL?}
????};
????GLuint?program?=?glCreateProgram();
????
????for?(?int?i?=?0;?i?2;?++i?)?{
Shader&?s?=?shaders[i];
s.source?=?readShaderSource(?s.filename?);
if?(?shaders[i].source?==?NULL?)?{
????std::cerr?<“Failed?to?read?“?< ????exit(?EXIT_FAILURE?);
}
GLuint?shader?=?glCreateShader(?s.type?);
glShaderSource(?shader?1?(const?GLchar**)?&s.source?NULL?);
glCompileShader(?shader?);
GLint??compiled;
glGetShaderiv(?shader?GL_COMPILE_STATUS?&compiled?);
if?(?!compiled?)?{
????std::cerr?< ????GLint??logSize;
????glGetShaderiv(?shader?GL_INFO_LOG_LENGTH?&logSize?);
????char*?logMsg?=?new?char[logSize];
????glGetShaderInfoLog(?shader?logSize?NULL?logMsg?);
????std::cerr?< ????delete?[]?logMsg;
????exit(?EXIT_FAILURE?);
}
delete?[]?s.source;
glAttachShader(?program?shader?);
????}
????/*?link??and?error?check?*/
????gllinkProgram(program);
????GLint??linked;
????glGetProgramiv(?program?GL_link_STATUS?&linked?);
????if?(?!linked?)?{
std::cerr?<“Shader?program?failed?to?link“?< GLint??logSize;
glGetProgramiv(?program?GL_INFO_LOG_LENGTH?&logSize);
char*?logMsg?=?new?char[logSize];
glGetProgramInfoLog(?program?logSize?NULL?logMsg?);
std::cerr?< delete?[]?logMsg;
exit(?EXIT_FAILURE?);
????}
????/*?use?program?object?*/
????glUseProgram(program);
????return?program;
}
}??//?Close?namespace?Angel?block
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4340??2016-03-14?13:01??CEtest\CEtest\CEtest.vcxproj
?????文件???????1256??2016-03-14?12:53??CEtest\CEtest\CEtest.vcxproj.filters
?????文件????????362??2016-03-14?13:19??CEtest\CEtest\CEtest.vcxproj.user
?????文件???????2289??2010-11-16?06:20??CEtest\CEtest\Common\InitShader.cpp
?????文件???????8974??2016-03-30?20:32??CEtest\CEtest\Debug\CEtest.log
?????文件????????306??2016-03-30?20:32??CEtest\CEtest\Debug\CEtest.tlog\CEtest.lastbuildstate
?????文件???????4262??2016-03-30?20:32??CEtest\CEtest\Debug\CEtest.tlog\cl.command.1.tlog
?????文件?????106064??2016-03-30?20:32??CEtest\CEtest\Debug\CEtest.tlog\CL.read.1.tlog
?????文件???????4484??2016-03-30?20:32??CEtest\CEtest\Debug\CEtest.tlog\CL.write.1.tlog
?????文件???????4328??2016-03-30?20:32??CEtest\CEtest\Debug\CEtest.tlog\li
?????文件??????10106??2016-03-30?20:32??CEtest\CEtest\Debug\CEtest.tlog\li
?????文件???????2120??2016-03-30?20:32??CEtest\CEtest\Debug\CEtest.tlog\li
?????文件?????144657??2016-03-30?20:32??CEtest\CEtest\Debug\InitShader.obj
?????文件?????157150??2016-03-30?20:32??CEtest\CEtest\Debug\Source.obj
?????文件????1043456??2016-03-30?20:32??CEtest\CEtest\Debug\vc120.idb
?????文件?????454656??2016-03-30?20:32??CEtest\CEtest\Debug\vc120.pdb
?????文件?????207360??2014-11-20?16:02??CEtest\CEtest\dll\freeglut.dll
?????文件?????355840??2014-11-20?16:03??CEtest\CEtest\dll\glew32.dll
?????文件?????315904??1997-11-21?17:01??CEtest\CEtest\dll\glu.dll
?????文件?????136704??2013-08-22?12:06??CEtest\CEtest\dll\glu32.dll
?????文件?????180224??1999-07-29?15:48??CEtest\CEtest\dll\GLUT32.DLL
?????文件?????????88??2016-03-14?12:02??CEtest\CEtest\fshader.glsl
?????文件???????2166??2010-11-13?17:28??CEtest\CEtest\include\Angel.h
?????文件???????1290??2010-11-07?19:23??CEtest\CEtest\include\CheckError.h
?????文件??????60468??2014-11-27?13:15??CEtest\CEtest\include\GL\FGL.H
?????文件???????7273??2014-11-27?13:15??CEtest\CEtest\include\GL\FGLU.H
?????文件??????10152??2014-11-27?13:15??CEtest\CEtest\include\GL\FGLUT.H
?????文件????????681??2014-11-27?13:15??CEtest\CEtest\include\GL\freeglut.h
?????文件???????9007??2014-11-27?13:15??CEtest\CEtest\include\GL\freeglut_ext.h
?????文件??????26523??2014-11-27?13:15??CEtest\CEtest\include\GL\freeglut_std.h
............此處省略46個文件信息
評論
共有 條評論