Chia´s Small Shop

Chia小鋪,陳列隨手的文字

別讓你的多核心只是裝飾品!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++0xlambda 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

八月 18, 2009 發文者為 chia0418 | TBB | , , , | 暫時沒有留言

在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來解決問題 閱讀更多»

五月 19, 2009 發文者為 chia0418 | Qt | , , , | 1 則留言

與Ogre共舞:第六步,敲敲鍵盤、動動滑鼠

從建立了Ogre的視窗開始,我們的目標就是透過攝影機,來看所設計的3D場景。為了能夠自由自在的瀏覽,我們得用輸入裝置來控制攝影機的位置與拍攝角度。由於Ogre本身只是個純繪圖引擎,對於處理鍵盤滑鼠之類的裝置非常不擅長,因此特地請來另外一個小巧簡單的套件 – OIS(Object Oriented Input System,別問我為什麼不叫OOIS呀…),幫忙解決這個問題。而這所有的過程,都會由FrameListener來接管。我們將繼續上一步的FrameListener範例,添加了滑鼠鍵盤輸入的處理,達到控制攝影機的目的。 閱讀更多»

四月 1, 2009 發文者為 chia0418 | Ogre | , | 3 則留言

與Ogre共舞:第五步,轉轉乳酪方塊

在這步中,將要介紹Ogre在描繪場景時,一個參與描繪流程的重要的類別:FrameListener,顧名思義就是Ogre每描繪一張畫面時,在旁邊「聽候通知」的類別。在行為上,FrameListener與回呼函數(callback function)相當,每當Ogre描繪一張畫面,會在適當事件發生的時候通知FrameListener來處理。我們可以利用FrameListener來處理每一個畫面中,物件的操作、攝影機視角的改變、以及其他輸出輸入的處理,讓使用者能夠與Ogre的場景有所互動。 閱讀更多»

三月 28, 2009 發文者為 chia0418 | Ogre | , | 3 則留言

與Ogre共舞:第四步,乳酪方塊的協奏曲

在前三步中,從安裝Ogre開始,到建立視窗並在Ogre中放了一個彩色三角片,我們已經接觸了幾個Ogre中重要的元件:Ogre根本的Root,系統繪圖API介面的RenderSystem,掌控物件配置的SceneManager,隸屬於ResourceManager、產生材質的MaterialManager,以及建立自訂幾何構成物件的ManualObject。在這步中,我們要用SceneManager在場景中擺設12個乳酪方塊,認識SceneManager如何控制元件的位置與姿態。當然,還是只用程式碼來完成一切唷。 閱讀更多»

三月 23, 2009 發文者為 chia0418 | Ogre | , | 5 則留言

與Ogre共舞:第三步,來一個三角片

自從上一步學會開啟一個黑漆漆的小視窗後,該是來點什麼的時候了。在這步裡,我們將會在視窗裡擺上一個三角片-一個構成3D世界最基本的物件。擺好之後,或許還可以上點顏色。我們會開始接觸Ogre最重要的子系統-SceneManager,以及利用ManualObject來產生三角片。同樣的,這個範例依照我個人的偏好,不使用Ogre的設定檔與提供的資源。 閱讀更多»

三月 17, 2009 發文者為 chia0418 | Ogre | , | 2 則留言