- ProgramObject := glCreateProgram;
- sl := TStringList.Create;
- //Vertex Shader (ppl)
- VS := glCreateShader(GL_VERTEX_SHADER);
- sl.LoadFromFile('..\data\shadertest\easytl.vs');
- str := sl.Text;
- strlen := Length(sl.Text);
- glShaderSource(ProgramObject,1,PPGLChar(str),@strlen);
- glCompileShader(VS);
- {$IFDEF DEBUG}
- if IsConsole then
- begin
- WriteLn(glGetShaderLog(VS));
- WriteLn(sl.Text);
- end;
- {$ENDIF}
- glAttachShader(ProgramObject,VS);
- glDeleteShader(VS);
- //Fragment Shader (ppl)
- FS := glCreateShader(GL_FRAGMENT_SHADER);
- sl.LoadFromFile('..\data\shadertest\easytl.fs');
- str := sl.Text;
- strlen := Length(sl.Text);
- glShaderSource(ProgramObject,1,PPGLChar(str),@strlen);
- glCompileShader(FS);
- {$IFDEF DEBUG}
- if IsConsole then
- begin
- WriteLn(glGetShaderLog(FS));
- WriteLn(sl.Text);
- end;
- {$ENDIF}
- glAttachShader(ProgramObject,FS);
- glDeleteShader(FS);
- glLinkProgram(ProgramObject);