Dave Lewis uploaded a new version of VMMaker to project VM Maker: http://www.squeaksource.com/VMMaker/VMMaker-dtl.171.mcz ==================== Summary ==================== Name: VMMaker-dtl.171 Author: dtl Time: 17 May 2010, 8:56:16 pm UUID: a2e00bbb-042c-44ba-a035-2393562a8afe Ancestors: VMMaker-dtl.170 Revert change from VMMaker-dtl.155. Byte size of a Bitmap must be 4 per pixel, not #bytesPerWord. http://lists.squeakfoundation.org/pipermail/vm-dev/2010-January/003635.html http://lists.squeakfoundation.org/pipermail/vm-dev/2010-January/003635.html =============== Diff against VMMaker-dtl.170 =============== Item was changed: InterpreterPlugin subclass: #InflatePlugin instanceVariableNames: 'zipCollection zipReadLimit zipPosition zipState zipBitBuf zipBitPos zipSource zipSourcePos zipSourceLimit zipLitTable zipDistTable zipCollectionSize zipLitTableSize zipDistTableSize' + classVariableNames: 'StateNoMoreData MaxBits' - classVariableNames: 'MaxBits StateNoMoreData' poolDictionaries: '' category: 'VMMaker-Plugins'! !InflatePlugin commentStamp: '<historical>' prior: 0! This plugin implements the one crucial function for efficiently decompressing streams.! Item was changed: InterpreterPlugin subclass: #KlattSynthesizerPlugin instanceVariableNames: 'resonators frame pitch t0 nper nopen nmod a1 a2 x1 x2 b1 c1 glast vlast nlast periodCount samplesCount seed cascade samplesPerFrame samplingRate' + classVariableNames: 'Bypass B3f Db1 B2 F2 A4f Epsilon Df1 Ftp Voicing Flutter B5 Btp A3v F5 Atv Ftz Diplophonia PI Aspiration Btz B4f B1 A5f F1 B4 Jitter A4v F4 Fnp A2f B5f A6f Bnp Anv Shimmer F0 Fnz A1v Ra Bnz Ro B3 B2f F3 Rk B6f A3f B6 Turbulence F6 Gain A2v Friction' - classVariableNames: 'A1v A2f A2v A3f A3v A4f A4v A5f A6f Anv Aspiration Atv B1 B2 B2f B3 B3f B4 B4f B5 B5f B6 B6f Bnp Bnz Btp Btz Bypass Db1 Df1 Diplophonia Epsilon F0 F1 F2 F3 F4 F5 F6 Flutter Fnp Fnz Friction Ftp Ftz Gain Jitter PI Ra Rk Ro Shimmer Turbulence Voicing' poolDictionaries: 'KlattResonatorIndices' category: 'VMMaker-Plugins'! !KlattSynthesizerPlugin commentStamp: '<historical>' prior: 0! This is a pluggable primitive implementation of the KlattSynthesizer.! Item was changed: InterpreterPlugin subclass: #BalloonEngineBase instanceVariableNames: 'workBuffer objBuffer getBuffer aetBuffer spanBuffer engine formArray engineStopped geProfileTime dispatchedValue dispatchReturnValue objUsed doProfileStats copyBitsFn loadBBFn bbPluginName' + classVariableNames: 'FillTable EdgeStepTable EdgeInitTable WideLineWidthTable WideLineFillTable' - classVariableNames: 'EdgeInitTable EdgeStepTable FillTable WideLineFillTable WideLineWidthTable' poolDictionaries: 'BalloonEngineConstants' category: 'VMMaker-Plugins'! !BalloonEngineBase commentStamp: 'tpr 5/5/2003 11:45' prior: 0! This is the main class for the Balloon graphics Engine. BalloonEnginePlugin should be translated but its superclass should not since it is incorporated within that class's translation process. Nor should the simulation subclass be translated! Item was changed: InterpreterPlugin subclass: #FilePlugin instanceVariableNames: 'sCCPfn sCDPfn sCGFTfn sCLPfn sCSFTfn sDFAfn sCDFfn sCOFfn sCRFfn sHFAfn' + classVariableNames: 'DirEntryFound DirNoMoreEntries DirBadPath' - classVariableNames: 'DirBadPath DirEntryFound DirNoMoreEntries' poolDictionaries: '' category: 'VMMaker-Plugins'! !FilePlugin commentStamp: 'tpr 5/5/2003 12:01' prior: 0! Provide access to the host machine file system. Requires both the Cross platform support files from platforms - Cross - plugins - FilePlugin (or some suitable replacement) and the platform specific fils from platforms - {your platform} - plugins - FilePlugin.! Item was changed: InterpreterPlugin subclass: #BitBltSimulation instanceVariableNames: 'destForm sourceForm halftoneForm combinationRule destX destY width height sourceX sourceY clipX clipY clipWidth clipHeight sourceWidth sourceHeight sourceDepth sourcePitch sourceBits sourcePPW sourceMSB destWidth destHeight destDepth destPitch destBits destPPW destMSB bitCount skew mask1 mask2 preload nWords destMask hDir vDir sourceIndex sourceDelta destIndex destDelta sx sy dx dy bbW bbH halftoneHeight noSource noHalftone halftoneBase sourceAlpha srcBitShift dstBitShift bitBltOop affectedL affectedR affectedT affectedB opTable maskTable ditherMatrix4x4 ditherThresholds16 ditherValues16 hasSurfaceLock warpSrcShift warpSrcMask warpAlignShift warpAlignMask warpBitShiftTable querySurfaceFn lockSurfaceFn unlockSurfaceFn isWarping cmFlags cmMask cmShiftTable cmMaskTable cmLookupTable cmBitsPerColor dither8Lookup' + classVariableNames: 'CrossedX FormWidthIndex BBXTableIndex FormHeightIndex BBSourceYIndex BBSourceXIndex BBRuleIndex BBWarpBase BBColorMapIndex OpTable BBClipHeightIndex BBHalftoneFormIndex EndOfRun JitBltHookSize BBDestFormIndex GreenIndex BBClipYIndex ColorMapNewStyle FixedPt1 FormBitsIndex RedIndex BBClipXIndex BlueIndex AlphaIndex BinaryPoint BBLastIndex ColorMapIndexedPart BBHeightIndex BBSourceFormIndex BBWidthIndex FormDepthIndex OpTableSize BBClipWidthIndex BBDestYIndex AllOnes BBDestXIndex ColorMapFixedPart ColorMapPresent' - classVariableNames: 'AllOnes AlphaIndex BBClipHeightIndex BBClipWidthIndex BBClipXIndex BBClipYIndex BBColorMapIndex BBDestFormIndex BBDestXIndex BBDestYIndex BBHalftoneFormIndex BBHeightIndex BBLastIndex BBRuleIndex BBSourceFormIndex BBSourceXIndex BBSourceYIndex BBWarpBase BBWidthIndex BBXTableIndex BinaryPoint BlueIndex ColorMapFixedPart ColorMapIndexedPart ColorMapNewStyle ColorMapPresent CrossedX EndOfRun FixedPt1 FormBitsIndex FormDepthIndex FormHeightIndex FormWidthIndex GreenIndex JitBltHookSize OpTable OpTableSize RedIndex' poolDictionaries: '' category: 'VMMaker-Interpreter'! !BitBltSimulation commentStamp: '<historical>' prior: 0! This class implements BitBlt, much as specified in the Blue Book spec. Performance has been enhanced through the use of pointer variables such as sourceIndex and destIndex, and by separating several special cases of the inner loop. Operation has been extended to color, with support for 1, 2, 4, 8, 16, and 32-bit pixel sizes. Conversion between different pixel sizes is facilitated by accepting an optional color map. In addition to the original 16 combination rules, this BitBlt supports 16 fail (for old paint mode) 17 fail (for old mask mode) 18 sourceWord + destinationWord 19 sourceWord - destinationWord 20 rgbAdd: sourceWord with: destinationWord 21 rgbSub: sourceWord with: destinationWord 22 OLDrgbDiff: sourceWord with: destinationWord 23 OLDtallyIntoMap: destinationWord -- old vers doesn't clip to bit boundary 24 alphaBlend: sourceWord with: destinationWord 25 pixPaint: sourceWord with: destinationWord 26 pixMask: sourceWord with: destinationWord 27 rgbMax: sourceWord with: destinationWord 28 rgbMin: sourceWord with: destinationWord 29 rgbMin: sourceWord bitInvert32 with: destinationWord 30 alphaBlendConst: sourceWord with: destinationWord -- alpha passed as an arg 31 alphaPaintConst: sourceWord with: destinationWord -- alpha passed as an arg 32 rgbDiff: sourceWord with: destinationWord 33 tallyIntoMap: destinationWord 34 alphaBlendScaled: sourceWord with: destinationWord This implementation has also been fitted with an experimental "warp drive" that allows abritrary scaling and rotation (and even limited affine deformations) with all BitBlt storage modes supported. To add a new rule to BitBlt... 1. add the new rule method or methods in the category 'combination rules' of BBSim 2. describe it in the class comment of BBSim and in the class comment for BitBlt 3. add refs to initializeRuleTable in proper positions 4. add refs to initBBOpTable, following the pattern ! Item was changed: InterpreterPlugin subclass: #JPEGReaderPlugin instanceVariableNames: 'yComponent crComponent cbComponent ySampleStream crSampleStream cbSampleStream yBlocks crBlocks cbBlocks residuals ditherMask jpegBits jpegBitsSize jpegNaturalOrder jsCollection jsPosition jsReadLimit jsBitBuffer jsBitCount acTable dcTable acTableSize dcTableSize' + classVariableNames: 'FIXn0n765366865 PriorDCValueIndex FIXn1n77200 MaxBits Pass1Div DCTSize FIXn0n390180644 BlockWidthIndex Pass1Bits MCUWidthIndex Pass2Div FIXn1n175875602 CurrentXIndex FIXn0n71414 CurrentYIndex FIXn0n34414 RedIndex FIXn2n562915447 FIXn0n899976223 FIXn1n847759065 LookaheadSymbolIndex FIXn1n501321110 FIXn0n298631336 MaxSample FIXn1n40200 BlueIndex FIXn3n072711026 MinComponentSize FIXn0n541196100 LookaheadBitsIndex HScaleIndex MaxcodeIndex SampleOffset MCUBlockIndex DCTSize2 GreenIndex ConstBits FIXn1n961570560 VScaleIndex FIXn2n053119869 MaxMCUBlocks' - classVariableNames: 'BlockWidthIndex BlueIndex ConstBits CurrentXIndex CurrentYIndex DCTSize DCTSize2 FIXn0n298631336 FIXn0n34414 FIXn0n390180644 FIXn0n541196100 FIXn0n71414 FIXn0n765366865 FIXn0n899976223 FIXn1n175875602 FIXn1n40200 FIXn1n501321110 FIXn1n77200 FIXn1n847759065 FIXn1n961570560 FIXn2n053119869 FIXn2n562915447 FIXn3n072711026 GreenIndex HScaleIndex LookaheadBitsIndex LookaheadSymbolIndex MCUBlockIndex MCUWidthIndex MaxBits MaxMCUBlocks MaxSample MaxcodeIndex MinComponentSize Pass1Bits Pass1Div Pass2Div PriorDCValueIndex RedIndex SampleOffset VScaleIndex' poolDictionaries: '' category: 'VMMaker-Plugins'! !JPEGReaderPlugin commentStamp: 'tpr 5/5/2003 12:10' prior: 0! This is another JPEG reader plugin, this time not requiring jpeglib support. ! Item was changed: (excessive method size, no diff calculated) Item was changed: (excessive method size, no diff calculated) Item was changed: ----- Method: Interpreter>>byteSizeOf: (in category 'object format') ----- byteSizeOf: oop | slots | self flag: #Dan. (self isIntegerObject: oop) ifTrue:[^0]. slots := self slotSizeOf: oop. (self isBytesNonInt: oop) ifTrue:[^slots] + ifFalse:[^slots * 4]! - ifFalse:[^slots * self bytesPerWord]! Item was changed: InflatePlugin subclass: #DeflatePlugin instanceVariableNames: 'zipHashHead zipHashTail zipHashValue zipBlockPos zipBlockStart zipLiterals zipDistances zipLiteralFreq zipDistanceFreq zipLiteralCount zipLiteralSize zipMatchCount zipMatchLengthCodes zipDistanceCodes zipCrcTable zipExtraLengthBits zipExtraDistanceBits zipBaseLength zipBaseDistance' + classVariableNames: 'DeflateHashShift DeflateHashTableSize DeflateMaxDistanceCodes DeflateMaxMatch DeflateWindowSize DeflateWindowMask DeflateMaxLiteralCodes DeflateMinMatch DeflateHashBits DeflateHashMask DeflateMaxDistance' - classVariableNames: 'DeflateHashBits DeflateHashMask DeflateHashShift DeflateHashTableSize DeflateMaxDistance DeflateMaxDistanceCodes DeflateMaxLiteralCodes DeflateMaxMatch DeflateMinMatch DeflateWindowMask DeflateWindowSize' poolDictionaries: '' category: 'VMMaker-Plugins'! !DeflatePlugin commentStamp: 'tpr 5/5/2003 11:52' prior: 0! This adds Zip deflating support. InflatePlugin should not be translated but this subclass should since it is incorporated within that class's translation process! Item was changed: (excessive method size, no diff calculated) |
Free forum by Nabble | Edit this page |