您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ AddShader函数代码示例

51自学网 2021-06-01 19:45:27
  C++
这篇教程C++ AddShader函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中AddShader函数的典型用法代码示例。如果您正苦于以下问题:C++ AddShader函数的具体用法?C++ AddShader怎么用?C++ AddShader使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了AddShader函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: Init

bool NullTechnique::Init(){    if (!Technique::Init()) {        return false;    }    if (!AddShader(GL_VERTEX_SHADER, "../shaders/null_technique_vertex.glsl")) {        return false;    }    if (!AddShader(GL_FRAGMENT_SHADER, "../shaders/null_technique_fragment.glsl")) {        return false;    }    if (!Finalize()) {        return false;    }    m_WVPLocation = GetUniformLocation("gWVP");  if (m_WVPLocation == INVALID_UNIFORM_LOCATION) {    return false;  }  return true;}
开发者ID:nburfield,项目名称:CS791-Advanced-Computer-Graphics,代码行数:26,


示例2: AddShader

//-------------------------------------------------------------------------------------------------WorldShader::WorldShader( const char *name ) {	AddShader( "glsl//worldshader.v.glsl", GL_VERTEX_SHADER );	AddShader( "glsl//worldshader.f.glsl", GL_FRAGMENT_SHADER );	Link();		AddUniform( u_pattern_sampler, "sampler_patterns" );	AddUniform( u_noise_sampler, "sampler_noise" );	AddUniform( u_global_translation, "global_translation" );	AddUniform( u_camera, "camera" );	AddUniform( u_skylight_color, "skylight_color" );	AddUniform( u_skylight_intensity, "skylight_intensity" );	AddUniform( u_fog_distance, "fog_distance" );	AddUniform( u_fog_length, "fog_length" );		AddAttribute( a_instance_translation, "instance_translation", 1 );	AddAttribute( a_instance_form, "instance_form", 1 );	AddAttribute( a_instance_texture, "instance_texture", 1 );	AddAttribute( a_instance_color, "instance_color", 1, 4 );	//AddAttribute( attribInstanceColor2, "instance_color_2", 1 );	//AddAttribute( attribInstanceColor3, "instance_color_3", 1 );	//AddAttribute( attribInstanceColor4, "instance_color_4", 1 );	AddUniform( u_texture_sampler, "sampler_texture" );	AddUniform( u_texture_translation, "texture_translation" );	AddUniform( u_opacity, "opacity" );	AddUniform( u_fog_color, "fog_color" );	AddUniform( u_light_brightness, "light_brightness" );	AddUniform( u_light_colors, "light_colors" );	AddUniform( u_light_positions, "light_positions" );	Register( name );}
开发者ID:mukunda-,项目名称:The-Unbound-Project,代码行数:34,


示例3: Init

bool BlurTech::Init(){    if (!Technique::Init()) {        return false;    }    if (!AddShader(GL_VERTEX_SHADER, "../tutorial46/shaders/blur.vs")) {        return false;    }    if (!AddShader(GL_FRAGMENT_SHADER, "../tutorial46/shaders/blur.fs")) {        return false;    }    if (!Finalize()) {        return false;    }    m_inputTextureUnitLocation = GetUniformLocation("gColorMap");	if (m_inputTextureUnitLocation == INVALID_UNIFORM_LOCATION) {		return false;	}        Enable();        glUniform1i(m_inputTextureUnitLocation, INPUT_TEXTURE_UNIT_INDEX);	return true;}
开发者ID:andriyut,项目名称:ogldev,代码行数:31,


示例4: Init

