| /* | |
| * Copyright 2013 Google Inc. | |
| * | |
| * Use of this source code is governed by a BSD-style license that can be | |
| * found in the LICENSE file. | |
| */ | |
| #ifndef SkError_DEFINED | |
| #define SkError_DEFINED | |
| /** \file SkError.h | |
| */ | |
| enum SkError { | |
| /** All is well | |
| */ | |
| kNoError_SkError=0, | |
| /** User argument passed to Skia function was invalid: NULL when that’s | |
| * not allowed, out of numeric range, bad enum, or violating some | |
| * other general precondition. | |
| */ | |
| kInvalidArgument_SkError, | |
| /** User tried to perform some operation in a state when the operation | |
| * was not legal, or the operands make no sense (e.g., asking for | |
| * pixels from an SkPictureCanvas). Other examples might be | |
| * inset()’ing a rectangle to make it degenerate (negative width/height). | |
| */ | |
| kInvalidOperation_SkError, | |
| /** Probably not needed right now, but in the future we could have opaque | |
| * handles for SkPictures floating around, and it would be a good idea | |
| * to anticipate this kind of issue. | |
| */ | |
| kInvalidHandle_SkError, | |
| /** This is probably not possible because paint surely has defaults for | |
| * everything, but perhaps a paint can get into a bad state somehow. | |
| */ | |
| kInvalidPaint_SkError, | |
| /** Skia was unable to allocate memory to perform some task. | |
| */ | |
| kOutOfMemory_SkError, | |
| /** Skia failed while trying to consume some external resource. | |
| */ | |
| kParseError_SkError, | |
| /** Something went wrong internally; could be resource exhaustion but | |
| * will often be a bug. | |
| */ | |
| kInternalError_SkError | |
| }; | |
| /** Return the current per-thread error code. Error codes are "sticky"; they | |
| * are not not reset by subsequent successful operations. | |
| */ | |
| SkError SkGetLastError(); | |
| /** Clear the current per-thread error code back to kNoError_SkError. | |
| */ | |
| void SkClearLastError(); | |
| /** Type for callback functions to be invoked whenever an error is registered. | |
| * Callback functions take the error code being set, as well as a context | |
| * argument that is provided when the callback is registered. | |
| */ | |
| typedef void (*SkErrorCallbackFunction)(SkError, void *); | |
| /** Set the current per-thread error callback. | |
| * | |
| * @param cb The callback function to be invoked. Passing NULL | |
| * for cb will revert to the default error callback which | |
| * does nothing on release builds, but on debug builds will | |
| * print an informative error message to the screen. | |
| * @param context An arbitrary pointer that will be passed to | |
| * the provided callback function. | |
| */ | |
| void SkSetErrorCallback(SkErrorCallbackFunction cb, void *context); | |
| /** Get a human-readable description of the last (per-thread) error that | |
| * occurred. The returned error message will include not only a human | |
| * readable version of the error code, but also information about the | |
| * conditions that led to the error itself. | |
| */ | |
| const char *SkGetLastErrorString(); | |
| #endif /* SkError_DEFINED */ |