diff --git a/src/GLES2/libGLESv2/Renderbuffer.cpp b/src/GLES2/libGLESv2/Renderbuffer.cpp
index 6ca0c15..81fcd45 100644
--- a/src/GLES2/libGLESv2/Renderbuffer.cpp
+++ b/src/GLES2/libGLESv2/Renderbuffer.cpp
@@ -92,14 +92,14 @@
 
 // Increments refcount on image.
 // caller must release() the returned image
-Image *RenderbufferTexture2D::getRenderTarget()
+egl::Image *RenderbufferTexture2D::getRenderTarget()
 {
 	return mTexture2D->getRenderTarget(GL_TEXTURE_2D, 0);
 }
 
 // Increments refcount on image.
 // caller must release() the returned image
-Image *RenderbufferTexture2D::createSharedImage()
+egl::Image *RenderbufferTexture2D::createSharedImage()
 {
     return mTexture2D->createSharedImage(GL_TEXTURE_2D, 0);
 }
@@ -167,7 +167,7 @@
 
 // Increments refcount on image.
 // caller must release() the returned image
-Image *RenderbufferTextureCubeMap::createSharedImage()
+egl::Image *RenderbufferTextureCubeMap::createSharedImage()
 {
     return mTextureCubeMap->createSharedImage(mTarget, 0);
 }
@@ -233,14 +233,14 @@
 
 // Increments refcount on image.
 // caller must Release() the returned image
-Image *Renderbuffer::getRenderTarget()
+egl::Image *Renderbuffer::getRenderTarget()
 {
 	return mInstance->getRenderTarget();
 }
 
 // Increments refcount on image.
 // caller must Release() the returned image
-Image *Renderbuffer::createSharedImage()
+egl::Image *Renderbuffer::createSharedImage()
 {
     return mInstance->createSharedImage();
 }
@@ -351,7 +351,7 @@
 	return mSamples;
 }
 
-Colorbuffer::Colorbuffer(Image *renderTarget) : mRenderTarget(renderTarget)
+Colorbuffer::Colorbuffer(egl::Image *renderTarget) : mRenderTarget(renderTarget)
 {
 	if(renderTarget)
 	{
@@ -400,7 +400,7 @@
 
 // Increments refcount on image.
 // caller must release() the returned image
-Image *Colorbuffer::getRenderTarget()
+egl::Image *Colorbuffer::getRenderTarget()
 {
 	if(mRenderTarget)
 	{
@@ -412,7 +412,7 @@
 
 // Increments refcount on image.
 // caller must release() the returned image
-Image *Colorbuffer::createSharedImage()
+egl::Image *Colorbuffer::createSharedImage()
 {
     if(mRenderTarget)
     {
@@ -428,7 +428,7 @@
     return mRenderTarget->isShared();
 }
 
-DepthStencilbuffer::DepthStencilbuffer(Image *depthStencil) : mDepthStencil(depthStencil)
+DepthStencilbuffer::DepthStencilbuffer(egl::Image *depthStencil) : mDepthStencil(depthStencil)
 {
 	if(depthStencil)
 	{
@@ -478,7 +478,7 @@
 
 // Increments refcount on image.
 // caller must release() the returned image
-Image *DepthStencilbuffer::getRenderTarget()
+egl::Image *DepthStencilbuffer::getRenderTarget()
 {
 	if(mDepthStencil)
 	{
@@ -490,7 +490,7 @@
 
 // Increments refcount on image.
 // caller must release() the returned image
-Image *DepthStencilbuffer::createSharedImage()
+egl::Image *DepthStencilbuffer::createSharedImage()
 {
     if(mDepthStencil)
     {
@@ -506,7 +506,7 @@
     return mDepthStencil->isShared();
 }
 
-Depthbuffer::Depthbuffer(Image *depthStencil) : DepthStencilbuffer(depthStencil)
+Depthbuffer::Depthbuffer(egl::Image *depthStencil) : DepthStencilbuffer(depthStencil)
 {
 	if(depthStencil)
 	{
@@ -530,7 +530,7 @@
 {
 }
 
-Stencilbuffer::Stencilbuffer(Image *depthStencil) : DepthStencilbuffer(depthStencil)
+Stencilbuffer::Stencilbuffer(egl::Image *depthStencil) : DepthStencilbuffer(depthStencil)
 {
 	if(depthStencil)
 	{
