| Index: gpu/command_buffer/service/framebuffer_manager.cc
|
| diff --git a/gpu/command_buffer/service/framebuffer_manager.cc b/gpu/command_buffer/service/framebuffer_manager.cc
|
| index e0755b60e07005c189b0030ffbe4619e34eac116..6c90a56e67a3fbbeaf17a89542c073dd4175eaad 100644
|
| --- a/gpu/command_buffer/service/framebuffer_manager.cc
|
| +++ b/gpu/command_buffer/service/framebuffer_manager.cc
|
| @@ -11,20 +11,20 @@
|
| namespace gpu {
|
| namespace gles2 {
|
|
|
| -FramebufferManager::FramebufferInfo::FramebufferComboCompleteMap*
|
| - FramebufferManager::FramebufferInfo::framebuffer_combo_complete_map_;
|
| +Framebuffer::FramebufferComboCompleteMap*
|
| + Framebuffer::framebuffer_combo_complete_map_;
|
|
|
| -void FramebufferManager::FramebufferInfo::ClearFramebufferCompleteComboMap() {
|
| +void Framebuffer::ClearFramebufferCompleteComboMap() {
|
| if (framebuffer_combo_complete_map_) {
|
| framebuffer_combo_complete_map_->clear();
|
| }
|
| }
|
|
|
| class RenderbufferAttachment
|
| - : public FramebufferManager::FramebufferInfo::Attachment {
|
| + : public Framebuffer::Attachment {
|
| public:
|
| explicit RenderbufferAttachment(
|
| - RenderbufferManager::RenderbufferInfo* renderbuffer)
|
| + Renderbuffer* renderbuffer)
|
| : renderbuffer_(renderbuffer) {
|
| }
|
|
|
| @@ -56,12 +56,12 @@ class RenderbufferAttachment
|
| }
|
|
|
| virtual bool IsTexture(
|
| - TextureManager::TextureInfo* /* texture */) const OVERRIDE {
|
| + Texture* /* texture */) const OVERRIDE {
|
| return false;
|
| }
|
|
|
| virtual bool IsRenderbuffer(
|
| - RenderbufferManager::RenderbufferInfo* renderbuffer) const OVERRIDE {
|
| + Renderbuffer* renderbuffer) const OVERRIDE {
|
| return renderbuffer_ == renderbuffer;
|
| }
|
|
|
| @@ -80,7 +80,7 @@ class RenderbufferAttachment
|
| return (need & have) != 0;
|
| }
|
|
|
| - RenderbufferManager::RenderbufferInfo* renderbuffer() const {
|
| + Renderbuffer* renderbuffer() const {
|
| return renderbuffer_.get();
|
| }
|
|
|
| @@ -94,16 +94,16 @@ class RenderbufferAttachment
|
| virtual ~RenderbufferAttachment() { }
|
|
|
| private:
|
| - RenderbufferManager::RenderbufferInfo::Ref renderbuffer_;
|
| + scoped_refptr<Renderbuffer> renderbuffer_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(RenderbufferAttachment);
|
| };
|
|
|
| class TextureAttachment
|
| - : public FramebufferManager::FramebufferInfo::Attachment {
|
| + : public Framebuffer::Attachment {
|
| public:
|
| TextureAttachment(
|
| - TextureManager::TextureInfo* texture, GLenum target, GLint level)
|
| + Texture* texture, GLenum target, GLint level)
|
| : texture_(texture),
|
| target_(target),
|
| level_(level) {
|
| @@ -145,17 +145,17 @@ class TextureAttachment
|
| texture_manager->SetLevelCleared(texture_, target_, level_, cleared);
|
| }
|
|
|
| - virtual bool IsTexture(TextureManager::TextureInfo* texture) const OVERRIDE {
|
| + virtual bool IsTexture(Texture* texture) const OVERRIDE {
|
| return texture == texture_.get();
|
| }
|
|
|
| virtual bool IsRenderbuffer(
|
| - RenderbufferManager::RenderbufferInfo* /* renderbuffer */)
|
| + Renderbuffer* /* renderbuffer */)
|
| const OVERRIDE {
|
| return false;
|
| }
|
|
|
| - TextureManager::TextureInfo* texture() const {
|
| + Texture* texture() const {
|
| return texture_.get();
|
| }
|
|
|
| @@ -189,7 +189,7 @@ class TextureAttachment
|
| virtual ~TextureAttachment() {}
|
|
|
| private:
|
| - TextureManager::TextureInfo::Ref texture_;
|
| + scoped_refptr<Texture> texture_;
|
| GLenum target_;
|
| GLint level_;
|
|
|
| @@ -205,11 +205,11 @@ FramebufferManager::FramebufferManager()
|
| FramebufferManager::~FramebufferManager() {
|
| DCHECK(framebuffer_infos_.empty());
|
| // If this triggers, that means something is keeping a reference to a
|
| - // FramebufferInfo belonging to this.
|
| + // Framebuffer belonging to this.
|
| CHECK_EQ(framebuffer_info_count_, 0u);
|
| }
|
|
|
| -void FramebufferManager::FramebufferInfo::MarkAsDeleted() {
|
| +void Framebuffer::MarkAsDeleted() {
|
| deleted_ = true;
|
| while (!attachments_.empty()) {
|
| Attachment* attachment = attachments_.begin()->second.get();
|
| @@ -224,26 +224,27 @@ void FramebufferManager::Destroy(bool have_context) {
|
| }
|
|
|
| void FramebufferManager::StartTracking(
|
| - FramebufferManager::FramebufferInfo* /* framebuffer */) {
|
| + Framebuffer* /* framebuffer */) {
|
| ++framebuffer_info_count_;
|
| }
|
|
|
| void FramebufferManager::StopTracking(
|
| - FramebufferManager::FramebufferInfo* /* framebuffer */) {
|
| + Framebuffer* /* framebuffer */) {
|
| --framebuffer_info_count_;
|
| }
|
|
|
| -void FramebufferManager::CreateFramebufferInfo(
|
| +void FramebufferManager::CreateFramebuffer(
|
| GLuint client_id, GLuint service_id) {
|
| std::pair<FramebufferInfoMap::iterator, bool> result =
|
| framebuffer_infos_.insert(
|
| std::make_pair(
|
| client_id,
|
| - FramebufferInfo::Ref(new FramebufferInfo(this, service_id))));
|
| + scoped_refptr<Framebuffer>(
|
| + new Framebuffer(this, service_id))));
|
| DCHECK(result.second);
|
| }
|
|
|
| -FramebufferManager::FramebufferInfo::FramebufferInfo(
|
| +Framebuffer::Framebuffer(
|
| FramebufferManager* manager, GLuint service_id)
|
| : manager_(manager),
|
| deleted_(false),
|
| @@ -253,7 +254,7 @@ FramebufferManager::FramebufferInfo::FramebufferInfo(
|
| manager->StartTracking(this);
|
| }
|
|
|
| -FramebufferManager::FramebufferInfo::~FramebufferInfo() {
|
| +Framebuffer::~Framebuffer() {
|
| if (manager_) {
|
| if (manager_->have_context_) {
|
| GLuint id = service_id();
|
| @@ -264,7 +265,7 @@ FramebufferManager::FramebufferInfo::~FramebufferInfo() {
|
| }
|
| }
|
|
|
| -bool FramebufferManager::FramebufferInfo::HasUnclearedAttachment(
|
| +bool Framebuffer::HasUnclearedAttachment(
|
| GLenum attachment) const {
|
| AttachmentMap::const_iterator it =
|
| attachments_.find(attachment);
|
| @@ -275,7 +276,7 @@ bool FramebufferManager::FramebufferInfo::HasUnclearedAttachment(
|
| return false;
|
| }
|
|
|
| -void FramebufferManager::FramebufferInfo::MarkAttachmentAsCleared(
|
| +void Framebuffer::MarkAttachmentAsCleared(
|
| RenderbufferManager* renderbuffer_manager,
|
| TextureManager* texture_manager,
|
| GLenum attachment,
|
| @@ -291,7 +292,7 @@ void FramebufferManager::FramebufferInfo::MarkAttachmentAsCleared(
|
| }
|
| }
|
|
|
| -void FramebufferManager::FramebufferInfo::MarkAttachmentsAsCleared(
|
| +void Framebuffer::MarkAttachmentsAsCleared(
|
| RenderbufferManager* renderbuffer_manager,
|
| TextureManager* texture_manager,
|
| bool cleared) {
|
| @@ -304,17 +305,17 @@ void FramebufferManager::FramebufferInfo::MarkAttachmentsAsCleared(
|
| }
|
| }
|
|
|
| -bool FramebufferManager::FramebufferInfo::HasDepthAttachment() const {
|
| +bool Framebuffer::HasDepthAttachment() const {
|
| return attachments_.find(GL_DEPTH_STENCIL_ATTACHMENT) != attachments_.end() ||
|
| attachments_.find(GL_DEPTH_ATTACHMENT) != attachments_.end();
|
| }
|
|
|
| -bool FramebufferManager::FramebufferInfo::HasStencilAttachment() const {
|
| +bool Framebuffer::HasStencilAttachment() const {
|
| return attachments_.find(GL_DEPTH_STENCIL_ATTACHMENT) != attachments_.end() ||
|
| attachments_.find(GL_STENCIL_ATTACHMENT) != attachments_.end();
|
| }
|
|
|
| -GLenum FramebufferManager::FramebufferInfo::GetColorAttachmentFormat() const {
|
| +GLenum Framebuffer::GetColorAttachmentFormat() const {
|
| AttachmentMap::const_iterator it = attachments_.find(GL_COLOR_ATTACHMENT0);
|
| if (it == attachments_.end()) {
|
| return 0;
|
| @@ -323,7 +324,7 @@ GLenum FramebufferManager::FramebufferInfo::GetColorAttachmentFormat() const {
|
| return attachment->internal_format();
|
| }
|
|
|
| -GLenum FramebufferManager::FramebufferInfo::IsPossiblyComplete() const {
|
| +GLenum Framebuffer::IsPossiblyComplete() const {
|
| if (attachments_.empty()) {
|
| return GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT;
|
| }
|
| @@ -359,7 +360,7 @@ GLenum FramebufferManager::FramebufferInfo::IsPossiblyComplete() const {
|
| return GL_FRAMEBUFFER_COMPLETE;
|
| }
|
|
|
| -GLenum FramebufferManager::FramebufferInfo::GetStatus(
|
| +GLenum Framebuffer::GetStatus(
|
| TextureManager* texture_manager, GLenum target) const {
|
| // Check if we have this combo already.
|
| std::string signature(base::StringPrintf("|FBO|target=%04x", target));
|
| @@ -387,7 +388,7 @@ GLenum FramebufferManager::FramebufferInfo::GetStatus(
|
| return result;
|
| }
|
|
|
| -bool FramebufferManager::FramebufferInfo::IsCleared() const {
|
| +bool Framebuffer::IsCleared() const {
|
| // are all the attachments cleaared?
|
| for (AttachmentMap::const_iterator it = attachments_.begin();
|
| it != attachments_.end(); ++it) {
|
| @@ -399,8 +400,8 @@ bool FramebufferManager::FramebufferInfo::IsCleared() const {
|
| return true;
|
| }
|
|
|
| -void FramebufferManager::FramebufferInfo::UnbindRenderbuffer(
|
| - GLenum target, RenderbufferManager::RenderbufferInfo* renderbuffer) {
|
| +void Framebuffer::UnbindRenderbuffer(
|
| + GLenum target, Renderbuffer* renderbuffer) {
|
| bool done;
|
| do {
|
| done = true;
|
| @@ -418,8 +419,8 @@ void FramebufferManager::FramebufferInfo::UnbindRenderbuffer(
|
| } while (!done);
|
| }
|
|
|
| -void FramebufferManager::FramebufferInfo::UnbindTexture(
|
| - GLenum target, TextureManager::TextureInfo* texture) {
|
| +void Framebuffer::UnbindTexture(
|
| + GLenum target, Texture* texture) {
|
| bool done;
|
| do {
|
| done = true;
|
| @@ -437,13 +438,13 @@ void FramebufferManager::FramebufferInfo::UnbindTexture(
|
| } while (!done);
|
| }
|
|
|
| -FramebufferManager::FramebufferInfo* FramebufferManager::GetFramebufferInfo(
|
| +Framebuffer* FramebufferManager::GetFramebuffer(
|
| GLuint client_id) {
|
| FramebufferInfoMap::iterator it = framebuffer_infos_.find(client_id);
|
| return it != framebuffer_infos_.end() ? it->second : NULL;
|
| }
|
|
|
| -void FramebufferManager::RemoveFramebufferInfo(GLuint client_id) {
|
| +void FramebufferManager::RemoveFramebuffer(GLuint client_id) {
|
| FramebufferInfoMap::iterator it = framebuffer_infos_.find(client_id);
|
| if (it != framebuffer_infos_.end()) {
|
| it->second->MarkAsDeleted();
|
| @@ -451,8 +452,8 @@ void FramebufferManager::RemoveFramebufferInfo(GLuint client_id) {
|
| }
|
| }
|
|
|
| -void FramebufferManager::FramebufferInfo::AttachRenderbuffer(
|
| - GLenum attachment, RenderbufferManager::RenderbufferInfo* renderbuffer) {
|
| +void Framebuffer::AttachRenderbuffer(
|
| + GLenum attachment, Renderbuffer* renderbuffer) {
|
| DCHECK(attachment == GL_COLOR_ATTACHMENT0 ||
|
| attachment == GL_DEPTH_ATTACHMENT ||
|
| attachment == GL_STENCIL_ATTACHMENT ||
|
| @@ -461,7 +462,7 @@ void FramebufferManager::FramebufferInfo::AttachRenderbuffer(
|
| if (a)
|
| a->DetachFromFramebuffer();
|
| if (renderbuffer) {
|
| - attachments_[attachment] = Attachment::Ref(
|
| + attachments_[attachment] = scoped_refptr<Attachment>(
|
| new RenderbufferAttachment(renderbuffer));
|
| } else {
|
| attachments_.erase(attachment);
|
| @@ -469,8 +470,8 @@ void FramebufferManager::FramebufferInfo::AttachRenderbuffer(
|
| framebuffer_complete_state_count_id_ = 0;
|
| }
|
|
|
| -void FramebufferManager::FramebufferInfo::AttachTexture(
|
| - GLenum attachment, TextureManager::TextureInfo* texture, GLenum target,
|
| +void Framebuffer::AttachTexture(
|
| + GLenum attachment, Texture* texture, GLenum target,
|
| GLint level) {
|
| DCHECK(attachment == GL_COLOR_ATTACHMENT0 ||
|
| attachment == GL_DEPTH_ATTACHMENT ||
|
| @@ -480,7 +481,7 @@ void FramebufferManager::FramebufferInfo::AttachTexture(
|
| if (a)
|
| a->DetachFromFramebuffer();
|
| if (texture) {
|
| - attachments_[attachment] = Attachment::Ref(
|
| + attachments_[attachment] = scoped_refptr<Attachment>(
|
| new TextureAttachment(texture, target, level));
|
| texture->AttachToFramebuffer();
|
| } else {
|
| @@ -489,8 +490,8 @@ void FramebufferManager::FramebufferInfo::AttachTexture(
|
| framebuffer_complete_state_count_id_ = 0;
|
| }
|
|
|
| -const FramebufferManager::FramebufferInfo::Attachment*
|
| - FramebufferManager::FramebufferInfo::GetAttachment(
|
| +const Framebuffer::Attachment*
|
| + Framebuffer::GetAttachment(
|
| GLenum attachment) const {
|
| AttachmentMap::const_iterator it = attachments_.find(attachment);
|
| if (it != attachments_.end()) {
|
| @@ -513,7 +514,7 @@ bool FramebufferManager::GetClientId(
|
| }
|
|
|
| void FramebufferManager::MarkAttachmentsAsCleared(
|
| - FramebufferManager::FramebufferInfo* framebuffer,
|
| + Framebuffer* framebuffer,
|
| RenderbufferManager* renderbuffer_manager,
|
| TextureManager* texture_manager) {
|
| DCHECK(framebuffer);
|
| @@ -524,13 +525,13 @@ void FramebufferManager::MarkAttachmentsAsCleared(
|
| }
|
|
|
| void FramebufferManager::MarkAsComplete(
|
| - FramebufferManager::FramebufferInfo* framebuffer) {
|
| + Framebuffer* framebuffer) {
|
| DCHECK(framebuffer);
|
| framebuffer->MarkAsComplete(framebuffer_state_change_count_);
|
| }
|
|
|
| bool FramebufferManager::IsComplete(
|
| - FramebufferManager::FramebufferInfo* framebuffer) {
|
| + Framebuffer* framebuffer) {
|
| DCHECK(framebuffer);
|
| return framebuffer->framebuffer_complete_state_count_id() ==
|
| framebuffer_state_change_count_;
|
|
|