[Pharo-project] Morpheas , bringing Morphic to Opengl (3d GUIs)

Stéphane Ducasse stephane.ducasse at inria.fr
Tue Jan 31 11:47:53 CET 2012


On Jan 31, 2012, at 10:29 AM, dimitris chloupis wrote:

> I wanted to ask if NB and COG will support windows as well, I see no windows build. 

yes 
this is just that we got instability on jenkins windows slave

> 
> and here we go with first problem. I am in linux mint 12 32 bit with a graphic card NVIDIA GEFORCE 6200 . 
> 
> I got Cog VM with the Nativeboost plugin + Pharo 1.4 image + Nativeboost + NBOpenGL 
> 
> This is my workspace 
> 
> ----
> Gofer it
>         squeaksource: 'NativeBoost';
>         package: 'NativeBoost-Installer';
>         load.
> 
> 
> NBInstaller install.
> 
> Gofer it
>         squeaksource: 'NBOpenGL';
>         package: 'ConfigurationOfNBOpenGL';
>         load.
> 
> ConfigurationOfNBOpenGL project lastVersion load.
> 
> test := (GLTTRenderingDemo new) openInWorld; yourself.
> ---
> 
> the problem appears in the last line with an error "No suitable implementation found for initlising OpenGL context" . Should I assume it can find OpenGL libraries or is it a problem with the graphic card drivers. CC has been given me problem, but Blender works okish considering it completely reliant on OpenGL 
> 
> Here is all debug info 
> 
> ----
> 31 January 2012 11:27:51 am
> 
> VM: unix - i686 - linux-gnu - NBCoInterpreter NativeBoost-CogPlugin-IgorStasenko.8 uuid: f47ef546-de3d-4415-850e-6437d67bfb5c Aug  9 2011, StackToRegisterMappingCogit VMMaker-oscog-IgorStasenko.108 uuid: 384f4108-f1f4-4954-8357-0b3005cb81e2 Aug  9 2011, https://git.gitorious.org/cogvm/blessed.git Commit: f6deabba4432fa22b767dc17718a0fb84c9f3e88 Date: Tue Aug 9 14:47:19 2011 +0200 By: Igor Stasenko <siguctua at gmail.com>
> Image: Pharo1.4a [Latest update: #14284]
> 
> NBGLContextDriver class(Object)>>error:
> 	Receiver: NBGLContextDriver
> 	Arguments and temporary variables: 
> 		aString: 	'No suitable implementation found for initializing OpenGL context for ...etc...
> 	Receiver's instance variables: 
> 		superclass: 	Object
> 		methodDict: 	a MethodDictionary(#changeViewportSize:->(NBGLContextDriver>>#chang...etc...
> 		format: 	132
> 		instanceVariables: 	#('gl')
> 		organization: 	('viewport' changeViewportSize:)
> ('initialize-release' createCont...etc...
> 		subclasses: 	{NBMacGLContextDriver}
> 		name: 
> 
> 	
> #NBGLContextDriver
> 		classPool: 	nil
> 		sharedPools: 	an OrderedCollection(NBGLConstants)
> 		environment: 	a SystemDictionary(lots of globals)
> 		category: 	#'NBOpenGL-Display'
> 		traitComposition: 	{}
> 		localSelectors: 	nil
> 
> [self error: 'No suitable implementation found for initializing OpenGL context for your platform'] in NBGLContextDriver class>>forCurrentPlatform
> 	Receiver: NBGLContextDriver
> 	Arguments and temporary variables: 
> 
> 	Receiver's instance variables: 
> 		superclass: 	Object
> 		methodDict: 	a MethodDictionary(#changeViewportSize:->(NBGLContextDriver>>#chang...etc...
> 		format: 	132
> 		instanceVariables: 	#('gl')
> 		organization: 	('viewport' changeViewportSize:)
> ('initialize-release' createCont...etc...
> 		subclasses: 	{NBMacGLContextDriver}
> 		name: 	#NBGLContextDriver
> 		classPool: 	nil
> 		sharedPools: 	an OrderedCollection(NBGLConstants)
> 		environment: 	a SystemDictionary(lots of globals)
> 		category: 	#'NBOpenGL-Display'
> 		traitComposition: 	{}
> 		localSelectors: 
> 
> 	
> nil
> 
> OrderedCollection(Collection)>>detect:ifNone:
> 	Receiver: an OrderedCollection(NBMacGLContextDriver)
> 	Arguments and temporary variables: 
> 		aBlock: 	[:cls | cls supportsCurrentPlatform]
> 		exceptionBlock: 	[self error: 'No suitable implementation found for initializing...etc...
> 	Receiver's instance variables: 
> 		array: 
> 
> 	
> {NBMacGLContextDriver}
> 		firstIndex: 	1
> 		lastIndex: 	1
> 
> NBGLContextDriver class>>forCurrentPlatform
> 	Receiver: NBGLContextDriver
> 	Arguments and temporary variables: 
> 		driver: 	nil
> 	Receiver's instance variables: 
> 		superclass: 	Object
> 		methodDict: 	a MethodDictionary(#changeViewportSize:->(NBGLContextDriver>>#chang...etc...
> 		format: 	132
> 		instanceVariables: 	#('gl')
> 		organization: 	('viewport' changeViewportSize:)
> ('initialize-release' createCont...etc...
> 		subclasses: 
> 
> 	
> {NBMacGLContextDriver}
> 		name: 	#NBGLContextDriver
> 		classPool: 	nil
> 		sharedPools: 	an OrderedCollection(NBGLConstants)
> 		environment: 	a SystemDictionary(lots of globals)
> 		category: 	#'NBOpenGL-Display'
> 		traitComposition: 	{}
> 		localSelectors: 	nil
> 
> NBGLContextDriver class>>createContext:
> 	Receiver: NBGLContextDriver
> 	Arguments and temporary variables: 
> 		initialExtent: 	(50 at 40)
> 	Receiver's instance variables: 
> 		superclass: 	Object
> 		methodDict: 	a MethodDictionary(#changeViewportSize:->(NBGLContextDriver>>#chang...etc...
> 		format: 	132
> 		instanceVariables: 	#('gl')
> 		organization: 	('viewport' changeViewportSize:)
> ('initialize-release' createCont...etc...
> 		subclasses: 	{NBMacGLContextDriver}
> 	
> 	
> name: 	#NBGLContextDriver
> 		classPool: 	nil
> 		sharedPools: 	an OrderedCollection(NBGLConstants)
> 		environment: 	a SystemDictionary(lots of globals)
> 		category: 	#'NBOpenGL-Display'
> 		traitComposition: 	{}
> 		localSelectors: 	nil
> 
> NBGLDisplay class>>extent:
> 	Receiver: NBGLDisplay
> 	Arguments and temporary variables: 
> 		anInitialExtent: 	(50 at 40)
> 		driver: 	nil
> 		extensions: 	nil
> 		disp: 
> 
> 	
> nil
> 		ext: 	(50 at 40)
> 	Receiver's instance variables: 
> 		superclass: 	Object
> 		methodDict: 	a MethodDictionary(#canUseForm:->(NBGLDisplay>>#canUseForm: "a Comp...etc...
> 		format: 	136
> 		instanceVariables: 	#('session' 'extent' 'driver')
> 		organization: 	('reading pixels' canUseForm: updateForm:bounds:)
> ('viewport' cha...etc...
> 		subclasses: 	{NBMSAAOffscreenDisplay. NBOffscreenDisplay}
> 		name: 	#NBGLDisplay
> 		classPool: 	nil
> 		sharedPools: 	an OrderedCollection(NBGLConstants)
> 		environment: 	a SystemDictionary(lots of globals)
> 		category: 	#'NBOpenGL-Display'
> 		traitComposition: 	{}
> 		localSelectors: 	nil
> 
> GLTTRenderingDemo(GLViewportMorph)>>initializeForNewSession
> 	Receiver: a GLTTRenderingDemo(979369984)
> 	Arguments and temporary variables: 
> 
> 	Receiver's instance variables: 
> 		bounds: 	(0 at 0) corner: (50 at 40)
> 		owner: 	nil
> 		submorphs: 	#()
> 		fullBounds: 	(0 at 0) corner: (50 at 40)
> 		color: 	Color blue
> 		extension: 	a MorphExtension (987496448)
> 		session: 	nil
> 		form: 	nil
> 		useOwnForm: 	nil
> 		display: 	nil
> 		d: 	nil
> 		glyphCache: 
> 
> 	
> nil
> 		font: 	nil
> 		curveRenderer: 	nil
> 
> GLTTRenderingDemo>>initializeForNewSession
> 	Receiver: a GLTTRenderingDemo(979369984)
> 	Arguments and temporary variables: 
> 
> 	Receiver's instance variables: 
> 		bounds: 	(0 at 0) corner: (50 at 40)
> 	
> 	
> owner: 	nil
> 		submorphs: 	#()
> 		fullBounds: 	(0 at 0) corner: (50 at 40)
> 		color: 	Color blue
> 		extension: 	a MorphExtension (987496448)
> 		session: 	nil
> 		form: 	nil
> 		useOwnForm: 	nil
> 		display: 	nil
> 		d: 	nil
> 		glyphCache: 	nil
> 		font: 	nil
> 		curveRenderer: 
> 
> 	
> nil
> 
> GLTTRenderingDemo(GLViewportMorph)>>initialize
> 	Receiver: a GLTTRenderingDemo(979369984)
> 	Arguments and temporary variables: 
> 
> 	Receiver's instance variables: 
> 		bounds: 	(0 at 0) corner: (50 at 40)
> 		owner: 	nil
> 		submorphs: 	#()
> 	
> 	
> fullBounds: 	(0 at 0) corner: (50 at 40)
> 		color: 	Color blue
> 		extension: 	a MorphExtension (987496448)
> 		session: 	nil
> 		form: 	nil
> 		useOwnForm: 	nil
> 		display: 	nil
> 		d: 	nil
> 		glyphCache: 	nil
> 		font: 	nil
> 		curveRenderer: 	nil
> 
> GLTTRenderingDemo>>initialize
> 	Receiver: a GLTTRenderingDemo(979369984)
> 	Arguments and temporary variables: 
> 		fontPath: 	nil
> 	Receiver's instance variables: 
> 		bounds: 	(0 at 0) corner: (50 at 40)
> 		owner: 	nil
> 		submorphs: 	#()
> 		fullBounds: 	(0 at 0) corner: (50 at 40)
> 		color: 	Color blue
> 		extension: 	a MorphExtension (987496448)
> 		session: 	nil
> 		form: 	nil
> 		useOwnForm: 	nil
> 		display: 	nil
> 		d: 	nil
> 		glyphCache: 	nil
> 		font: 	nil
> 		curveRenderer: 	nil
> 
> GLTTRenderingDemo class(Behavior)>>new
> 	Receiver: GLTTRenderingDemo
> 	Arguments and temporary variables: 
> 
> 	Receiver's instance variables: 
> 		superclass: 	GLViewportMorph
> 		methodDict: 	a MethodDictionary(#initialize->(GLTTRenderingDemo>>#initialize "a ...etc...
> 		format: 	158
> 		instanceVariables: 	#('d' 'glyphCache' 'font' 'curveRenderer')
> 		organization: 	('as yet unclassified' initialize initializeForNewSession openInW...etc...
> 		subclasses: 	nil
> 		name: 	#GLTTRenderingDemo
> 		classPool: 	nil
> 		sharedPools: 	nil
> 		environment: 	a SystemDictionary(lots of globals)
> 		category: 	#'NBOpenGL-Morphic-Demo'
> 		traitComposition: 	{}
> 		localSelectors: 	nil
> 
> UndefinedObject>>DoIt
> 	Receiver: nil
> 	Arguments and temporary variables: 
> 
> 	Receiver's instance variables: 
> nil
> 
> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> 	Receiver: a Compiler
> 	Arguments and temporary variables: 
> 		textOrStream: 	a ReadWriteStream
> 		aContext: 	nil
> 		receiver: 	nil
> 		aRequestor: 	a TextMorphForEditView(50593792)
> 		failBlock: 	[self morph flash.
> 	^ nil]
> 		logFlag: 	true
> 		methodNode: 	DoIt
> 	^ test := GLTTRenderingDemo new openInWorld; yourself
> 		method: 	(UndefinedObject>>#DoIt "a CompiledMethod(970457088)")
> 		value: 	nil
> 		toLog: 	nil
> 		itsSelection: 	nil
> 	
> 	
> itsSelectionString: 	nil
> 	Receiver's instance variables: 
> 		sourceStream: 	a ReadWriteStream
> 		requestor: 	a TextMorphForEditView(50593792)
> 		class: 	UndefinedObject
> 		category: 	nil
> 		context: 	nil
> 		parser: 	a Parser
> 
> [rcvr class evaluatorClass new
> 		evaluate: self selectionForDoitAsStream
> 		in: ctxt
> 		to: rcvr
> 		notifying: self morph
> 		ifFail: [self morph flash.
> 			^ nil]
> 		logged: true] in SmalltalkEditor>>evaluateSelectionAndDo:
> 	Receiver: a SmalltalkEditor
> 	Arguments and temporary variables: 
> 		rcvr: 	nil
> 		ctxt: 	nil
> 	Receiver's instance variables: 
> 		morph: 	a TextMorphForEditView(50593792)
> 		selectionShowing: 	true
> 	
> 	
> model: 	a Workspace
> 		editingState: 	a SmalltalkEditingState
> 
> BlockClosure>>on:do:
> 	Receiver: [rcvr class evaluatorClass new
> 		evaluate: self selectionForDoitAsStream
> 		in: ctxt
> 		to: ...etc...
> 	Arguments and temporary variables: 
> 		exception: 
> 
> 	
> OutOfScopeNotification
> 		handlerAction: 	[:ex | ex resume: true]
> 		handlerActive: 	true
> 	Receiver's instance variables: 
> 		outerContext: 	SmalltalkEditor>>evaluateSelectionAndDo:
> 		startpc: 	110
> 		numArgs: 
> 
> 	
> 0
> 
> SmalltalkEditor>>evaluateSelectionAndDo:
> 	Receiver: a SmalltalkEditor
> 	Arguments and temporary variables: 
> 		aBlock: 	[:result | result]
> 		result: 	nil
> 		rcvr: 	nil
> 		ctxt: 	nil
> 	Receiver's instance variables: 
> 		morph: 	a TextMorphForEditView(50593792)
> 		selectionShowing: 	true
> 		model: 	a Workspace
> 		editingState: 	a SmalltalkEditingState
> 
> SmalltalkEditor>>evaluateSelection
> 	Receiver: a SmalltalkEditor
> 	Arguments and temporary variables: 
> 
> 	Receiver's instance variables: 
> 		morph: 	a TextMorphForEditView(50593792)
> 		selectionShowing: 	true
> 		model: 	a Workspace
> 		editingState: 	a SmalltalkEditingState
> 
> [textMorph editor evaluateSelection] in PluggableTextMorph>>doIt
> 
> 	
> Receiver: a PluggableTextMorph(268173312)
> 	Arguments and temporary variables: 
> 
> 	Receiver's instance variables: 
> 		bounds: 	(509.0 at 25.0) corner: (951.0 at 388.0)
> 		owner: 	a SystemWindow(672137216)
> 		submorphs: 	an Array(a TransformMorph(428343296))
> 		fullBounds: 	(509 at 25) corner: (951 at 388)
> 		color: 	(Color r: 0.804 g: 0.864 b: 0.857)
> 		extension: 	a MorphExtension (45350912) [locked] 
> 		borderWidth: 	1
> 		borderColor: 	#inset
> 		model: 	a Workspace
> 		open: 
> 
> 	
> false
> 		accessor: 	nil
> 		scrollBar: 	a ScrollBar(274989056)
> 		scroller: 	a TransformMorph(428343296)
> 		retractableScrollBar: 	false
> 		scrollBarOnLeft: 	false
> 		getMenuSelector: 
> 
> 	
> #codePaneMenu:shifted:
> 		getMenuTitleSelector: 	nil
> 		hasFocus: 	false
> 		hScrollBar: 	a ScrollBar(668205056)
> 		textMorph: 	a TextMorphForEditView(50593792)
> 		getTextSelector: 	#contents
> 		setTextSelector: 	#acceptContents:
> 		getSelectionSelector: 	nil
> 		hasUnacceptedEdits: 	true
> 		askBeforeDiscardingEdits: 	true
> 		selectionInterval: 	(1 to: 333)
> 		hasEditingConflicts: 	false
> 		acceptAction: 	nil
> 		getColorSelector: 	nil
> 		unstyledAcceptText: 	nil
> 		styler: 	a SHTextStylerST80
> 		autoAccept: 	nil
> 		enabled: 	true
> 		getEnabledSelector: 	nil
> 		highlights: 	an OrderedCollection()
> 		acceptOnFocusChange: 	nil
> 		selectionColor: 	nil
> 		alwaysAccept: 	nil
> 		changedAction: 	nil
> 
> [result := editBlock value] in PluggableTextMorph>>handleEdit:
> 	Receiver: a PluggableTextMorph(268173312)
> 	Arguments and temporary variables: 
> 		editBlock: 	[textMorph editor evaluateSelection]
> 		result: 	#(nil)
> 	Receiver's instance variables: 
> 		bounds: 	(509.0 at 25.0) corner: (951.0 at 388.0)
> 		owner: 	a SystemWindow(672137216)
> 		submorphs: 	an Array(a TransformMorph(428343296))
> 		fullBounds: 	(509 at 25) corner: (951 at 388)
> 		color: 	(Color r: 0.804 g: 0.864 b: 0.857)
> 		extension: 	a MorphExtension (45350912) [locked] 
> 		borderWidth: 	1
> 	
> 	
> borderColor: 	#inset
> 		model: 	a Workspace
> 		open: 	false
> 		accessor: 	nil
> 		scrollBar: 	a ScrollBar(274989056)
> 		scroller: 	a TransformMorph(428343296)
> 		retractableScrollBar:  	false
> 		scrollBarOnLeft: 	false
> 		getMenuSelector: 	#codePaneMenu:shifted:
> 		getMenuTitleSelector: 	nil
> 		hasFocus: 	false
> 		hScrollBar: 	a ScrollBar(668205056)
> 		textMorph: 	a TextMorphForEditView(50593792)
> 		getTextSelector: 	#contents
> 		setTextSelector: 	#acceptContents:
> 		getSelectionSelector: 	nil
> 		hasUnacceptedEdits: 	true
> 		askBeforeDiscardingEdits: 	true
> 	
> 	
> selectionInterval: 	(1 to: 333)
> 		hasEditingConflicts: 	false
> 		acceptAction: 	nil
> 		getColorSelector: 	nil
> 		unstyledAcceptText: 	nil
> 		styler: 	a SHTextStylerST80
> 		autoAccept:  	nil
> 		enabled: 	true
> 		getEnabledSelector: 	nil
> 		highlights: 	an OrderedCollection()
> 		acceptOnFocusChange: 	nil
> 		selectionColor: 	nil
> 		alwaysAccept: 	nil
> 		changedAction: 	nil
> 
> TextMorphForEditView(TextMorph)>>handleEdit:
> 	Receiver: a TextMorphForEditView(50593792)
> 	Arguments and temporary variables: 
> 		editBlock: 	[result := editBlock value]
> 	Receiver's instance variables: 
> 		bounds: 	(0 at 0) corner: (434 at 274)
> 		owner: 	a TransformMorph(428343296)
> 		submorphs: 	#()
> 		fullBounds: 	(0 at 0) corner: (434 at 274)
> 		color: 	Color black
> 		extension: 	a MorphExtension (70778880) [other:  (blinkStart -> 2690020) (myDepe...etc...
> 		borderWidth: 	0
> 		borderColor: 	Color black
> 		textStyle: 	a TextStyle Bitmap DejaVu Sans 9
> 		text: 	a Text for 'Gofer it
>         squeaksource: ''NativeBoost'';
>         packa...etc...
> 		wrapFlag: 	true
> 		paragraph: 	a Paragraph
> 		editor: 	a SmalltalkEditor
> 		container: 	nil
> 		predecessor: 	nil
> 		successor: 	nil
> 		backgroundColor: 	nil
> 		margins: 	nil
> 		editView: 	a PluggableTextMorph(268173312)
> 		acceptOnCR: 	false
> 		autoAccept: 	false
> 		acceptOnFocusChange: 	false
> 		selectionColor: 	nil
> 
> PluggableTextMorph>>handleEdit:
> 	Receiver: a PluggableTextMorph(268173312)
> 	Arguments and temporary variables: 
> 		editBlock: 	[textMorph editor evaluateSelection]
> 		result: 	#(nil)
> 	Receiver's instance variables: 
> 		bounds: 	(509.0 at 25.0) corner: (951.0 at 388.0)
> 		owner: 	a SystemWindow(672137216)
> 		submorphs: 	an Array(a TransformMorph(428343296))
> 		fullBounds: 	(509 at 25) corner: (951 at 388)
> 		color: 	(Color r: 0.804 g: 0.864 b: 0.857)
> 		extension: 	a MorphExtension (45350912) [locked] 
> 		borderWidth: 	1
> 		borderColor: 	#inset
> 		model: 	a Workspace
> 		open: 	false
> 		accessor: 	nil
> 		scrollBar: 	a ScrollBar(274989056)
> 		scroller: 	a TransformMorph(428343296)
> 		retractableScrollBar: 	false
> 
> 		
> scrollBarOnLeft: 	false
> 		getMenuSelector: 	#codePaneMenu:shifted:
> 		getMenuTitleSelector: 	nil
> 		hasFocus: 	false
> 		hScrollBar: 	a ScrollBar(668205056)
> 		textMorph: 	a TextMorphForEditView(50593792)
> 		getTextSelector: 	#contents
> 		setTextSelector: 	#acceptContents:
> 		getSelectionSelector: 	nil
> 		hasUnacceptedEdits: 	true
> 		askBeforeDiscardingEdits: 	true
> 		selectionInterval: 	(1 to: 333)
> 		hasEditingConflicts: 	false
> 		acceptAction: 	nil
> 		getColorSelector: 	nil
> 		unstyledAcceptText: 	nil
> 		styler: 	a SHTextStylerST80
> 		autoAccept: 	nil
> 		enabled: 	true
> 		getEnabledSelector: 	nil
> 		highlights: 	an OrderedCollection()
> 		acceptOnFocusChange: 	nil
> 		selectionColor: 	nil
> 		alwaysAccept: 	nil
> 	
> 	
> changedAction: 	nil
> 
> PluggableTextMorph>>doIt
> 	Receiver: a PluggableTextMorph(268173312)
> 	Arguments and temporary variables: 
> 
> 	Receiver's instance variables: 
> 		bounds: 	(509.0 at 25.0) corner: (951.0 at 388.0)
> 		owner: 	a SystemWindow(672137216)
> 		submorphs: 	an Array(a TransformMorph(428343296))
> 		fullBounds: 	(509 at 25) corner: (951 at 388)
> 		color: 	(Color r: 0.804 g: 0.864 b: 0.857)
> 		extension: 	a MorphExtension (45350912) [locked] 
> 		borderWidth: 	1
> 		borderColor: 	#inset
> 		model: 	a Workspace
> 		open: 	false
> 		accessor: 	nil
> 		scrollBar: 	a ScrollBar(274989056)
> 		scroller: 	a TransformMorph(428343296)
> 		retractableScrollBar: 	false
> 
> 		
> scrollBarOnLeft: 	false
> 		getMenuSelector: 	#codePaneMenu:shifted:
> 		getMenuTitleSelector: 	nil
> 		hasFocus: 	false
> 		hScrollBar: 	a ScrollBar(668205056)
> 		textMorph: 	a TextMorphForEditView(50593792)
> 		getTextSelector: 	#contents
> 		setTextSelector: 	#acceptContents:
> 		getSelectionSelector: 	nil
> 		hasUnacceptedEdits: 	true
> 		askBeforeDiscardingEdits: 	true
> 		selectionInterval: 	(1 to: 333)
> 		hasEditingConflicts: 	false
> 		acceptAction: 	nil
> 		getColorSelector: 	nil
> 		unstyledAcceptText: 	nil
> 		styler: 	a SHTextStylerST80
> 		autoAccept: 	nil
> 		enabled: 	true
> 		getEnabledSelector: 	nil
> 		highlights: 	an OrderedCollection()
> 		acceptOnFocusChange: 	nil
> 		selectionColor: 	nil
> 		alwaysAccept: 	nil
> 	
> 	
> changedAction: 	nil
> 
> Workspace(StringHolder)>>perform:orSendTo:
> 	Receiver: a Workspace
> 	Arguments and temporary variables: 
> 		selector: 	#doIt
> 		otherTarget: 	a PluggableTextMorph(268173312)
> 	Receiver's instance variables: 
> 		dependents: 	a DependentsArray(a SystemWindow(672137216) a PluggableTextMorph(26...etc...
> 		contents: 	''
> 		bindings: 	a Dictionary('test'->nil )
> 		acceptDroppedMorphs: 	false
> 		acceptAction: 	nil
> 		mustDeclareVariables: 	false
> 		fileName: 	nil
> 		lineEnding: 	#lf
> 		encoding: 	'utf-8'
> 		stylingActive: 	true
> 
> [| selArgCount |
> (selArgCount := selector numArgs) = 0
> 		ifTrue: [target perform: selector]
> 		ifFalse: [selArgCount = arguments size
> 				ifTrue: [target perform: selector withArguments: arguments]
> 				ifFalse: [target
> 						perform: selector
> 						withArguments: (arguments copyWith: evt)]].
> 	self changed] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> 	Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
> 	Arguments and temporary variables: 
> 		evt: 	[(560 at 321) mouseUp 828114 nil]
> 		selArgCount: 	2
> 	Receiver's instance variables: 
> 		bounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		owner: 	a MenuMorph(954466304)
> 		submorphs: 	#()
> 		fullBounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		color: 	Color black
> 		extension: 	a MorphExtension (289931264)
> 		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
> 		emphasis: 	0
> 		contents: 	'Do it (d)'
> 		hasFocus: 	false
> 		isEnabled: 
> 
> 	
> true
> 		subMenu: 	nil
> 		isSelected: 	false
> 		target: 	a Workspace
> 		selector: 	#perform:orSendTo:
> 		arguments: 	an Array(#doIt a PluggableTextMorph(268173312))
> 		icon: 
> 
> 	
> Form(16x16x32)
> 		getStateSelector: 	nil
> 		enablementSelector: 	nil
> 		keyText: 	nil
> 
> BlockClosure>>ensure:
> 	Receiver: [| selArgCount |
> (selArgCount := selector numArgs) = 0
> 		ifTrue: [target perform: selector...etc...
> 	Arguments and temporary variables: 
> 		aBlock: 	[oldcursor show]
> 		complete: 	nil
> 		returnValue: 	nil
> 	Receiver's instance variables: 
> 		outerContext: 	ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> 		startpc: 	160
> 		numArgs: 	0
> 
> CursorWithMask(Cursor)>>showWhile:
> 	Receiver: ((CursorWithMask
> 	extent: (16 at 16)
> 	depth: 1
> 	fromArray: #(
> 		2r0
> 		2r100000000000000000000...etc...
> 	Arguments and temporary variables: 
> 		aBlock: 	[| selArgCount |
> (selArgCount := selector numArgs) = 0
> 		ifTrue: [targe...etc...
> 		oldcursor: 	((CursorWithMask
> 	extent: (16 at 16)
> 	depth: 1
> 	fromArray: #(
> 		2r0
> 		2...etc...
> 	Receiver's instance variables: 
> 		bits: 	a Bitmap of length 16
> 		width: 	16
> 		height: 	16
> 		depth: 	1
> 		offset: 	(-1@ -1)
> 		maskForm: 	Form(16x16x1)
> 
> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> 	Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
> 	Arguments and temporary variables: 
> 		evt: 	[(560 at 321) mouseUp 828114 nil]
> 		w: 	a PasteUpMorph(425197568) [world]
> 	Receiver's instance variables: 
> 		bounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		owner: 	a MenuMorph(954466304)
> 		submorphs: 	#()
> 		fullBounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		color: 	Color black
> 		extension: 	a MorphExtension (289931264)
> 		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
> 		emphasis: 	0
> 	
> 	
> contents: 	'Do it (d)'
> 		hasFocus: 	false
> 		isEnabled: 	true
> 		subMenu: 	nil
> 		isSelected: 	false
> 		target: 	a Workspace
> 		selector: 	#perform:orSendTo:
> 		arguments: 	an Array(#doIt a PluggableTextMorph(268173312))
> 		icon: 	Form(16x16x32)
> 		getStateSelector: 	nil
> 		enablementSelector: 	nil
> 		keyText: 	nil
> 
> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
> 	Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
> 	Arguments and temporary variables: 
> 		evt: 	[(560 at 321) mouseUp 828114 nil]
> 	Receiver's instance variables: 
> 		bounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		owner: 	a MenuMorph(954466304)
> 		submorphs: 	#()
> 		fullBounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		color: 	Color black
> 		extension: 	a MorphExtension (289931264)
> 		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
> 		emphasis: 	0
> 		contents: 	'Do it (d)'
> 		hasFocus: 	false
> 		isEnabled: 	true
> 		subMenu: 	nil
> 		isSelected: 	false
> 		target: 	a Workspace
> 		selector: 
> 
> 	
> #perform:orSendTo:
> 		arguments: 	an Array(#doIt a PluggableTextMorph(268173312))
> 		icon: 	Form(16x16x32)
> 		getStateSelector: 	nil
> 		enablementSelector: 	nil
> 		keyText: 	nil
> 
> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
> 	Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
> 	Arguments and temporary variables: 
> 		anEvent: 	[(560 at 321) mouseUp 828114 nil]
> 	Receiver's instance variables: 
> 		bounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		owner: 	a MenuMorph(954466304)
> 		submorphs: 
> 
> 	
> #()
> 		fullBounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		color: 	Color black
> 		extension: 	a MorphExtension (289931264)
> 		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
> 		emphasis: 	0
> 		contents: 	'Do it (d)'
> 		hasFocus: 	false
> 		isEnabled: 	true
> 		subMenu: 	nil
> 		isSelected: 	false
> 		target: 	a Workspace
> 		selector: 
> 
> 	
> #perform:orSendTo:
> 		arguments: 	an Array(#doIt a PluggableTextMorph(268173312))
> 		icon: 	Form(16x16x32)
> 		getStateSelector: 	nil
> 		enablementSelector: 	nil
> 		keyText: 	nil
> 
> MouseButtonEvent>>sentTo:
> 	Receiver: [(560 at 321) mouseUp 828114 nil]
> 	Arguments and temporary variables: 
> 		anObject: 	a ToggleMenuItemMorph(287309824)'Do it (d)'
> 	Receiver's instance variables: 
> 		timeStamp: 	828114
> 		source: 	a HandMorph(843055104)
> 		windowIndex: 	nil
> 	
> 	
> type: 	#mouseUp
> 		buttons: 	0
> 		position: 	(560 at 321)
> 		handler: 	nil
> 		wasHandled: 	true
> 		whichButton: 	4
> 
> ToggleMenuItemMorph(Morph)>>handleEvent:
> 
> 	
> Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
> 	Arguments and temporary variables: 
> 		anEvent: 	[(560 at 321) mouseUp 828114 nil]
> 	Receiver's instance variables: 
> 		bounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		owner: 	a MenuMorph(954466304)
> 		submorphs: 	#()
> 		fullBounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		color: 	Color black
> 		extension: 	a MorphExtension (289931264)
> 		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
> 		emphasis: 	0
> 		contents: 	'Do it (d)'
> 		hasFocus: 	false
> 		isEnabled: 	true
> 		subMenu: 	nil
> 		isSelected: 	false
> 		target: 	a Workspace
> 		selector: 	#perform:orSendTo:
> 		arguments: 	an Array(#doIt a PluggableTextMorph(268173312))
> 		icon: 	Form(16x16x32)
> 		getStateSelector: 	nil
> 		enablementSelector: 	nil
> 		keyText: 	nil
> 
> MorphicEventDispatcher>>dispatchDefault:with:
> 	Receiver: a MorphicEventDispatcher
> 	Arguments and temporary variables: 
> 		anEvent: 	[(560 at 321) mouseUp 828114 nil]
> 		aMorph: 	a ToggleMenuItemMorph(287309824)'Do it (d)'
> 		localEvt: 	nil
> 		index: 	1
> 		child: 	nil
> 		morphs:  	#()
> 		inside: 	true
> 	Receiver's instance variables: 
> 		lastType: 	#mouseUp
> 		lastDispatch: 	#dispatchDefault:with:
> 
> MorphicEventDispatcher>>dispatchEvent:with:
> 	Receiver: a MorphicEventDispatcher
> 	Arguments and temporary variables: 
> 		anEvent: 	[(560 at 321) mouseUp 828114 nil]
> 		aMorph: 	a ToggleMenuItemMorph(287309824)'Do it (d)'
> 	Receiver's instance variables: 
> 		lastType: 	#mouseUp
> 		lastDispatch: 	#dispatchDefault:with:
> 
> ToggleMenuItemMorph(Morph)>>processEvent:using:
> 	Receiver: a ToggleMenuItemMorph(287309824)'Do it (d)'
> 	Arguments and temporary variables: 
> 		anEvent: 	[(560 at 321) mouseUp 828114 nil]
> 		defaultDispatcher: 	a MorphicEventDispatcher
> 	Receiver's instance variables: 
> 		bounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		owner: 	a MenuMorph(954466304)
> 		submorphs: 	#()
> 		fullBounds: 	(541.0 at 310.0) corner: (678.0 at 328.0)
> 		color: 	Color black
> 		extension: 	a MorphExtension (289931264)
> 		font: 	a StrikeFont(Bitmap DejaVu Sans 9 14)
> 		emphasis: 	0
> 		contents: 	'Do it (d)'
> 		hasFocus: 	false
> 		isEnabled: 	true
> 		subMenu: 	nil
> 		isSelected: 	false
> 		target: 	a Workspace
> 	
> 	
> selector: 	#perform:orSendTo:
> 		arguments: 	an Array(#doIt a PluggableTextMorph(268173312))
> 		icon: 	Form(16x16x32)
> 		getStateSelector: 	nil
> 		enablementSelector: 	nil
> 		keyText: 
> 
> 	
> nil
> 
> MorphicEventDispatcher>>dispatchDefault:with:
> 	Receiver: a MorphicEventDispatcher
> 	Arguments and temporary variables: 
> 		anEvent: 	[(560 at 321) mouseUp 828114 nil]
> 		aMorph: 	a MenuMorph(954466304)
> 		localEvt: 	[(560 at 321) mouseUp 828114 nil]
> 		index: 
> 
> 	
> 1
> 		child: 	a ToggleMenuItemMorph(287309824)'Do it (d)'
> 		morphs: 	an Array(a ToggleMenuItemMorph(287309824)'Do it (d)' a ToggleMenuItemMo...etc...
> 		inside: 	false
> 	Receiver's instance variables: 
> 		lastType: 	#mouseUp
> 		lastDispatch: 
> 
> 	
> #dispatchDefault:with:
> 
> MorphicEventDispatcher>>dispatchEvent:with:
> 	Receiver: a MorphicEventDispatcher
> 	Arguments and temporary variables: 
> 		anEvent: 	[(560 at 321) mouseUp 828114 nil]
> 		aMorph: 	a MenuMorph(954466304)
> 	Receiver's instance variables: 
> 		lastType: 	#mouseUp
> 		lastDispatch: 	#dispatchDefault:with:
> 
> MenuMorph(Morph)>>processEvent:using:
> 	Receiver: a MenuMorph(954466304)
> 	Arguments and temporary variables: 
> 		anEvent: 	[(560 at 321) mouseUp 828114 nil]
> 		defaultDispatcher: 	a MorphicEventDispatcher
> 	Receiver's instance variables: 
> 		bounds: 	(537.0 at 306.0) corner: (682.0 at 644.0)
> 		owner: 	nil
> 		submorphs: 	an Array(a ToggleMenuItemMorph(287309824)'Do it (d)' a ToggleMenuIte...etc...
> 		fullBounds: 	(537.0 at 306.0) corner: (683.0 at 645.0)
> 		color: 	(Color r: 0.775 g: 0.775 b: 0.775)
> 		extension: 	a MorphExtension (958136320) [other:  (basicColor -> Color lightGray...etc...
> 		borderWidth: 	1
> 		borderColor: 	Color gray
> 		defaultTarget: 	a Workspace
> 		selectedItem: 	a ToggleMenuItemMorph(287309824)'Do it (d)'
> 		stayUp: 	false
> 	
> 	
> popUpOwner: 	nil
> 		activeSubMenu: 	nil
> 		activatorDockingBar: 	nil
> 		embeddable: 	nil
> 		menuItems: 	an OrderedCollection(a ToggleMenuItemMorph(287309824)'Do it (d)' a T...etc...
> 
> MenuMorph(Morph)>>processEvent:
> 	Receiver: a MenuMorph(954466304)
> 	Arguments and temporary variables: 
> 		anEvent: 	[(560 at 321) mouseUp 828114 nil]
> 	Receiver's instance variables: 
> 		bounds: 	(537.0 at 306.0) corner: (682.0 at 644.0)
> 		owner: 	nil
> 		submorphs: 	an Array(a ToggleMenuItemMorph(287309824)'Do it (d)' a ToggleMenuIte...etc...
> 		fullBounds: 	(537.0 at 306.0) corner: (683.0 at 645.0)
> 		color: 	(Color r: 0.775 g: 0.775 b: 0.775)
> 		extension: 	a MorphExtension (958136320) [other:  (basicColor -> Color lightGray...etc...
> 		borderWidth: 	1
> 		borderColor: 	Color gray
> 		defaultTarget: 	a Workspace
> 		selectedItem: 	a ToggleMenuItemMorph(287309824)'Do it (d)'
> 		stayUp: 	false
> 		popUpOwner: 	nil
> 		activeSubMenu: 	nil
> 		activatorDockingBar: 	nil
> 		embeddable: 	nil
> 		menuItems: 	an OrderedCollection(a ToggleMenuItemMorph(287309824)'Do it (d)' a T...etc...
> 
> MenuMorph>>handleFocusEvent:
> 	Receiver: a MenuMorph(954466304)
> 	Arguments and temporary variables: 
> 		evt: 	[(560 at 321) mouseUp 828114 nil]
> 	Receiver's instance variables: 
> 		bounds: 	(537.0 at 306.0) corner: (682.0 at 644.0)
> 		owner: 	nil
> 		submorphs: 	an Array(a ToggleMenuItemMorph(287309824)'Do it (d)' a ToggleMenuIte...etc...
> 		fullBounds: 	(537.0 at 306.0) corner: (683.0 at 645.0)
> 		color: 	(Color r: 0.775 g: 0.775 b: 0.775)
> 		extension: 	a MorphExtension (958136320) [other:  (basicColor -> Color lightGray...etc...
> 		borderWidth: 	1
> 		borderColor: 	Color gray
> 		defaultTarget: 	a Workspace
> 		selectedItem: 	a ToggleMenuItemMorph(287309824)'Do it (d)'
> 		stayUp: 	false
> 		popUpOwner: 
> 
> 	
> nil
> 		activeSubMenu: 	nil
> 		activatorDockingBar: 	nil
> 		embeddable: 	nil
> 		menuItems: 	an OrderedCollection(a ToggleMenuItemMorph(287309824)'Do it (d)' a T...etc...
> 
> 
> --- The full stack ---
> NBGLContextDriver class(Object)>>error:
> [self error: 'No suitable implementation found for initializing OpenGL context for your platform'] in NBGLContextDriver class>>forCurrentPlatform
> OrderedCollection(Collection)>>detect:ifNone:
> NBGLContextDriver class>>forCurrentPlatform
> NBGLContextDriver class>>createContext:
> NBGLDisplay class>>extent:
> GLTTRenderingDemo(GLViewportMorph)>>initializeForNewSession
> GLTTRenderingDemo>>initializeForNewSession
> GLTTRenderingDemo(GLViewportMorph)>>initialize
> GLTTRenderingDemo>>initialize
> GLTTRenderingDemo class(Behavior)>>new
> UndefinedObject>>DoIt
> Compiler>>evaluate:in:to:notifying:ifFail:logged:
> [rcvr class evaluatorClass new
> 		evaluate: self selectionForDoitAsStream
> 		in: ctxt
> 		to: rcvr
> 		notifying: self morph
> 		ifFail: [self morph flash.
> 			^ nil]
> 		logged: true] in SmalltalkEditor>>evaluateSelectionAndDo:
> BlockClosure>>on:do:
> SmalltalkEditor>>evaluateSelectionAndDo:
> SmalltalkEditor>>evaluateSelection
> [textMorph editor evaluateSelection] in PluggableTextMorph>>doIt
> [result := editBlock value] in PluggableTextMorph>>handleEdit:
> TextMorphForEditView(TextMorph)>>handleEdit:
> PluggableTextMorph>>handleEdit:
> PluggableTextMorph>>doIt
> Workspace(StringHolder)>>perform:orSendTo:
> [| selArgCount |
> (selArgCount := selector numArgs) = 0
> 		ifTrue: [target perform: selector]
> 		ifFalse: [selArgCount = arguments size
> 				ifTrue: [target perform: selector withArguments: arguments]
> 				ifFalse: [target
> 						perform: selector
> 						withArguments: (arguments copyWith: evt)]].
> 	self changed] in ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> BlockClosure>>ensure:
> CursorWithMask(Cursor)>>showWhile:
> ToggleMenuItemMorph(MenuItemMorph)>>invokeWithEvent:
> ToggleMenuItemMorph(MenuItemMorph)>>mouseUp:
> ToggleMenuItemMorph(MenuItemMorph)>>handleMouseUp:
> MouseButtonEvent>>sentTo:
> ToggleMenuItemMorph(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> ToggleMenuItemMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchDefault:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> MenuMorph(Morph)>>processEvent:using:
> MenuMorph(Morph)>>processEvent:
> MenuMorph>>handleFocusEvent:
>  - - - - - - - - - - - - - - -  
> 			- - - - - - - - - - - - - - - - - -
> [ActiveHand := self.
> 	ActiveEvent := anEvent.
> 	result := focusHolder
> 				handleFocusEvent: (anEvent
> 						transformedBy: (focusHolder transformedFrom: self))] in HandMorph>>sendFocusEvent:to:clear:
> [aBlock value] in PasteUpMorph>>becomeActiveDuring:
> BlockClosure>>on:do:
> PasteUpMorph>>becomeActiveDuring:
> HandMorph>>sendFocusEvent:to:clear:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendMouseEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [:h | 
> ActiveHand := h.
> 	h processEvents.
> 	ActiveHand := nil] in WorldState>>doOneCycleNowFor:
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> WorldState>>doOneSubCycleFor:
> PasteUpMorph>>doOneSubCycle
> MenuMorph>>invokeModalAt:in:allowKeyboard:
> MenuMorph>>invokeModal:
> MenuMorph>>invokeModal
> PluggableTextMorph>>yellowButtonActivity:
> TextMorphForEditView>>mouseDown:
> TextMorphForEditView(Morph)>>handleMouseDown:
> MouseButtonEvent>>sentTo:
> TextMorphForEditView(Morph)>>handleEvent:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> TextMorphForEditView(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> TransformMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> PluggableTextMorph(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> SystemWindow(Morph)>>processEvent:using:
> MorphicEventDispatcher>>dispatchMouseDown:with:
> MorphicEventDispatcher>>dispatchEvent:with:
> PasteUpMorph(Morph)>>processEvent:using:
> PasteUpMorph>>processEvent:using:
> PasteUpMorph(Morph)>>processEvent:
> HandMorph>>sendEvent:focus:clear:
> HandMorph>>sendMouseEvent:
> HandMorph>>handleEvent:
> HandMorph>>processEvents
> [:h | 
> ActiveHand := h.
> 	h processEvents.
> 	ActiveHand := nil] in WorldState>>doOneCycleNowFor:
> Array(SequenceableCollection)>>do:
> WorldState>>handsDo:
> WorldState>>doOneCycleNowFor:
> WorldState>>doOneCycleFor:
> PasteUpMorph>>doOneCycle
> [[World doOneCycle.
> 	Processor yield.
> 	false] whileFalse.
> 	nil] in MorphicUIManager>>spawnNewProcess
> [self value.
> 	Processor terminateActive] in BlockClosure>>newProcess
> 




More information about the Pharo-project mailing list