[squeak-dev] The Trunk: Balloon-dtl.32.mcz

David T. Lewis lewis at mail.msen.com
Fri Mar 16 23:01:12 UTC 2018


On Fri, Mar 16, 2018 at 12:34:23PM -0700, Eliot Miranda wrote:
> Hi HPI Folks, Hi David,
> 
> On Fri, Mar 16, 2018 at 7:17 AM, <commits at source.squeak.org> wrote:
> 
> > David T. Lewis uploaded a new version of Balloon to project The Trunk:
> > http://source.squeak.org/trunk/Balloon-dtl.32.mcz
> >
> > ==================== Summary ====================
> >
> > Name: Balloon-dtl.32
> > Author: dtl
> > Time: 16 March 2018, 10:16:40.975411 am
> > UUID: 555cd6b2-1e3e-47ba-b48f-32f3534e16f0
> > Ancestors: Balloon-nice.31, Balloon-tfel.26
> >
> > Merge from inbox. Note, original Balloon-tfel.26 is moved to treated inbox
> > to avoid file name conflict in trunk.
> >
> > Name: Balloon-tfel.26
> > Author: tfel
> > Time: 12 February 2015, 3:28:04.366 pm
> > UUID: 94ab88a7-1f0f-0048-b15f-1a604dc5601a
> > Ancestors: Balloon-tfel.22, Balloon-bf.25
> >
> > Instead of failing hard, return default values from Balloon primitive
> > methods, for VMs without plugin (i.e., RSqueakVM)
> >
> > =============== Diff against Balloon-nice.31 ===============
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddActiveEdgeTableEntryFrom: (in
> > category 'primitives-incremental') -----
> >   primAddActiveEdgeTableEntryFrom: edgeEntry
> >         "Add edge entry to the AET."
> >         <primitive: 'primitiveAddActiveEdgeEntry' module: 'B2DPlugin'
> > error: errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddActiveEdgeTableEntryFrom: edgeEntry
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> 
> 
> as regards these changes can someone reassure me by explaining how these
> don't obscure, for example, the plugin not being present?  Aren't they
> obscuring real potential errors?
> 

Would it obscure errors? Yes. Is that bad? I'm not certain, but I cannot
think of any cases where it would cause a problem.

Basically it just provides a set of plausible fallback methods. I expect
that a missing plugin would make this obvious for other reasons, but I did
not check to see what actually happens in that case.

If we are not sure, then some unit tests might be in order.

Dave


