別讓你的多核心只是裝飾品!Intel TBB 2.2 發布
Intel® Threading Building Blocks (TBB) 是一個協助將演算法平行化處理的函式庫。利用多核心可以同時處理多執行緒的優點,TBB自動將資料拆成數塊,分別由各個執行緒執行後,再將結果彙整。以往要自己手動處理多個執行緒的管理以及同步等問題,TBB都已經幫你包辦好了。雖然寫起來不若OpenMP那樣簡潔,不過我對於程式碼中飛來飛去的#pragma實在有點感冒…
TBB 的開放原始碼版本(GPL 2),在2009年8月9日發布2.2版囉!跟2.1版相比,架構有一點點小小地變動。除了效能的增進外,新加入的parallel_invoke與parallel_for_each方法,可以簡化原先parallel_for使用functor的繁複寫法,同時也支援C++0x的lambda functions。還有一個小小驚喜,終於不用初始化task scheduler了,2.2版會自動幫你做好這件事。眼下先把2.1版的projects升級一下囉~
拜訪 TBB
- TBB Home
- TBB 2.2 stable version download
- What’s New in Intel® TBB 2.2
在VC中利用Qt Designer建立自訂的slot
Qt自己出了個IDE,Qt Creator,支援GNU的編譯器與GDB除錯器
整合度之高,感覺真像是先前使用Borland C++ Builder的經驗一樣
不過,假如已經習慣了VC的編譯環境,就只能望著Qt Creator乾瞪眼嗎?
好在從Qt釋出了Visual Studio add-in (for open-source version)以後
Qt跟VC之間的距離就越來越近了
不用管什麼三部曲、uic與moc
視窗拉一拉,元件放一放,一個可口的GUI就完成了
打造複雜的GUI再也不是夢想!
在設計GUI的過程中,往往會碰到需要自行定義被觸發事件(signal)的處理方法(slot)
signal沒啥問題,通常是按鈕、選單等元件發出(e.g. 滑鼠點擊)
但是slot呢?並不是每個signal都找得到合適的預設slot
比方說,按一個按鈕開啟檔案對話框,然後載入一張圖片
應該找不到一個slot是剛好設定為「開啟檔案對話框」的吧!
這個時候,就需要自訂的slot來解決問題 閱讀更多»
與Ogre共舞:第五步,轉轉乳酪方塊
在這步中,將要介紹Ogre在描繪場景時,一個參與描繪流程的重要的類別:FrameListener,顧名思義就是Ogre每描繪一張畫面時,在旁邊「聽候通知」的類別。在行為上,FrameListener與回呼函數(callback function)相當,每當Ogre描繪一張畫面,會在適當事件發生的時候通知FrameListener來處理。我們可以利用FrameListener來處理每一個畫面中,物件的操作、攝影機視角的改變、以及其他輸出輸入的處理,讓使用者能夠與Ogre的場景有所互動。 閱讀更多»
與Ogre共舞:第四步,乳酪方塊的協奏曲
在前三步中,從安裝Ogre開始,到建立視窗並在Ogre中放了一個彩色三角片,我們已經接觸了幾個Ogre中重要的元件:Ogre根本的Root,系統繪圖API介面的RenderSystem,掌控物件配置的SceneManager,隸屬於ResourceManager、產生材質的MaterialManager,以及建立自訂幾何構成物件的ManualObject。在這步中,我們要用SceneManager在場景中擺設12個乳酪方塊,認識SceneManager如何控制元件的位置與姿態。當然,還是只用程式碼來完成一切唷。 閱讀更多»