bool LightingTechnique::Init(){	if (!Technique::Init()) {		return false;	}	if (!AddShader(GL_VERTEX_SHADER, "lighting.vs")) {		return false;	}	if (!AddShader(GL_FRAGMENT_SHADER, "lighting.fs")) {		return false;	}	if (!Finalize()) {		return false;	}	m_WVPLocation = GetUniformLocation("gWVP");	m_samplerLocation = GetUniformLocation("gSampler");	m_dirLightColorLocation = GetUniformLocation("gDirectionalLight.Color");	m_dirLightAmbientIntensityLocation = GetUniformLocation("gDirectionalLight.AmbientIntensity");	if (m_dirLightAmbientIntensityLocation == 0xFFFFFFFF ||		m_WVPLocation == 0xFFFFFFFF ||		m_samplerLocation == 0xFFFFFFFF ||		m_dirLightColorLocation == 0xFFFFFFFF)	{		return false;	}	return true;}
开发者ID:qunny0,项目名称:FTools,代码行数:33,


示例5: Create

    static inline const program_t& Create(const std::string& mat_name , const std::string& preprocessorDefinitions = std::string())    {        const uint16_t version = GLSL_VERSION;        const std::string  comp_str = GLSL_VERSION>=150 ?" compatibility":"";        const std::string  mat_name_cut = GetMaterialName(mat_name);        if(GetPrograms().find(mat_name_cut)==GetPrograms().end())        {            program_t p;            p.program = new osg::Program;            p.program->setName(mat_name_cut);            static osg::Shader* ssv = AddShader(shaders::VS, "shadow", version, comp_str, string());            static osg::Shader* ssf = AddShader(shaders::FS, "shadow", version, comp_str, string());            p.program->addShader( ssv );            p.program->addShader( ssf );                        p.program->addShader( AddShader(shaders::VS, mat_name_cut, version, comp_str, preprocessorDefinitions));            p.program->addShader( AddShader(shaders::FS, mat_name_cut, version, comp_str, preprocessorDefinitions));            p.program->addBindAttribLocation( "tangent" , 6 );            p.program->addBindAttribLocation( "binormal", 7 );            GetPrograms()[mat_name_cut]=p;        }        return GetPrograms()[mat_name_cut];    }
开发者ID:whztt07,项目名称:test_osg,代码行数:30,


示例6: Shader

