2013-05-10 54 views
2

好吧,所以我在東部度假期間試圖學習Opengl ES 2(和opengl 4),因爲我意識到我不需要雅典或矢量圖形用於我的GUI,因爲我將主要處理3D圖形。 (我的項目「Ephestos」將創造菲羅一個3D應用程序的努力,也見「攪拌器」)NBOpenGL真的值得嗎?

所以,當我試圖運行我得到

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的中心下載最新的配置,做

ConfigurationOfNativeboost loadStable。

它更新沒有錯誤,但仍然無法找到該類。

所以我的問題是,是否真的值得與NBOpengl或 奮鬥將能夠更好地瞭解如何Nativeboost作品和使用Opengl自己?

回答

1

我會說是的。 NBOpenGL是使用NativeBoost預先製作的OpenGL包裝器,因此通過提供您需要手動進行的操作來節省時間。 更好地花費一些時間修復配置,而不是花費大量時間重新進行綁定。

+0

謝謝,我想我會這樣做,嘗試修復至少我需要的部分我的應用程序。我只是想要更多有經驗的小人物的意見,他們已經使用並理解了圖書館及其問題。 – Kilon 2013-05-11 17:56:05

+0

是的......配置應該可以開箱即用。如果它不工作,請在郵件列表中報告,以便維護人員可以修復它:) – EstebanLM 2013-05-12 12:08:01