OpenGL立方体在世界坐标系中缩放_旋转_平移_顶点片源着色器


里面有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] = ‘‘;
    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  CEtestCEtestCEtest.vcxproj

     文件       1256  2016-03-14 12:53  CEtestCEtestCEtest.vcxproj.filters

     文件        362  2016-03-14 13:19  CEtestCEtestCEtest.vcxproj.user

     文件       2289  2010-11-16 06:20  CEtestCEtestCommonInitShader.cpp

     文件       8974  2016-03-30 20:32  CEtestCEtestDebugCEtest.log

     文件        306  2016-03-30 20:32  CEtestCEtestDebugCEtest.tlogCEtest.lastbuildstate

     文件       4262  2016-03-30 20:32  CEtestCEtestDebugCEtest.tlogcl.command.1.tlog

     文件     106064  2016-03-30 20:32  CEtestCEtestDebugCEtest.tlogCL.read.1.tlog

     文件       4484  2016-03-30 20:32  CEtestCEtestDebugCEtest.tlogCL.write.1.tlog

     文件       4328  2016-03-30 20:32  CEtestCEtestDebugCEtest.tloglink.command.1.tlog

     文件      10106  2016-03-30 20:32  CEtestCEtestDebugCEtest.tloglink.read.1.tlog

     文件       2120  2016-03-30 20:32  CEtestCEtestDebugCEtest.tloglink.write.1.tlog

     文件     144657  2016-03-30 20:32  CEtestCEtestDebugInitShader.obj

     文件     157150  2016-03-30 20:32  CEtestCEtestDebugSource.obj

     文件    1043456  2016-03-30 20:32  CEtestCEtestDebugvc120.idb

     文件     454656  2016-03-30 20:32  CEtestCEtestDebugvc120.pdb

     文件     207360  2014-11-20 16:02  CEtestCEtestdllfreeglut.dll

     文件     355840  2014-11-20 16:03  CEtestCEtestdllglew32.dll

     文件     315904  1997-11-21 17:01  CEtestCEtestdllglu.dll

     文件     136704  2013-08-22 12:06  CEtestCEtestdllglu32.dll

     文件     180224  1999-07-29 15:48  CEtestCEtestdllGLUT32.DLL

     文件         88  2016-03-14 12:02  CEtestCEtestfshader.glsl

     文件       2166  2010-11-13 17:28  CEtestCEtestincludeAngel.h

     文件       1290  2010-11-07 19:23  CEtestCEtestincludeCheckError.h

     文件      60468  2014-11-27 13:15  CEtestCEtestincludeGLFGL.H

     文件       7273  2014-11-27 13:15  CEtestCEtestincludeGLFGLU.H

     文件      10152  2014-11-27 13:15  CEtestCEtestincludeGLFGLUT.H

     文件        681  2014-11-27 13:15  CEtestCEtestincludeGLfreeglut.h

     文件       9007  2014-11-27 13:15  CEtestCEtestincludeGLfreeglut_ext.h

     文件      26523  2014-11-27 13:15  CEtestCEtestincludeGLfreeglut_std.h

............此处省略46个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)