bool Res::Init() {	Shader* shader = nullptr;	Texture* texture = nullptr;	// block shader	shader = new Shader();	if (!shader->Init("res/block.vert", "res/block.frag")) return false;	AddShader("block", shader);	// simpler color shader	shader = new Shader();	if (!shader->Init("res/color.vert", "res/color.frag")) return false;	AddShader("color", shader);	std::vector<byte> buffer, image;	LodePNG::loadFile(buffer, "res/blocks.png");	LodePNG::Decoder decoder;	decoder.decode(image, buffer);	int dim = decoder.getWidth();	texture = Texture::Create3DTexture(dim, dim, decoder.getHeight() / dim, image.data());	AddTexture("blocks", texture);	return true;}
开发者ID:xunatai,项目名称:cubiverse,代码行数:27,


示例7: CompileShaders

static void CompileShaders(){	GLuint ShaderProgram = glCreateProgram();	AddShader(ShaderProgram, GL_VERTEX_SHADER, pVS);	AddShader(ShaderProgram, GL_FRAGMENT_SHADER, pFS);	glLinkProgram(ShaderProgram);	GLint Success;	glGetProgramiv(ShaderProgram, GL_LINK_STATUS, &Success);	if (!Success)	{		GLchar InfoLog[1024] = {0};		glGetProgramInfoLog(ShaderProgram, 1024, NULL, InfoLog);		fprintf(stderr, "Error : Link Error '%s'/n", InfoLog);		exit(0);	}	gWorldLocation = glGetUniformLocation(ShaderProgram, "gWorld");	assert(gWorldLocation != 0xFFFFFFFF);	glValidateProgram(ShaderProgram);	glGetProgramiv(ShaderProgram, GL_VALIDATE_STATUS, &Success);	if (!Success)	{		GLchar InfoLog[1024] = {0};		glGetProgramInfoLog(ShaderProgram, 1024, NULL, InfoLog);		fprintf(stderr, "Error : Invalid shader program '%s'/n", InfoLog);		exit(1);	}	glUseProgram(ShaderProgram);}
开发者ID:RamboWu,项目名称:openglex,代码行数:31,


示例8: Init

bool ShadowMapTechnique::Init(){    if (!Technique::Init()) {        return false;    }    if (!AddShader(GL_VERTEX_SHADER, "shadow_map.vs")) {        return false;    }    if (!AddShader(GL_FRAGMENT_SHADER, "shadow_map.fs")) {        return false;    }    if (!Finalize()) {        return false;    }    m_WVPLocation = GetUniformLocation("gWVP");    m_textureLocation = GetUniformLocation("gShadowMap");    if (m_WVPLocation == INVALID_UNIFORM_LOCATION ||        m_textureLocation == INVALID_UNIFORM_LOCATION) {        return false;    }    return true;}
开发者ID:c14006078,项目名称:opengl,代码行数:28,


示例9: IObject

Shader::Shader(const std::string& vertexPath, const std::string& fragmentPath) : IObject("shader"){	AddShader(ShaderType::Vertex, vertexPath);	AddShader(ShaderType::Fragment, fragmentPath);	Reload(true);}
开发者ID:JuDelCo,项目名称:JuEngine,代码行数:7,


示例10: Init

bool LineShader::Init(){	if (!Shader::Init()) {		return false;	}	if (!AddShader(GL_VERTEX_SHADER, "Resources/shader/Line.vs")) {		return false;	}	if (!AddShader(GL_FRAGMENT_SHADER, "Resources/shader/Line.fs")) {		return false;	}	if (!Finalize()) {		return false;	}	m_MVPLocation = GetUniformLocation("MVP");	if (m_MVPLocation == INVALID_UNIFORM_LOCATION) {		return false;	}	m_LineColorLocation = GetUniformLocation("LineColor");	if (m_LineColorLocation == INVALID_UNIFORM_LOCATION) {		return false;	}	return true;}
开发者ID:Code-Guy,项目名称:Paradise,代码行数:28,


示例11: CompileShader

void CompileShader(){	shaderProgram = glCreateProgram();	string vs, fs;	if (!ReadFile(VSFile, vs))		exit(1);	if (!ReadFile(FSFile, fs))		exit(1);	AddShader(shaderProgram, vs.c_str(), GL_VERTEX_SHADER);	AddShader(shaderProgram, fs.c_str(), GL_FRAGMENT_SHADER);	GLint success;	GLchar errorLog[1024];	glLinkProgram(shaderProgram);	glGetProgramiv(shaderProgram, GL_LINK_STATUS, &success);	if (success == 0)	{		glGetProgramInfoLog(shaderProgram, 1024, NULL, errorLog);		fprintf(stderr, "Link error : %s/n", errorLog);		exit(1);	}	glValidateProgram(shaderProgram);	glGetProgramiv(shaderProgram, GL_VALIDATE_STATUS, &success);	if (success == 0)	{		glGetProgramInfoLog(shaderProgram, 1024, NULL, errorLog);		fprintf(stderr, "Validate error : %s/n", errorLog);		exit(1);	}}
开发者ID:onerain88,项目名称:OGLDev,代码行数:32,


示例12: Init

bool MotionBlurTechnique::Init(){    if (!Technique::Init()) {        return false;    }    if (!AddShader(GL_VERTEX_SHADER, "shaders/motion_blur.vs")) {        return false;    }    if (!AddShader(GL_FRAGMENT_SHADER, "shaders/motion_blur.fs")) {        return false;    }    if (!Finalize()) {        return false;    }        m_colorTextureLocation = GetUniformLocation("gColorTexture");    m_motionTextureLocation = GetUniformLocation("gMotionTexture");        if (m_motionTextureLocation == INVALID_UNIFORM_LOCATION ||        m_colorTextureLocation == INVALID_UNIFORM_LOCATION) {        return false;    }	return true;}
开发者ID:c14006078,项目名称:opengl,代码行数:28,


示例13: Init

bool DSDirLightPassTech::Init(){	if (!Technique::Init())	{		return false;	}	if (!AddShader(GL_VERTEX_SHADER, "shaders/light_pass.vs"))	{		return false;	}	if (!AddShader(GL_FRAGMENT_SHADER, "shaders/dir_light_pass.fs"))	{		return false;	}	if (!Finalize()) {		return false;	}	m_dirLightLocation.Color = GetUniformLocation("gDirectionalLight.Base.Color");	m_dirLightLocation.AmbientIntensity = GetUniformLocation("gDirectionalLight.Base.AmbientIntensity");	m_dirLightLocation.Direction = GetUniformLocation("gDirectionalLight.Direction");	m_dirLightLocation.DiffuseIntensity = GetUniformLocation("gDirectionalLight.Base.DiffuseIntensity");	if (m_dirLightLocation.AmbientIntensity == INVALID_UNIFORM_LOCATION ||		m_dirLightLocation.Color == INVALID_UNIFORM_LOCATION ||		m_dirLightLocation.DiffuseIntensity == INVALID_UNIFORM_LOCATION ||		m_dirLightLocation.Direction == INVALID_UNIFORM_LOCATION) {		return false;	}	return DSLightPassTech::Init();}
开发者ID:WendyHanzer,项目名称:4s,代码行数:35,


示例14: Init

bool GeomPassTech::Init(){	if (!Technique::Init()) {		return false;	}	if (!AddShader(GL_VERTEX_SHADER, "engine/shaders/geometry_pass.vs")) {		return false;	}	if (!AddShader(GL_FRAGMENT_SHADER, "engine/shaders/geometry_pass.fs")) {		return false;	}	if (!Finalize()) {		return false;	}	m_WVPLocation = GetUniformLocation("gWVP");	if (m_WVPLocation == INVALID_UNIFORM_LOCATION) {		return false;	}	return true;}
开发者ID:FNickRU,项目名称:OGL_project,代码行数:26,


示例15: Init

bool PickingTechnique::Init(){    if (!Technique::Init()) {        return false;    }    if (!AddShader(GL_VERTEX_SHADER, pVS)) {        return false;    }    if (!AddShader(GL_FRAGMENT_SHADER, pFS)) {        return false;    }        if (!Finalize()) {        return false;    }    m_WVPLocation = GetUniformLocation("gWVP");    m_objectIndexLocation = GetUniformLocation("gObjectIndex");    m_drawIndexLocation = GetUniformLocation("gDrawIndex");    if (m_WVPLocation == INVALID_UNIFORM_LOCATION ||        m_objectIndexLocation == INVALID_UNIFORM_LOCATION ||        m_drawIndexLocation == INVALID_UNIFORM_LOCATION) {        return false;    }    return true;}
开发者ID:rue-ryuzaki,项目名称:Visual-OpenGL,代码行数:30,


示例16: Init

bool ShadowMapTechnique::Init(){    if (!Technique::Init()) {        return false;    }    if (!AddShader(GL_VERTEX_SHADER, "../tutorial43/shaders/shadow_map.vs")) {        return false;    }    if (!AddShader(GL_FRAGMENT_SHADER, "../tutorial43/shaders/shadow_map.fs")) {        return false;    }    if (!Finalize()) {        return false;    }    m_WVPLocation = GetUniformLocation("gWVP");    m_WorldMatrixLocation = GetUniformLocation("gWorld");    m_lightWorldPosLoc = GetUniformLocation("gLightWorldPos");    if (m_WVPLocation == INVALID_UNIFORM_LOCATION ||	m_WorldMatrixLocation == INVALID_UNIFORM_LOCATION ||        m_lightWorldPosLoc == INVALID_UNIFORM_LOCATION) {        return false;    }    return true;}
开发者ID:andriyut,项目名称:ogldev,代码行数:30,


示例17: Init

bool NullTechnique::Init(){    if (!Technique::Init()) {        return false;    }    if (!AddShader(GL_VERTEX_SHADER, "shaders/null_technique.vs")) {        return false;    }    if (!AddShader(GL_FRAGMENT_SHADER, "shaders/null_technique.fs")) {        return false;    }    BindAttribLocation(0, "Position");    if (!Finalize()) {        return false;    }    m_WVPLocation = GetUniformLocation("gWVP");	if (m_WVPLocation == INVALID_UNIFORM_LOCATION) {		return false;	}	return true;}
开发者ID:GLDemos,项目名称:ogldev-glsl130,代码行数:26,


示例18: AddShader

FCGLShaderProgramRef FCGLShaderManager::AddProgram( std::string name, std::string shaderName ){	FCGLShaderProgramRefMapByStringIter i = m_programs.find( name );			if( i == m_programs.end() ) 	{		std::string vertexShaderName = shaderName + ".vsh";		std::string fragmentShaderName = shaderName + ".fsh";				FCGLShaderRef vertexShader = AddShader( vertexShaderName );		FCGLShaderRef fragmentShader = AddShader( fragmentShaderName );				// build program				if( name == kFCKeyShaderDebug ) 		{			m_programs[ name ] = FCGLShaderProgramRef( new FCGLShaderProgramDebug( vertexShader, fragmentShader ) );		} 		else if ( name == kFCKeyShaderWireframe ) 		{			m_programs[ name ] = FCGLShaderProgramRef( new FCGLShaderProgramWireframe( vertexShader, fragmentShader ) );		} 		else if ( name == kFCKeyShaderFlatUnlit ) 		{			m_programs[ name ] = FCGLShaderProgramRef( new FCGLShaderProgramFlatUnlit( vertexShader, fragmentShader ) );		} 		else if ( name == kFCKeyShaderNoTexVLit ) 		{			m_programs[ name ] = FCGLShaderProgramRef( new FCGLShaderProgramNoTexVLit( vertexShader, fragmentShader ) );		} 		else if ( name == kFCKeyShaderNoTexPLit ) 		{			m_programs[ name ] = FCGLShaderProgramRef( new FCGLShaderProgramNoTexPLit( vertexShader, fragmentShader ) );		} 		else if ( name == kFCKeyShader1TexVLit ) 		{			m_programs[ name ] = FCGLShaderProgramRef( new FCGLShaderProgram1TexVLit( vertexShader, fragmentShader ) );		} 		else if ( name == kFCKeyShader1TexPLit ) 		{			m_programs[ name ] = FCGLShaderProgramRef( new FCGLShaderProgram1TexPLit( vertexShader, fragmentShader ) );		} 		else if ( name == kFCKeyShaderTest ) 		{			m_programs[ name ] = FCGLShaderProgramRef( new FCGLShaderProgramTest( vertexShader, fragmentShader ) );		} 		else {			FC_FATAL( std::string("Unknown shader: ") + name );		}				FC_LOG( std::string("Linked GL program: ") + name );		//		[self.programs setValue:ret forKey:name];	}		return m_programs[ name ];}
开发者ID:chenze4949,项目名称:FC,代码行数:57,


示例19: glCreateProgram

ShaderProgram::ShaderProgram(Shader *vertex, Shader *fragment){    m_filename = "";    m_object = glCreateProgram();        AddShader(Shader::Create(vertex->m_filename));    AddShader(Shader::Create(fragment->m_filename));        Link();}
开发者ID:UIKit0,项目名称:hatching-shader,代码行数:10,


示例20: SetCurrentDirectory

void Window::TextureDisplayer_Activation(){    SetCurrentDirectory("TextureLoad");    TextureDisplayer_Adress=AddShader("TexLoad.frag",GL_FRAGMENT_SHADER,-1);    AddShader("TexLoad.geo",GL_GEOMETRY_SHADER,TextureDisplayer_Adress);    AddShader("TexLoad.vert",GL_VERTEX_SHADER,TextureDisplayer_Adress);    ConsoleEcho("12345");    GLuint Type[1]={GL_GEOMETRY_SHADER_BIT | GL_VERTEX_SHADER_BIT |GL_FRAGMENT_SHADER_BIT};    SetActiveInternProgram(&TextureDisplayer_Adress,Type,1);    TextureDisplayer_Inited=true;    ConsoleEcho("Tes Suposé activé");}
开发者ID:Qlala,项目名称:Engine,代码行数:11,


示例21: CompileShaders

static void CompileShaders(){	GLuint ShaderProgram = glCreateProgram();	if (ShaderProgram == 0)	{		fprintf(stderr, "glCreateProgram() error/n");		exit(1);	}	std::string vs, fs;	if (!Util_ReadFile(pVSFileName, vs))	{		fprintf(stderr, "ReadFile(VS) fail, file = %s/n", pVSFileName);		exit(1);	}	if (!Util_ReadFile(pFSFileName, fs))	{		fprintf(stderr, "ReadFile(FS) fail, file = %s/n", pFSFileName);		exit(1);	}	AddShader(ShaderProgram, vs.c_str(), GL_VERTEX_SHADER);	AddShader(ShaderProgram, fs.c_str(), GL_FRAGMENT_SHADER);	GLint success = 0;	GLchar log[1024] = { 0 };	glLinkProgram(ShaderProgram);	glGetProgramiv(ShaderProgram, GL_LINK_STATUS, &success);	if (success == 0)	{		glGetProgramInfoLog(ShaderProgram, sizeof(log), NULL, log);		fprintf(stderr, "glLinkProgram fail: '%s'/n", log);		exit(1);	}	glValidateProgram(ShaderProgram);	glGetProgramiv(ShaderProgram, GL_VALIDATE_STATUS, &success);	if (success == 0)	{		glGetProgramInfoLog(ShaderProgram, sizeof(log), NULL, log);		fprintf(stderr, "glValidateProgram fail: '%s'/n", log);		exit(1);	}	glUseProgram(ShaderProgram);	gWorldLocation = glGetUniformLocation(ShaderProgram, "gWorld");	assert(gWorldLocation != 0xFFFFFFFF);}
开发者ID:kasicass,项目名称:3dapibox,代码行数:52,


示例22: Init

bool LightingTechnique::Init(){    if (!Technique::Init())    {        return false;    }    if (!AddShader(GL_VERTEX_SHADER, pVS))    {        return false;    }    if (!AddShader(GL_FRAGMENT_SHADER, pFS))    {        return false;    }    if (!Finalize())    {        return false;    }    m_WVPLocation = GetUniformLocation("gWVP");    m_WorldMatrixLocation = GetUniformLocation("gWorld");    m_samplerLocation = GetUniformLocation("gSampler");    m_eyeWorldPosition = GetUniformLocation("gEyeWorldPos");    m_matSpecularIntensityLocation = GetUniformLocation("gMatSpecularIntensity");    m_matSpecularPowerLocation = GetUniformLocation("gSpecularPower");    m_dirLightLocation.Color = GetUniformLocation("gDirectionalLight.Color");    m_dirLightLocation.AmbientIntensity = GetUniformLocation("gDirectionalLight.AmbientIntensity");    m_dirLightLocation.Direction = GetUniformLocation("gDirectionalLight.Direction");    m_dirLightLocation.DiffuseIntensity = GetUniformLocation("gDirectionalLight.DiffuseIntensity");    if (m_dirLightLocation.AmbientIntensity == 0xFFFFFFFF ||        m_WVPLocation == 0xFFFFFFFF ||        m_WorldMatrixLocation == 0xFFFFFFFF ||        m_samplerLocation == 0xFFFFFFFF ||        m_dirLightLocation.Color == 0xFFFFFFFF ||        m_dirLightLocation.DiffuseIntensity == 0xFFFFFFFF ||        m_eyeWorldPosition == 0xFFFFFFFF ||        m_matSpecularIntensityLocation == 0xFFFFFFFF ||        m_matSpecularPowerLocation == 0xFFFFFFFF ||        m_dirLightLocation.Direction == 0xFFFFFFFF) {        return false;    }    return true;}
开发者ID:rue-ryuzaki,项目名称:Visual-OpenGL,代码行数:50,


示例23: glCreateProgram

//Create a vertex and fragment shader  void Shader::CreateShader(char *vertexPath, char *fragmentPath){	//Create a handle for the program	m_ProgramHandle = glCreateProgram();	//Add vertex shader to the program	AddShader(vertexPath, VERTEX_SHADER);	//Add fragment shader to the program	AddShader(fragmentPath, FRAGMENT_SHADER);	//Link the shaders in the program and check for errors	LinkShaders();}
开发者ID:EmanGalal,项目名称:Phase-1,代码行数:15,


示例24: CreateShaderProgram

void CreateShaderProgram(){    /* Allocate shader object */    ShaderProgram = glCreateProgram();    if (ShaderProgram == 0)     {        fprintf(stderr, "Error creating shader program/n");        exit(1);    }    /* Load shader code from file */    VertexShaderString = LoadShader("vertexshader.vs");    FragmentShaderString = LoadShader("fragmentshader.fs");    /* Separately add vertex and fragment shader to program */    AddShader(ShaderProgram, VertexShaderString, GL_VERTEX_SHADER);    AddShader(ShaderProgram, FragmentShaderString, GL_FRAGMENT_SHADER);    GLint Success = 0;    GLchar ErrorLog[1024];    /* Link shader code into executable shader program */    glLinkProgram(ShaderProgram);    /* Check results of linking step */    glGetProgramiv(ShaderProgram, GL_LINK_STATUS, &Success);    if (Success == 0)     {        glGetProgramInfoLog(ShaderProgram, sizeof(ErrorLog), NULL, ErrorLog);        fprintf(stderr, "Error linking shader program: '%s'/n", ErrorLog);        exit(1);    }    /* Check if shader program can be executed */     glValidateProgram(ShaderProgram);    glGetProgramiv(ShaderProgram, GL_VALIDATE_STATUS, &Success);    if (!Success)     {        glGetProgramInfoLog(ShaderProgram, sizeof(ErrorLog), NULL, ErrorLog);        fprintf(stderr, "Invalid shader program: '%s'/n", ErrorLog);        exit(1);    }    /* Put linked shader program into drawing pipeline */    glUseProgram(ShaderProgram);}
开发者ID:RaphaelHub,项目名称:Computergraphic,代码行数:49,


示例25: Init

bool InnterShader::Init() {    if(!ShaderBasic::Init()) {        return false;    }    if(!AddShader(GL_VERTEX_SHADER, NULL, vertexShaderSource)) {        return false;    }    if(!AddShader(GL_FRAGMENT_SHADER, NULL, fragmentShaderSource)) {        return false;    }    if(!LinkProgram()) {        return false;    }    return true;}
开发者ID:alwaystiys,项目名称:OpenGL,代码行数:15,


示例26: CompileShaders

static void CompileShaders(){    GLuint ShaderProgram = glCreateProgram();    if (ShaderProgram == 0) {        fprintf(stderr, "Error creating shader program/n");        exit(1);    }	    string vs, fs;    if (!ReadFile(pVSFileName, vs)) {        exit(1);    };    if (!ReadFile(pFSFileName, fs)) {        exit(1);    };    AddShader(ShaderProgram, vs.c_str(), GL_VERTEX_SHADER);    AddShader(ShaderProgram, fs.c_str(), GL_FRAGMENT_SHADER);    GLint Success = 0;    GLchar ErrorLog[1024] = { 0 };    glLinkProgram(ShaderProgram);    glGetProgramiv(ShaderProgram, GL_LINK_STATUS, &Success);	if (Success == 0) {		glGetProgramInfoLog(ShaderProgram, sizeof(ErrorLog), NULL, ErrorLog);		fprintf(stderr, "Error linking shader program: '%s'/n", ErrorLog);        exit(1);	}    glValidateProgram(ShaderProgram);    glGetProgramiv(ShaderProgram, GL_VALIDATE_STATUS, &Success);    if (!Success) {        glGetProgramInfoLog(ShaderProgram, sizeof(ErrorLog), NULL, ErrorLog);        fprintf(stderr, "Invalid shader program: '%s'/n", ErrorLog);        exit(1);    }    glUseProgram(ShaderProgram);    gWVPLocation = glGetUniformLocation(ShaderProgram, "gWVP");    assert(gWVPLocation != 0xFFFFFFFF);    gSampler = glGetUniformLocation(ShaderProgram, "gSampler");    assert(gSampler != 0xFFFFFFFF);}
开发者ID:LSilent,项目名称:OpenGL_Step_By_Step_Source,代码行数:48,


示例27: CompileShaders

GLuint CompileShaders(){	//Start the process of setting up our shaders by creating a program ID	//Note: we will link all the shaders together into this ID	shaderProgramID = glCreateProgram();	if (shaderProgramID == 0) {		fprintf(stderr, "Error creating shader program/n");		system("pause");		exit(1);	}	// Create two shader objects, one for the vertex, and one for the fragment shader	AddShader(shaderProgramID, "../Shaders/simpleVertexShader.txt", GL_VERTEX_SHADER);	//	AddShader(shaderProgramID, "../Shaders/skybox_technique.vert", GL_VERTEX_SHADER);	AddShader(shaderProgramID, "../Shaders/simpleFragmentShader.txt", GL_FRAGMENT_SHADER);	//	AddShader(shaderProgramID, "../Shaders/skybox_technique.frag", GL_FRAGMENT_SHADER);	GLint Success = 0;	GLchar ErrorLog[1024] = { 0 };	// After compiling all shader objects and attaching them to the program, we can finally link it	glLinkProgram(shaderProgramID);	// check for program related errors using glGetProgramiv	glGetProgramiv(shaderProgramID, GL_LINK_STATUS, &Success);	if (Success == 0) {		glGetProgramInfoLog(shaderProgramID, sizeof(ErrorLog), NULL, ErrorLog);		fprintf(stderr, "Error linking shader program: '%s'/n", ErrorLog);		system("pause");		exit(1);	}	// program has been successfully linked but needs to be validated to check whether the program can execute given the current pipeline state	glValidateProgram(shaderProgramID);	// check for program related errors using glGetProgramiv	glGetProgramiv(shaderProgramID, GL_VALIDATE_STATUS, &Success);	if (!Success) {		glGetProgramInfoLog(shaderProgramID, sizeof(ErrorLog), NULL, ErrorLog);		fprintf(stderr, "Invalid shader program: '%s'/n", ErrorLog);		system("pause");		exit(1);	}	// Finally, use the linked shader program	// Note: this program will stay in effect for all draw calls until you replace it with another or explicitly disable its use	glUseProgram(shaderProgramID);	return shaderProgramID;}
开发者ID:henderjm,项目名称:Graphics,代码行数:48,


示例28: LoadShaderTextFile

bool Technique::LoadShader ( GLenum shaderType, const char * pFilename ){  char *pShaderText = 0;  return    LoadShaderTextFile ( pFilename, pShaderText ) &&    AddShader ( shaderType, pShaderText );}
开发者ID:Kirill71,项目名称:OpenGL,代码行数:7,


示例29: Shader

Shader* ShaderManager::AddShader(std::string n_name){  Shader* tmp_newShader = new Shader(GetResourcePath(n_name));  tmp_newShader->Init();  AddShader(n_name, tmp_newShader);  return tmp_newShader;}
开发者ID:inosms,项目名称:innocence,代码行数:7,



注:本文中的AddShader函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ AddSolidFlags函数代码示例
C++ AddSequential函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。