diff options
| author | Julie Lala <jules@okfoc.us> | 2014-12-18 23:21:00 -0500 |
|---|---|---|
| committer | Julie Lala <jules@okfoc.us> | 2014-12-18 23:21:00 -0500 |
| commit | 6946255bb23b50e841a6684dc8950797d2a5dce6 (patch) | |
| tree | d1390e405e5302bdbc03d115a6e20afae8469739 /js/blit.js | |
| parent | dda251707cd91ec5d377816de4ea7a6e3da4147e (diff) | |
| parent | 8746a003b0226cd7bd67eca8fcf3774313021093 (diff) | |
merge
Diffstat (limited to 'js/blit.js')
| -rw-r--r-- | js/blit.js | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/js/blit.js b/js/blit.js new file mode 100644 index 0000000..8683f22 --- /dev/null +++ b/js/blit.js @@ -0,0 +1,51 @@ +var blit = (function(){ + var blit = {} + blit.and = blit.atop = function(A, B, x, y){ + x = x || 0 ; y = y || 0 + B.forEach(function(lex, u, v){ + var cell = A.getCell(u+x, v+y) + if (cell && lex.opacity > 0) { + cell.clone(lex) + } + }) + } + blit.or = blit.under = function(A, B, x, y){ + x = x || 0 ; y = y || 0 + B.forEach(function(lex, u, v){ + var cell = A.getCell(u+x, v+y) + if (cell && cell.opacity == 0) { + cell.clone(lex) + } + }) + } + // copy the region of A beginning at x,y into B + blit.copy_from = function(A, B, x, y){ + x = x || 0 ; y = y || 0 + B.forEach(function(lex, u, v){ + var cell = A.getCell(u+x, v+y) + if (cell) { + lex.clone(cell) + } + }) + } + blit.copy_to = function(A, B, x, y){ + x = x || 0 ; y = y || 0 + B.forEach(function(lex, u, v){ + var cell = A.getCell(u+x, v+y) + if (cell) { + cell.clone(lex) + } + }) + } + blit.invert = function(A, B, x, y){ + x = x || 0 ; y = y || 0 + B.forEach(function(lex, u, v){ + var cell = A.getCell(u+x, v+y) + if (cell && lex.opacity > 0) { + cell.fg = get_inverse(cell.fg) + cell.bg = get_inverse(cell.bg) + } + }) + } + return blit +})() |
