[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