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 62724d4adf612f220249efa6eea1f3b722e1c8cb..8ede3764a829fa3f6e6ddf362df5bc24d5786786 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -16628,6 +16628,22 @@ void GLES2DecoderImpl::DoCreateAndConsumeTextureINTERNAL( |
} |
void GLES2DecoderImpl::DoApplyScreenSpaceAntialiasingCHROMIUM() { |
+ if (!feature_info_->feature_flags().chromium_screen_space_antialiasing) { |
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, |
+ "glApplyScreenSpaceAntialiasingCHROMIUM", |
+ "command not supported"); |
+ return; |
+ } |
+ |
+ Framebuffer* bound_framebuffer = |
+ GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER); |
+ if (!bound_framebuffer) { |
+ LOCAL_SET_GL_ERROR(GL_INVALID_OPERATION, |
+ "glApplyScreenSpaceAntialiasingCHROMIUM", |
+ "no bound framebuffer object"); |
+ return; |
+ } |
+ |
// Apply CMAA(Conservative Morphological Anti-Aliasing) algorithm to the |
// color attachments of currently bound draw framebuffer. |
// Reference GL_INTEL_framebuffer_CMAA for details. |
@@ -16650,8 +16666,7 @@ void GLES2DecoderImpl::DoApplyScreenSpaceAntialiasingCHROMIUM() { |
return; |
} |
apply_framebuffer_attachment_cmaa_intel_ |
- ->ApplyFramebufferAttachmentCMAAINTEL( |
- this, GetFramebufferInfoForTarget(GL_DRAW_FRAMEBUFFER)); |
+ ->ApplyFramebufferAttachmentCMAAINTEL(this, bound_framebuffer); |
} |
} |