[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