aboutsummaryrefslogtreecommitdiff
path: root/src/library_sdl.js
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2011-10-12 17:52:24 -0700
committerAlon Zakai <alonzakai@gmail.com>2011-10-12 17:52:24 -0700
commit668267060800fd4e3021d544774653e1db2dd075 (patch)
tree80126df52d6d7e8e052bb6943f8eb6fa80f8ada9 /src/library_sdl.js
parent7cfb4392edc63fb8d5fa2fedd651f858f340059b (diff)
some SDL stuff
Diffstat (limited to 'src/library_sdl.js')
-rw-r--r--src/library_sdl.js43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/library_sdl.js b/src/library_sdl.js
index 57a98e64..af94301a 100644
--- a/src/library_sdl.js
+++ b/src/library_sdl.js
@@ -105,6 +105,9 @@ mergeInto(LibraryManager.library, {
},
structs: {
+ Rect: Runtime.generateStructInfo([
+ ['i16', 'x'], ['i16', 'y'], ['i16', 'w'], ['i16', 'h'],
+ ]),
PixelFormat: Runtime.generateStructInfo([
['void*', 'palette'], ['i8', 'BitsPerPixel'], ['i8', 'BytesPerPixel'],
['i8', 'Rloss'], ['i8', 'Gloss'], ['i8', 'Bloss'], ['i8', 'Aloss'],
@@ -377,6 +380,28 @@ mergeInto(LibraryManager.library, {
return 0;
},
+ SDL_FillRect: function(surf, rect, color) {
+ var surfData = SDL.surfaces[surf];
+ var c1 = color & 0xff;
+ var c2 = (color >> 8) & 0xff;
+ var c3 = (color >> 16) & 0xff;
+ var rx = {{{ makeGetValue('rect + SDL.structs.Rect.x', '0', 'i16') }}};
+ var ry = {{{ makeGetValue('rect + SDL.structs.Rect.y', '0', 'i16') }}};
+ var rw = {{{ makeGetValue('rect + SDL.structs.Rect.w', '0', 'i16') }}};
+ var rh = {{{ makeGetValue('rect + SDL.structs.Rect.h', '0', 'i16') }}};
+ var data = surfData.image.data;
+ var width = surfData.width;
+ for (var y = ry; y < ry + rh; y++) {
+ var base = y*width*4;
+ for (var x = rx; x < rx + rw; x++) {
+ var start = x*4 + base;
+ data[start] = c1;
+ data[start+1] = c2;
+ data[start+2] = c3;
+ }
+ }
+ },
+
SDL_BlitSurface__deps: ['SDL_UpperBlit'],
SDL_BlitSurface: function(src, srcrect, dst, dstrect) {
return _SDL_Blit(src, srcrect, dst, dstrect);
@@ -415,6 +440,11 @@ mergeInto(LibraryManager.library, {
return 1;
},
+ SDL_MapRGB: function(fmt, r, g, b) {
+ // Canvas screens are always RGBA
+ return r + (g << 8) + (b << 16);
+ },
+
// SDL_Image
IMG_Load: function(filename) {
@@ -490,5 +520,18 @@ mergeInto(LibraryManager.library, {
SDL_LockAudio: function() {},
SDL_UnlockAudio: function() {},
+
+ SDL_CreateMutex: function() { return 0 },
+ SDL_LockMutex: function() {},
+ SDL_UnlockMutex: function() {},
+ SDL_DestroyMutex: function() {},
+
+ SDL_CreateCond: function() { return 0 },
+ SDL_CondSignal: function() {},
+ SDL_CondWait: function() {},
+ SDL_DestroyCond: function() {},
+
+//SDL_CreateYUVOverlay
+//SDL_CreateThread, SDL_WaitThread etc
});