aboutsummaryrefslogtreecommitdiff
path: root/src/libGLESv2/libGLESv2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libGLESv2/libGLESv2.cpp')
-rw-r--r--src/libGLESv2/libGLESv2.cpp74
1 files changed, 34 insertions, 40 deletions
diff --git a/src/libGLESv2/libGLESv2.cpp b/src/libGLESv2/libGLESv2.cpp
index 85afdd36..bf3cd0fd 100644
--- a/src/libGLESv2/libGLESv2.cpp
+++ b/src/libGLESv2/libGLESv2.cpp
@@ -844,14 +844,14 @@ void __stdcall glCompressedTexImage2D(GLenum target, GLint level, GLenum interna
{
if (context->getClientVersion() < 3 &&
!ValidateES2TexImageParameters(context, target, level, internalformat, true, false,
- 0, 0, width, height, 0, GL_NONE, GL_NONE, data))
+ 0, 0, width, height, border, GL_NONE, GL_NONE, data))
{
return;
}
if (context->getClientVersion() >= 3 &&
!ValidateES3TexImageParameters(context, target, level, internalformat, true, false,
- 0, 0, 0, width, height, 1, 0, GL_NONE, GL_NONE, data))
+ 0, 0, 0, width, height, 1, border, GL_NONE, GL_NONE, data))
{
return;
}
@@ -2692,11 +2692,11 @@ void __stdcall glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attac
GLuint attachmentHandle;
GLuint attachmentLevel;
GLuint attachmentLayer;
- gl::Renderbuffer *renderbuffer;
+ gl::FramebufferAttachment *attachmentObject;
- if(framebufferHandle == 0)
+ if (framebufferHandle == 0)
{
- if(context->getClientVersion() < 3)
+ if (context->getClientVersion() < 3)
{
return gl::error(GL_INVALID_OPERATION);
}
@@ -2708,21 +2708,21 @@ void __stdcall glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attac
attachmentHandle = framebuffer->getColorbufferHandle(0);
attachmentLevel = framebuffer->getColorbufferMipLevel(0);
attachmentLayer = framebuffer->getColorbufferLayer(0);
- renderbuffer = framebuffer->getColorbuffer(0);
+ attachmentObject = framebuffer->getColorbuffer(0);
break;
case GL_DEPTH:
attachmentType = framebuffer->getDepthbufferType();
attachmentHandle = framebuffer->getDepthbufferHandle();
attachmentLevel = framebuffer->getDepthbufferMipLevel();
attachmentLayer = framebuffer->getDepthbufferLayer();
- renderbuffer = framebuffer->getDepthbuffer();
+ attachmentObject = framebuffer->getDepthbuffer();
break;
case GL_STENCIL:
attachmentType = framebuffer->getStencilbufferType();
attachmentHandle = framebuffer->getStencilbufferHandle();
attachmentLevel = framebuffer->getStencilbufferMipLevel();
attachmentLayer = framebuffer->getStencilbufferLayer();
- renderbuffer = framebuffer->getStencilbuffer();
+ attachmentObject = framebuffer->getStencilbuffer();
break;
default:
return gl::error(GL_INVALID_OPERATION);
@@ -2737,7 +2737,7 @@ void __stdcall glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attac
attachmentHandle = framebuffer->getColorbufferHandle(colorAttachment);
attachmentLevel = framebuffer->getColorbufferMipLevel(colorAttachment);
attachmentLayer = framebuffer->getColorbufferLayer(colorAttachment);
- renderbuffer = framebuffer->getColorbuffer(colorAttachment);
+ attachmentObject = framebuffer->getColorbuffer(colorAttachment);
}
else
{
@@ -2748,14 +2748,14 @@ void __stdcall glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attac
attachmentHandle = framebuffer->getDepthbufferHandle();
attachmentLevel = framebuffer->getDepthbufferMipLevel();
attachmentLayer = framebuffer->getDepthbufferLayer();
- renderbuffer = framebuffer->getDepthbuffer();
+ attachmentObject = framebuffer->getDepthbuffer();
break;
case GL_STENCIL_ATTACHMENT:
attachmentType = framebuffer->getStencilbufferType();
attachmentHandle = framebuffer->getStencilbufferHandle();
attachmentLevel = framebuffer->getStencilbufferMipLevel();
attachmentLayer = framebuffer->getStencilbufferLayer();
- renderbuffer = framebuffer->getStencilbuffer();
+ attachmentObject = framebuffer->getStencilbuffer();
break;
case GL_DEPTH_STENCIL_ATTACHMENT:
if (framebuffer->getDepthbufferHandle() != framebuffer->getStencilbufferHandle())
@@ -2766,7 +2766,7 @@ void __stdcall glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attac
attachmentHandle = framebuffer->getDepthStencilbufferHandle();
attachmentLevel = framebuffer->getDepthStencilbufferMipLevel();
attachmentLayer = framebuffer->getDepthStencilbufferLayer();
- renderbuffer = framebuffer->getDepthStencilBuffer();
+ attachmentObject = framebuffer->getDepthStencilBuffer();
break;
default:
return gl::error(GL_INVALID_OPERATION);
@@ -2831,7 +2831,7 @@ void __stdcall glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attac
{
ASSERT(attachmentObjectType == GL_RENDERBUFFER || attachmentObjectType == GL_TEXTURE ||
attachmentObjectType == GL_FRAMEBUFFER_DEFAULT);
- ASSERT(renderbuffer != NULL);
+ ASSERT(attachmentObject != NULL);
switch (pname)
{
@@ -2864,27 +2864,27 @@ void __stdcall glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attac
break;
case GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE:
- *params = renderbuffer->getRedSize();
+ *params = attachmentObject->getRedSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:
- *params = renderbuffer->getGreenSize();
+ *params = attachmentObject->getGreenSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:
- *params = renderbuffer->getBlueSize();
+ *params = attachmentObject->getBlueSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:
- *params = renderbuffer->getAlphaSize();
+ *params = attachmentObject->getAlphaSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:
- *params = renderbuffer->getDepthSize();
+ *params = attachmentObject->getDepthSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:
- *params = renderbuffer->getStencilSize();
+ *params = attachmentObject->getStencilSize();
break;
case GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:
@@ -2892,11 +2892,11 @@ void __stdcall glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attac
{
gl::error(GL_INVALID_OPERATION);
}
- *params = renderbuffer->getComponentType();
+ *params = attachmentObject->getComponentType();
break;
case GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:
- *params = renderbuffer->getColorEncoding();
+ *params = attachmentObject->getColorEncoding();
break;
case GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:
@@ -3188,23 +3188,23 @@ void __stdcall glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint*
return gl::error(GL_INVALID_OPERATION);
}
- gl::Renderbuffer *renderbuffer = context->getRenderbuffer(context->getRenderbufferHandle());
+ gl::FramebufferAttachment *attachment = context->getRenderbuffer(context->getRenderbufferHandle());
switch (pname)
{
- case GL_RENDERBUFFER_WIDTH: *params = renderbuffer->getWidth(); break;
- case GL_RENDERBUFFER_HEIGHT: *params = renderbuffer->getHeight(); break;
- case GL_RENDERBUFFER_INTERNAL_FORMAT: *params = renderbuffer->getInternalFormat(); break;
- case GL_RENDERBUFFER_RED_SIZE: *params = renderbuffer->getRedSize(); break;
- case GL_RENDERBUFFER_GREEN_SIZE: *params = renderbuffer->getGreenSize(); break;
- case GL_RENDERBUFFER_BLUE_SIZE: *params = renderbuffer->getBlueSize(); break;
- case GL_RENDERBUFFER_ALPHA_SIZE: *params = renderbuffer->getAlphaSize(); break;
- case GL_RENDERBUFFER_DEPTH_SIZE: *params = renderbuffer->getDepthSize(); break;
- case GL_RENDERBUFFER_STENCIL_SIZE: *params = renderbuffer->getStencilSize(); break;
+ case GL_RENDERBUFFER_WIDTH: *params = attachment->getWidth(); break;
+ case GL_RENDERBUFFER_HEIGHT: *params = attachment->getHeight(); break;
+ case GL_RENDERBUFFER_INTERNAL_FORMAT: *params = attachment->getInternalFormat(); break;
+ case GL_RENDERBUFFER_RED_SIZE: *params = attachment->getRedSize(); break;
+ case GL_RENDERBUFFER_GREEN_SIZE: *params = attachment->getGreenSize(); break;
+ case GL_RENDERBUFFER_BLUE_SIZE: *params = attachment->getBlueSize(); break;
+ case GL_RENDERBUFFER_ALPHA_SIZE: *params = attachment->getAlphaSize(); break;
+ case GL_RENDERBUFFER_DEPTH_SIZE: *params = attachment->getDepthSize(); break;
+ case GL_RENDERBUFFER_STENCIL_SIZE: *params = attachment->getStencilSize(); break;
case GL_RENDERBUFFER_SAMPLES_ANGLE:
if (context->getMaxSupportedSamples() != 0)
{
- *params = renderbuffer->getSamples();
+ *params = attachment->getSamples();
}
else
{
@@ -4237,7 +4237,7 @@ GLboolean __stdcall glIsRenderbuffer(GLuint renderbuffer)
if (context && renderbuffer)
{
- gl::Renderbuffer *renderbufferObject = context->getRenderbuffer(renderbuffer);
+ gl::FramebufferAttachment *renderbufferObject = context->getRenderbuffer(renderbuffer);
if (renderbufferObject)
{
@@ -6118,18 +6118,12 @@ void __stdcall glCopyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GL
return gl::error(GL_INVALID_OPERATION);
}
- if (!ValidateES3CopyTexImageParameters(context, target, level, GL_NONE, false, xoffset, yoffset, zoffset,
+ if (!ValidateES3CopyTexImageParameters(context, target, level, GL_NONE, true, xoffset, yoffset, zoffset,
x, y, width, height, 0))
{
return;
}
- // Zero sized copies are valid but no-ops
- if (width == 0 || height == 0)
- {
- return;
- }
-
gl::Framebuffer *framebuffer = context->getReadFramebuffer();
gl::Texture *texture = NULL;
switch (target)