Implement an OpenGL 2.1 prototype.
Bug 18962347
Change-Id: I9a7b07647b1b3f561dd9e4597670e63641b155a8
Reviewed-on: https://swiftshader-review.googlesource.com/1810
Reviewed-by: Nicolas Capens <capn@google.com>
Tested-by: Nicolas Capens <capn@google.com>
diff --git a/src/OpenGL/libGL/Renderbuffer.cpp b/src/OpenGL/libGL/Renderbuffer.cpp
index 48dd238..db49371 100644
--- a/src/OpenGL/libGL/Renderbuffer.cpp
+++ b/src/OpenGL/libGL/Renderbuffer.cpp
@@ -11,7 +11,7 @@
// Renderbuffer.cpp: the Renderbuffer class and its derived classes
// Colorbuffer, Depthbuffer and Stencilbuffer. Implements GL renderbuffer
-// objects and related functionality. [OpenGL ES 2.0.24] section 4.4.3 page 108.
+// objects and related functionality.
#include "Renderbuffer.h"
@@ -90,25 +90,13 @@
mTexture2D->releaseProxy(proxy);
}
-// Increments refcount on image.
-// caller must release() the returned image
-egl::Image *RenderbufferTexture2D::getRenderTarget()
+// Increments refcount on surface.
+// caller must release() the returned surface
+Image *RenderbufferTexture2D::getRenderTarget()
{
return mTexture2D->getRenderTarget(GL_TEXTURE_2D, 0);
}
-// Increments refcount on image.
-// caller must release() the returned image
-egl::Image *RenderbufferTexture2D::createSharedImage()
-{
- return mTexture2D->createSharedImage(GL_TEXTURE_2D, 0);
-}
-
-bool RenderbufferTexture2D::isShared() const
-{
- return mTexture2D->isShared(GL_TEXTURE_2D, 0);
-}
-
GLsizei RenderbufferTexture2D::getWidth() const
{
return mTexture2D->getWidth(GL_TEXTURE_2D, 0);
@@ -158,25 +146,13 @@
mTextureCubeMap->releaseProxy(proxy);
}
-// Increments refcount on image.
-// caller must release() the returned image
+// Increments refcount on surface.
+// caller must release() the returned surface
Image *RenderbufferTextureCubeMap::getRenderTarget()
{
return mTextureCubeMap->getRenderTarget(mTarget, 0);
}
-// Increments refcount on image.
-// caller must release() the returned image
-egl::Image *RenderbufferTextureCubeMap::createSharedImage()
-{
- return mTextureCubeMap->createSharedImage(mTarget, 0);
-}
-
-bool RenderbufferTextureCubeMap::isShared() const
-{
- return mTextureCubeMap->isShared(mTarget, 0);
-}
-
GLsizei RenderbufferTextureCubeMap::getWidth() const
{
return mTextureCubeMap->getWidth(mTarget, 0);
@@ -231,25 +207,13 @@
Object::release();
}
-// Increments refcount on image.
-// caller must Release() the returned image
-egl::Image *Renderbuffer::getRenderTarget()
+// Increments refcount on surface.
+// caller must Release() the returned surface
+Image *Renderbuffer::getRenderTarget()
{
return mInstance->getRenderTarget();
}
-// Increments refcount on image.
-// caller must Release() the returned image
-egl::Image *Renderbuffer::createSharedImage()
-{
- return mInstance->createSharedImage();
-}
-
-bool Renderbuffer::isShared() const
-{
- return mInstance->isShared();
-}
-
GLsizei Renderbuffer::getWidth() const
{
return mInstance->getWidth();
@@ -326,6 +290,13 @@
{
}
+// Increments refcount on surface.
+// caller must Release() the returned surface
+Image *RenderbufferStorage::getRenderTarget()
+{
+ return NULL;
+}
+
GLsizei RenderbufferStorage::getWidth() const
{
return mWidth;
@@ -351,7 +322,7 @@
return mSamples;
}
-Colorbuffer::Colorbuffer(egl::Image *renderTarget) : mRenderTarget(renderTarget)
+Colorbuffer::Colorbuffer(Image *renderTarget) : mRenderTarget(renderTarget)
{
if(renderTarget)
{
@@ -361,7 +332,7 @@
mHeight = renderTarget->getHeight();
internalFormat = renderTarget->getInternalFormat();
format = sw2es::ConvertBackBufferFormat(internalFormat);
- mSamples = renderTarget->getDepth() & ~1;
+ mSamples = renderTarget->getMultiSampleDepth() & ~1;
}
}
@@ -398,9 +369,9 @@
}
}
-// Increments refcount on image.
-// caller must release() the returned image
-egl::Image *Colorbuffer::getRenderTarget()
+// Increments refcount on surface.
+// caller must release() the returned surface
+Image *Colorbuffer::getRenderTarget()
{
if(mRenderTarget)
{
@@ -410,25 +381,7 @@
return mRenderTarget;
}
-// Increments refcount on image.
-// caller must release() the returned image
-egl::Image *Colorbuffer::createSharedImage()
-{
- if(mRenderTarget)
- {
- mRenderTarget->addRef();
- mRenderTarget->markShared();
- }
-
- return mRenderTarget;
-}
-
-bool Colorbuffer::isShared() const
-{
- return mRenderTarget->isShared();
-}
-
-DepthStencilbuffer::DepthStencilbuffer(egl::Image *depthStencil) : mDepthStencil(depthStencil)
+DepthStencilbuffer::DepthStencilbuffer(Image *depthStencil) : mDepthStencil(depthStencil)
{
if(depthStencil)
{
@@ -438,7 +391,7 @@
mHeight = depthStencil->getHeight();
internalFormat = depthStencil->getInternalFormat();
format = sw2es::ConvertDepthStencilFormat(internalFormat);
- mSamples = depthStencil->getDepth() & ~1;
+ mSamples = depthStencil->getMultiSampleDepth() & ~1;
}
}
@@ -463,7 +416,7 @@
mWidth = width;
mHeight = height;
- format = GL_DEPTH24_STENCIL8_OES;
+ format = GL_DEPTH24_STENCIL8_EXT;
internalFormat = sw::FORMAT_D24S8;
mSamples = supportedSamples & ~1;
}
@@ -476,9 +429,9 @@
}
}
-// Increments refcount on image.
-// caller must release() the returned image
-egl::Image *DepthStencilbuffer::getRenderTarget()
+// Increments refcount on surface.
+// caller must release() the returned surface
+Image *DepthStencilbuffer::getRenderTarget()
{
if(mDepthStencil)
{
@@ -488,25 +441,7 @@
return mDepthStencil;
}
-// Increments refcount on image.
-// caller must release() the returned image
-egl::Image *DepthStencilbuffer::createSharedImage()
-{
- if(mDepthStencil)
- {
- mDepthStencil->addRef();
- mDepthStencil->markShared();
- }
-
- return mDepthStencil;
-}
-
-bool DepthStencilbuffer::isShared() const
-{
- return mDepthStencil->isShared();
-}
-
-Depthbuffer::Depthbuffer(egl::Image *depthStencil) : DepthStencilbuffer(depthStencil)
+Depthbuffer::Depthbuffer(Image *depthStencil) : DepthStencilbuffer(depthStencil)
{
if(depthStencil)
{
@@ -530,7 +465,7 @@
{
}
-Stencilbuffer::Stencilbuffer(egl::Image *depthStencil) : DepthStencilbuffer(depthStencil)
+Stencilbuffer::Stencilbuffer(Image *depthStencil) : DepthStencilbuffer(depthStencil)
{
if(depthStencil)
{