[pypy-commit] lang-smalltalk default: (tfel, lwassermann): added 16 Bit BitBlt Form
lwassermann
noreply at buildbot.pypy.org
Mon Apr 22 17:19:08 CEST 2013
Author: Lars Wassermann <lars.wassermann at gmail.com>
Branch:
Changeset: r315:04d66459eb57
Date: 2013-04-22 17:16 +0200
http://bitbucket.org/pypy/lang-smalltalk/changeset/04d66459eb57/
Log: (tfel, lwassermann): added 16 Bit BitBlt Form
diff --git a/spyvm/model.py b/spyvm/model.py
--- a/spyvm/model.py
+++ b/spyvm/model.py
@@ -764,6 +764,8 @@
def create(space, w_class, size, depth, display):
if depth == 1:
return W_DisplayBitmap1Bit(space, w_class, size, depth, display)
+ elif depth == 16:
+ return W_DisplayBitmap32Bit(space, w_class, size, depth, display)
elif depth == 32:
return W_DisplayBitmap32Bit(space, w_class, size, depth, display)
else:
@@ -825,6 +827,22 @@
mask >>= 1
pos += 1
+class W_DisplayBitmap16Bit(W_DisplayBitmap):
+ def getword(self, n):
+ return self._real_depth_buffer[n]
+
+ @jit.unroll_safe
+ def setword(self, n, word):
+ self._real_depth_buffer[n] = word
+ pos = n * NATIVE_DEPTH / 16
+ mask = 0xf
+ for i in range(2):
+ pixel = 0
+ for j in range(4):
+ pixel |= r_uint(word & mask << (8 * j + 4))
+ mask <<= 4
+ self.pixelbuffer[pos + i] = pixel
+
class W_DisplayBitmap32Bit(W_DisplayBitmap):
def getword(self, n):
return self._real_depth_buffer[n]
More information about the pypy-commit
mailing list