资源简介

里面有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\link.command.1.tlog

     文件      10106  2016-03-30 20:32  CEtest\CEtest\Debug\CEtest.tlog\link.read.1.tlog

     文件       2120  2016-03-30 20:32  CEtest\CEtest\Debug\CEtest.tlog\link.write.1.tlog

     文件     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个文件信息

评论

共有 条评论