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 6121a58da44ff4784a8c609b3c3e305337fbc57d..9f56657f4276562b89967d78bf0a6fda6fcacaac 100644 |
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc |
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc |
@@ -705,6 +705,8 @@ class GLES2DecoderImpl : public GLES2Decoder { |
void DeleteQueriesEXTHelper(GLsizei n, const GLuint* client_ids); |
bool GenVertexArraysOESHelper(GLsizei n, const GLuint* client_ids); |
void DeleteVertexArraysOESHelper(GLsizei n, const GLuint* client_ids); |
+ bool GenImageBuffersHelper(GLsizei n, const GLuint* client_ids); |
+ void DeleteImageBuffersHelper(GLsizei n, const GLuint* client_ids); |
// Workarounds |
void OnFboChanged() const; |
@@ -2697,6 +2699,18 @@ bool GLES2DecoderImpl::GenTexturesHelper(GLsizei n, const GLuint* client_ids) { |
return true; |
} |
+bool GLES2DecoderImpl::GenImageBuffersHelper(GLsizei n, |
+ const GLuint* client_ids) { |
+ for (GLsizei ii = 0; ii < n; ++ii) { |
+ if (image_manager()->LookupImage(client_ids[ii])) { |
+ return false; |
+ } |
+ } |
+ |
+ // Image already inserted into the ImageManager within GpuMemoryBufferFactory. |
+ return true; |
+} |
+ |
void GLES2DecoderImpl::DeleteBuffersHelper( |
GLsizei n, const GLuint* client_ids) { |
for (GLsizei ii = 0; ii < n; ++ii) { |
@@ -2815,6 +2829,13 @@ void GLES2DecoderImpl::DeleteTexturesHelper( |
} |
} |
+void GLES2DecoderImpl::DeleteImageBuffersHelper( |
+ GLsizei n, const GLuint* client_ids) { |
+ for (GLsizei ii = 0; ii < n; ++ii) { |
+ image_manager()->RemoveImage(client_ids[ii]); |
+ } |
+} |
+ |
// } // anonymous namespace |
bool GLES2DecoderImpl::MakeCurrent() { |