Author: Lars Wassermann <[email protected]>
Branch:
Changeset: r250:9a05c60e44e1
Date: 2013-04-10 17:27 +0200
http://bitbucket.org/pypy/lang-smalltalk/changeset/9a05c60e44e1/
Log: running version of BitBlt
diff --git a/BitBltSim.19.cs b/BitBltSim.19.cs
--- a/BitBltSim.19.cs
+++ b/BitBltSim.19.cs
@@ -94,7 +94,8 @@
simDestRaster _ destForm width - 1 // WordSize + 1.
sourceForm notNil
ifTrue: [simSourceBits _ sourceForm bits.
- simSourceRaster _ sourceForm width - 1 //
WordSize + 1].
+ simSourceRaster _ sourceForm width - 1 //
WordSize + 1]
+ ifFalse: [simSourceRaster _ 0].
halftoneForm notNil
ifTrue: [simHalftoneBits _ halftoneForm bits].
simSkew _ (simSx - simDx) bitAnd: WordSize0.
@@ -141,7 +142,9 @@
ifTrue:
[prevWord _ prevWord bitAnd:
simSkewMask.
"XXX: Hack to work around
out-of-bounds access"
- thisWord := simSourceBits at:
(simSourceIndex \\ simSourceBits size) + 1.
+ thisWord := (simSourceIndex < 0 or:
[simSourceIndex >= simSourceBits size])
+ ifTrue: [simSourceBits at: 1]
+ ifFalse: [simSourceBits at:
simSourceIndex + 1].
"pick up next word"
skewWord _
prevWord bitOr: (thisWord
bitAnd: simSkewMask bitInvert32).
@@ -190,7 +193,6 @@
destForm unhibernate.
sourceForm
- ifNil: [sourceForm := destForm]
ifNotNil: [sourceForm unhibernate].
halftoneForm ifNotNil: [
(halftoneForm isKindOf: Form)
@@ -220,6 +222,7 @@
simDy _ clipY].
simDy + simH > (clipY + clipHeight)
ifTrue: [simH _ simH - ((simDy + simH) - (clipY + clipHeight))].
+ sourceForm isNil ifTrue: [^nil].
simSx < 0
ifTrue: [simDx _ simDx - simSx. simW _ simW + simSx. simSx _ 0].
simSx + simW > sourceForm width
diff --git a/images/minibluebookdebug.image b/images/minibluebookdebug.image
index
55870b1f6092dbfa3dcb4e4d0c46fec62b223bf2..77abab25338f3dab9a3e19883f8686ca98ac49c9
GIT binary patch
[cut]
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit