- var oStringList: TStringList;
- ShaderText: String;
- ShaderLength: Integer;
- begin
- //objekte klarmachen
- oProgram:=glCreateProgram;
- oVertex:=glCreateShader(GL_VERTEX_SHADER);
- oFragment:=glCreateShader(GL_FRAGMENT_SHADER);
- oStringList:=TStringList.Create;
- //vertexshader laden
- oStringList.LoadFromFile(pPath+pDirectory+pName+'.vs');
- ShaderText:=oStringList.Text;
- ShaderLength:=length(ShaderText);
- glShaderSource(oVertex,1,@ShaderText,@ShaderLength);
- //fragmentshader laden
- oStringList.LoadFromFile(pPath+pDirectory+pName+'.fs');
- ShaderText:=oStringList.Text;
- ShaderLength:=length(ShaderText);
- glShaderSource(oFragment,1,@ShaderText,@ShaderLength);
- //compilieren & loggen
- oStringList.Clear;
- glCompileShader(oVertex);
- oStringList.Add(GetShaderLog(oVertex));
- glCompileShader(oFragment);
- oStringList.Add(GetShaderLog(oFragment));
- glAttachShader(oProgram,oVertex);
- glAttachShader(oProgram,oFragment);
- glLinkProgram(oProgram);
- glDeleteShader(oVertex);
- glDeleteShader(oFragment);
- oStringList.Add(GetProgramLog(oProgram));
- oStringList.SaveToFile(pPath+pDirectory+pName+'-log.txt');
- end;