Share the EGL image interface between implementations.
BUG=18110152
Change-Id: Ia36cc97c0f1b6609382ebaed7ef55231d22d9519
Reviewed-on: https://swiftshader-review.googlesource.com/1252
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/GLES2/libEGL/Config.cpp b/src/GLES2/libEGL/Config.cpp
index ea80e42..842fde6 100644
--- a/src/GLES2/libEGL/Config.cpp
+++ b/src/GLES2/libEGL/Config.cpp
@@ -16,7 +16,6 @@
#include "Config.h"
#include "common/debug.h"
-#include "libGLESv2/Image.hpp"
#include <algorithm>
#include <vector>
diff --git a/src/GLES2/libEGL/Context.hpp b/src/GLES2/libEGL/Context.hpp
index c7ac343..df23e8f 100644
--- a/src/GLES2/libEGL/Context.hpp
+++ b/src/GLES2/libEGL/Context.hpp
@@ -6,14 +6,10 @@
#define GL_API
#include <GLES/gl.h>
-namespace gl
-{
-class Image;
-}
-
namespace egl
{
class Surface;
+class Image;
class Context
{
@@ -21,7 +17,7 @@
virtual void destroy() = 0;
virtual void bindTexImage(Surface *surface) = 0;
virtual EGLenum validateSharedImage(EGLenum target, GLuint name, GLuint textureLevel) = 0;
- virtual gl::Image *createSharedImage(EGLenum target, GLuint name, GLuint textureLevel) = 0;
+ virtual Image *createSharedImage(EGLenum target, GLuint name, GLuint textureLevel) = 0;
};
}
diff --git a/src/GLES2/libEGL/Image.hpp b/src/GLES2/libEGL/Image.hpp
new file mode 100644
index 0000000..25024f5
--- /dev/null
+++ b/src/GLES2/libEGL/Image.hpp
@@ -0,0 +1,45 @@
+#ifndef egl_Image_hpp
+#define egl_Image_hpp
+
+#include "Renderer/Surface.hpp"
+
+namespace egl
+{
+// Types common between gl.h and gl2.h
+// We can't include either header in EGL
+typedef unsigned int GLenum;
+typedef int GLint;
+typedef int GLsizei;
+
+class Image : public sw::Surface
+{
+public:
+ Image(sw::Resource *texture, int width, int height, int depth, sw::Format format, bool lockable, bool renderTarget)
+ : sw::Surface(texture, width, height, depth, format, lockable, renderTarget)
+ {
+ }
+
+ virtual void loadImageData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *input) = 0;
+ virtual void loadCompressedData(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLsizei imageSize, const void *pixels) = 0;
+
+ virtual void *lock(unsigned int left, unsigned int top, sw::Lock lock) = 0;
+ virtual unsigned int getPitch() const = 0;
+ virtual void unlock() = 0;
+
+ virtual int getWidth() = 0;
+ virtual int getHeight() = 0;
+ virtual GLenum getFormat() = 0;
+ virtual GLenum getType() = 0;
+ virtual sw::Format getInternalFormat() = 0;
+ virtual int getMultiSampleDepth() = 0;
+
+ virtual void addRef() = 0;
+ virtual void release() = 0;
+ virtual void unbind() = 0; // Break parent ownership and release
+
+ virtual bool isShared() const = 0;
+ virtual void markShared() = 0;
+};
+}
+
+#endif // egl_Image_hpp
diff --git a/src/GLES2/libEGL/Surface.cpp b/src/GLES2/libEGL/Surface.cpp
index 2da6ca6..41abff7 100644
--- a/src/GLES2/libEGL/Surface.cpp
+++ b/src/GLES2/libEGL/Surface.cpp
@@ -18,7 +18,7 @@
#include "main.h"
#include "Display.h"
#include "Texture2D.hpp"
-#include "libGLESv2/Image.hpp"
+#include "Image.hpp"
#include "common/debug.h"
#include "Main/FrameBuffer.hpp"
@@ -189,7 +189,7 @@
}
}
-gl::Image *Surface::getRenderTarget()
+egl::Image *Surface::getRenderTarget()
{
if(backBuffer)
{
@@ -199,7 +199,7 @@
return backBuffer;
}
-gl::Image *Surface::getDepthStencil()
+egl::Image *Surface::getDepthStencil()
{
if(mDepthStencil)
{
diff --git a/src/GLES2/libEGL/Surface.h b/src/GLES2/libEGL/Surface.h
index d713fc3..fe33be8 100644
--- a/src/GLES2/libEGL/Surface.h
+++ b/src/GLES2/libEGL/Surface.h
@@ -21,16 +21,12 @@
#define EGLAPI
#include <EGL/egl.h>
-namespace gl
-{
-class Image;
-}
-
namespace egl
{
class Display;
class Config;
class Texture2D;
+class Image;
class Surface
{
@@ -45,8 +41,8 @@
EGLNativeWindowType getWindowHandle();
- virtual gl::Image *getRenderTarget();
- virtual gl::Image *getDepthStencil();
+ virtual egl::Image *getRenderTarget();
+ virtual egl::Image *getDepthStencil();
void setSwapInterval(EGLint interval);
@@ -70,9 +66,9 @@
bool reset();
Display *const mDisplay;
- gl::Image *mDepthStencil;
+ egl::Image *mDepthStencil;
sw::FrameBuffer *frameBuffer;
- gl::Image *backBuffer;
+ egl::Image *backBuffer;
egl::Texture2D *mTexture;
bool reset(int backbufferWidth, int backbufferHeight);
diff --git a/src/GLES2/libEGL/libEGL.cpp b/src/GLES2/libEGL/libEGL.cpp
index 1130a50..2b70f52 100644
--- a/src/GLES2/libEGL/libEGL.cpp
+++ b/src/GLES2/libEGL/libEGL.cpp
@@ -16,7 +16,7 @@
#include "Surface.h"
#include "Texture2D.hpp"
#include "Context.hpp"
-#include "libGLESv2/Image.hpp"
+#include "Image.hpp"
#include "common/debug.h"
#include "Common/Version.h"
@@ -1117,7 +1117,7 @@
return error(validationResult, EGL_NO_IMAGE_KHR);
}
- gl::Image *image = context->createSharedImage(target, name, textureLevel);
+ egl::Image *image = context->createSharedImage(target, name, textureLevel);
if(!image)
{
@@ -1155,7 +1155,7 @@
return error(EGL_BAD_PARAMETER, EGL_FALSE);
}
- gl::Image *glImage = static_cast<gl::Image*>(image);
+ egl::Image *glImage = static_cast<egl::Image*>(image);
glImage->release();
return success(EGL_TRUE);
diff --git a/src/GLES2/libEGL/libEGL.vcxproj b/src/GLES2/libEGL/libEGL.vcxproj
index 6c4043c..51242f5 100644
--- a/src/GLES2/libEGL/libEGL.vcxproj
+++ b/src/GLES2/libEGL/libEGL.vcxproj
@@ -163,6 +163,7 @@
<ClInclude Include="Config.h" />
<ClInclude Include="Context.hpp" />
<ClInclude Include="Display.h" />
+ <ClInclude Include="Image.hpp" />
<ClInclude Include="main.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="Surface.h" />
diff --git a/src/GLES2/libEGL/libEGL.vcxproj.filters b/src/GLES2/libEGL/libEGL.vcxproj.filters
index c10e3d5..b89cfd5 100644
--- a/src/GLES2/libEGL/libEGL.vcxproj.filters
+++ b/src/GLES2/libEGL/libEGL.vcxproj.filters
@@ -64,6 +64,9 @@
<ClInclude Include="Texture2D.hpp">
<Filter>Header Files</Filter>
</ClInclude>
+ <ClInclude Include="Image.hpp">
+ <Filter>Header Files</Filter>
+ </ClInclude>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="libEGL.rc" />
diff --git a/src/GLES2/libEGL/main.cpp b/src/GLES2/libEGL/main.cpp
index 0857d7d..7db8559 100644
--- a/src/GLES2/libEGL/main.cpp
+++ b/src/GLES2/libEGL/main.cpp
@@ -92,8 +92,8 @@
gl::createContext = (egl::Context *(*)(const egl::Config*, const egl::Context*))getProcAddress(libGLESv2, "glCreateContext");
gl::makeCurrent = (void (*)(egl::Context*, egl::Display*, egl::Surface*))getProcAddress(libGLESv2, "glMakeCurrent");
gl::getProcAddress = (__eglMustCastToProperFunctionPointerType (*)(const char*))getProcAddress(libGLESv2, "glGetProcAddress");
- gl::createBackBuffer = (gl::Image *(*)(int, int, const egl::Config*))getProcAddress(libGLESv2, "createBackBuffer");
- gl::createDepthStencil = (gl::Image *(*)(unsigned int, unsigned int, sw::Format, int, bool))getProcAddress(libGLESv2, "createDepthStencil");
+ gl::createBackBuffer = (egl::Image *(*)(int, int, const egl::Config*))getProcAddress(libGLESv2, "createBackBuffer");
+ gl::createDepthStencil = (egl::Image *(*)(unsigned int, unsigned int, sw::Format, int, bool))getProcAddress(libGLESv2, "createDepthStencil");
gl::createFrameBuffer = (sw::FrameBuffer *(*)(EGLNativeDisplayType, EGLNativeWindowType, int, int))getProcAddress(libGLESv2, "createFrameBuffer");
return libGLESv2 != 0;
@@ -263,8 +263,8 @@
egl::Context *(*createContext)(const egl::Config *config, const egl::Context *shareContext) = 0;
void (*makeCurrent)(egl::Context *context, egl::Display *display, egl::Surface *surface) = 0;
__eglMustCastToProperFunctionPointerType (*getProcAddress)(const char *procname) = 0;
- Image *(*createBackBuffer)(int width, int height, const egl::Config *config) = 0;
- Image *(*createDepthStencil)(unsigned int width, unsigned int height, sw::Format format, int multiSampleDepth, bool discard) = 0;
+ egl::Image *(*createBackBuffer)(int width, int height, const egl::Config *config) = 0;
+ egl::Image *(*createDepthStencil)(unsigned int width, unsigned int height, sw::Format format, int multiSampleDepth, bool discard) = 0;
sw::FrameBuffer *(*createFrameBuffer)(EGLNativeDisplayType display, EGLNativeWindowType window, int width, int height) = 0;
}
diff --git a/src/GLES2/libEGL/main.h b/src/GLES2/libEGL/main.h
index 485f0b1..2fa3647 100644
--- a/src/GLES2/libEGL/main.h
+++ b/src/GLES2/libEGL/main.h
@@ -73,6 +73,7 @@
class Surface;
class Display;
class Context;
+ class Image;
}
namespace sw
@@ -84,13 +85,11 @@
// libGLESv2 dependencies
namespace gl
{
- class Image;
-
extern egl::Context *(*createContext)(const egl::Config *config, const egl::Context *shareContext);
extern void (*makeCurrent)(egl::Context *context, egl::Display *display, egl::Surface *surface);
extern __eglMustCastToProperFunctionPointerType (*getProcAddress)(const char *procname);
- extern Image *(*createBackBuffer)(int width, int height, const egl::Config *config);
- extern Image *(*createDepthStencil)(unsigned int width, unsigned int height, sw::Format format, int multiSampleDepth, bool discard);
+ extern egl::Image *(*createBackBuffer)(int width, int height, const egl::Config *config);
+ extern egl::Image *(*createDepthStencil)(unsigned int width, unsigned int height, sw::Format format, int multiSampleDepth, bool discard);
extern sw::FrameBuffer *(*createFrameBuffer)(EGLNativeDisplayType display, EGLNativeWindowType window, int width, int height);
}
diff --git a/src/GLES2/libGLES_CM/Context.cpp b/src/GLES2/libGLES_CM/Context.cpp
index 808cdd4..1e83169 100644
--- a/src/GLES2/libGLES_CM/Context.cpp
+++ b/src/GLES2/libGLES_CM/Context.cpp
@@ -205,8 +205,8 @@
}
// Wrap the existing resources into GL objects and assign them to the '0' names
- Image *defaultRenderTarget = surface->getRenderTarget();
- Image *depthStencil = surface->getDepthStencil();
+ egl::Image *defaultRenderTarget = surface->getRenderTarget();
+ egl::Image *depthStencil = surface->getDepthStencil();
Colorbuffer *colorbufferZero = new Colorbuffer(defaultRenderTarget);
DepthStencilbuffer *depthStencilbufferZero = new DepthStencilbuffer(depthStencil);
@@ -1303,11 +1303,11 @@
return error(GL_INVALID_FRAMEBUFFER_OPERATION_OES, false);
}
- Image *renderTarget = framebuffer->getRenderTarget();
+ egl::Image *renderTarget = framebuffer->getRenderTarget();
device->setRenderTarget(renderTarget);
if(renderTarget) renderTarget->release();
- Image *depthStencil = framebuffer->getDepthStencil();
+ egl::Image *depthStencil = framebuffer->getDepthStencil();
device->setDepthStencilSurface(depthStencil);
if(depthStencil) depthStencil->release();
@@ -1634,7 +1634,7 @@
surfaceLevel = levelCount - 1;
}
- Image *surface = texture->getImage(surfaceLevel);
+ egl::Image *surface = texture->getImage(surfaceLevel);
device->setTextureLevel(index, 0, mipmapLevel, surface, sw::TEXTURE_2D);
}
}
@@ -1674,7 +1674,7 @@
}
}
- Image *renderTarget = framebuffer->getRenderTarget();
+ egl::Image *renderTarget = framebuffer->getRenderTarget();
if(!renderTarget)
{
@@ -2277,7 +2277,7 @@
return EGL_SUCCESS;
}
-Image *Context::createSharedImage(EGLenum target, GLuint name, GLuint textureLevel)
+egl::Image *Context::createSharedImage(EGLenum target, GLuint name, GLuint textureLevel)
{
if(target == EGL_GL_TEXTURE_2D_KHR)
{
diff --git a/src/GLES2/libGLES_CM/Context.h b/src/GLES2/libGLES_CM/Context.h
index bb66976..653ce11 100644
--- a/src/GLES2/libGLES_CM/Context.h
+++ b/src/GLES2/libGLES_CM/Context.h
@@ -370,7 +370,7 @@
virtual void bindTexImage(egl::Surface *surface);
virtual EGLenum validateSharedImage(EGLenum target, GLuint name, GLuint textureLevel);
- virtual Image *createSharedImage(EGLenum target, GLuint name, GLuint textureLevel);
+ virtual egl::Image *createSharedImage(EGLenum target, GLuint name, GLuint textureLevel);
Device *getDevice();
diff --git a/src/GLES2/libGLES_CM/Device.cpp b/src/GLES2/libGLES_CM/Device.cpp
index 224d0d6..6042715 100644
--- a/src/GLES2/libGLES_CM/Device.cpp
+++ b/src/GLES2/libGLES_CM/Device.cpp
@@ -355,7 +355,7 @@
draw(drawType, 0, primitiveCount);
}
- void Device::setDepthStencilSurface(Image *depthStencil)
+ void Device::setDepthStencilSurface(egl::Image *depthStencil)
{
if(this->depthStencil == depthStencil)
{
@@ -382,7 +382,7 @@
scissorEnable = enable;
}
- void Device::setRenderTarget(Image *renderTarget)
+ void Device::setRenderTarget(egl::Image *renderTarget)
{
if(renderTarget)
{
@@ -409,7 +409,7 @@
this->viewport = viewport;
}
- bool Device::stretchRect(Image *source, const sw::Rect *sourceRect, Image *dest, const sw::Rect *destRect, bool filter)
+ bool Device::stretchRect(egl::Image *source, const sw::Rect *sourceRect, egl::Image *dest, const sw::Rect *destRect, bool filter)
{
if(!source || !dest || !validRectangle(sourceRect, source) || !validRectangle(destRect, dest))
{
@@ -615,7 +615,7 @@
return true;
}
- bool Device::validRectangle(const sw::Rect *rect, Image *surface)
+ bool Device::validRectangle(const sw::Rect *rect, egl::Image *surface)
{
if(!rect)
{
diff --git a/src/GLES2/libGLES_CM/Device.hpp b/src/GLES2/libGLES_CM/Device.hpp
index ca54e29..d8c4eff 100644
--- a/src/GLES2/libGLES_CM/Device.hpp
+++ b/src/GLES2/libGLES_CM/Device.hpp
@@ -14,13 +14,14 @@
#include "Renderer/Renderer.hpp"
-namespace gl
+namespace egl
{
- class Texture;
+ class Image;
}
namespace gl
{
+ class Texture;
class Image;
enum PrimitiveType
@@ -58,13 +59,13 @@
virtual Image *createRenderTarget(unsigned int width, unsigned int height, sw::Format format, int multiSampleDepth, bool lockable);
virtual void drawIndexedPrimitive(PrimitiveType type, unsigned int indexOffset, unsigned int primitiveCount, int indexSize);
virtual void drawPrimitive(PrimitiveType primitiveType, unsigned int primiveCount);
- virtual void setDepthStencilSurface(Image *newDepthStencil);
+ virtual void setDepthStencilSurface(egl::Image *newDepthStencil);
virtual void setScissorEnable(bool enable);
- virtual void setRenderTarget(Image *renderTarget);
+ virtual void setRenderTarget(egl::Image *renderTarget);
virtual void setScissorRect(const sw::Rect &rect);
virtual void setViewport(const Viewport &viewport);
- virtual bool stretchRect(Image *sourceSurface, const sw::Rect *sourceRect, Image *destSurface, const sw::Rect *destRect, bool filter);
+ virtual bool stretchRect(egl::Image *sourceSurface, const sw::Rect *sourceRect, egl::Image *destSurface, const sw::Rect *destRect, bool filter);
virtual void finish();
private:
@@ -73,14 +74,14 @@
bool bindResources();
bool bindViewport(); // Also adjusts for scissoring
- bool validRectangle(const sw::Rect *rect, Image *surface);
+ bool validRectangle(const sw::Rect *rect, egl::Image *surface);
Viewport viewport;
sw::Rect scissorRect;
bool scissorEnable;
- Image *renderTarget;
- Image *depthStencil;
+ egl::Image *renderTarget;
+ egl::Image *depthStencil;
};
}
diff --git a/src/GLES2/libGLES_CM/Framebuffer.cpp b/src/GLES2/libGLES_CM/Framebuffer.cpp
index 1832913..3af1fcb 100644
--- a/src/GLES2/libGLES_CM/Framebuffer.cpp
+++ b/src/GLES2/libGLES_CM/Framebuffer.cpp
@@ -123,7 +123,7 @@
// Increments refcount on surface.
// caller must Release() the returned surface
-Image *Framebuffer::getRenderTarget()
+egl::Image *Framebuffer::getRenderTarget()
{
Renderbuffer *colorbuffer = mColorbufferPointer.get();
@@ -137,7 +137,7 @@
// Increments refcount on surface.
// caller must Release() the returned surface
-Image *Framebuffer::getDepthStencil()
+egl::Image *Framebuffer::getDepthStencil()
{
Renderbuffer *depthstencilbuffer = mDepthbufferPointer.get();
diff --git a/src/GLES2/libGLES_CM/Framebuffer.h b/src/GLES2/libGLES_CM/Framebuffer.h
index 1b60462..50c3920 100644
--- a/src/GLES2/libGLES_CM/Framebuffer.h
+++ b/src/GLES2/libGLES_CM/Framebuffer.h
@@ -43,8 +43,8 @@
void detachTexture(GLuint texture);
void detachRenderbuffer(GLuint renderbuffer);
- Image *getRenderTarget();
- Image *getDepthStencil();
+ egl::Image *getRenderTarget();
+ egl::Image *getDepthStencil();
Renderbuffer *getColorbuffer();
Renderbuffer *getDepthbuffer();
diff --git a/src/GLES2/libGLES_CM/Image.cpp b/src/GLES2/libGLES_CM/Image.cpp
index 8302343..41bacb2 100644
--- a/src/GLES2/libGLES_CM/Image.cpp
+++ b/src/GLES2/libGLES_CM/Image.cpp
@@ -34,7 +34,7 @@
Image::Image(Texture *parentTexture, GLsizei width, GLsizei height, GLenum format, GLenum type)
: parentTexture(parentTexture), width(width), height(height), format(format), type(type)
, internalFormat(selectInternalFormat(format, type)), multiSampleDepth(1)
- , sw::Surface(getParentResource(parentTexture), width, height, 1, selectInternalFormat(format, type), true, true)
+ , egl::Image(getParentResource(parentTexture), width, height, 1, selectInternalFormat(format, type), true, true)
{
shared = false;
referenceCount = 1;
@@ -42,7 +42,7 @@
Image::Image(Texture *parentTexture, GLsizei width, GLsizei height, sw::Format internalFormat, GLenum format, GLenum type, int multiSampleDepth, bool lockable, bool renderTarget)
: parentTexture(parentTexture), width(width), height(height), internalFormat(internalFormat), format(format), type(type), multiSampleDepth(multiSampleDepth)
- , sw::Surface(getParentResource(parentTexture), width, height, multiSampleDepth, internalFormat, lockable, renderTarget)
+ , egl::Image(getParentResource(parentTexture), width, height, multiSampleDepth, internalFormat, lockable, renderTarget)
{
shared = false;
referenceCount = 1;
diff --git a/src/GLES2/libGLES_CM/Image.hpp b/src/GLES2/libGLES_CM/Image.hpp
index 43216a5..5995647 100644
--- a/src/GLES2/libGLES_CM/Image.hpp
+++ b/src/GLES2/libGLES_CM/Image.hpp
@@ -13,6 +13,7 @@
#define gl_Image_hpp
#include "Renderer/Surface.hpp"
+#include "libEGL/Image.hpp"
#define GL_API
#include <GLES/gl.h>
@@ -21,7 +22,7 @@
{
class Texture;
- class Image : public sw::Surface
+ class Image : public egl::Image
{
public:
Image(Texture *parentTexture, GLsizei width, GLsizei height, GLenum format, GLenum type);
diff --git a/src/GLES2/libGLES_CM/Renderbuffer.cpp b/src/GLES2/libGLES_CM/Renderbuffer.cpp
index 5e1ea63..4043a32 100644
--- a/src/GLES2/libGLES_CM/Renderbuffer.cpp
+++ b/src/GLES2/libGLES_CM/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);
}
@@ -165,14 +165,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();
}
@@ -283,7 +283,7 @@
return mSamples;
}
-Colorbuffer::Colorbuffer(Image *renderTarget) : mRenderTarget(renderTarget)
+Colorbuffer::Colorbuffer(egl::Image *renderTarget) : mRenderTarget(renderTarget)
{
if(renderTarget)
{
@@ -332,7 +332,7 @@
// Increments refcount on image.
// caller must release() the returned image
-Image *Colorbuffer::getRenderTarget()
+egl::Image *Colorbuffer::getRenderTarget()
{
if(mRenderTarget)
{
@@ -344,7 +344,7 @@
// Increments refcount on image.
// caller must release() the returned image
-Image *Colorbuffer::createSharedImage()
+egl::Image *Colorbuffer::createSharedImage()
{
if(mRenderTarget)
{
@@ -360,7 +360,7 @@
return mRenderTarget->isShared();
}
-DepthStencilbuffer::DepthStencilbuffer(Image *depthStencil) : mDepthStencil(depthStencil)
+DepthStencilbuffer::DepthStencilbuffer(egl::Image *depthStencil) : mDepthStencil(depthStencil)
{
if(depthStencil)
{
@@ -410,7 +410,7 @@
// Increments refcount on image.
// caller must release() the returned image
-Image *DepthStencilbuffer::getRenderTarget()
+egl::Image *DepthStencilbuffer::getRenderTarget()
{
if(mDepthStencil)
{
@@ -422,7 +422,7 @@
// Increments refcount on image.
// caller must release() the returned image
-Image *DepthStencilbuffer::createSharedImage()
+egl::Image *DepthStencilbuffer::createSharedImage()
{
if(mDepthStencil)
{
@@ -438,7 +438,7 @@
return mDepthStencil->isShared();
}
-Depthbuffer::Depthbuffer(Image *depthStencil) : DepthStencilbuffer(depthStencil)
+Depthbuffer::Depthbuffer(egl::Image *depthStencil) : DepthStencilbuffer(depthStencil)
{
if(depthStencil)
{
@@ -462,7 +462,7 @@
{
}
-Stencilbuffer::Stencilbuffer(Image *depthStencil) : DepthStencilbuffer(depthStencil)
+Stencilbuffer::Stencilbuffer(egl::Image *depthStencil) : DepthStencilbuffer(depthStencil)
{
if(depthStencil)
{
diff --git a/src/GLES2/libGLES_CM/Renderbuffer.h b/src/GLES2/libGLES_CM/Renderbuffer.h
index fd785d6..17460b3 100644
--- a/src/GLES2/libGLES_CM/Renderbuffer.h
+++ b/src/GLES2/libGLES_CM/Renderbuffer.h
@@ -40,8 +40,8 @@
virtual void addProxyRef(const Renderbuffer *proxy);
virtual void releaseProxy(const Renderbuffer *proxy);
- virtual Image *getRenderTarget() = 0;
- virtual Image *createSharedImage() = 0;
+ virtual egl::Image *getRenderTarget() = 0;
+ virtual egl::Image *createSharedImage() = 0;
virtual bool isShared() const = 0;
virtual GLsizei getWidth() const = 0;
@@ -68,8 +68,8 @@
virtual void addProxyRef(const Renderbuffer *proxy);
virtual void releaseProxy(const Renderbuffer *proxy);
- virtual Image *getRenderTarget();
- virtual Image *createSharedImage();
+ virtual egl::Image *getRenderTarget();
+ virtual egl::Image *createSharedImage();
virtual bool isShared() const;
virtual GLsizei getWidth() const;
@@ -92,8 +92,8 @@
virtual ~RenderbufferStorage() = 0;
- virtual Image *getRenderTarget() = 0;
- virtual Image *createSharedImage() = 0;
+ virtual egl::Image *getRenderTarget() = 0;
+ virtual egl::Image *createSharedImage() = 0;
virtual bool isShared() const = 0;
virtual GLsizei getWidth() const;
@@ -127,8 +127,8 @@
virtual void addRef();
virtual void release();
- Image *getRenderTarget();
- virtual Image *createSharedImage();
+ egl::Image *getRenderTarget();
+ virtual egl::Image *createSharedImage();
virtual bool isShared() const;
GLsizei getWidth() const;
@@ -152,39 +152,39 @@
class Colorbuffer : public RenderbufferStorage
{
public:
- explicit Colorbuffer(Image *renderTarget);
+ explicit Colorbuffer(egl::Image *renderTarget);
Colorbuffer(GLsizei width, GLsizei height, GLenum format, GLsizei samples);
virtual ~Colorbuffer();
- virtual Image *getRenderTarget();
- virtual Image *createSharedImage();
+ virtual egl::Image *getRenderTarget();
+ virtual egl::Image *createSharedImage();
virtual bool isShared() const;
private:
- Image *mRenderTarget;
+ egl::Image *mRenderTarget;
};
class DepthStencilbuffer : public RenderbufferStorage
{
public:
- explicit DepthStencilbuffer(Image *depthStencil);
+ explicit DepthStencilbuffer(egl::Image *depthStencil);
DepthStencilbuffer(GLsizei width, GLsizei height, GLsizei samples);
~DepthStencilbuffer();
- virtual Image *getRenderTarget();
- virtual Image *createSharedImage();
+ virtual egl::Image *getRenderTarget();
+ virtual egl::Image *createSharedImage();
virtual bool isShared() const;
protected:
- Image *mDepthStencil;
+ egl::Image *mDepthStencil;
};
class Depthbuffer : public DepthStencilbuffer
{
public:
- explicit Depthbuffer(Image *depthStencil);
+ explicit Depthbuffer(egl::Image *depthStencil);
Depthbuffer(GLsizei width, GLsizei height, GLsizei samples);
virtual ~Depthbuffer();
@@ -193,7 +193,7 @@
class Stencilbuffer : public DepthStencilbuffer
{
public:
- explicit Stencilbuffer(Image *depthStencil);
+ explicit Stencilbuffer(egl::Image *depthStencil);
Stencilbuffer(GLsizei width, GLsizei height, GLsizei samples);
virtual ~Stencilbuffer();
diff --git a/src/GLES2/libGLES_CM/Texture.cpp b/src/GLES2/libGLES_CM/Texture.cpp
index 90b507e..cd53de6 100644
--- a/src/GLES2/libGLES_CM/Texture.cpp
+++ b/src/GLES2/libGLES_CM/Texture.cpp
@@ -169,9 +169,9 @@
return mMaxAnisotropy;
}
-Image *Texture::createSharedImage(GLenum target, unsigned int level)
+egl::Image *Texture::createSharedImage(GLenum target, unsigned int level)
{
- Image *image = getRenderTarget(target, level); // Increments reference count
+ egl::Image *image = getRenderTarget(target, level); // Increments reference count
if(image)
{
@@ -181,7 +181,7 @@
return image;
}
-void Texture::setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image)
+void Texture::setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, egl::Image *image)
{
if(pixels && image)
{
@@ -189,7 +189,7 @@
}
}
-void Texture::setCompressedImage(GLsizei imageSize, const void *pixels, Image *image)
+void Texture::setCompressedImage(GLsizei imageSize, const void *pixels, egl::Image *image)
{
if(pixels && image)
{
@@ -197,7 +197,7 @@
}
}
-void Texture::subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image)
+void Texture::subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, egl::Image *image)
{
if(!image)
{
@@ -225,7 +225,7 @@
}
}
-void Texture::subImageCompressed(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *pixels, Image *image)
+void Texture::subImageCompressed(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *pixels, egl::Image *image)
{
if(!image)
{
@@ -248,7 +248,7 @@
}
}
-bool Texture::copy(Image *source, const sw::Rect &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, Image *dest)
+bool Texture::copy(egl::Image *source, const sw::Rect &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, egl::Image *dest)
{
Device *device = getDevice();
@@ -477,7 +477,7 @@
void Texture2D::copyImage(GLint level, GLenum format, GLint x, GLint y, GLsizei width, GLsizei height, Framebuffer *source)
{
- Image *renderTarget = source->getRenderTarget();
+ egl::Image *renderTarget = source->getRenderTarget();
if(!renderTarget)
{
@@ -520,7 +520,7 @@
return error(GL_INVALID_VALUE);
}
- Image *renderTarget = source->getRenderTarget();
+ egl::Image *renderTarget = source->getRenderTarget();
if(!renderTarget)
{
@@ -639,7 +639,7 @@
}
}
-Image *Texture2D::getImage(unsigned int level)
+egl::Image *Texture2D::getImage(unsigned int level)
{
return image[level];
}
@@ -659,7 +659,7 @@
return mColorbufferProxy;
}
-Image *Texture2D::getRenderTarget(GLenum target, unsigned int level)
+egl::Image *Texture2D::getRenderTarget(GLenum target, unsigned int level)
{
ASSERT(target == GL_TEXTURE_2D);
ASSERT(level < IMPLEMENTATION_MAX_TEXTURE_LEVELS);
diff --git a/src/GLES2/libGLES_CM/Texture.h b/src/GLES2/libGLES_CM/Texture.h
index 73ce99e..a0d890d 100644
--- a/src/GLES2/libGLES_CM/Texture.h
+++ b/src/GLES2/libGLES_CM/Texture.h
@@ -84,20 +84,20 @@
virtual bool isDepth(GLenum target, GLint level) const = 0;
virtual Renderbuffer *getRenderbuffer(GLenum target) = 0;
- virtual Image *getRenderTarget(GLenum target, unsigned int level) = 0;
- virtual Image *createSharedImage(GLenum target, unsigned int level);
+ virtual egl::Image *getRenderTarget(GLenum target, unsigned int level) = 0;
+ virtual egl::Image *createSharedImage(GLenum target, unsigned int level);
virtual bool isShared(GLenum target, unsigned int level) const = 0;
virtual void generateMipmaps() = 0;
virtual void copySubImage(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height, Framebuffer *source) = 0;
protected:
- void setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image);
- void subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image);
- void setCompressedImage(GLsizei imageSize, const void *pixels, Image *image);
- void subImageCompressed(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *pixels, Image *image);
+ void setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, egl::Image *image);
+ void subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, egl::Image *image);
+ void setCompressedImage(GLsizei imageSize, const void *pixels, egl::Image *image);
+ void subImageCompressed(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *pixels, egl::Image *image);
- bool copy(Image *source, const sw::Rect &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, Image *dest);
+ bool copy(egl::Image *source, const sw::Rect &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, egl::Image *dest);
bool isMipmapFiltered() const;
@@ -145,15 +145,15 @@
virtual void generateMipmaps();
virtual Renderbuffer *getRenderbuffer(GLenum target);
- virtual Image *getRenderTarget(GLenum target, unsigned int level);
+ virtual egl::Image *getRenderTarget(GLenum target, unsigned int level);
virtual bool isShared(GLenum target, unsigned int level) const;
- Image *getImage(unsigned int level);
+ egl::Image *getImage(unsigned int level);
protected:
bool isMipmapComplete() const;
- Image *image[IMPLEMENTATION_MAX_TEXTURE_LEVELS];
+ egl::Image *image[IMPLEMENTATION_MAX_TEXTURE_LEVELS];
egl::Surface *mSurface;
diff --git a/src/GLES2/libGLESv2/Context.cpp b/src/GLES2/libGLESv2/Context.cpp
index 7b459b4..f48a57f 100644
--- a/src/GLES2/libGLESv2/Context.cpp
+++ b/src/GLES2/libGLESv2/Context.cpp
@@ -253,8 +253,8 @@
}
// Wrap the existing resources into GL objects and assign them to the '0' names
- Image *defaultRenderTarget = surface->getRenderTarget();
- Image *depthStencil = surface->getDepthStencil();
+ egl::Image *defaultRenderTarget = surface->getRenderTarget();
+ egl::Image *depthStencil = surface->getDepthStencil();
Colorbuffer *colorbufferZero = new Colorbuffer(defaultRenderTarget);
DepthStencilbuffer *depthStencilbufferZero = new DepthStencilbuffer(depthStencil);
@@ -1680,11 +1680,11 @@
return error(GL_INVALID_FRAMEBUFFER_OPERATION, false);
}
- Image *renderTarget = framebuffer->getRenderTarget();
+ egl::Image *renderTarget = framebuffer->getRenderTarget();
device->setRenderTarget(renderTarget);
if(renderTarget) renderTarget->release();
- Image *depthStencil = framebuffer->getDepthStencil();
+ egl::Image *depthStencil = framebuffer->getDepthStencil();
device->setDepthStencilSurface(depthStencil);
if(depthStencil) depthStencil->release();
@@ -2115,7 +2115,7 @@
surfaceLevel = levelCount - 1;
}
- Image *surface = texture->getImage(surfaceLevel);
+ egl::Image *surface = texture->getImage(surfaceLevel);
device->setTextureLevel(sampler, 0, mipmapLevel, surface, sw::TEXTURE_2D);
}
}
@@ -2138,7 +2138,7 @@
surfaceLevel = levelCount - 1;
}
- Image *surface = cubeTexture->getImage(face, surfaceLevel);
+ egl::Image *surface = cubeTexture->getImage(face, surfaceLevel);
device->setTextureLevel(sampler, face, mipmapLevel, surface, sw::TEXTURE_CUBE);
}
}
@@ -2179,7 +2179,7 @@
}
}
- Image *renderTarget = framebuffer->getRenderTarget();
+ egl::Image *renderTarget = framebuffer->getRenderTarget();
if(!renderTarget)
{
@@ -2992,8 +2992,8 @@
{
if(blitRenderTarget)
{
- Image *readRenderTarget = readFramebuffer->getRenderTarget();
- Image *drawRenderTarget = drawFramebuffer->getRenderTarget();
+ egl::Image *readRenderTarget = readFramebuffer->getRenderTarget();
+ egl::Image *drawRenderTarget = drawFramebuffer->getRenderTarget();
bool success = device->stretchRect(readRenderTarget, &sourceRect, drawRenderTarget, &destRect, false);
@@ -3101,7 +3101,7 @@
return EGL_SUCCESS;
}
-Image *Context::createSharedImage(EGLenum target, GLuint name, GLuint textureLevel)
+egl::Image *Context::createSharedImage(EGLenum target, GLuint name, GLuint textureLevel)
{
GLenum textureTarget = GL_NONE;
diff --git a/src/GLES2/libGLESv2/Context.h b/src/GLES2/libGLESv2/Context.h
index bbb7fd2..cc0e636 100644
--- a/src/GLES2/libGLESv2/Context.h
+++ b/src/GLES2/libGLESv2/Context.h
@@ -422,7 +422,7 @@
virtual void bindTexImage(egl::Surface *surface);
virtual EGLenum validateSharedImage(EGLenum target, GLuint name, GLuint textureLevel);
- virtual gl::Image *createSharedImage(EGLenum target, GLuint name, GLuint textureLevel);
+ virtual egl::Image *createSharedImage(EGLenum target, GLuint name, GLuint textureLevel);
Device *getDevice();
diff --git a/src/GLES2/libGLESv2/Device.cpp b/src/GLES2/libGLESv2/Device.cpp
index 7fa5512..7a0488b 100644
--- a/src/GLES2/libGLESv2/Device.cpp
+++ b/src/GLES2/libGLESv2/Device.cpp
@@ -377,7 +377,7 @@
draw(drawType, 0, primitiveCount);
}
- void Device::setDepthStencilSurface(Image *depthStencil)
+ void Device::setDepthStencilSurface(egl::Image *depthStencil)
{
if(this->depthStencil == depthStencil)
{
@@ -424,7 +424,7 @@
scissorEnable = enable;
}
- void Device::setRenderTarget(Image *renderTarget)
+ void Device::setRenderTarget(egl::Image *renderTarget)
{
if(renderTarget)
{
@@ -471,7 +471,7 @@
this->viewport = viewport;
}
- bool Device::stretchRect(Image *source, const sw::Rect *sourceRect, Image *dest, const sw::Rect *destRect, bool filter)
+ bool Device::stretchRect(egl::Image *source, const sw::Rect *sourceRect, egl::Image *dest, const sw::Rect *destRect, bool filter)
{
if(!source || !dest || !validRectangle(sourceRect, source) || !validRectangle(destRect, dest))
{
@@ -722,7 +722,7 @@
return true;
}
- bool Device::validRectangle(const sw::Rect *rect, Image *surface)
+ bool Device::validRectangle(const sw::Rect *rect, egl::Image *surface)
{
if(!rect)
{
diff --git a/src/GLES2/libGLESv2/Device.hpp b/src/GLES2/libGLESv2/Device.hpp
index 4e0337d..973afc8 100644
--- a/src/GLES2/libGLESv2/Device.hpp
+++ b/src/GLES2/libGLESv2/Device.hpp
@@ -14,13 +14,14 @@
#include "Renderer/Renderer.hpp"
-namespace gl
+namespace egl
{
- class Texture;
+ class Image;
}
namespace gl
{
+ class Texture;
class Image;
enum PrimitiveType
@@ -58,17 +59,17 @@
virtual Image *createRenderTarget(unsigned int width, unsigned int height, sw::Format format, int multiSampleDepth, bool lockable);
virtual void drawIndexedPrimitive(PrimitiveType type, unsigned int indexOffset, unsigned int primitiveCount, int indexSize);
virtual void drawPrimitive(PrimitiveType primitiveType, unsigned int primiveCount);
- virtual void setDepthStencilSurface(Image *newDepthStencil);
+ virtual void setDepthStencilSurface(egl::Image *newDepthStencil);
virtual void setPixelShader(sw::PixelShader *shader);
virtual void setPixelShaderConstantF(unsigned int startRegister, const float *constantData, unsigned int count);
virtual void setScissorEnable(bool enable);
- virtual void setRenderTarget(Image *renderTarget);
+ virtual void setRenderTarget(egl::Image *renderTarget);
virtual void setScissorRect(const sw::Rect &rect);
virtual void setVertexShader(sw::VertexShader *shader);
virtual void setVertexShaderConstantF(unsigned int startRegister, const float *constantData, unsigned int count);
virtual void setViewport(const Viewport &viewport);
- virtual bool stretchRect(Image *sourceSurface, const sw::Rect *sourceRect, Image *destSurface, const sw::Rect *destRect, bool filter);
+ virtual bool stretchRect(egl::Image *sourceSurface, const sw::Rect *sourceRect, egl::Image *destSurface, const sw::Rect *destRect, bool filter);
virtual void finish();
private:
@@ -78,7 +79,7 @@
void bindShaderConstants();
bool bindViewport(); // Also adjusts for scissoring
- bool validRectangle(const sw::Rect *rect, Image *surface);
+ bool validRectangle(const sw::Rect *rect, egl::Image *surface);
Viewport viewport;
sw::Rect scissorRect;
@@ -95,8 +96,8 @@
float pixelShaderConstantF[224][4];
float vertexShaderConstantF[256][4];
- Image *renderTarget;
- Image *depthStencil;
+ egl::Image *renderTarget;
+ egl::Image *depthStencil;
};
}
diff --git a/src/GLES2/libGLESv2/Framebuffer.cpp b/src/GLES2/libGLESv2/Framebuffer.cpp
index 8ba7d9e..dd16a20 100644
--- a/src/GLES2/libGLESv2/Framebuffer.cpp
+++ b/src/GLES2/libGLESv2/Framebuffer.cpp
@@ -123,7 +123,7 @@
// Increments refcount on surface.
// caller must Release() the returned surface
-Image *Framebuffer::getRenderTarget()
+egl::Image *Framebuffer::getRenderTarget()
{
Renderbuffer *colorbuffer = mColorbufferPointer.get();
@@ -137,7 +137,7 @@
// Increments refcount on surface.
// caller must Release() the returned surface
-Image *Framebuffer::getDepthStencil()
+egl::Image *Framebuffer::getDepthStencil()
{
Renderbuffer *depthstencilbuffer = mDepthbufferPointer.get();
diff --git a/src/GLES2/libGLESv2/Framebuffer.h b/src/GLES2/libGLESv2/Framebuffer.h
index c3e0f0b..2406dad 100644
--- a/src/GLES2/libGLESv2/Framebuffer.h
+++ b/src/GLES2/libGLESv2/Framebuffer.h
@@ -43,8 +43,8 @@
void detachTexture(GLuint texture);
void detachRenderbuffer(GLuint renderbuffer);
- Image *getRenderTarget();
- Image *getDepthStencil();
+ egl::Image *getRenderTarget();
+ egl::Image *getDepthStencil();
Renderbuffer *getColorbuffer();
Renderbuffer *getDepthbuffer();
diff --git a/src/GLES2/libGLESv2/Image.cpp b/src/GLES2/libGLESv2/Image.cpp
index a2950c6..85bfa1e 100644
--- a/src/GLES2/libGLESv2/Image.cpp
+++ b/src/GLES2/libGLESv2/Image.cpp
@@ -33,7 +33,7 @@
Image::Image(Texture *parentTexture, GLsizei width, GLsizei height, GLenum format, GLenum type)
: parentTexture(parentTexture), width(width), height(height), format(format), type(type)
, internalFormat(selectInternalFormat(format, type)), multiSampleDepth(1)
- , sw::Surface(getParentResource(parentTexture), width, height, 1, selectInternalFormat(format, type), true, true)
+ , egl::Image(getParentResource(parentTexture), width, height, 1, selectInternalFormat(format, type), true, true)
{
shared = false;
referenceCount = 1;
@@ -41,7 +41,7 @@
Image::Image(Texture *parentTexture, GLsizei width, GLsizei height, sw::Format internalFormat, GLenum format, GLenum type, int multiSampleDepth, bool lockable, bool renderTarget)
: parentTexture(parentTexture), width(width), height(height), internalFormat(internalFormat), format(format), type(type), multiSampleDepth(multiSampleDepth)
- , sw::Surface(getParentResource(parentTexture), width, height, multiSampleDepth, internalFormat, lockable, renderTarget)
+ , egl::Image(getParentResource(parentTexture), width, height, multiSampleDepth, internalFormat, lockable, renderTarget)
{
shared = false;
referenceCount = 1;
diff --git a/src/GLES2/libGLESv2/Image.hpp b/src/GLES2/libGLESv2/Image.hpp
index faae7d5..e796bcd 100644
--- a/src/GLES2/libGLESv2/Image.hpp
+++ b/src/GLES2/libGLESv2/Image.hpp
@@ -13,6 +13,7 @@
#define gl_Image_hpp
#include "Renderer/Surface.hpp"
+#include "libEGL/Image.hpp"
#define GL_APICALL
#include <GLES2/gl2.h>
@@ -21,7 +22,7 @@
{
class Texture;
- class Image : public sw::Surface
+ class Image : public egl::Image
{
public:
Image(Texture *parentTexture, GLsizei width, GLsizei height, GLenum format, GLenum type);
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)
{
diff --git a/src/GLES2/libGLESv2/Renderbuffer.h b/src/GLES2/libGLESv2/Renderbuffer.h
index 2e8a49e..b947ace 100644
--- a/src/GLES2/libGLESv2/Renderbuffer.h
+++ b/src/GLES2/libGLESv2/Renderbuffer.h
@@ -41,8 +41,8 @@
virtual void addProxyRef(const Renderbuffer *proxy);
virtual void releaseProxy(const Renderbuffer *proxy);
- virtual Image *getRenderTarget() = 0;
- virtual Image *createSharedImage() = 0;
+ virtual egl::Image *getRenderTarget() = 0;
+ virtual egl::Image *createSharedImage() = 0;
virtual bool isShared() const = 0;
virtual GLsizei getWidth() const = 0;
@@ -69,8 +69,8 @@
virtual void addProxyRef(const Renderbuffer *proxy);
virtual void releaseProxy(const Renderbuffer *proxy);
- virtual Image *getRenderTarget();
- virtual Image *createSharedImage();
+ virtual egl::Image *getRenderTarget();
+ virtual egl::Image *createSharedImage();
virtual bool isShared() const;
virtual GLsizei getWidth() const;
@@ -94,7 +94,7 @@
virtual void releaseProxy(const Renderbuffer *proxy);
virtual Image *getRenderTarget();
- virtual Image *createSharedImage();
+ virtual egl::Image *createSharedImage();
virtual bool isShared() const;
virtual GLsizei getWidth() const;
@@ -118,8 +118,8 @@
virtual ~RenderbufferStorage() = 0;
- virtual Image *getRenderTarget() = 0;
- virtual Image *createSharedImage() = 0;
+ virtual egl::Image *getRenderTarget() = 0;
+ virtual egl::Image *createSharedImage() = 0;
virtual bool isShared() const = 0;
virtual GLsizei getWidth() const;
@@ -153,8 +153,8 @@
virtual void addRef();
virtual void release();
- Image *getRenderTarget();
- virtual Image *createSharedImage();
+ egl::Image *getRenderTarget();
+ virtual egl::Image *createSharedImage();
virtual bool isShared() const;
GLsizei getWidth() const;
@@ -178,39 +178,39 @@
class Colorbuffer : public RenderbufferStorage
{
public:
- explicit Colorbuffer(Image *renderTarget);
+ explicit Colorbuffer(egl::Image *renderTarget);
Colorbuffer(GLsizei width, GLsizei height, GLenum format, GLsizei samples);
virtual ~Colorbuffer();
- virtual Image *getRenderTarget();
- virtual Image *createSharedImage();
+ virtual egl::Image *getRenderTarget();
+ virtual egl::Image *createSharedImage();
virtual bool isShared() const;
private:
- Image *mRenderTarget;
+ egl::Image *mRenderTarget;
};
class DepthStencilbuffer : public RenderbufferStorage
{
public:
- explicit DepthStencilbuffer(Image *depthStencil);
+ explicit DepthStencilbuffer(egl::Image *depthStencil);
DepthStencilbuffer(GLsizei width, GLsizei height, GLsizei samples);
~DepthStencilbuffer();
- virtual Image *getRenderTarget();
- virtual Image *createSharedImage();
+ virtual egl::Image *getRenderTarget();
+ virtual egl::Image *createSharedImage();
virtual bool isShared() const;
protected:
- Image *mDepthStencil;
+ egl::Image *mDepthStencil;
};
class Depthbuffer : public DepthStencilbuffer
{
public:
- explicit Depthbuffer(Image *depthStencil);
+ explicit Depthbuffer(egl::Image *depthStencil);
Depthbuffer(GLsizei width, GLsizei height, GLsizei samples);
virtual ~Depthbuffer();
@@ -219,7 +219,7 @@
class Stencilbuffer : public DepthStencilbuffer
{
public:
- explicit Stencilbuffer(Image *depthStencil);
+ explicit Stencilbuffer(egl::Image *depthStencil);
Stencilbuffer(GLsizei width, GLsizei height, GLsizei samples);
virtual ~Stencilbuffer();
diff --git a/src/GLES2/libGLESv2/Texture.cpp b/src/GLES2/libGLESv2/Texture.cpp
index f170c00..30eebe4 100644
--- a/src/GLES2/libGLESv2/Texture.cpp
+++ b/src/GLES2/libGLESv2/Texture.cpp
@@ -169,9 +169,9 @@
return mMaxAnisotropy;
}
-Image *Texture::createSharedImage(GLenum target, unsigned int level)
+egl::Image *Texture::createSharedImage(GLenum target, unsigned int level)
{
- Image *image = getRenderTarget(target, level); // Increments reference count
+ egl::Image *image = getRenderTarget(target, level); // Increments reference count
if(image)
{
@@ -181,7 +181,7 @@
return image;
}
-void Texture::setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image)
+void Texture::setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels,egl:: Image *image)
{
if(pixels && image)
{
@@ -189,7 +189,7 @@
}
}
-void Texture::setCompressedImage(GLsizei imageSize, const void *pixels, Image *image)
+void Texture::setCompressedImage(GLsizei imageSize, const void *pixels, egl::Image *image)
{
if(pixels && image)
{
@@ -197,7 +197,7 @@
}
}
-void Texture::subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image)
+void Texture::subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, egl::Image *image)
{
if(!image)
{
@@ -225,7 +225,7 @@
}
}
-void Texture::subImageCompressed(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *pixels, Image *image)
+void Texture::subImageCompressed(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *pixels, egl::Image *image)
{
if(!image)
{
@@ -248,7 +248,7 @@
}
}
-bool Texture::copy(Image *source, const sw::Rect &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, Image *dest)
+bool Texture::copy(egl::Image *source, const sw::Rect &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, egl::Image *dest)
{
Device *device = getDevice();
@@ -477,7 +477,7 @@
void Texture2D::copyImage(GLint level, GLenum format, GLint x, GLint y, GLsizei width, GLsizei height, Framebuffer *source)
{
- Image *renderTarget = source->getRenderTarget();
+ egl::Image *renderTarget = source->getRenderTarget();
if(!renderTarget)
{
@@ -520,7 +520,7 @@
return error(GL_INVALID_VALUE);
}
- Image *renderTarget = source->getRenderTarget();
+ egl::Image *renderTarget = source->getRenderTarget();
if(!renderTarget)
{
@@ -639,7 +639,7 @@
}
}
-Image *Texture2D::getImage(unsigned int level)
+egl::Image *Texture2D::getImage(unsigned int level)
{
return image[level];
}
@@ -659,7 +659,7 @@
return mColorbufferProxy;
}
-Image *Texture2D::getRenderTarget(GLenum target, unsigned int level)
+egl::Image *Texture2D::getRenderTarget(GLenum target, unsigned int level)
{
ASSERT(target == GL_TEXTURE_2D);
ASSERT(level < IMPLEMENTATION_MAX_TEXTURE_LEVELS);
@@ -971,7 +971,7 @@
void TextureCubeMap::copyImage(GLenum target, GLint level, GLenum format, GLint x, GLint y, GLsizei width, GLsizei height, Framebuffer *source)
{
- Image *renderTarget = source->getRenderTarget();
+ egl::Image *renderTarget = source->getRenderTarget();
if(!renderTarget)
{
@@ -1030,7 +1030,7 @@
return error(GL_INVALID_VALUE);
}
- Image *renderTarget = source->getRenderTarget();
+ egl::Image *renderTarget = source->getRenderTarget();
if(!renderTarget)
{
diff --git a/src/GLES2/libGLESv2/Texture.h b/src/GLES2/libGLESv2/Texture.h
index b4ae3e6..ff3b392 100644
--- a/src/GLES2/libGLESv2/Texture.h
+++ b/src/GLES2/libGLESv2/Texture.h
@@ -84,20 +84,20 @@
virtual bool isDepth(GLenum target, GLint level) const = 0;
virtual Renderbuffer *getRenderbuffer(GLenum target) = 0;
- virtual Image *getRenderTarget(GLenum target, unsigned int level) = 0;
- virtual Image *createSharedImage(GLenum target, unsigned int level);
+ virtual egl::Image *getRenderTarget(GLenum target, unsigned int level) = 0;
+ virtual egl::Image *createSharedImage(GLenum target, unsigned int level);
virtual bool isShared(GLenum target, unsigned int level) const = 0;
virtual void generateMipmaps() = 0;
virtual void copySubImage(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height, Framebuffer *source) = 0;
protected:
- void setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image);
- void subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, Image *image);
- void setCompressedImage(GLsizei imageSize, const void *pixels, Image *image);
- void subImageCompressed(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *pixels, Image *image);
+ void setImage(GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, egl::Image *image);
+ void subImage(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint unpackAlignment, const void *pixels, egl::Image *image);
+ void setCompressedImage(GLsizei imageSize, const void *pixels, egl::Image *image);
+ void subImageCompressed(GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void *pixels, egl::Image *image);
- bool copy(Image *source, const sw::Rect &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, Image *dest);
+ bool copy(egl::Image *source, const sw::Rect &sourceRect, GLenum destFormat, GLint xoffset, GLint yoffset, egl::Image *dest);
bool isMipmapFiltered() const;
@@ -145,15 +145,15 @@
virtual void generateMipmaps();
virtual Renderbuffer *getRenderbuffer(GLenum target);
- virtual Image *getRenderTarget(GLenum target, unsigned int level);
+ virtual egl::Image *getRenderTarget(GLenum target, unsigned int level);
virtual bool isShared(GLenum target, unsigned int level) const;
- Image *getImage(unsigned int level);
+ egl::Image *getImage(unsigned int level);
protected:
bool isMipmapComplete() const;
- Image *image[IMPLEMENTATION_MAX_TEXTURE_LEVELS];
+ egl::Image *image[IMPLEMENTATION_MAX_TEXTURE_LEVELS];
egl::Surface *mSurface;