projects
/
LazOpenGLCore.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
* ArrayBuffer: fixed some small bugs for OpenGL ES
[LazOpenGLCore.git]
/
uglcArrayBuffer.pas
diff --git
a/uglcArrayBuffer.pas
b/uglcArrayBuffer.pas
index
87814e6
..
5d6f8de
100644
(file)
--- a/
uglcArrayBuffer.pas
+++ b/
uglcArrayBuffer.pas
@@
-137,9
+137,10
@@
begin
{$IFNDEF OPENGL_ES}
result := glMapBuffer(GLenum(fTarget), GLenum(aAccess));
{$ELSE}
{$IFNDEF OPENGL_ES}
result := glMapBuffer(GLenum(fTarget), GLenum(aAccess));
{$ELSE}
- if not GL_OES_mapbuffer then
+ if GL_OES_mapbuffer then
+ result := glMapBufferOES(GLenum(fTarget), GLenum(aAccess))
+ else
raise EglcArrayBuffer.Create('map buffer is not supported by video card');
raise EglcArrayBuffer.Create('map buffer is not supported by video card');
- result := glMapBufferOES(GLenum(fTarget), GLenum(aAccess));
{$ENDIF}
glcCheckAndRaiseError;
end;
{$ENDIF}
glcCheckAndRaiseError;
end;
@@
-152,9
+153,12
@@
begin
raise EglcArrayBuffer.Create('map buffer range is not supported by video card');
result := glMapBufferRange(GLenum(fTarget), aOffset, aSize, GLenum(aAccess));
{$ELSE}
raise EglcArrayBuffer.Create('map buffer range is not supported by video card');
result := glMapBufferRange(GLenum(fTarget), aOffset, aSize, GLenum(aAccess));
{$ELSE}
- if not GL_VERSION_3_0 then
+ if GL_VERSION_3_0 then
+ result := glMapBufferRange(GLenum(fTarget), aOffset, aSize, GLenum(aAccess))
+ else if GL_EXT_map_buffer_range then
+ result := glMapBufferRangeEXT(GLenum(fTarget), aOffset, aSize, GLenum(aAccess))
+ else
raise EglcArrayBuffer.Create('map buffer range is not supported by video card');
raise EglcArrayBuffer.Create('map buffer range is not supported by video card');
- result := glMapBufferRange(GLenum(fTarget), aOffset, aSize, GLenum(aAccess));
{$ENDIF}
end;
{$ENDIF}
end;
@@
-164,9
+168,12
@@
begin
{$IFNDEF OPENGL_ES}
glUnmapBuffer(GLenum(fTarget));
{$ELSE}
{$IFNDEF OPENGL_ES}
glUnmapBuffer(GLenum(fTarget));
{$ELSE}
- if not (GL_OES_mapbuffer or GL_VERSION_3_0) then
+ if GL_VERSION_3_0 then
+ glUnmapBuffer(GLenum(fTarget))
+ else if GL_OES_mapbuffer then
+ glUnmapBufferOES(GLenum(fTarget))
+ else
raise EglcArrayBuffer.Create('unmap buffer is not supported by video card');
raise EglcArrayBuffer.Create('unmap buffer is not supported by video card');
- glUnmapBuffer(GLenum(fTarget));
{$ENDIF}
end;
{$ENDIF}
end;
@@
-192,6
+199,7
@@
begin
if not GL_VERSION_2_0 then
raise EglcArrayBuffer.Create('Create - VertexBuffer: not supported');
{$ENDIF}
if not GL_VERSION_2_0 then
raise EglcArrayBuffer.Create('Create - VertexBuffer: not supported');
{$ENDIF}
+ glGetError();
inherited Create;
glGenBuffers(1, @fID);
fDataCount := 0;
inherited Create;
glGenBuffers(1, @fID);
fDataCount := 0;