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 e45d18315cf0ff73d27a3af71f69328f0469a736..2c56c7bb5c5cf5410a8e6ffcb0af50ccac4e5ea2 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -131,14 +131,6 @@ const CommandInfo g_command_info[] = { |
#undef GLES2_CMD_OP |
}; |
-static bool IsAngle() { |
-#if defined(OS_WIN) |
- return gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2; |
-#else |
- return false; |
-#endif |
-} |
- |
// Return true if a character belongs to the ASCII subset as defined in |
// GLSL ES 1.0 spec section 3.1. |
static bool CharacterIsValidForGLES(unsigned char c) { |
@@ -508,6 +500,21 @@ GLES2Decoder::GLES2Decoder() |
GLES2Decoder::~GLES2Decoder() { |
} |
+bool GLES2Decoder::testing_force_is_angle_; |
+ |
+void GLES2Decoder::set_testing_force_is_angle(bool force) { |
+ testing_force_is_angle_ = force; |
+} |
+ |
+bool GLES2Decoder::IsAngle() { |
+#if defined(OS_WIN) |
+ return testing_force_is_angle_ || |
+ gfx::GetGLImplementation() == gfx::kGLImplementationEGLGLES2; |
+#else |
+ return testing_force_is_angle_; |
+#endif |
+} |
+ |
// This class implements GLES2Decoder so we don't have to expose all the GLES2 |
// cmd stuff to outside this class. |
class GLES2DecoderImpl : public base::SupportsWeakPtr<GLES2DecoderImpl>, |
@@ -1606,7 +1613,7 @@ ScopedResolvedFrameBufferBinder::ScopedResolvedFrameBufferBinder( |
const int width = decoder_->offscreen_size_.width(); |
const int height = decoder_->offscreen_size_.height(); |
glDisable(GL_SCISSOR_TEST); |
- if (IsAngle()) { |
+ if (GLES2Decoder::IsAngle()) { |
glBlitFramebufferANGLE(0, 0, width, height, 0, 0, width, height, |
GL_COLOR_BUFFER_BIT, GL_NEAREST); |
} else { |
@@ -1746,7 +1753,7 @@ bool RenderBuffer::AllocateStorage(const gfx::Size& size, GLenum format, |
size.width(), |
size.height()); |
} else { |
- if (IsAngle()) { |
+ if (GLES2Decoder::IsAngle()) { |
glRenderbufferStorageMultisampleANGLE(GL_RENDERBUFFER, |
samples, |
format, |
@@ -6559,6 +6566,7 @@ error::Error GLES2DecoderImpl::DoTexImage2D( |
if (!teximage2d_faster_than_texsubimage2d_ && level_is_same && pixels) { |
glTexSubImage2D(target, level, 0, 0, width, height, format, type, pixels); |
+ texture_manager()->SetLevelCleared(info, target, level); |
tex_image_2d_failed_ = false; |
return error::kNoError; |
} |