> 
> 
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddBezierFrom:to:via:leftFillIndex:rightFillIndex:
> > (in category 'primitives-adding') -----
> >   primAddBezierFrom: start to: end via: via leftFillIndex: leftFillIndex
> > rightFillIndex: rightFillIndex
> >         <primitive: 'primitiveAddBezier' module: 'B2DPlugin' error:
> > errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddBezierFrom: start to: end via: via
> > leftFillIndex: leftFillIndex rightFillIndex: rightFillIndex
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddBezierShape:segments:fill:lineWidth:lineFill:
> > (in category 'primitives-adding') -----
> >   primAddBezierShape: points segments: nSegments fill: fillStyle
> > lineWidth: lineWidth lineFill: lineFill
> >         <primitive: 'primitiveAddBezierShape' module: 'B2DPlugin' error:
> > errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddBezierShape: points segments: nSegments fill:
> > fillStyle lineWidth: lineWidth lineFill: lineFill
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddBitmapFill:colormap:tile:from:along:normal:xIndex:
> > (in category 'primitives-adding') -----
> >   primAddBitmapFill: form colormap: cmap tile: tileFlag from: origin
> > along: direction normal: normal xIndex: xIndex
> >         <primitive: 'primitiveAddBitmapFill' module: 'B2DPlugin' error:
> > errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddBitmapFill: form colormap: cmap tile:
> > tileFlag from: origin along: direction normal: normal xIndex: xIndex
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddCompressedShape:
> > segments:leftFills:rightFills:lineWidths:lineFills:fillIndexList: (in
> > category 'primitives-adding') -----
> >   primAddCompressedShape: points segments: nSegments leftFills: leftFills
> > rightFills: rightFills lineWidths: lineWidths lineFills: lineFills
> > fillIndexList: fillIndexList
> >         <primitive: 'primitiveAddCompressedShape' module: 'B2DPlugin'
> > error: errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddCompressedShape: points segments: nSegments
> > leftFills: leftFills rightFills: rightFills lineWidths: lineWidths
> > lineFills: lineFills fillIndexList: fillIndexList
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddExternalEdge:initialX:
> > initialY:initialZ:leftFillIndex:rightFillIndex: (in category
> > 'primitives-adding') -----
> >   primAddExternalEdge: index initialX: initialX initialY: initialY
> > initialZ: initialZ leftFillIndex: leftFillIndex rightFillIndex:
> > rightFillIndex
> >         <primitive: 'primitiveRegisterExternalEdge' module: 'B2DPlugin'
> > error: errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddExternalEdge: index initialX: initialX
> > initialY: initialY initialZ: initialZ leftFillIndex: leftFillIndex
> > rightFillIndex: rightFillIndex
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddExternalFill: (in category
> > 'primitives-adding') -----
> >   primAddExternalFill: index
> >         <primitive: 'primitiveRegisterExternalFill' module: 'B2DPlugin'
> > error: errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddExternalFill: index
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddGradientFill:from:along:normal:radial:
> > (in category 'primitives-adding') -----
> >   primAddGradientFill: colorRamp from: origin along: direction normal:
> > normal radial: isRadial
> >         <primitive: 'primitiveAddGradientFill' module: 'B2DPlugin' error:
> > errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddGradientFill: colorRamp
> >                                 from: origin
> >                                 along: direction
> >                                 normal: normal
> >                                 radial: isRadial
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddLineFrom:to:leftFillIndex:rightFillIndex:
> > (in category 'primitives-adding') -----
> >   primAddLineFrom: start to: end leftFillIndex: leftFillIndex
> > rightFillIndex: rightFillIndex
> >         <primitive: 'primitiveAddLine' module: 'B2DPlugin' error:
> > errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddLineFrom: start to: end leftFillIndex:
> > leftFillIndex rightFillIndex: rightFillIndex
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddOvalFrom:to:fillIndex:borderWidth:borderColor:
> > (in category 'primitives-adding') -----
> >   primAddOvalFrom: start to: end fillIndex: fillIndex borderWidth: width
> > borderColor: pixelValue32
> >         <primitive: 'primitiveAddOval' module: 'B2DPlugin' error:
> > errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddOvalFrom: start to: end fillIndex: fillIndex
> > borderWidth: width borderColor: pixelValue32
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddPolygon:segments:fill:lineWidth:lineFill:
> > (in category 'primitives-adding') -----
> >   primAddPolygon: points segments: nSegments fill: fillStyle lineWidth:
> > lineWidth lineFill: lineFill
> >         <primitive: 'primitiveAddPolygon' module: 'B2DPlugin' error:
> > errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddPolygon: points segments: nSegments fill:
> > fillStyle lineWidth: lineWidth lineFill: lineFill
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primAddRectFrom:to:fillIndex:borderWidth:borderColor:
> > (in category 'primitives-adding') -----
> >   primAddRectFrom: start to: end fillIndex: fillIndex borderWidth: width
> > borderColor: pixelValue32
> >         <primitive: 'primitiveAddRect' module: 'B2DPlugin' error:
> > errorCode>
> >         (self canProceedAfter: self primGetFailureReason) ifTrue:[
> >                 ^self primAddRectFrom: start to: end fillIndex: fillIndex
> > borderWidth: width borderColor: pixelValue32
> >         ].
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primChangeActiveEdgeTableEntryFrom: (in
> > category 'primitives-incremental') -----
> >   primChangeActiveEdgeTableEntryFrom: edgeEntry
> >         "Change the entry in the active edge table from edgeEntry"
> >         <primitive: 'primitiveChangedActiveEdgeEntry' module: 'B2DPlugin'
> > error: errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primClipRectInto: (in category
> > 'primitives-access') -----
> >   primClipRectInto: rect
> >         <primitive: 'primitiveGetClipRect' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primCopyBufferFrom:to: (in category
> > 'primitives-misc') -----
> >   primCopyBufferFrom: oldBuffer to: newBuffer
> >         "Copy the contents of oldBuffer into the (larger) newBuffer"
> >         <primitive: 'primitiveCopyBuffer' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primDisplaySpanBuffer (in category
> > 'primitives-incremental') -----
> >   primDisplaySpanBuffer
> >         "Display the current scan line if necessary"
> >         <primitive: 'primitiveDisplaySpanBuffer' module: 'B2DPlugin'
> > error: errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primFinishedProcessing (in category
> > 'primitives-incremental') -----
> >   primFinishedProcessing
> >         "Return true if there are no more entries in AET and GET and the
> > last scan line has been displayed"
> >         <primitive: 'primitiveFinishedProcessing' module: 'B2DPlugin'
> > error: errorCode>
> > +       ^ true!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primFlushNeeded (in category
> > 'primitives-access') -----
> >   primFlushNeeded
> >         <primitive: 'primitiveNeedsFlush' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ false!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primFlushNeeded: (in category
> > 'primitives-access') -----
> >   primFlushNeeded: aBoolean
> >         <primitive: 'primitiveNeedsFlushPut' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primGetAALevel (in category
> > 'primitives-access') -----
> >   primGetAALevel
> >         "Set the AA level"
> >         <primitive: 'primitiveGetAALevel' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primGetBezierStats: (in category
> > 'primitives-access') -----
> >   primGetBezierStats: statsArray
> >         <primitive: 'primitiveGetBezierStats' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primGetClipRect: (in category
> > 'primitives-access') -----
> >   primGetClipRect: rect
> >         <primitive: 'primitiveGetClipRect' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primGetCounts: (in category
> > 'primitives-access') -----
> >   primGetCounts: statsArray
> >         <primitive: 'primitiveGetCounts' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primGetDepth (in category
> > 'primitives-access') -----
> >   primGetDepth
> >         <primitive: 'primitiveGetDepth' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 32!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primGetOffset (in category
> > 'primitives-access') -----
> >   primGetOffset
> >         <primitive: 'primitiveGetOffset' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primGetTimes: (in category
> > 'primitives-access') -----
> >   primGetTimes: statsArray
> >         <primitive: 'primitiveGetTimes' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primInitializeBuffer: (in category
> > 'primitives-misc') -----
> >   primInitializeBuffer: buffer
> >         <primitive: 'primitiveInitializeBuffer' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primInitializeProcessing (in category
> > 'primitives-incremental') -----
> >   primInitializeProcessing
> >         "Initialize processing in the GE.
> >         Create the active edge table and sort it."
> >         <primitive: 'primitiveInitializeProcessing' module: 'B2DPlugin'
> > error: errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primMergeFill:from: (in category
> > 'primitives-incremental') -----
> >   primMergeFill: fillBitmap from: fill
> >         "Merge the filled bitmap into the current output buffer."
> >         <primitive: 'primitiveMergeFillFrom' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primNextActiveEdgeEntryInto: (in category
> > 'primitives-incremental') -----
> >   primNextActiveEdgeEntryInto: edgeEntry
> >         "Store the next entry of the AET at the current y-value in
> > edgeEntry.
> >         Return false if there is no entry, true otherwise."
> >         <primitive: 'primitiveNextActiveEdgeEntry' module: 'B2DPlugin'
> > error: errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primNextFillEntryInto: (in category
> > 'primitives-incremental') -----
> >   primNextFillEntryInto: fillEntry
> >         "Store the next fill entry of the active edge table in fillEntry.
> >         Return false if there is no such entry, true otherwise"
> >         <primitive: 'primitiveNextFillEntry' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primNextGlobalEdgeEntryInto: (in category
> > 'primitives-incremental') -----
> >   primNextGlobalEdgeEntryInto: edgeEntry
> >         "Store the next entry of the GET at the current y-value in
> > edgeEntry.
> >         Return false if there is no entry, true otherwise."
> >         <primitive: 'primitiveNextGlobalEdgeEntry' module: 'B2DPlugin'
> > error: errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primRenderImage:with: (in category
> > 'primitives-incremental') -----
> >   primRenderImage: edge with: fill
> >         "Start/Proceed rendering the current scan line"
> >         <primitive: 'primitiveRenderImage' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^0 !
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primRenderScanline:with: (in category
> > 'primitives-incremental') -----
> >   primRenderScanline: edge with: fill
> >         "Start/Proceed rendering the current scan line"
> >         <primitive: 'primitiveRenderScanline' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primSetAALevel: (in category
> > 'primitives-access') -----
> >   primSetAALevel: level
> >         "Set the AA level"
> >         <primitive: 'primitiveSetAALevel' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primSetClipRect: (in category
> > 'primitives-access') -----
> >   primSetClipRect: rect
> >         <primitive: 'primitiveSetClipRect' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primSetColorTransform: (in category
> > 'primitives-access') -----
> >   primSetColorTransform: transform
> >         <primitive: 'primitiveSetColorTransform' module: 'B2DPlugin'
> > error: errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primSetDepth: (in category
> > 'primitives-access') -----
> >   primSetDepth: depth
> >         <primitive: 'primitiveSetDepth' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primSetEdgeTransform: (in category
> > 'primitives-access') -----
> >   primSetEdgeTransform: transform
> >         <primitive: 'primitiveSetEdgeTransform' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> > Item was changed:
> >   ----- Method: BalloonEngine>>primSetOffset: (in category
> > 'primitives-access') -----
> >   primSetOffset: point
> >         <primitive: 'primitiveSetOffset' module: 'B2DPlugin' error:
> > errorCode>
> > +       ^ 0!
> > -       ^self primitiveFailed!
> >
> >
> >
> 
> 
> -- 
> _,,,^..^,,,_
> best, Eliot

> 



More information about the Squeak-dev mailing list