11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2011 Google Inc.
41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */
81cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
91cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
104f1dae40e24d57d647db01443b8bf2410514b8b5Derek Sollenberger#include "gl/GrGLConfig.h"
114f1dae40e24d57d647db01443b8bf2410514b8b5Derek Sollenberger#include "gl/GrGLInterface.h"
121cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
131cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergervoid GrGLClearErr(const GrGLInterface* gl) {
141cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    while (GR_GL_NO_ERROR != gl->fGetError()) {}
151cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger}
161cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
171cab2921ab279367f8206cdadc9259d12e603548Derek Sollenbergervoid GrGLCheckErr(const GrGLInterface* gl,
181cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger                  const char* location,
191cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger                  const char* call) {
201cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    uint32_t err = GR_GL_GET_ERROR(gl);
211cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    if (GR_GL_NO_ERROR != err) {
221cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        GrPrintf("---- glGetError %x", err);
231cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        if (NULL != location) {
241cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger            GrPrintf(" at\n\t%s", location);
251cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        }
261cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        if (NULL != call) {
271cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger            GrPrintf("\n\t\t%s", call);
281cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        }
291cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger        GrPrintf("\n");
301cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    }
311cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger}
321cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
331cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger///////////////////////////////////////////////////////////////////////////////
341cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
351cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#if GR_GL_LOG_CALLS
361cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    bool gLogCallsGL = !!(GR_GL_LOG_CALLS_START);
371cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#endif
381cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
391cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#if GR_GL_CHECK_ERROR
401cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger    bool gCheckErrorGL = !!(GR_GL_CHECK_ERROR_START);
411cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger#endif
421cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
43