| Index: include/core/SkError.h
|
| diff --git a/include/core/SkError.h b/include/core/SkError.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..ce2994cca0da2acdbe65a45aa5c4061bb4d2018a
|
| --- /dev/null
|
| +++ b/include/core/SkError.h
|
| @@ -0,0 +1,86 @@
|
| +/*
|
| + * 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
|
| +};
|
| +
|
| +/** 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 */
|
|
|