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

chadwick mathnoir at gmail.com
Tue Mar 27 03:09:21 EDT 2012


yes, I was executing GLTTRenderingDemo new openInWorld. My FFI path is
/usr/lib/nvidia-current-updates/libGL.so.1 (got from ldd /usr/bin/glxgears)



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]

NBFFICallout(Object)>>error:
    Receiver: a NBFFICallout
    Arguments and temporary variables:
        aString:     'function unavailable'
    Receiver's instance variables:
        asm:     an AJx86Assembler
        proxy:     a NBInterpreterProxy
        options:     a Set(#optCoerceNilToNull #optCdecl
#optAllowByteArraysPtr #optUseStac...etc...
        method:     (NBGlxAPI>>#queryExtension:errorBase:eventBase: "a
CompiledMethod(54211...etc...
        fnSpec:     a NBFnSpec
        requestor:     NBGlxAPI
        methodArgs:     #('display' 'errorBase' 'eventBase')
        coercionMayFail:     false
        callInfo:     nil

NBFFICallout>>generateCall:module:
    Receiver: a NBFFICallout
    Arguments and temporary variables:
        functionSpec:     #(#bool #glXQueryExtension #(#Display #display #,
#int #* #errorB...etc...
        aModuleNameOrHandle:
'/usr/lib/nvidia-current-updates/libGL.so.1'
        fnAddress:     nil
    Receiver's instance variables:
        asm:     an AJx86Assembler
        proxy:     a NBInterpreterProxy
        options:     a Set(#optCoerceNilToNull #optCdecl
#optAllowByteArraysPtr #optUseStac...etc...
        method:     (NBGlxAPI>>#queryExtension:errorBase:eventBase: "a
CompiledMethod(54211...etc...
        fnSpec:     a NBFnSpec
        requestor:     NBGlxAPI
        methodArgs:     #('display' 'errorBase' 'eventBase')
        coercionMayFail:     false
        callInfo:     nil

[:generator | generator sender: sender;
         callType: self callType;
         generateCall: fnSpec module: self moduleName] in NBGlxAPI>>call:
    Receiver: a NBGlxAPI
    Arguments and temporary variables:
        fnSpec:     a NBFFICallout
        sender:     #(#bool #glXQueryExtension #(#Display #display #, #int
#* #errorBase #,...etc...
        generator:     NBGlxAPI>>queryExtension:errorBase:eventBase:
    Receiver's instance variables:
        fnAddresses:     #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ...etc...
        renderingContextHandle:     nil
        extensions:     nil

NBFFICallout class(NBNativeCodeGen class)>>generateCode:andRetry:
    Receiver: NBFFICallout
    Arguments and temporary variables:
        aBlock:     [:generator | generator sender: sender;
         callType: self callType;
         ...etc...
        retryCtx:     NBGlxAPI>>queryExtension:errorBase:eventBase:
        method:     (NBGlxAPI>>#queryExtension:errorBase:eventBase: "a
CompiledMethod(54211...etc...
        code:     nil
        newMethod:     nil
        args:     nil
        i:     nil
        iLimiT:     nil
    Receiver's instance variables:
        superclass:     NBNativeCodeGen
        methodDict:     a
MethodDictionary(#aliasForType:->(NBFFICallout>>#aliasForType: "a...etc...
        format:     148
        instanceVariables:     #('fnSpec' 'requestor' 'methodArgs'
'coercionMayFail' 'callI...etc...
        organization:     ('type aliases' aliasForType:)
('accessing' anonSpec: callType: c...etc...
        subclasses:     {NBNativeFunctionGen}
        name:     #NBFFICallout
        classPool:     a Dictionary(#CustomErrorCodes->a
Dictionary(600->'An instance of NB...etc...
        sharedPools:     nil
        environment:     a SystemDictionary(lots of globals)
        category:     #'NativeBoost-Core'
        traitComposition:     {}
        localSelectors:     nil

NBFFICallout class(NBNativeCodeGen class)>>handleFailureIn:nativeCode:
    Receiver: NBFFICallout
    Arguments and temporary variables:
        aContext:     NBGlxAPI>>queryExtension:errorBase:eventBase:
        aBlock:     [:generator | generator sender: sender;
         callType: self callType;
         ...etc...
        method:     (NBGlxAPI>>#queryExtension:errorBase:eventBase: "a
CompiledMethod(54211...etc...
        lastError:     502
        lit:     #(#NativeBoostPlugin #primitiveNativeCall 0 87)
    Receiver's instance variables:
        superclass:     NBNativeCodeGen
        methodDict:     a
MethodDictionary(#aliasForType:->(NBFFICallout>>#aliasForType: "a...etc...
        format:     148
        instanceVariables:     #('fnSpec' 'requestor' 'methodArgs'
'coercionMayFail' 'callI...etc...
        organization:     ('type aliases' aliasForType:)
('accessing' anonSpec: callType: c...etc...
        subclasses:     {NBNativeFunctionGen}
        name:     #NBFFICallout
        classPool:     a Dictionary(#CustomErrorCodes->a
Dictionary(600->'An instance of NB...etc...
        sharedPools:     nil
        environment:     a SystemDictionary(lots of globals)
        category:     #'NativeBoost-Core'
        traitComposition:     {}
        localSelectors:     nil

NBGlxAPI>>call:
    Receiver: a NBGlxAPI
    Arguments and temporary variables:
        fnSpec:     #(#bool #glXQueryExtension #(#Display #display #, #int
#* #errorBase #,...etc...
        sender:     NBGlxAPI>>queryExtension:errorBase:eventBase:
    Receiver's instance variables:
        fnAddresses:     #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ...etc...
        renderingContextHandle:     nil
        extensions:     nil

NBGlxAPI>>queryExtension:errorBase:eventBase:
    Receiver: a NBGlxAPI
    Arguments and temporary variables:
        display:     a NBXLibDisplay( 0x8D4DF78 )
        errorBase:     a WordArray(0)
        eventBase:     a WordArray(0)
    Receiver's instance variables:
        fnAddresses:     #[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 ...etc...
        renderingContextHandle:     nil
        extensions:     nil

NBGLXContextDriver>>createContext:
    Receiver: a NBGLXContextDriver
    Arguments and temporary variables:
        initialExtent:     (50 at 40)
        display:     a NBXLibDisplay( 0x8D4DF78 )
        window:     nil
        visualInfo:     nil
        colormap:     nil
        xattributes:     nil
        childWin:     nil
        glxSupported:     nil
        configsNumber:     nil
        configs:     nil
    Receiver's instance variables:
        gl:     a NBGlxAPI
        ctx:     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. NBGLXContextDriver}
        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(684982272)
    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 (693370880)
        session:     nil
        form:     nil
        useOwnForm:     nil
        display:     nil
        d:     nil
        glyphCache:     nil
        font:     nil
        curveRenderer:     nil
        frameStats:     nil
        start:     nil
        frameCount:     nil

GLTTRenderingDemo>>initializeForNewSession
    Receiver: a GLTTRenderingDemo(684982272)
    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 (693370880)
        session:     nil
        form:     nil
        useOwnForm:     nil
        display:     nil
        d:     nil
        glyphCache:     nil
        font:     nil
        curveRenderer:     nil
        frameStats:     nil
        start:     nil
        frameCount:     nil

GLTTRenderingDemo(GLViewportMorph)>>initialize
    Receiver: a GLTTRenderingDemo(684982272)
    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 (693370880)
        session:     nil
        form:     nil
        useOwnForm:     nil
        display:     nil
        d:     nil
        glyphCache:     nil
        font:     nil
        curveRenderer:     nil
        frameStats:     nil
        start:     nil
        frameCount:     nil

GLTTRenderingDemo>>initialize
    Receiver: a GLTTRenderingDemo(684982272)
    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 (693370880)
        session:     nil
        form:     nil
        useOwnForm:     nil
        display:     nil
        d:     nil
        glyphCache:     nil
        font:     nil
        curveRenderer:     nil
        frameStats:     nil
        start:     nil
        frameCount:     nil

GLTTRenderingDemo class(Behavior)>>new
    Receiver: GLTTRenderingDemo
    Arguments and temporary variables:

    Receiver's instance variables:
        superclass:     GLViewportMorph
        methodDict:     a
MethodDictionary(#frameStats->(GLTTRenderingDemo>>#frameStats "a ...etc...
        format:     164
        instanceVariables:     #('d' 'glyphCache' 'font' 'curveRenderer'
'frameStats' 'star...etc...
        organization:     ('as yet unclassified' frameStats initialize
initializeForNewSess...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(925892608)
        failBlock:     [self morph flash.
    ^ nil]
        logFlag:     true
        methodNode:     DoIt
    ^ GLTTRenderingDemo new openInWorld
        method:     (UndefinedObject>>#DoIt "a CompiledMethod(678166528)")
        value:     nil
        toLog:     nil
        itsSelection:     nil
        itsSelectionString:     nil
    Receiver's instance variables:
        sourceStream:     a ReadWriteStream
        requestor:     a TextMorphForEditView(925892608)
        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(925892608)
        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(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

SmalltalkEditor>>evaluateSelection
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:

    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

SmalltalkEditor>>doIt
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:

    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

SmalltalkEditor>>doIt:
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:
        aKeyboardEvent:     [keystroke '<Cmd-d>']
    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

SmalltalkEditor(TextEditor)>>performCmdActionsWith:shifted:return:
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:
        aKeyboardEvent:     [keystroke '<Cmd-d>']
        aBoolean:     false
        return:     [:val | ^ val]
        asciiValue:     101
        actions:     #(#noop: #cursorHome: #noop: #noop: #cursorEnd: #noop:
#noop: #noop: #...etc...
        action:     #doIt:
    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

SmalltalkEditor(TextEditor)>>dispatchCommandOn:return:
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:
        aKeyboardEvent:     [keystroke '<Cmd-d>']
        return:     [:val | ^ val]
        asciiValue:     100
        honorCommandKeys:     true
        char:     nil
    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

SmalltalkEditor(TextEditor)>>dispatchOn:
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:
        aKeyboardEvent:     [keystroke '<Cmd-d>']
        char:     nil
        return:     [:val | ^ val]
        keyEvents:     nil
    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

[self dispatchOn: aKeyboardEvent] in SmalltalkEditor(TextEditor)>>keystroke:
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:
        aKeyboardEvent:     [keystroke '<Cmd-d>']
    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

SmalltalkEditor(TextEditor)>>handleKeystrokeAction:
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:
        aBlock:     [self dispatchOn: aKeyboardEvent]
    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

SmalltalkEditor(TextEditor)>>handleEditionAction:fromKeyboardEvent:
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:
        anAction:     [self dispatchOn: aKeyboardEvent]
        aKeyboardEvent:     [keystroke '<Cmd-d>']
    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

SmalltalkEditor(TextEditor)>>keystroke:
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:
        aKeyboardEvent:     [keystroke '<Cmd-d>']
    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

[editor keystroke: evt] in [| action |
evt keyValue = 13
        ifTrue: [action := self crAction.
            action
                ifNotNil: [evt hand newKeyboardFocus: nil.
                    ^ action value]].
    self
        handleInteraction: [editor keystroke: evt].
    self updateFromParagraph.
    super keyStroke: evt] in TextMorphForEditView(TextMorph)>>keyStroke:
    Receiver: a TextMorphForEditView(925892608)
    Arguments and temporary variables:
        evt:     [keystroke '<Cmd-d>']
    Receiver's instance variables:
        bounds:     (0 at 0) corner: (681 at 114)
        owner:     a TransformMorph(623902720)
        submorphs:     #()
        fullBounds:     (0 at 0) corner: (681 at 114)
        color:     Color black
        extension:     a MorphExtension (945815552) [other:  (blinkStart ->
564954) (myDepe...etc...
        borderWidth:     0
        borderColor:     Color black
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        text:     a Text for 'Gofer it squeaksource: ''NBOpenGL''; package:
''Configuration...etc...
        wrapFlag:     true
        paragraph:     a Paragraph
        editor:     a SmalltalkEditor
        container:     nil
        predecessor:     nil
        successor:     nil
        backgroundColor:     nil
        margins:     nil
        editView:     a PluggableTextMorph(171180032)
        acceptOnCR:     false
        autoAccept:     false
        acceptOnFocusChange:     false
        selectionColor:     nil

TextMorphForEditView(TextMorph)>>handleInteraction:
    Receiver: a TextMorphForEditView(925892608)
    Arguments and temporary variables:
        interactionBlock:     [editor keystroke: evt]
        oldEditor:     a SmalltalkEditor
        oldParagraph:     a Paragraph
        oldText:     a Text for 'Gofer it squeaksource: ''NBOpenGL'';
package: ''Configurat...etc...
    Receiver's instance variables:
        bounds:     (0 at 0) corner: (681 at 114)
        owner:     a TransformMorph(623902720)
        submorphs:     #()
        fullBounds:     (0 at 0) corner: (681 at 114)
        color:     Color black
        extension:     a MorphExtension (945815552) [other:  (blinkStart ->
564954) (myDepe...etc...
        borderWidth:     0
        borderColor:     Color black
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        text:     a Text for 'Gofer it squeaksource: ''NBOpenGL''; package:
''Configuration...etc...
        wrapFlag:     true
        paragraph:     a Paragraph
        editor:     a SmalltalkEditor
        container:     nil
        predecessor:     nil
        successor:     nil
        backgroundColor:     nil
        margins:     nil
        editView:     a PluggableTextMorph(171180032)
        acceptOnCR:     false
        autoAccept:     false
        acceptOnFocusChange:     false
        selectionColor:     nil

TextMorphForEditView>>handleInteraction:
    Receiver: a TextMorphForEditView(925892608)
    Arguments and temporary variables:
        interActionBlock:     [editor keystroke: evt]
    Receiver's instance variables:
        bounds:     (0 at 0) corner: (681 at 114)
        owner:     a TransformMorph(623902720)
        submorphs:     #()
        fullBounds:     (0 at 0) corner: (681 at 114)
        color:     Color black
        extension:     a MorphExtension (945815552) [other:  (blinkStart ->
564954) (myDepe...etc...
        borderWidth:     0
        borderColor:     Color black
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        text:     a Text for 'Gofer it squeaksource: ''NBOpenGL''; package:
''Configuration...etc...
        wrapFlag:     true
        paragraph:     a Paragraph
        editor:     a SmalltalkEditor
        container:     nil
        predecessor:     nil
        successor:     nil
        backgroundColor:     nil
        margins:     nil
        editView:     a PluggableTextMorph(171180032)
        acceptOnCR:     false
        autoAccept:     false
        acceptOnFocusChange:     false
        selectionColor:     nil

[| action |
evt keyValue = 13
        ifTrue: [action := self crAction.
            action
                ifNotNil: [evt hand newKeyboardFocus: nil.
                    ^ action value]].
    self
        handleInteraction: [editor keystroke: evt].
    self updateFromParagraph.
    super keyStroke: evt] in TextMorphForEditView(TextMorph)>>keyStroke:
    Receiver: a TextMorphForEditView(925892608)
    Arguments and temporary variables:
        evt:     [keystroke '<Cmd-d>']
        action:     nil
    Receiver's instance variables:
        bounds:     (0 at 0) corner: (681 at 114)
        owner:     a TransformMorph(623902720)
        submorphs:     #()
        fullBounds:     (0 at 0) corner: (681 at 114)
        color:     Color black
        extension:     a MorphExtension (945815552) [other:  (blinkStart ->
564954) (myDepe...etc...
        borderWidth:     0
        borderColor:     Color black
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        text:     a Text for 'Gofer it squeaksource: ''NBOpenGL''; package:
''Configuration...etc...
        wrapFlag:     true
        paragraph:     a Paragraph
        editor:     a SmalltalkEditor
        container:     nil
        predecessor:     nil
        successor:     nil
        backgroundColor:     nil
        margins:     nil
        editView:     a PluggableTextMorph(171180032)
        acceptOnCR:     false
        autoAccept:     false
        acceptOnFocusChange:     false
        selectionColor:     nil

ToolRegistry>>codeCompletionAround:textMorph:keyStroke:
    Receiver: a ToolRegistry
    Arguments and temporary variables:
        aBlock:     [| action |
evt keyValue = 13
        ifTrue: [action := self crAction.
            ac...etc...
        aTextMorph:     a TextMorphForEditView(925892608)
        evt:     [keystroke '<Cmd-d>']
    Receiver's instance variables:
        tools:     an IdentityDictionary(#basicInspector->BasicInspector
#browser->[self de...etc...
        inspectorsMap:     an
IdentityDictionary(#CompiledMethod->#CompiledMethodInspector ...etc...

SmalltalkEditor>>codeCompletionAround:textMorph:keyStroke:
    Receiver: a SmalltalkEditor
    Arguments and temporary variables:
        aBlock:     [| action |
evt keyValue = 13
        ifTrue: [action := self crAction.
            ac...etc...
        aTextMorph:     a TextMorphForEditView(925892608)
        anEvent:     [keystroke '<Cmd-d>']
    Receiver's instance variables:
        morph:     a TextMorphForEditView(925892608)
        selectionShowing:     true
        model:     a Workspace
        editingState:     a SmalltalkEditingState

TextMorphForEditView(TextMorph)>>keyStroke:
    Receiver: a TextMorphForEditView(925892608)
    Arguments and temporary variables:
        evt:     [keystroke '<Cmd-d>']
    Receiver's instance variables:
        bounds:     (0 at 0) corner: (681 at 114)
        owner:     a TransformMorph(623902720)
        submorphs:     #()
        fullBounds:     (0 at 0) corner: (681 at 114)
        color:     Color black
        extension:     a MorphExtension (945815552) [other:  (blinkStart ->
564954) (myDepe...etc...
        borderWidth:     0
        borderColor:     Color black
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        text:     a Text for 'Gofer it squeaksource: ''NBOpenGL''; package:
''Configuration...etc...
        wrapFlag:     true
        paragraph:     a Paragraph
        editor:     a SmalltalkEditor
        container:     nil
        predecessor:     nil
        successor:     nil
        backgroundColor:     nil
        margins:     nil
        editView:     a PluggableTextMorph(171180032)
        acceptOnCR:     false
        autoAccept:     false
        acceptOnFocusChange:     false
        selectionColor:     nil

TextMorphForEditView>>keyStroke:
    Receiver: a TextMorphForEditView(925892608)
    Arguments and temporary variables:
        evt:     [keystroke '<Cmd-d>']
        view:     a PluggableTextMorph(171180032)
    Receiver's instance variables:
        bounds:     (0 at 0) corner: (681 at 114)
        owner:     a TransformMorph(623902720)
        submorphs:     #()
        fullBounds:     (0 at 0) corner: (681 at 114)
        color:     Color black
        extension:     a MorphExtension (945815552) [other:  (blinkStart ->
564954) (myDepe...etc...
        borderWidth:     0
        borderColor:     Color black
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        text:     a Text for 'Gofer it squeaksource: ''NBOpenGL''; package:
''Configuration...etc...
        wrapFlag:     true
        paragraph:     a Paragraph
        editor:     a SmalltalkEditor
        container:     nil
        predecessor:     nil
        successor:     nil
        backgroundColor:     nil
        margins:     nil
        editView:     a PluggableTextMorph(171180032)
        acceptOnCR:     false
        autoAccept:     false
        acceptOnFocusChange:     false
        selectionColor:     nil

TextMorphForEditView(TextMorph)>>handleKeystroke:
    Receiver: a TextMorphForEditView(925892608)
    Arguments and temporary variables:
        anEvent:     [keystroke '<Cmd-d>']
        pasteUp:     nil
    Receiver's instance variables:
        bounds:     (0 at 0) corner: (681 at 114)
        owner:     a TransformMorph(623902720)
        submorphs:     #()
        fullBounds:     (0 at 0) corner: (681 at 114)
        color:     Color black
        extension:     a MorphExtension (945815552) [other:  (blinkStart ->
564954) (myDepe...etc...
        borderWidth:     0
        borderColor:     Color black
        textStyle:     a TextStyle Bitmap DejaVu Sans 9
        text:     a Text for 'Gofer it squeaksource: ''NBOpenGL''; package:
''Configuration...etc...
        wrapFlag:     true
        paragraph:     a Paragraph
        editor:     a SmalltalkEditor
        container:     nil
        predecessor:     nil
        successor:     nil
        backgroundColor:     nil
        margins:     nil
        editView:     a PluggableTextMorph(171180032)
        acceptOnCR:     false
        autoAccept:     false
        acceptOnFocusChange:     false
        selectionColor:     nil


--- The full stack ---
NBFFICallout(Object)>>error:
NBFFICallout>>generateCall:module:
[:generator | generator sender: sender;
         callType: self callType;
         generateCall: fnSpec module: self moduleName] in NBGlxAPI>>call:
NBFFICallout class(NBNativeCodeGen class)>>generateCode:andRetry:
NBFFICallout class(NBNativeCodeGen class)>>handleFailureIn:nativeCode:
NBGlxAPI>>call:
NBGlxAPI>>queryExtension:errorBase:eventBase:
NBGLXContextDriver>>createContext:
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
SmalltalkEditor>>doIt
SmalltalkEditor>>doIt:
SmalltalkEditor(TextEditor)>>performCmdActionsWith:shifted:return:
SmalltalkEditor(TextEditor)>>dispatchCommandOn:return:
SmalltalkEditor(TextEditor)>>dispatchOn:
[self dispatchOn: aKeyboardEvent] in SmalltalkEditor(TextEditor)>>keystroke:
SmalltalkEditor(TextEditor)>>handleKeystrokeAction:
SmalltalkEditor(TextEditor)>>handleEditionAction:fromKeyboardEvent:
SmalltalkEditor(TextEditor)>>keystroke:
[editor keystroke: evt] in [| action |
evt keyValue = 13
        ifTrue: [action := self crAction.
            action
                ifNotNil: [evt hand newKeyboardFocus: nil.
                    ^ action value]].
    self
        handleInteraction: [editor keystroke: evt].
    self updateFromParagraph.
    super keyStroke: evt] in TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView(TextMorph)>>handleInteraction:
TextMorphForEditView>>handleInteraction:
[| action |
evt keyValue = 13
        ifTrue: [action := self crAction.
            action
                ifNotNil: [evt hand newKeyboardFocus: nil.
                    ^ action value]].
    self
        handleInteraction: [editor keystroke: evt].
    self updateFromParagraph.
    super keyStroke: evt] in TextMorphForEditView(TextMorph)>>keyStroke:
ToolRegistry>>codeCompletionAround:textMorph:keyStroke:
SmalltalkEditor>>codeCompletionAround:textMorph:keyStroke:
TextMorphForEditView(TextMorph)>>keyStroke:
TextMorphForEditView>>keyStroke:
TextMorphForEditView(TextMorph)>>handleKeystroke:
 - - - - - - - - - - - - - - -
            - - - - - - - - - - - - - - - - - -
KeyboardEvent>>sentTo:
TextMorphForEditView(Morph)>>handleEvent:
TextMorphForEditView(Morph)>>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>>sendKeyboardEvent:
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.pharo.org/pipermail/pharo-dev_lists.pharo.org/attachments/20120327/e395867e/attachment-0001.html>


More information about the Pharo-dev mailing list