Ecere Software
/
sdk
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
e3faf4c
)
ecere/gfx/drivers/OpenGL: GLAB fixes to build on Windows
author
Jerome St-Louis
<jerome@ecere.com>
Thu, 18 Jun 2015 05:42:10 +0000
(
01:42
-0400)
committer
Jerome St-Louis
<jerome@ecere.com>
Tue, 22 Dec 2015 06:45:21 +0000
(
01:45
-0500)
ecere/src/gfx/drivers/OpenGLDisplayDriver.ec
patch
|
blob
|
history
diff --git
a/ecere/src/gfx/drivers/OpenGLDisplayDriver.ec
b/ecere/src/gfx/drivers/OpenGLDisplayDriver.ec
index
59a24df
..
75039a7
100644
(file)
--- a/
ecere/src/gfx/drivers/OpenGLDisplayDriver.ec
+++ b/
ecere/src/gfx/drivers/OpenGLDisplayDriver.ec
@@
-1348,12
+1348,9
@@
public struct GLAB
if(this != null)
{
if(!buffer)
if(this != null)
{
if(!buffer)
-
glGenBuffers(1, &buffer
);
+
GLGenBuffers(1, this
);
if(curArrayBuffer != buffer)
if(curArrayBuffer != buffer)
- {
- glBindBuffer(GL_ARRAY_BUFFER, buffer);
- curArrayBuffer = buffer;
- }
+ GLBindBuffer(GL_ARRAY_BUFFER, buffer);
glBufferData(GL_ARRAY_BUFFER, size, data, GL_STATIC_DRAW); //GL_DYNAMIC_DRAW);
}
}
glBufferData(GL_ARRAY_BUFFER, size, data, GL_STATIC_DRAW); //GL_DYNAMIC_DRAW);
}
}
@@
-1362,7
+1359,7
@@
public struct GLAB
{
if(this != null)
{
{
if(this != null)
{
-
glDeleteBuffers(1, &buffer
);
+
GLDeleteBuffers(1, this
);
buffer = 0;
}
}
buffer = 0;
}
}
@@
-1370,10
+1367,7
@@
public struct GLAB
void use(GLBufferContents contents, int n, int type, uint stride, void * pointer)
{
if(curArrayBuffer != ((this != null) ? buffer : 0))
void use(GLBufferContents contents, int n, int type, uint stride, void * pointer)
{
if(curArrayBuffer != ((this != null) ? buffer : 0))
- {
- glBindBuffer(GL_ARRAY_BUFFER, ((this != null) ? buffer : 0));
- curArrayBuffer = ((this != null) ? buffer : 0);
- }
+ GLBindBuffer(GL_ARRAY_BUFFER, ((this != null) ? buffer : 0));
switch(contents)
{
case normal: glNormalPointer(type, stride, pointer); break;
switch(contents)
{
case normal: glNormalPointer(type, stride, pointer); break;
@@
-1397,13
+1391,10
@@
public struct GLEAB
if(this != null)
{
if(!buffer)
if(this != null)
{
if(!buffer)
-
glGenBuffers(1, &buffer
);
+
GLGenBuffers(1, (GLAB *)this
);
if(curElementBuffer != buffer)
if(curElementBuffer != buffer)
- {
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffer);
- curElementBuffer = buffer;
- }
+ GLBindBuffer(GL_ELEMENT_ARRAY_BUFFER, buffer);
glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, data, GL_STATIC_DRAW); //GL_DYNAMIC_DRAW);
}
}
glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, data, GL_STATIC_DRAW); //GL_DYNAMIC_DRAW);
}
}
@@
-1412,7
+1403,7
@@
public struct GLEAB
{
if(this != null)
{
{
if(this != null)
{
-
glDeleteBuffers(1, &buffer
);
+
GLDeleteBuffers(1, (GLAB *)this
);
buffer = 0;
}
}
buffer = 0;
}
}
@@
-1420,10
+1411,7
@@
public struct GLEAB
void draw(int primType, int count, int type, void * indices)
{
if(curElementBuffer != ((this != null) ? buffer : 0))
void draw(int primType, int count, int type, void * indices)
{
if(curElementBuffer != ((this != null) ? buffer : 0))
- {
- glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ((this != null) ? buffer : 0));
- curElementBuffer = ((this != null) ? buffer : 0);
- }
+ GLBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ((this != null) ? buffer : 0));
glDrawElements(primType, count, type, indices);
}
};
glDrawElements(primType, count, type, indices);
}
};
@@
-1442,6
+1430,15
@@
public void GLGenBuffers(int count, GLAB * buffers)
public void GLDeleteBuffers(int count, GLAB * buffers)
{
public void GLDeleteBuffers(int count, GLAB * buffers)
{
+ int i;
+ for(i = 0; i < count; i++)
+ {
+ uint buffer = buffers[i].buffer;
+ if(buffer == curArrayBuffer)
+ GLBindBuffer(GL_ARRAY_BUFFER_ARB, 0);
+ else if(buffer == curElementBuffer)
+ GLBindBuffer(GL_ELEMENT_ARRAY_BUFFER_ARB, 0);
+ }
#if defined(__ANDROID__) || defined(__ODROID__)
glDeleteBuffers(count, (GLuint *)buffers);
#else
#if defined(__ANDROID__) || defined(__ODROID__)
glDeleteBuffers(count, (GLuint *)buffers);
#else