forked from xeolabs/scenejs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy patherrors.js
85 lines (76 loc) · 2.42 KB
/
errors.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
/**
* Backend module that provides single point through which exceptions may be raised
*
* @class SceneJS_error
* @private
*/
var SceneJS_error = new (function() {
var activeSceneId;
SceneJS_events.addListener(
SceneJS_events.SCENE_COMPILING, // Set default logging for scene root
function(params) {
activeSceneId = params.engine.id;
});
SceneJS_events.addListener(
SceneJS_events.RESET,
function() {
activeSceneId = null;
},
100000); // Really low priority - must be reset last
this.fatalError = function(code, message) {
if (typeof code == "string") {
message = code;
code = SceneJS.errors.ERROR;
}
var error = {
errorName: SceneJS.errors._getErrorName(code) || "ERROR",
code: code,
exception: message,
fatal: true
};
if (activeSceneId) {
error.sceneId = activeSceneId;
}
SceneJS_events.fireEvent(SceneJS_events.ERROR, error);
return message;
};
this.error = function(code, message) {
var error = {
errorName: SceneJS.errors._getErrorName(code) || "ERROR",
code: code,
exception: message,
fatal: false
};
if (activeSceneId) {
error.sceneId = activeSceneId;
}
SceneJS_events.fireEvent(SceneJS_events.ERROR, error);
};
})();
(function() {
SceneJS.errors = {};
var n = 0;
SceneJS.errors.ERROR = n++;
SceneJS.errors.INVALID_FRAMEBUFFER = n++;
SceneJS.errors.WEBGL_NOT_SUPPORTED = n++;
SceneJS.errors.WEBGL_CONTEXT_LOST = n++;
SceneJS.errors.NODE_CONFIG_EXPECTED = n++;
SceneJS.errors.ILLEGAL_NODE_CONFIG = n++;
SceneJS.errors.SHADER_COMPILATION_FAILURE = n++;
SceneJS.errors.SHADER_LINK_FAILURE = n++;
SceneJS.errors.CANVAS_NOT_FOUND = n++;
SceneJS.errors.OUT_OF_VRAM = n++;
SceneJS.errors.WEBGL_UNSUPPORTED_NODE_CONFIG = n++;
SceneJS.errors.NODE_NOT_FOUND = n++;
SceneJS.errors.NODE_ILLEGAL_STATE = n++;
SceneJS.errors.ID_CLASH = n++;
SceneJS.errors.PLUGIN_INVALID = n++;
})();
SceneJS.errors._getErrorName = function(code) {
for (var key in SceneJS.errors) {
if (SceneJS.errors.hasOwnProperty(key) && SceneJS.errors[key] == code) {
return key;
}
}
return null;
};