Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(474)

Unified Diff: gpu/command_buffer/service/gles2_cmd_decoder.cc

Issue 25277005: Move more framebuffer state out of ContextState and into FramebufferState. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased onto head, in the hope this fix errors unrelated to my change. Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « gpu/command_buffer/service/framebuffer_manager.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: gpu/command_buffer/service/gles2_cmd_decoder.cc
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index ca0d06a46c8dd40e5d1b548026639dfea13adce9..121550be53f788d9faecc6ab9f28918616212d8b 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -1421,10 +1421,10 @@ class GLES2DecoderImpl : public GLES2Decoder {
switch (target) {
case GL_FRAMEBUFFER:
case GL_DRAW_FRAMEBUFFER_EXT:
- framebuffer = state_.bound_draw_framebuffer.get();
+ framebuffer = framebuffer_state_.bound_draw_framebuffer.get();
break;
case GL_READ_FRAMEBUFFER_EXT:
- framebuffer = state_.bound_read_framebuffer.get();
+ framebuffer = framebuffer_state_.bound_read_framebuffer.get();
break;
default:
NOTREACHED();
@@ -1501,13 +1501,13 @@ class GLES2DecoderImpl : public GLES2Decoder {
bool ShouldDeferDraws() {
return !offscreen_target_frame_buffer_.get() &&
- state_.bound_draw_framebuffer.get() == NULL &&
+ framebuffer_state_.bound_draw_framebuffer.get() == NULL &&
surface_->DeferDraws();
}
bool ShouldDeferReads() {
return !offscreen_target_frame_buffer_.get() &&
- state_.bound_read_framebuffer.get() == NULL &&
+ framebuffer_state_.bound_read_framebuffer.get() == NULL &&
surface_->DeferDraws();
}
@@ -1745,10 +1745,11 @@ ScopedFrameBufferBinder::~ScopedFrameBufferBinder() {
ScopedResolvedFrameBufferBinder::ScopedResolvedFrameBufferBinder(
GLES2DecoderImpl* decoder, bool enforce_internal_framebuffer, bool internal)
: decoder_(decoder) {
- resolve_and_bind_ = (decoder_->offscreen_target_frame_buffer_.get() &&
- decoder_->IsOffscreenBufferMultisampled() &&
- (!decoder_->state_.bound_read_framebuffer.get() ||
- enforce_internal_framebuffer));
+ resolve_and_bind_ = (
+ decoder_->offscreen_target_frame_buffer_.get() &&
+ decoder_->IsOffscreenBufferMultisampled() &&
+ (!decoder_->framebuffer_state_.bound_read_framebuffer.get() ||
+ enforce_internal_framebuffer));
if (!resolve_and_bind_)
return;
@@ -2636,15 +2637,15 @@ void GLES2DecoderImpl::DeleteFramebuffersHelper(
Framebuffer* framebuffer =
GetFramebuffer(client_ids[ii]);
if (framebuffer && !framebuffer->IsDeleted()) {
- if (framebuffer == state_.bound_draw_framebuffer.get()) {
- state_.bound_draw_framebuffer = NULL;
+ if (framebuffer == framebuffer_state_.bound_draw_framebuffer.get()) {
+ framebuffer_state_.bound_draw_framebuffer = NULL;
framebuffer_state_.clear_state_dirty = true;
GLenum target = supports_separate_framebuffer_binds ?
GL_DRAW_FRAMEBUFFER_EXT : GL_FRAMEBUFFER;
glBindFramebufferEXT(target, GetBackbufferServiceId());
}
- if (framebuffer == state_.bound_read_framebuffer.get()) {
- state_.bound_read_framebuffer = NULL;
+ if (framebuffer == framebuffer_state_.bound_read_framebuffer.get()) {
+ framebuffer_state_.bound_read_framebuffer = NULL;
GLenum target = supports_separate_framebuffer_binds ?
GL_READ_FRAMEBUFFER_EXT : GL_FRAMEBUFFER;
glBindFramebufferEXT(target, GetBackbufferServiceId());
@@ -2668,17 +2669,17 @@ void GLES2DecoderImpl::DeleteRenderbuffersHelper(
}
// Unbind from current framebuffers.
if (supports_separate_framebuffer_binds) {
- if (state_.bound_read_framebuffer.get()) {
- state_.bound_read_framebuffer
+ if (framebuffer_state_.bound_read_framebuffer.get()) {
+ framebuffer_state_.bound_read_framebuffer
->UnbindRenderbuffer(GL_READ_FRAMEBUFFER_EXT, renderbuffer);
}
- if (state_.bound_draw_framebuffer.get()) {
- state_.bound_draw_framebuffer
+ if (framebuffer_state_.bound_draw_framebuffer.get()) {
+ framebuffer_state_.bound_draw_framebuffer
->UnbindRenderbuffer(GL_DRAW_FRAMEBUFFER_EXT, renderbuffer);
}
} else {
- if (state_.bound_draw_framebuffer.get()) {
- state_.bound_draw_framebuffer
+ if (framebuffer_state_.bound_draw_framebuffer.get()) {
+ framebuffer_state_.bound_draw_framebuffer
->UnbindRenderbuffer(GL_FRAMEBUFFER, renderbuffer);
}
}
@@ -2705,17 +2706,17 @@ void GLES2DecoderImpl::DeleteTexturesHelper(
}
// Unbind from current framebuffers.
if (supports_separate_framebuffer_binds) {
- if (state_.bound_read_framebuffer.get()) {
- state_.bound_read_framebuffer
+ if (framebuffer_state_.bound_read_framebuffer.get()) {
+ framebuffer_state_.bound_read_framebuffer
->UnbindTexture(GL_READ_FRAMEBUFFER_EXT, texture_ref);
}
- if (state_.bound_draw_framebuffer.get()) {
- state_.bound_draw_framebuffer
+ if (framebuffer_state_.bound_draw_framebuffer.get()) {
+ framebuffer_state_.bound_draw_framebuffer
->UnbindTexture(GL_DRAW_FRAMEBUFFER_EXT, texture_ref);
}
} else {
- if (state_.bound_draw_framebuffer.get()) {
- state_.bound_draw_framebuffer
+ if (framebuffer_state_.bound_draw_framebuffer.get()) {
+ framebuffer_state_.bound_draw_framebuffer
->UnbindTexture(GL_FRAMEBUFFER, texture_ref);
}
}
@@ -2808,16 +2809,16 @@ void GLES2DecoderImpl::RestoreCurrentFramebufferBindings() {
if (!features().chromium_framebuffer_multisample) {
RebindCurrentFramebuffer(
GL_FRAMEBUFFER,
- state_.bound_draw_framebuffer.get(),
+ framebuffer_state_.bound_draw_framebuffer.get(),
GetBackbufferServiceId());
} else {
RebindCurrentFramebuffer(
GL_READ_FRAMEBUFFER_EXT,
- state_.bound_read_framebuffer.get(),
+ framebuffer_state_.bound_read_framebuffer.get(),
GetBackbufferServiceId());
RebindCurrentFramebuffer(
GL_DRAW_FRAMEBUFFER_EXT,
- state_.bound_draw_framebuffer.get(),
+ framebuffer_state_.bound_draw_framebuffer.get(),
GetBackbufferServiceId());
}
OnFboChanged();
@@ -2902,17 +2903,18 @@ bool GLES2DecoderImpl::CheckFramebufferValid(
bool GLES2DecoderImpl::CheckBoundFramebuffersValid(const char* func_name) {
if (!features().chromium_framebuffer_multisample) {
bool valid = CheckFramebufferValid(
- state_.bound_draw_framebuffer.get(), GL_FRAMEBUFFER_EXT, func_name);
+ framebuffer_state_.bound_draw_framebuffer.get(), GL_FRAMEBUFFER_EXT,
+ func_name);
if (valid)
OnUseFramebuffer();
return valid;
}
- return CheckFramebufferValid(state_.bound_draw_framebuffer.get(),
+ return CheckFramebufferValid(framebuffer_state_.bound_draw_framebuffer.get(),
GL_DRAW_FRAMEBUFFER_EXT,
func_name) &&
- CheckFramebufferValid(state_.bound_read_framebuffer.get(),
+ CheckFramebufferValid(framebuffer_state_.bound_read_framebuffer.get(),
GL_READ_FRAMEBUFFER_EXT,
func_name);
}
@@ -3081,8 +3083,8 @@ void GLES2DecoderImpl::Destroy(bool have_context) {
state_.texture_units.clear();
state_.bound_array_buffer = NULL;
state_.current_query = NULL;
- state_.bound_read_framebuffer = NULL;
- state_.bound_draw_framebuffer = NULL;
+ framebuffer_state_.bound_read_framebuffer = NULL;
+ framebuffer_state_.bound_draw_framebuffer = NULL;
state_.bound_renderbuffer = NULL;
if (offscreen_saved_color_texture_info_.get()) {
@@ -3648,15 +3650,16 @@ void GLES2DecoderImpl::RestoreState() const {
}
void GLES2DecoderImpl::RestoreFramebufferBindings() const {
- GLuint service_id = state_.bound_draw_framebuffer.get()
- ? state_.bound_draw_framebuffer->service_id()
- : GetBackbufferServiceId();
+ GLuint service_id =
+ framebuffer_state_.bound_draw_framebuffer.get()
+ ? framebuffer_state_.bound_draw_framebuffer->service_id()
+ : GetBackbufferServiceId();
if (!features().chromium_framebuffer_multisample) {
glBindFramebufferEXT(GL_FRAMEBUFFER, service_id);
} else {
glBindFramebufferEXT(GL_DRAW_FRAMEBUFFER, service_id);
- service_id = state_.bound_read_framebuffer.get()
- ? state_.bound_read_framebuffer->service_id()
+ service_id = framebuffer_state_.bound_read_framebuffer.get()
+ ? framebuffer_state_.bound_read_framebuffer->service_id()
: GetBackbufferServiceId();
glBindFramebufferEXT(GL_READ_FRAMEBUFFER, service_id);
}
@@ -3729,10 +3732,10 @@ void GLES2DecoderImpl::DoBindFramebuffer(GLenum target, GLuint client_id) {
LogClientServiceForInfo(framebuffer, client_id, "glBindFramebuffer");
if (target == GL_FRAMEBUFFER || target == GL_DRAW_FRAMEBUFFER_EXT) {
- state_.bound_draw_framebuffer = framebuffer;
+ framebuffer_state_.bound_draw_framebuffer = framebuffer;
}
if (target == GL_FRAMEBUFFER || target == GL_READ_FRAMEBUFFER_EXT) {
- state_.bound_read_framebuffer = framebuffer;
+ framebuffer_state_.bound_read_framebuffer = framebuffer;
}
framebuffer_state_.clear_state_dirty = true;
@@ -4714,7 +4717,7 @@ void GLES2DecoderImpl::DoFramebufferRenderbuffer(
if (error == GL_NO_ERROR) {
framebuffer->AttachRenderbuffer(attachment, renderbuffer);
}
- if (framebuffer == state_.bound_draw_framebuffer.get()) {
+ if (framebuffer == framebuffer_state_.bound_draw_framebuffer.get()) {
framebuffer_state_.clear_state_dirty = true;
}
OnFboChanged();
@@ -4898,7 +4901,7 @@ void GLES2DecoderImpl::DoFramebufferTexture2DCommon(
framebuffer->AttachTexture(attachment, texture_ref, textarget, level,
samples);
}
- if (framebuffer == state_.bound_draw_framebuffer.get()) {
+ if (framebuffer == framebuffer_state_.bound_draw_framebuffer.get()) {
framebuffer_state_.clear_state_dirty = true;
}
OnFboChanged();
« no previous file with comments | « gpu/command_buffer/service/framebuffer_manager.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698