| Index: gpu/command_buffer/service/error_state.cc
|
| diff --git a/gpu/command_buffer/service/error_state.cc b/gpu/command_buffer/service/error_state.cc
|
| index 3468c7e7c615d4b9d6cfda1e05611155eeafd392..ce65aa194d03ea79b548640560d6fa562ce5fac8 100644
|
| --- a/gpu/command_buffer/service/error_state.cc
|
| +++ b/gpu/command_buffer/service/error_state.cc
|
| @@ -16,7 +16,7 @@ namespace gles2 {
|
|
|
| class ErrorStateImpl : public ErrorState {
|
| public:
|
| - explicit ErrorStateImpl(Logger* logger);
|
| + explicit ErrorStateImpl(ErrorStateClient* client, Logger* logger);
|
| virtual ~ErrorStateImpl();
|
|
|
| virtual uint32 GetGLError() OVERRIDE;
|
| @@ -63,6 +63,7 @@ class ErrorStateImpl : public ErrorState {
|
| // Current GL error bits.
|
| uint32 error_bits_;
|
|
|
| + ErrorStateClient* client_;
|
| Logger* logger_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(ErrorStateImpl);
|
| @@ -72,13 +73,12 @@ ErrorState::ErrorState() {}
|
|
|
| ErrorState::~ErrorState() {}
|
|
|
| -ErrorState* ErrorState::Create(Logger* logger) {
|
| - return new ErrorStateImpl(logger);
|
| +ErrorState* ErrorState::Create(ErrorStateClient* client, Logger* logger) {
|
| + return new ErrorStateImpl(client, logger);
|
| }
|
|
|
| -ErrorStateImpl::ErrorStateImpl(Logger* logger)
|
| - : error_bits_(0),
|
| - logger_(logger) {}
|
| +ErrorStateImpl::ErrorStateImpl(ErrorStateClient* client, Logger* logger)
|
| + : error_bits_(0), client_(client), logger_(logger) {}
|
|
|
| ErrorStateImpl::~ErrorStateImpl() {}
|
|
|
| @@ -125,6 +125,8 @@ void ErrorStateImpl::SetGLError(
|
| function_name + ": " + msg);
|
| }
|
| error_bits_ |= GLES2Util::GLErrorToErrorBit(error);
|
| + if (error == GL_OUT_OF_MEMORY)
|
| + client_->OnOutOfMemoryError();
|
| }
|
|
|
| void ErrorStateImpl::SetGLErrorInvalidEnum(
|
|
|