aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2012-10-29 13:46:10 -0700
committerAlon Zakai <alonzakai@gmail.com>2012-10-29 13:46:10 -0700
commit05a26d92ef6da845cfcbff79c5fc7a2de56263bf (patch)
tree7fe7350cb6fcc32e69051f148f3479354e19c609 /src
parent8a1294ec809cdfd90d17cc6c0ba04525d5d4909e (diff)
fix bug with locking an sdl surface not reading the canvas pixel data properly; fixes #664
Diffstat (limited to 'src')
-rw-r--r--src/library_sdl.js15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js
index 608f1738..56f6a6ef 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -722,16 +722,15 @@ var LibrarySDL = {
surfData.locked++;
if (surfData.locked > 1) return 0;
- if (!surfData.image) {
- surfData.image = surfData.ctx.getImageData(0, 0, surfData.width, surfData.height);
- if (surf == SDL.screen) {
- var data = surfData.image.data;
- var num = data.length;
- for (var i = 0; i < num/4; i++) {
- data[i*4+3] = 255; // opacity, as canvases blend alpha
- }
+ surfData.image = surfData.ctx.getImageData(0, 0, surfData.width, surfData.height);
+ if (surf == SDL.screen) {
+ var data = surfData.image.data;
+ var num = data.length;
+ for (var i = 0; i < num/4; i++) {
+ data[i*4+3] = 255; // opacity, as canvases blend alpha
}
}
+
if (SDL.defaults.copyOnLock) {
// Copy pixel data to somewhere accessible to 'C/C++'
if (surfData.isFlagSet(0x00200000 /* SDL_HWPALETTE */)) {