Commit 0d91328b by Jamie Madill

Revert "Move resource storage to attachment base."

Giving compile errors on Clang/OSX. http://build.chromium.org/p/chromium.gpu.fyi/builders/GPU%20Mac%20Builder%20%28dbg%29/builds/30008 This reverts commit 7f67b030. Change-Id: I5fb7d237c99ca9f2a8d50538f86dfc334d56ddd9 Reviewed-on: https://chromium-review.googlesource.com/263722Reviewed-by: 's avatarJamie Madill <jmadill@chromium.org> Tested-by: 's avatarJamie Madill <jmadill@chromium.org>
parent f6c694bc
...@@ -22,15 +22,13 @@ namespace gl ...@@ -22,15 +22,13 @@ namespace gl
////// FramebufferAttachment Implementation ////// ////// FramebufferAttachment Implementation //////
FramebufferAttachment::FramebufferAttachment(GLenum binding, RefCountObject *resource) FramebufferAttachment::FramebufferAttachment(GLenum binding)
: mBinding(binding) : mBinding(binding)
{ {
mResource.set(resource);
} }
FramebufferAttachment::~FramebufferAttachment() FramebufferAttachment::~FramebufferAttachment()
{ {
mResource.set(nullptr);
} }
GLuint FramebufferAttachment::getRedSize() const GLuint FramebufferAttachment::getRedSize() const
...@@ -73,21 +71,18 @@ GLenum FramebufferAttachment::getColorEncoding() const ...@@ -73,21 +71,18 @@ GLenum FramebufferAttachment::getColorEncoding() const
return GetInternalFormatInfo(getInternalFormat()).colorEncoding; return GetInternalFormatInfo(getInternalFormat()).colorEncoding;
} }
GLuint FramebufferAttachment::id() const
{
return mResource->id();
}
///// TextureAttachment Implementation //////// ///// TextureAttachment Implementation ////////
TextureAttachment::TextureAttachment(GLenum binding, Texture *texture, const ImageIndex &index) TextureAttachment::TextureAttachment(GLenum binding, Texture *texture, const ImageIndex &index)
: FramebufferAttachment(binding, texture), : FramebufferAttachment(binding),
mIndex(index) mIndex(index)
{ {
mTexture.set(texture);
} }
TextureAttachment::~TextureAttachment() TextureAttachment::~TextureAttachment()
{ {
mTexture.set(NULL);
} }
GLsizei TextureAttachment::getSamples() const GLsizei TextureAttachment::getSamples() const
...@@ -95,19 +90,24 @@ GLsizei TextureAttachment::getSamples() const ...@@ -95,19 +90,24 @@ GLsizei TextureAttachment::getSamples() const
return 0; return 0;
} }
GLuint TextureAttachment::id() const
{
return mTexture->id();
}
GLsizei TextureAttachment::getWidth() const GLsizei TextureAttachment::getWidth() const
{ {
return getTexture()->getWidth(mIndex.type, mIndex.mipIndex); return mTexture->getWidth(mIndex.type, mIndex.mipIndex);
} }
GLsizei TextureAttachment::getHeight() const GLsizei TextureAttachment::getHeight() const
{ {
return getTexture()->getHeight(mIndex.type, mIndex.mipIndex); return mTexture->getHeight(mIndex.type, mIndex.mipIndex);
} }
GLenum TextureAttachment::getInternalFormat() const GLenum TextureAttachment::getInternalFormat() const
{ {
return getTexture()->getInternalFormat(mIndex.type, mIndex.mipIndex); return mTexture->getInternalFormat(mIndex.type, mIndex.mipIndex);
} }
GLenum TextureAttachment::type() const GLenum TextureAttachment::type() const
...@@ -130,6 +130,11 @@ GLint TextureAttachment::layer() const ...@@ -130,6 +130,11 @@ GLint TextureAttachment::layer() const
return mIndex.layerIndex; return mIndex.layerIndex;
} }
Texture *TextureAttachment::getTexture() const
{
return mTexture.get();
}
const ImageIndex *TextureAttachment::getTextureImageIndex() const const ImageIndex *TextureAttachment::getTextureImageIndex() const
{ {
return &mIndex; return &mIndex;
...@@ -138,39 +143,46 @@ const ImageIndex *TextureAttachment::getTextureImageIndex() const ...@@ -138,39 +143,46 @@ const ImageIndex *TextureAttachment::getTextureImageIndex() const
Renderbuffer *TextureAttachment::getRenderbuffer() const Renderbuffer *TextureAttachment::getRenderbuffer() const
{ {
UNREACHABLE(); UNREACHABLE();
return nullptr; return NULL;
} }
////// RenderbufferAttachment Implementation ////// ////// RenderbufferAttachment Implementation //////
RenderbufferAttachment::RenderbufferAttachment(GLenum binding, Renderbuffer *renderbuffer) RenderbufferAttachment::RenderbufferAttachment(GLenum binding, Renderbuffer *renderbuffer)
: FramebufferAttachment(binding, renderbuffer) : FramebufferAttachment(binding)
{ {
ASSERT(renderbuffer); ASSERT(renderbuffer);
mRenderbuffer.set(renderbuffer);
} }
RenderbufferAttachment::~RenderbufferAttachment() RenderbufferAttachment::~RenderbufferAttachment()
{ {
mRenderbuffer.set(NULL);
} }
GLsizei RenderbufferAttachment::getWidth() const GLsizei RenderbufferAttachment::getWidth() const
{ {
return getRenderbuffer()->getWidth(); return mRenderbuffer->getWidth();
} }
GLsizei RenderbufferAttachment::getHeight() const GLsizei RenderbufferAttachment::getHeight() const
{ {
return getRenderbuffer()->getHeight(); return mRenderbuffer->getHeight();
} }
GLenum RenderbufferAttachment::getInternalFormat() const GLenum RenderbufferAttachment::getInternalFormat() const
{ {
return getRenderbuffer()->getInternalFormat(); return mRenderbuffer->getInternalFormat();
} }
GLsizei RenderbufferAttachment::getSamples() const GLsizei RenderbufferAttachment::getSamples() const
{ {
return getRenderbuffer()->getSamples(); return mRenderbuffer->getSamples();
}
GLuint RenderbufferAttachment::id() const
{
return mRenderbuffer->id();
} }
GLenum RenderbufferAttachment::type() const GLenum RenderbufferAttachment::type() const
...@@ -196,46 +208,59 @@ GLint RenderbufferAttachment::layer() const ...@@ -196,46 +208,59 @@ GLint RenderbufferAttachment::layer() const
Texture *RenderbufferAttachment::getTexture() const Texture *RenderbufferAttachment::getTexture() const
{ {
UNREACHABLE(); UNREACHABLE();
return nullptr; return NULL;
} }
const ImageIndex *RenderbufferAttachment::getTextureImageIndex() const const ImageIndex *RenderbufferAttachment::getTextureImageIndex() const
{ {
UNREACHABLE(); UNREACHABLE();
return nullptr; return NULL;
}
Renderbuffer *RenderbufferAttachment::getRenderbuffer() const
{
return mRenderbuffer.get();
} }
DefaultAttachment::DefaultAttachment(GLenum binding, egl::Surface *surface) DefaultAttachment::DefaultAttachment(GLenum binding, egl::Surface *surface)
: FramebufferAttachment(binding, surface) : FramebufferAttachment(binding)
{ {
mSurface.set(surface);
} }
DefaultAttachment::~DefaultAttachment() DefaultAttachment::~DefaultAttachment()
{ {
mSurface.set(nullptr);
} }
GLsizei DefaultAttachment::getWidth() const GLsizei DefaultAttachment::getWidth() const
{ {
return getSurface()->getWidth(); return mSurface->getWidth();
} }
GLsizei DefaultAttachment::getHeight() const GLsizei DefaultAttachment::getHeight() const
{ {
return getSurface()->getHeight(); return mSurface->getHeight();
} }
GLenum DefaultAttachment::getInternalFormat() const GLenum DefaultAttachment::getInternalFormat() const
{ {
const egl::Config *config = getSurface()->getConfig(); const egl::Config *config = mSurface->getConfig();
return (getBinding() == GL_BACK ? config->renderTargetFormat : config->depthStencilFormat); return (getBinding() == GL_BACK ? config->renderTargetFormat : config->depthStencilFormat);
} }
GLsizei DefaultAttachment::getSamples() const GLsizei DefaultAttachment::getSamples() const
{ {
const egl::Config *config = getSurface()->getConfig(); const egl::Config *config = mSurface->getConfig();
return config->samples; return config->samples;
} }
GLuint DefaultAttachment::id() const
{
return 0;
}
GLenum DefaultAttachment::type() const GLenum DefaultAttachment::type() const
{ {
return GL_FRAMEBUFFER_DEFAULT; return GL_FRAMEBUFFER_DEFAULT;
...@@ -259,19 +284,19 @@ GLint DefaultAttachment::layer() const ...@@ -259,19 +284,19 @@ GLint DefaultAttachment::layer() const
Texture *DefaultAttachment::getTexture() const Texture *DefaultAttachment::getTexture() const
{ {
UNREACHABLE(); UNREACHABLE();
return nullptr; return NULL;
} }
const ImageIndex *DefaultAttachment::getTextureImageIndex() const const ImageIndex *DefaultAttachment::getTextureImageIndex() const
{ {
UNREACHABLE(); UNREACHABLE();
return nullptr; return NULL;
} }
Renderbuffer *DefaultAttachment::getRenderbuffer() const Renderbuffer *DefaultAttachment::getRenderbuffer() const
{ {
UNREACHABLE(); UNREACHABLE();
return nullptr; return NULL;
} }
} }
...@@ -10,11 +10,12 @@ ...@@ -10,11 +10,12 @@
#ifndef LIBANGLE_FRAMEBUFFERATTACHMENT_H_ #ifndef LIBANGLE_FRAMEBUFFERATTACHMENT_H_
#define LIBANGLE_FRAMEBUFFERATTACHMENT_H_ #define LIBANGLE_FRAMEBUFFERATTACHMENT_H_
#include "angle_gl.h"
#include "common/angleutils.h"
#include "libANGLE/Texture.h" #include "libANGLE/Texture.h"
#include "libANGLE/Renderbuffer.h" #include "libANGLE/RefCountObject.h"
#include "libANGLE/Surface.h"
#include "common/angleutils.h"
#include "angle_gl.h"
namespace gl namespace gl
{ {
...@@ -29,7 +30,7 @@ class Renderbuffer; ...@@ -29,7 +30,7 @@ class Renderbuffer;
class FramebufferAttachment : angle::NonCopyable class FramebufferAttachment : angle::NonCopyable
{ {
public: public:
explicit FramebufferAttachment(GLenum binding, RefCountObject *resource); explicit FramebufferAttachment(GLenum binding);
virtual ~FramebufferAttachment(); virtual ~FramebufferAttachment();
// Helper methods // Helper methods
...@@ -47,14 +48,13 @@ class FramebufferAttachment : angle::NonCopyable ...@@ -47,14 +48,13 @@ class FramebufferAttachment : angle::NonCopyable
GLenum getBinding() const { return mBinding; } GLenum getBinding() const { return mBinding; }
GLuint id() const;
// Child class interface // Child class interface
virtual GLsizei getWidth() const = 0; virtual GLsizei getWidth() const = 0;
virtual GLsizei getHeight() const = 0; virtual GLsizei getHeight() const = 0;
virtual GLenum getInternalFormat() const = 0; virtual GLenum getInternalFormat() const = 0;
virtual GLsizei getSamples() const = 0; virtual GLsizei getSamples() const = 0;
virtual GLuint id() const = 0;
virtual GLenum type() const = 0; virtual GLenum type() const = 0;
virtual GLint mipLevel() const = 0; virtual GLint mipLevel() const = 0;
virtual GLenum cubeMapFace() const = 0; virtual GLenum cubeMapFace() const = 0;
...@@ -64,9 +64,8 @@ class FramebufferAttachment : angle::NonCopyable ...@@ -64,9 +64,8 @@ class FramebufferAttachment : angle::NonCopyable
virtual const ImageIndex *getTextureImageIndex() const = 0; virtual const ImageIndex *getTextureImageIndex() const = 0;
virtual Renderbuffer *getRenderbuffer() const = 0; virtual Renderbuffer *getRenderbuffer() const = 0;
protected: private:
GLenum mBinding; GLenum mBinding;
BindingPointer<RefCountObject> mResource;
}; };
class TextureAttachment : public FramebufferAttachment class TextureAttachment : public FramebufferAttachment
...@@ -76,6 +75,7 @@ class TextureAttachment : public FramebufferAttachment ...@@ -76,6 +75,7 @@ class TextureAttachment : public FramebufferAttachment
virtual ~TextureAttachment(); virtual ~TextureAttachment();
virtual GLsizei getSamples() const; virtual GLsizei getSamples() const;
virtual GLuint id() const;
virtual GLsizei getWidth() const; virtual GLsizei getWidth() const;
virtual GLsizei getHeight() const; virtual GLsizei getHeight() const;
...@@ -86,15 +86,12 @@ class TextureAttachment : public FramebufferAttachment ...@@ -86,15 +86,12 @@ class TextureAttachment : public FramebufferAttachment
virtual GLenum cubeMapFace() const; virtual GLenum cubeMapFace() const;
virtual GLint layer() const; virtual GLint layer() const;
virtual Texture *getTexture() const;
virtual const ImageIndex *getTextureImageIndex() const; virtual const ImageIndex *getTextureImageIndex() const;
virtual Renderbuffer *getRenderbuffer() const; virtual Renderbuffer *getRenderbuffer() const;
Texture *getTexture() const override
{
return rx::GetAs<Texture>(mResource.get());
}
private: private:
BindingPointer<Texture> mTexture;
ImageIndex mIndex; ImageIndex mIndex;
}; };
...@@ -110,6 +107,7 @@ class RenderbufferAttachment : public FramebufferAttachment ...@@ -110,6 +107,7 @@ class RenderbufferAttachment : public FramebufferAttachment
virtual GLenum getInternalFormat() const; virtual GLenum getInternalFormat() const;
virtual GLsizei getSamples() const; virtual GLsizei getSamples() const;
virtual GLuint id() const;
virtual GLenum type() const; virtual GLenum type() const;
virtual GLint mipLevel() const; virtual GLint mipLevel() const;
virtual GLenum cubeMapFace() const; virtual GLenum cubeMapFace() const;
...@@ -117,11 +115,10 @@ class RenderbufferAttachment : public FramebufferAttachment ...@@ -117,11 +115,10 @@ class RenderbufferAttachment : public FramebufferAttachment
virtual Texture *getTexture() const; virtual Texture *getTexture() const;
virtual const ImageIndex *getTextureImageIndex() const; virtual const ImageIndex *getTextureImageIndex() const;
virtual Renderbuffer *getRenderbuffer() const;
Renderbuffer *getRenderbuffer() const override private:
{ BindingPointer<Renderbuffer> mRenderbuffer;
return rx::GetAs<Renderbuffer>(mResource.get());
}
}; };
class DefaultAttachment : public FramebufferAttachment class DefaultAttachment : public FramebufferAttachment
...@@ -136,6 +133,7 @@ class DefaultAttachment : public FramebufferAttachment ...@@ -136,6 +133,7 @@ class DefaultAttachment : public FramebufferAttachment
virtual GLenum getInternalFormat() const; virtual GLenum getInternalFormat() const;
virtual GLsizei getSamples() const; virtual GLsizei getSamples() const;
virtual GLuint id() const;
virtual GLenum type() const; virtual GLenum type() const;
virtual GLint mipLevel() const; virtual GLint mipLevel() const;
virtual GLenum cubeMapFace() const; virtual GLenum cubeMapFace() const;
...@@ -145,10 +143,10 @@ class DefaultAttachment : public FramebufferAttachment ...@@ -145,10 +143,10 @@ class DefaultAttachment : public FramebufferAttachment
virtual const ImageIndex *getTextureImageIndex() const; virtual const ImageIndex *getTextureImageIndex() const;
virtual Renderbuffer *getRenderbuffer() const; virtual Renderbuffer *getRenderbuffer() const;
const egl::Surface *getSurface() const const egl::Surface *getSurface() const { return mSurface.get(); }
{
return rx::GetAs<egl::Surface>(mResource.get()); private:
} BindingPointer<egl::Surface> mSurface;
}; };
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment