* ArrayBuffer: fixed some small bugs for OpenGL ES
[LazOpenGLCore.git] / uglcShader.pas
index 0708643..bcc2360 100644 (file)
@@ -145,6 +145,8 @@ type
 \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
@@ -193,10 +195,10 @@ end;
 //@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
@@ -329,7 +331,7 @@ var
   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
@@ -771,6 +773,19 @@ begin
 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
@@ -862,30 +877,6 @@ begin
     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