[Vm-dev] VM Maker: VMMaker.oscog-tpr.949.mcz
Douglas McPherson
djm1329 at san.rr.com
Fri Nov 21 15:15:37 UTC 2014
Unfortunately, the resulting Raspberry Pi Stack VM does not work for X11 :(
Trying to look into it now.
On Nov 21, 2014, at 03:29 , commits at source.squeak.org wrote:
>
> tim Rowledge uploaded a new version of VMMaker to project VM Maker:
> http://source.squeak.org/VMMaker/VMMaker.oscog-tpr.949.mcz
>
> ==================== Summary ====================
>
> Name: VMMaker.oscog-tpr.949
> Author: tpr
> Time: 20 November 2014, 7:28:47.525 pm
> UUID: f88be574-4771-44fb-a08e-f1312faaec73
> Ancestors: VMMaker.oscog-eem.948
>
> Add the correct init code for the fast bitblt extensions (its in the plain interp but got left out of the cog code) and add a new bitblt prim to compare two forms for pixel color state; useful for sprite touches sprite type tests and very common in Scratch.
>
> =============== Diff against VMMaker.oscog-eem.948 ===============
>
> Item was changed:
> ----- Method: BitBltSimulation>>initialiseModule (in category 'initialize-release') -----
> initialiseModule
> <export: true>
> self initBBOpTable.
> self initDither8Lookup.
> + self cppIf: #'ENABLE_FAST_BLT'
> + ifTrue:[self initialiseCopyBits].
> ^true!
>
> Item was added:
> + ----- Method: BitBltSimulation>>primitiveCompareColorA:to:test: (in category 'primitives') -----
> + primitiveCompareColorA: colorA to: colorB test: testID
> + "Invoke the pixel color comparing primitive.Only applicable if compiling
> + with ENABLE_FAST_BLT"
> + | rcvr val |
> + <export: true>
> + rcvr := self
> + primitive: 'primitiveCompareColors'
> + parameters: #(#SmallInteger #SmallInteger #SmallInteger )
> + receiver: #Oop.
> + self
> + cppIf: #'ENABLE_FAST_BLT'
> + ifTrue: [(self loadBitBltFrom: rcvr)
> + ifFalse: [^ interpreterProxy primitiveFail].
> + self clipRange.
> + (bbW <= 0 or: [bbH <= 0])
> + ifTrue: ["zero width or height; noop"
> + ^ interpreterProxy primitiveFail].
> + self cCode: '
> + compare_operation_t op;
> + op.matchRule = testID & 3;
> + op.tally = testID & (1u<<3);
> + op.srcA.bits = (void *) sourceBits;
> + op.srcA.pitch = sourcePitch;
> + op.srcA.depth = sourceDepth;
> + op.srcA.msb = sourceMSB;
> + op.srcA.x = sx;
> + op.srcA.y = sy;
> + op.srcB.bits = (void *) destBits;
> + op.srcB.pitch = destPitch;
> + op.srcB.depth = destDepth;
> + op.srcB.msb = destMSB;
> + op.srcB.x = dx;
> + op.srcB.y = dy;
> + op.width = bbW;
> + op.height = bbH;
> + op.colorA = colorA;
> + op.colorB = colorB;
> +
> + val = compareColorsDispatch(&op);'.
> + ^val asPositiveIntegerObj]
> + ifFalse: [interpreterProxy primitiveFail]!
>
More information about the Vm-dev
mailing list