2

好的,所以我在东部假期期间尝试学习Opengl ES 2(和 opengl 4),因为我意识到我的 GUI 并不真的需要雅典或矢量图形,因为无论如何我将主要处理 3d 图形。(我的项目“Ephestos”将致力于为 pharo 创建一个 3d 应用程序,另请参见“blender”)

因此,当我尝试运行演示时,出现错误

NBMacGLContextDriver>>supportsCurrentPlatform
    "obviously, for Mac intel-32 only :)"
    ^ NativeBoost platformId = NativeBoostConstants mac32PlaformId

我的 Mac“显然”不是 32 位而是 64 位,但我不知道这是否重要,因为无论如何 pharo 只是 32 位。该错误也很明显,应该是mac32PlatformId而不是mac32PlaformId

我更正并继续,这次给了我一个新错误

NBMacGlApi>>glApiCall: fnSpec index: fnIndex attributes: attributes context: contextToRetry

    ^[
        (NBCallFailureHandler for: contextToRetry) retryWith: [ :targetClass :targetMethod |
            (NBFFICallout
                targetClass: targetClass targetMethod: targetMethod fnSpec: fnSpec)
                stdcall;
                generate: [ :gen | self emitCall: fnIndex generator: gen ]
        ]
    ] on: NBNativeCodeError do: [:err :handler |
        err errorCode = ErrorFnNotAvailable ifTrue: [
            "Native code is installed, but function pointer not loaded yet.
            Try to load function and retry the call"  
            (self tryGetFunctionPointer: (self class glFunctions at: fnIndex)) ifFalse: [ ^ err pass ].
            ^ handler retrySend
            ].
        err pass      
    ]

这里的问题NBCallFailureHandler是无处可寻。起初我认为我的 NB 版本落后,所以我从 smalltalk Hub 下载了最新的配置并做了

ConfigurationOfNativeboost loadStable。

它更新没有错误,但仍然找不到那个类。

所以我的问题是,它真的值得挣扎还是学习如何工作和使用自己NBOpengl会更好?NativeboostOpengl

4

1 回答 1

1

我会说是的。NBOpenGL 是使用 NativeBoost 对 OpenGL 的预制包装,因此它通过提供您需要手动执行的操作来节省您的时间。花一些时间修复配置比花很多时间重新绑定要好。

于 2013-05-11T14:18:08.900 回答