资源简介
里面有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 “ << s.filename << std::endl;
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 << s.filename << “ failed to compile:“ << std::endl;
GLint logSize;
glGetShaderiv( shader GL_INFO_LOG_LENGTH &logSize );
char* logMsg = new char[logSize];
glGetShaderInfoLog( shader logSize NULL logMsg );
std::cerr << logMsg << std::endl;
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“ << std::endl;
GLint logSize;
glGetProgramiv( program GL_INFO_LOG_LENGTH &logSize);
char* logMsg = new char[logSize];
glGetProgramInfoLog( program logSize NULL logMsg );
std::cerr << logMsg << std::endl;
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个文件信息
相关资源
- OpenGL ES 2.0 编程指南 中文版.pdf
- openGL实现三维点云显示
- vs2013扫雷程序
- opengl写的趣味3D骰子
- 计算机图形学实验 opengl实现太阳系运
- opengl实现地球围绕太阳转动
- opnegl 太阳 月亮 地球 天体旋转
- QT+VS点击按钮弹出新窗口的实现
- glut库glew库glfw库glaux库
- OpenGL小车三维模型源码.zip
- 虚拟环境漫游系统
- 基于OpenGL实现俄罗斯方块
- OpenGL简单场景编程
- glui for opengl(glui.h glui32.lib)
- myRay_Tracer.zip
- opengl画三角形
- opengl绘制树
- halcon引擎例程_vs2013_halcon19_11.rar
- qt opengl(after ver2.1) 渲染 nv12
- 3D Helicopter
- 计算机图形大作业opengl-物联网.rar
- OpenGL安装包.zip
- OpenGl读取obj格式文件
- OpenGL Shading Language (3rd Edition)
- VC实现OpenGL三维绘图
- OpenGL_Nehe(NeHe中文教程)pdf+源码
- OpenGL配置文件
- OpenGL安装包
- OPENGL读取obj模型_visual stdio2015
- opengl + glfw _glad 实现天空盒
评论
共有 条评论