[Vm-dev] VM Maker: VMMaker.oscog-eem.3306.mcz
commits at source.squeak.org
commits at source.squeak.org
Mon Feb 13 19:34:45 UTC 2023
Eliot Miranda uploaded a new version of VMMaker to project VM Maker:
http://source.squeak.org/VMMaker/VMMaker.oscog-eem.3306.mcz
==================== Summary ====================
Name: VMMaker.oscog-eem.3306
Author: eem
Time: 13 February 2023, 11:34:25.41817 am
UUID: 27c1af08-8727-4513-81b1-28bcf6486cf1
Ancestors: VMMaker.oscog-eem.3305
Add support for mirroring a frame in the CameraPlugin.
=============== Diff against VMMaker.oscog-eem.3305 ===============
Item was changed:
InterpreterPlugin subclass: #CameraPlugin
instanceVariableNames: ''
+ classVariableNames: 'MirrorImage'
- classVariableNames: ''
poolDictionaries: ''
category: 'VMMaker-Plugins'!
Item was added:
+ ----- Method: CameraPlugin class>>initialize (in category 'class initialization') -----
+ initialize
+ "The first two parameter names are as written, but the plugin doesn't need them so they're left undefined."
+ "FrameCount := 1."
+ "FrameByteSize := 2."
+ MirrorImage := 3!
Item was changed:
----- Method: CameraPlugin>>primGetParam (in category 'primitives') -----
primGetParam
+ "Answer the requested parameter value of the given camera.
+ See platforms/Cross/plugins/CameraPlugin/CameraPlugin.h for the list of parameter names."
- "Answer the given integer parameter of the given camera."
- | cameraNum paramNum |
<export: true>
+ | cameraNum paramNum result |
cameraNum := interpreterProxy stackIntegerValue: 1.
paramNum := interpreterProxy stackIntegerValue: 0.
+ interpreterProxy failed
+ ifTrue:
+ [interpreterProxy primitiveFailFor: PrimErrBadArgument]
+ ifFalse:
+ [result := self Camera: cameraNum GetParam: paramNum.
+ result < 0
+ ifTrue:
+ [interpreterProxy primitiveFailFor: result negated]
+ ifFalse:
+ [paramNum = MirrorImage
+ ifTrue: [interpreterProxy methodReturnBool: result]
+ ifFalse: [interpreterProxy methodReturnInteger: result]]]!
- interpreterProxy failed ifFalse:
- [interpreterProxy methodReturnInteger: (self Camera: cameraNum GetParam: paramNum)]!
Item was added:
+ ----- Method: CameraPlugin>>primSetParam (in category 'primitives') -----
+ primSetParam
+ "Set the requested parameter value of the given camera, and answer its previous value.
+ See platforms/Cross/plugins/CameraPlugin/CameraPlugin.h for the list of parameter names."
+
+ <export: true>
+ | cameraNum paramNum paramValue result |
+ cameraNum := interpreterProxy stackIntegerValue: 2.
+ paramNum := interpreterProxy stackIntegerValue: 1.
+ paramValue := interpreterProxy stackValue: 0.
+ paramValue := (interpreterProxy isIntegerObject: paramValue)
+ ifTrue: [interpreterProxy integerValueOf: paramValue]
+ ifFalse: [interpreterProxy booleanValueOf: paramValue].
+ interpreterProxy failed
+ ifTrue:
+ [interpreterProxy primitiveFailFor: PrimErrBadArgument]
+ ifFalse:
+ [result := self CameraSetParam: cameraNum _: paramNum _: paramValue.
+ result < 0
+ ifTrue:
+ [interpreterProxy primitiveFailFor: result negated]
+ ifFalse:
+ [paramNum = MirrorImage
+ ifTrue: [interpreterProxy methodReturnBool: result]
+ ifFalse: [interpreterProxy methodReturnInteger: result]]]!
More information about the Vm-dev
mailing list