Significant firefox perf improvement. Update TODOs.
Interesting. Enough has changed in the Canvas tile operations, that Canvas.prefer_js=true is better for firefox/gecko too. Approximately 2X improvement in firefox for large hextile renders.
This commit is contained in:
parent
dfa8db8f38
commit
5235b29ddf
21
docs/TODO
21
docs/TODO
|
@ -2,21 +2,24 @@ Short Term:
|
||||||
|
|
||||||
- Test on IE 9 preview 3.
|
- Test on IE 9 preview 3.
|
||||||
|
|
||||||
- Support Opera 10.60.
|
- Support Opera 10.60 (WebSocket frames dropped).
|
||||||
|
|
||||||
- Possibly support IE <= 8.0 using excanvas:
|
- Possibly support IE <= 8.0 using excanvas of fxcanvas:
|
||||||
http://excanvas.sourceforge.net/
|
http://excanvas.sourceforge.net/
|
||||||
|
http://code.google.com/p/fxcanvas/
|
||||||
|
|
||||||
Medium Term:
|
|
||||||
|
|
||||||
- Timing delta between frames in proxy record log, for playback
|
- Timing delta between frames in proxy record log, for playback
|
||||||
support (for demo and test).
|
support (for demo and test).
|
||||||
|
|
||||||
|
|
||||||
|
Medium Term:
|
||||||
|
|
||||||
- Implement Cursor pseudo-encoding (CSS cursor)
|
- Implement Cursor pseudo-encoding (CSS cursor)
|
||||||
http://en.wikipedia.org/wiki/ICO_(file_format)
|
http://en.wikipedia.org/wiki/ICO_(file_format)
|
||||||
https://developer.mozilla.org/en/Using_URL_values_for_the_cursor_property
|
https://developer.mozilla.org/en/Using_URL_values_for_the_cursor_property
|
||||||
|
|
||||||
|
- Viewport and/or scaling support.
|
||||||
|
|
||||||
- Status bar buttons:
|
- Status bar buttons:
|
||||||
- Isolate menu UI in DefaultControls.js
|
- Isolate menu UI in DefaultControls.js
|
||||||
- Icons in status area upper left
|
- Icons in status area upper left
|
||||||
|
@ -56,7 +59,11 @@ Longer Term:
|
||||||
|
|
||||||
- Get web-socket-js RFC2817 proxying working again.
|
- Get web-socket-js RFC2817 proxying working again.
|
||||||
|
|
||||||
- Support for Spice protocol.
|
|
||||||
|
|
||||||
- Implement tight and ZRLE encoding
|
- Implement tight and ZRLE encoding
|
||||||
|
|
||||||
|
- Support for Spice protocol.
|
||||||
|
|
||||||
|
- Consider RDP protocol.
|
||||||
|
|
||||||
|
- Consider NX protocol.
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ var Canvas, Canvas_native;
|
||||||
Canvas = {
|
Canvas = {
|
||||||
|
|
||||||
prefer_js : false,
|
prefer_js : false,
|
||||||
|
force_canvas : false,
|
||||||
|
|
||||||
true_color : false,
|
true_color : false,
|
||||||
colourMap : [],
|
colourMap : [],
|
||||||
|
@ -176,8 +177,7 @@ init: function (id) {
|
||||||
|
|
||||||
if (Canvas.has_imageData) {
|
if (Canvas.has_imageData) {
|
||||||
console.log("Canvas supports imageData");
|
console.log("Canvas supports imageData");
|
||||||
Canvas._rgbxImage = Canvas._rgbxImageData;
|
Canvas.force_canvas = false;
|
||||||
Canvas._cmapImage = Canvas._cmapImageData;
|
|
||||||
if (Canvas.ctx.createImageData) {
|
if (Canvas.ctx.createImageData) {
|
||||||
// If it's there, it's faster
|
// If it's there, it's faster
|
||||||
console.log("Using Canvas createImageData");
|
console.log("Using Canvas createImageData");
|
||||||
|
@ -186,18 +186,21 @@ init: function (id) {
|
||||||
console.log("Using Canvas getImageData");
|
console.log("Using Canvas getImageData");
|
||||||
Canvas._imageData = Canvas._imageDataGet;
|
Canvas._imageData = Canvas._imageDataGet;
|
||||||
}
|
}
|
||||||
if (Util.Engine.webkit) {
|
if (Util.Engine.webkit || Util.Engine.gecko) {
|
||||||
console.log("Prefering javascript operations");
|
console.log("Prefering javascript operations");
|
||||||
Canvas.prefer_js = true;
|
Canvas.prefer_js = true;
|
||||||
} else {
|
} else {
|
||||||
console.log("Prefering Canvas operations");
|
console.log("Prefering Canvas operations");
|
||||||
Canvas.prefer_js = false;
|
Canvas.prefer_js = false;
|
||||||
}
|
}
|
||||||
|
Canvas._rgbxImage = Canvas._rgbxImageData;
|
||||||
|
Canvas._cmapImage = Canvas._cmapImageData;
|
||||||
} else {
|
} else {
|
||||||
console.log("Canvas lacks imageData, using fillRect (slow)");
|
console.log("Canvas lacks imageData, using fillRect (slow)");
|
||||||
|
Canvas.force_canvas = true;
|
||||||
|
Canvas.prefer_js = false;
|
||||||
Canvas._rgbxImage = Canvas._rgbxImageFill;
|
Canvas._rgbxImage = Canvas._rgbxImageFill;
|
||||||
Canvas._cmapImage = Canvas._cmapImageFill;
|
Canvas._cmapImage = Canvas._cmapImageFill;
|
||||||
Canvas.prefer_js = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Canvas.colourMap = [];
|
Canvas.colourMap = [];
|
||||||
|
|
Loading…
Reference in New Issue