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
////// FramebufferAttachment Implementation //////
FramebufferAttachment::FramebufferAttachment(GLenum binding, RefCountObject *resource)
FramebufferAttachment::FramebufferAttachment(GLenum binding)
: mBinding(binding)
{
mResource.set(resource);
}
FramebufferAttachment::~FramebufferAttachment()
{
mResource.set(nullptr);
}
GLuint FramebufferAttachment::getRedSize() const
......@@ -73,21 +71,18 @@ GLenum FramebufferAttachment::getColorEncoding() const
return GetInternalFormatInfo(getInternalFormat()).colorEncoding;
}
GLuint FramebufferAttachment::id() const
{
return mResource->id();
}
///// TextureAttachment Implementation ////////
TextureAttachment::TextureAttachment(GLenum binding, Texture *texture, const ImageIndex &index)
: FramebufferAttachment(binding, texture),
: FramebufferAttachment(binding),
mIndex(index)
{
mTexture.set(texture);
}
TextureAttachment::~TextureAttachment()
{
mTexture.set(NULL);
}
GLsizei TextureAttachment::getSamples() const
......@@ -95,19 +90,24 @@ GLsizei TextureAttachment::getSamples() const
return 0;
}
GLuint TextureAttachment::id() const
{
return mTexture->id();
}
GLsizei TextureAttachment::getWidth() const
{
return getTexture()->getWidth(mIndex.type, mIndex.mipIndex);
return mTexture->getWidth(mIndex.type, mIndex.mipIndex);
}
GLsizei TextureAttachment::getHeight() const
{
return getTexture()->getHeight(mIndex.type, mIndex.mipIndex);
return mTexture->getHeight(mIndex.type, mIndex.mipIndex);
}
GLenum TextureAttachment::getInternalFormat() const
{
return getTexture()->getInternalFormat(mIndex.type, mIndex.mipIndex);
return mTexture->getInternalFormat(mIndex.type, mIndex.mipIndex);
}
GLenum TextureAttachment::type() const
......@@ -130,6 +130,11 @@ GLint TextureAttachment::layer() const
return mIndex.layerIndex;
}
Texture *TextureAttachment::getTexture() const
{
return mTexture.get();
}
const ImageIndex *TextureAttachment::getTextureImageIndex() const
{
return &mIndex;
......@@ -138,39 +143,46 @@ const ImageIndex *TextureAttachment::getTextureImageIndex() const
Renderbuffer *TextureAttachment::getRenderbuffer() const
{
UNREACHABLE();
return nullptr;
return NULL;
}
////// RenderbufferAttachment Implementation //////
RenderbufferAttachment::RenderbufferAttachment(GLenum binding, Renderbuffer *renderbuffer)
: FramebufferAttachment(binding, renderbuffer)
: FramebufferAttachment(binding)
{
ASSERT(renderbuffer);
mRenderbuffer.set(renderbuffer);
}
RenderbufferAttachment::~RenderbufferAttachment()
{
mRenderbuffer.set(NULL);
}
GLsizei RenderbufferAttachment::getWidth() const
{
return getRenderbuffer()->getWidth();
return mRenderbuffer->getWidth();
}
GLsizei RenderbufferAttachment::getHeight() const
{
return getRenderbuffer()->getHeight();
return mRenderbuffer->getHeight();
}
GLenum RenderbufferAttachment::getInternalFormat() const
{
return getRenderbuffer()->getInternalFormat();
return mRenderbuffer->getInternalFormat();
}
GLsizei RenderbufferAttachment::getSamples() const
{
return getRenderbuffer()->getSamples();
return mRenderbuffer->getSamples();
}
GLuint RenderbufferAttachment::id() const
{
return mRenderbuffer->id();
}
GLenum RenderbufferAttachment::type() const
......@@ -196,46 +208,59 @@ GLint RenderbufferAttachment::layer() const
Texture *RenderbufferAttachment::getTexture() const
{
UNREACHABLE();
return nullptr;
return NULL;
}
const ImageIndex *RenderbufferAttachment::getTextureImageIndex() const
{
UNREACHABLE();
return nullptr;
return NULL;
}
Renderbuffer *RenderbufferAttachment::getRenderbuffer() const
{
return mRenderbuffer.get();
}
DefaultAttachment::DefaultAttachment(GLenum binding, egl::Surface *surface)
: FramebufferAttachment(binding, surface)
: FramebufferAttachment(binding)
{
mSurface.set(surface);
}
DefaultAttachment::~DefaultAttachment()
{
mSurface.set(nullptr);
}
GLsizei DefaultAttachment::getWidth() const
{
return getSurface()->getWidth();
return mSurface->getWidth();
}
GLsizei DefaultAttachment::getHeight() const
{
return getSurface()->getHeight();
return mSurface->getHeight();
}
GLenum DefaultAttachment::getInternalFormat() const
{
const egl::Config *config = getSurface()->getConfig();
const egl::Config *config = mSurface->getConfig();
return (getBinding() == GL_BACK ? config->renderTargetFormat : config->depthStencilFormat);
}
GLsizei DefaultAttachment::getSamples() const
{
const egl::Config *config = getSurface()->getConfig();
const egl::Config *config = mSurface->getConfig();
return config->samples;
}
GLuint DefaultAttachment::id() const
{
return 0;
}
GLenum DefaultAttachment::type() const
{
return GL_FRAMEBUFFER_DEFAULT;
......@@ -259,19 +284,19 @@ GLint DefaultAttachment::layer() const
Texture *DefaultAttachment::getTexture() const
{
UNREACHABLE();
return nullptr;
return NULL;
}
const ImageIndex *DefaultAttachment::getTextureImageIndex() const
{
UNREACHABLE();
return nullptr;
return NULL;
}
Renderbuffer *DefaultAttachment::getRenderbuffer() const
{
UNREACHABLE();
return nullptr;
return NULL;
}
}
......@@ -10,11 +10,12 @@
#ifndef LIBANGLE_FRAMEBUFFERATTACHMENT_H_
#define LIBANGLE_FRAMEBUFFERATTACHMENT_H_
#include "angle_gl.h"
#include "common/angleutils.h"
#include "libANGLE/Texture.h"
#include "libANGLE/Renderbuffer.h"
#include "libANGLE/Surface.h"
#include "libANGLE/RefCountObject.h"
#include "common/angleutils.h"
#include "angle_gl.h"
namespace gl
{
......@@ -29,7 +30,7 @@ class Renderbuffer;
class FramebufferAttachment : angle::NonCopyable
{
public:
explicit FramebufferAttachment(GLenum binding, RefCountObject *resource);
explicit FramebufferAttachment(GLenum binding);
virtual ~FramebufferAttachment();
// Helper methods
......@@ -47,14 +48,13 @@ class FramebufferAttachment : angle::NonCopyable
GLenum getBinding() const { return mBinding; }
GLuint id() const;
// Child class interface
virtual GLsizei getWidth() const = 0;
virtual GLsizei getHeight() const = 0;
virtual GLenum getInternalFormat() const = 0;
virtual GLsizei getSamples() const = 0;
virtual GLuint id() const = 0;
virtual GLenum type() const = 0;
virtual GLint mipLevel() const = 0;
virtual GLenum cubeMapFace() const = 0;
......@@ -64,9 +64,8 @@ class FramebufferAttachment : angle::NonCopyable
virtual const ImageIndex *getTextureImageIndex() const = 0;
virtual Renderbuffer *getRenderbuffer() const = 0;
protected:
private:
GLenum mBinding;
BindingPointer<RefCountObject> mResource;
};
class TextureAttachment : public FramebufferAttachment
......@@ -76,6 +75,7 @@ class TextureAttachment : public FramebufferAttachment
virtual ~TextureAttachment();
virtual GLsizei getSamples() const;
virtual GLuint id() const;
virtual GLsizei getWidth() const;
virtual GLsizei getHeight() const;
......@@ -86,15 +86,12 @@ class TextureAttachment : public FramebufferAttachment
virtual GLenum cubeMapFace() const;
virtual GLint layer() const;
virtual Texture *getTexture() const;
virtual const ImageIndex *getTextureImageIndex() const;
virtual Renderbuffer *getRenderbuffer() const;
Texture *getTexture() const override
{
return rx::GetAs<Texture>(mResource.get());
}
private:
BindingPointer<Texture> mTexture;
ImageIndex mIndex;
};
......@@ -110,6 +107,7 @@ class RenderbufferAttachment : public FramebufferAttachment
virtual GLenum getInternalFormat() const;
virtual GLsizei getSamples() const;
virtual GLuint id() const;
virtual GLenum type() const;
virtual GLint mipLevel() const;
virtual GLenum cubeMapFace() const;
......@@ -117,11 +115,10 @@ class RenderbufferAttachment : public FramebufferAttachment
virtual Texture *getTexture() const;
virtual const ImageIndex *getTextureImageIndex() const;
virtual Renderbuffer *getRenderbuffer() const;
Renderbuffer *getRenderbuffer() const override
{
return rx::GetAs<Renderbuffer>(mResource.get());
}
private:
BindingPointer<Renderbuffer> mRenderbuffer;
};
class DefaultAttachment : public FramebufferAttachment
......@@ -136,6 +133,7 @@ class DefaultAttachment : public FramebufferAttachment
virtual GLenum getInternalFormat() const;
virtual GLsizei getSamples() const;
virtual GLuint id() const;
virtual GLenum type() const;
virtual GLint mipLevel() const;
virtual GLenum cubeMapFace() const;
......@@ -145,10 +143,10 @@ class DefaultAttachment : public FramebufferAttachment
virtual const ImageIndex *getTextureImageIndex() const;
virtual Renderbuffer *getRenderbuffer() const;
const egl::Surface *getSurface() const
{
return rx::GetAs<egl::Surface>(mResource.get());
}
const egl::Surface *getSurface() const { return mSurface.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