OLD | NEW |
---|---|
(Empty) | |
1 /* | |
2 * Copyright 2013 Google Inc. | |
3 * | |
4 * Use of this source code is governed by a BSD-style license that can be | |
5 * found in the LICENSE file. | |
6 */ | |
7 | |
8 #ifndef SkError_DEFINED | |
9 #define SkError_DEFINED | |
10 | |
11 | |
12 /** \file SkError.h | |
13 */ | |
14 | |
15 enum SkError { | |
16 /** All is well | |
17 */ | |
18 kNoError_SkError=0, | |
19 | |
20 /** User argument passed to Skia function was invalid: NULL when that’s | |
21 * not allowed, out of numeric range, bad enum, or violating some | |
22 * other general precondition. | |
23 */ | |
24 kInvalidArgument_SkError, | |
25 | |
26 /** User tried to perform some operation in a state when the operation | |
27 * was not legal, or the operands make no sense (e.g., asking for | |
28 * pixels from an SkPictureCanvas). Other examples might be | |
29 * inset()’ing a rectangle to make it degenerate (negative width/height). | |
30 */ | |
31 kInvalidOperation_SkError, | |
32 | |
33 /** Probably not needed right now, but in the future we could have opaque | |
34 * handles for SkPictures floating around, and it would be a good idea | |
35 * to anticipate this kind of issue. | |
36 */ | |
37 kInvalidHandle_SkError, | |
38 | |
39 /** This is probably not possible because paint surely has defaults for | |
40 * everything, but perhaps a paint can get into a bad state somehow. | |
41 */ | |
42 kInvalidPaint_SkError, | |
43 | |
44 /** Skia was unable to allocate memory to perform some task. | |
45 */ | |
46 kOutOfMemory_SkError, | |
47 | |
48 /** Skia failed while trying to consume some external resource. | |
49 */ | |
50 kParseError_SkError | |
51 }; | |
52 | |
53 /** Return the current per-thread error code. Error codes are "sticky"; they | |
54 * are not not reset by subsequent successful operations. | |
55 */ | |
56 SkError SkGetLastError(); | |
57 | |
58 /** Clear the current per-thread error code back to kNoError_SkError. | |
59 */ | |
60 void SkClearLastError(); | |
61 | |
62 /** Type for callback functions to be invoked whenever an error is registered. | |
63 * Callback functions take the error code being set, as well as a context | |
64 * argument that is provided when the callback is registered. | |
65 */ | |
66 typedef void (*SkErrorCallbackFunction)(SkError, void *); | |
67 | |
68 /** Set the current per-thread error callback. | |
69 * | |
70 * \param cb The callback function to be invoked. Passing NULL | |
scroggo
2013/04/08 20:38:42
Minor nit:
Most of our parameters in Skia use "@p
| |
71 * for cb will revert to the default error callback which | |
72 * does nothing on release builds, but on debug builds will | |
73 * print an informative error message to the screen. | |
74 * \param context An arbitrary pointer that will be passed to | |
75 * the provided callback function. | |
76 */ | |
77 void SkSetErrorCallback(SkErrorCallbackFunction cb, void *context); | |
78 | |
79 /** Get a human-readable description of the last (per-thread) error that | |
80 * occurred. The returned error message will include not only a human | |
81 * readable version of the error code, but also information about the | |
82 * conditions that led to the error itself. | |
83 */ | |
84 const char *SkGetLastErrorString(); | |
85 | |
86 #endif /* SkError_DEFINED */ | |
OLD | NEW |