示例#1
0
void ShaderLibrary::loadPreferences()
{
    QString defaultShader(Preferences::DefaultShader());
    if (defaultShader.isEmpty()) defaultShader = NoShader;
    QVariantMap defaultShaderParameters(Preferences::DefaultShaderParameters());
    setUniformVariables(defaultShader, defaultShaderParameters);
    bindShader(defaultShader);
}
示例#2
0
文件: GlslBase.cpp 项目: spinos/aphid
char GLSLBase::initializeShaders(std::string& log)
{
    log = "";
	GLint vertex_compiled, fragment_compiled;
	GLint linked;
		
// Delete any existing program object 
	if (program_object) {
		glDeleteObjectARB(program_object);
		program_object = NULL;
	}
		
	vertex_shader = glCreateShaderObjectARB(GL_VERTEX_SHADER_ARB);
	const char* a = vertexProgramSource();
	glShaderSourceARB(vertex_shader, 1, &a, NULL);
	glCompileShaderARB(vertex_shader);
	glGetObjectParameterivARB(vertex_shader, GL_OBJECT_COMPILE_STATUS_ARB, &vertex_compiled);
	
	fragment_shader   = glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB);
	const char* b = fragmentProgramSource();
	glShaderSourceARB(fragment_shader, 1, &b, NULL);
	glCompileShaderARB(fragment_shader);
	glGetObjectParameterivARB(fragment_shader, GL_OBJECT_COMPILE_STATUS_ARB, &fragment_compiled);
	
	if (!vertex_compiled || !fragment_compiled) {
		if (vertex_shader) {
			glDeleteObjectARB(vertex_shader);
			vertex_shader   = NULL;
			log += "\n Glsl error vertex shader not compiled \n";
		}
		if (fragment_shader) {
			glDeleteObjectARB(fragment_shader);
			fragment_shader = NULL;
			log += "\n Glsl error fragment shader not compiled \n";
		}
		return 0;
	}
	
	program_object = glCreateProgramObjectARB();
	if (vertex_shader != NULL)
	{
		glAttachObjectARB(program_object, vertex_shader);
		glDeleteObjectARB(vertex_shader);
	}
	if (fragment_shader != NULL)
	{
		glAttachObjectARB(program_object, fragment_shader);
		glDeleteObjectARB(fragment_shader);
	}
	glLinkProgramARB(program_object);
	glGetObjectParameterivARB(program_object, GL_OBJECT_LINK_STATUS_ARB, &linked);
		
	if (!linked) {
		glDeleteObjectARB(program_object);
		program_object = NULL;
		log += "\n Glsl error shaders not linked";
		return 0;
	}

	defaultShaderParameters();
	log += "\n Glsl shaders compiled";
	m_hasShaders = 1;
	return 1;
}