\r
function GetUniformfv(const aName: String; aP: PGLfloat): Boolean;\r
function GetUniformfi(const aName: String; aP: PGLint): Boolean;\r
+ procedure BindAttribLocation(const aName: String; const aAttribIndex: GLint);\r
+ function GetAttribLocation(const aName: String): Integer;\r
function HasUniform(const aName: String): Boolean;\r
\r
procedure LoadFromFile(const aFilename: String);\r
//@result: TRUE wenn ohne Fehler kompiliert, sonst FALSE;\r
function TglcShaderObject.GetCompiled: Boolean;\r
var\r
- value: glInt;\r
+ value: GLint;\r
begin\r
glGetShaderiv(fShaderObj, GL_COMPILE_STATUS, @value);\r
- result := (value = GL_TRUE);\r
+ result := (value = GLint(GL_TRUE));\r
end;\r
\r
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r
value: glInt;\r
begin\r
glGetProgramiv(fProgramObj, GL_LINK_STATUS, @value);\r
- result := (value = GL_TRUE);\r
+ result := (value = GLint(GL_TRUE));\r
end;\r
\r
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r
end;\r
\r
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r
+procedure TglcShaderProgram.BindAttribLocation(const aName: String; const aAttribIndex: GLint);\r
+begin\r
+ CreateProgramObj;\r
+ glBindAttribLocation(fProgramObj, aAttribIndex, PGLchar(aName));\r
+end;\r
+\r
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r
+function TglcShaderProgram.GetAttribLocation(const aName: String): Integer;\r
+begin\r
+ result := glGetAttribLocation(fProgramObj, PGLchar(aName));\r
+end;\r
+\r
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r
function TglcShaderProgram.HasUniform(const aName: String): Boolean;\r
var\r
pos: GLint;\r
rx.Free;\r
sl.Free;\r
end;\r
-\r
-\r
- {\r
- if Assigned(aStream) then begin\r
- Clear;\r
- fFilename := '';\r
- reader := TutlStreamReader.Create(aStream);\r
- try\r
- if reader.ReadAnsiString <> GLSL_FILE_HEADER then\r
- raise EglcShader.Create('TglShaderProgram.SaveToStream - incompatible file');\r
- v := reader.ReadInteger;\r
-\r
- if v >= 100 then begin //version 1.00\r
- c := reader.ReadInteger;\r
- for i := 0 to c-1 do begin\r
- Add(TglcShaderObject.Create(Cardinal(reader.ReadInteger), fOnLog));\r
- Last.fCode := reader.ReadAnsiString;\r
- end;\r
- end;\r
- finally\r
- reader.Free;\r
- end;\r
- end else\r
- }\r
end;\r
\r
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////\r