[Vm-dev] VM Maker: VMMaker.oscog-eem.3305.mcz

commits at source.squeak.org commits at source.squeak.org
Sat Feb 11 22:16:43 UTC 2023


Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3305.mcz

==================== Summary ====================

Name: VMMaker.oscog-eem.3305
Author: eem
Time: 11 February 2023, 2:16:20.715873 pm
UUID: 087be167-79b2-4b97-b9a5-5e78e6d21f33
Ancestors: VMMaker.oscog-eem.3304

Add a CameraPlugin primitive to answer which frame buffer is the freshest.

=============== Diff against VMMaker.oscog-eem.3304 ===============

Item was added:
+ ----- Method: CameraPlugin>>primGetLatestBufferIndex (in category 'primitives') -----
+ primGetLatestBufferIndex
+ 	"If double-buffering is in effect (set via primSetCameraBuffers) answer
+ 	 which buffer contains the freshest data, either A (1) or B (2). If no buffer
+ 	 has been filled yet, answer nil.  Otherwise fail with an appropriate error code."
+ 
+ 	<export: true>
+ 	| cameraNum |
+ 	cameraNum := interpreterProxy stackValue: 0.
+ 	(interpreterProxy isIntegerObject: cameraNum) ifFalse:
+ 		[^interpreterProxy primitiveFailFor: PrimErrBadArgument].
+ 
+ 	(self CameraGetLatestBufferIndex: (interpreterProxy integerValueOf: cameraNum))
+ 		ifNil: [interpreterProxy methodReturnValue: interpreterProxy nilObject]
+ 		ifNotNil:
+ 			[:result|
+ 			result < 0
+ 				ifTrue: [interpreterProxy primitiveFailFor: result negated]
+ 				ifFalse: [interpreterProxy methodReturnInteger: result]]!



More information about the Vm-dev mailing list