unsigned int ShaderProgramGL::createProgram(int vs, int fs, const VertexDeclarationGL* decl)
    {
        int p = oxglCreateProgram();
        oxglAttachShader(p, vs);
        oxglAttachShader(p, fs);

        for (int i = 0; i < decl->numElements; ++i)
            oxglBindAttribLocation(p, decl->elements[i].index, decl->elements[i].name);

        oxglLinkProgram(p);


        std::string log;
        bool success = getProgramBuildLog(p, log);

        if (success)
        {
            //log::messageln("compiled shader: %s", log.c_str());
        }
        else
        {
            log::error("can't link gl program: %s", log.c_str());
            oxglDeleteProgram(p);
            p = 0;
        }

        CHECKGL();

        return p;
    }
示例#2
0
	ShaderProgramGL::~ShaderProgramGL()
	{
		if (_program)
			oxglDeleteProgram(_program);
        CHECKGL();
	}