2009年3月18日 星期三
OpenGL ES 2.0: Hello Triangle!
上圖是OpenGL ES 2.0 Programming Guide第二章的範例
書中的範例是使用AMD OpenGL ES Emulator
很可惜的是AMD的OpenGL ES SDK僅只提供Windows平台版本
個人是使用PowerVR OpenGL ES SDK
除了書中的範例外也參考了PowerVR提供的example寫成
將書中使用而無Linux版的esUtil部份補上, 完成整個example
提供在Linux上學OpenGL ES 2.0的另一途徑
Linux版的範例請在此下載
懶得寫Makefile 可以覆蓋PowerVR SDK的example編譯
未來希望能夠將整個esUtil 在Linux上實做
(有部份是OS independent ex:Transform)
shader的方式是比以往透過function來得到效果, 顯得彈性且自由多了...:)
2009年3月10日 星期二
OpenGL ES 2.0 Programming Guide
上次個人寫OpenGL程式, 已是碩士班時期的事情了
那時還停留在OpenGL 1.x, 因此對於2.x可說是知悉甚微....
由於beagleboard所用的OMAP3530的緣故
(OMAP 3530 使用 PowerVR 的3D Accelerator)
個人開始注意到OpenGL ES 2.0
與OpenGL ES 1.x 源自OpenGL 1.5不同
OpenGL ES 2.0 源自於OpenGL 2.0
而上圖的OpenGL ES 2.0 Programming Guide,
可以說是目前唯一的參考書目了
而稍微看了一下簡介
OpenGL (ES) 2.x相對1.x強調programmable pipeline以及shading language
一些範例也相當有趣, 而OpenGL 與 OpenGL ES間的相容性是相當不錯的
以OpenGL ES 2.0作為另一個起點, 似乎是不錯的選擇
苦無OpenGL ES 2.0的硬體練習嗎?
沒關係PowerVR貼心地提供了PC Emulation SDK(Linux/Windows Platform)
let's OpenGL~
Choice of Programming Editor
最近又得長時間在Windows下寫程式, 所以又做了editor的survey
吃寫程式這行飯的人, 因為必須長使間使用code editor
對於用來編寫程式的環境, 多多少少有自己的偏好和選擇
個人很羨慕我相當好的朋友, 在碩士期間習得vim大法, 搭配tag, cscope
在windows上有gvim, 回泛Unix環境也如魚得水, 各種環境應該對他都不是問題
很可惜, 個人沒有這麼勤勞去學習, 只會用用簡單的GUI Editor
很多人都習慣使用Source Insight 或是微軟的 Visual Studio環境
個人盡量不去使用非法軟體, 而又不想被綁在M$的牢籠中
因此多半是靠著Makefile + Scite作為主要開發環境
想學已久的cmake也還沒開始啃 ^^;
而對於初學者以及一些Programmer而言
整合開發環境(IDE:Integrated Development Environment)是不可或缺的
長久以來, 我一直都停留在Eclipse/Anjuta/KDevelope的印象
也或許因為疏於注意, 這類工具我從來沒有好好學習和使用過
近日看了看Wiki的IDE比較表, CodeLite/CodeBlock倒是相當吸引我的興趣
看來是該找時間把 cmake/eclipse/(codelite or codeblock) 好好地學一學
對了, 還有QT近日最新力作QT Creator, 看來也是不錯的工具
吃寫程式這行飯的人, 因為必須長使間使用code editor
對於用來編寫程式的環境, 多多少少有自己的偏好和選擇
個人很羨慕我相當好的朋友, 在碩士期間習得vim大法, 搭配tag, cscope
在windows上有gvim, 回泛Unix環境也如魚得水, 各種環境應該對他都不是問題
很可惜, 個人沒有這麼勤勞去學習, 只會用用簡單的GUI Editor
很多人都習慣使用Source Insight 或是微軟的 Visual Studio環境
個人盡量不去使用非法軟體, 而又不想被綁在M$的牢籠中
因此多半是靠著Makefile + Scite作為主要開發環境
想學已久的cmake也還沒開始啃 ^^;
而對於初學者以及一些Programmer而言
整合開發環境(IDE:Integrated Development Environment)是不可或缺的
長久以來, 我一直都停留在Eclipse/Anjuta/KDevelope的印象
也或許因為疏於注意, 這類工具我從來沒有好好學習和使用過
近日看了看Wiki的IDE比較表, CodeLite/CodeBlock倒是相當吸引我的興趣
看來是該找時間把 cmake/eclipse/(codelite or codeblock) 好好地學一學
對了, 還有QT近日最新力作QT Creator, 看來也是不錯的工具
buildroot: 三個願望一次滿足
由於新工作開始了, Prex的部份以後會慢慢推進
(目前mp3 decoder ok了, 還要弄audio driver/daemon)
而buildroot就是因為新工作的內容而開始接觸 (以前就聽過, 只是一直沒機會去玩.)
在開發embedded system中, crossplatform toolchain的選擇是相當重要的一環
在數年前, 產生對應平台的 gcc cross toolchain是相當麻煩的一件事情
glibc/gcc/binutils..版本的排列組合有可能會造成不同的問題
(ex: compiler編不過, compiler編完了不能編kernel)
因此需要花時間嘗試組合, 找到較佳的組合, 過程冗長繁複
而這幾年來令個人印象深刻的是Dan Kegel當時所撰寫的build script
方便的設定, 大大地簡化了如此測試的程序
現今cross toolchain可以說垂手可得了, 相當方便
稍微google一下就可以得到不少訊息和編譯好的工具
像是移植prex的過程中, 個人選擇CodeSourcery的Toolchain
主要的目標硬體平台(x86, ARM, MIPS, ColdFire, PowerPC)都有
也貼心地提供Linux/Windows兩種版本,
而CodeSourcery也隨著時間不斷地提供新版本和新平台的支援
不想親自動手準備相關環境情況下, 算是相當高品質的選擇
對於Embedded Linux而言, 除了toolchain, kernel外
除了Toolchain還得張羅root file system
buildroot提供相當方面的介面(類似編譯linux kernel的menuconfig), 滿足這三種需求
buildroot是uClibc的相關project, 提供uClibc-based的gcc toolchain
相對glibc/gcc所建構的環境, 在所需空間上節省不少
而且也編譯好busybox, 方便迅速地建構適用的環境
套句廣告詞: 三個願望一次滿足!
另外, 除了CodeSourcery toolchain, buildroot 外, Scratchbox也是不錯的選擇
而較龐大且全面的Embedded Linux專案可以考慮OpenMoko所採用的OpenEmbedded
(目前mp3 decoder ok了, 還要弄audio driver/daemon)
而buildroot就是因為新工作的內容而開始接觸 (以前就聽過, 只是一直沒機會去玩.)
在開發embedded system中, crossplatform toolchain的選擇是相當重要的一環
在數年前, 產生對應平台的 gcc cross toolchain是相當麻煩的一件事情
glibc/gcc/binutils..版本的排列組合有可能會造成不同的問題
(ex: compiler編不過, compiler編完了不能編kernel)
因此需要花時間嘗試組合, 找到較佳的組合, 過程冗長繁複
而這幾年來令個人印象深刻的是Dan Kegel當時所撰寫的build script
方便的設定, 大大地簡化了如此測試的程序
現今cross toolchain可以說垂手可得了, 相當方便
稍微google一下就可以得到不少訊息和編譯好的工具
像是移植prex的過程中, 個人選擇CodeSourcery的Toolchain
主要的目標硬體平台(x86, ARM, MIPS, ColdFire, PowerPC)都有
也貼心地提供Linux/Windows兩種版本,
而CodeSourcery也隨著時間不斷地提供新版本和新平台的支援
不想親自動手準備相關環境情況下, 算是相當高品質的選擇
對於Embedded Linux而言, 除了toolchain, kernel外
除了Toolchain還得張羅root file system
buildroot提供相當方面的介面(類似編譯linux kernel的menuconfig), 滿足這三種需求
buildroot是uClibc的相關project, 提供uClibc-based的gcc toolchain
相對glibc/gcc所建構的環境, 在所需空間上節省不少
而且也編譯好busybox, 方便迅速地建構適用的環境
套句廣告詞: 三個願望一次滿足!
另外, 除了CodeSourcery toolchain, buildroot 外, Scratchbox也是不錯的選擇
而較龐大且全面的Embedded Linux專案可以考慮OpenMoko所採用的OpenEmbedded
訂閱:
文章 (Atom)
在 ARM 平台上使用 Function Multi-Versioning (FMV) - 以使用 Android NDK 為例
Function Multi-Versioning (FMV) 過往的 CPU 發展歷程中, x86 平台由於因應各種應用需求的提出, 而陸陸續續加入了不同的指令集, 此外也可能因為針對市場做等級區隔, 支援的數量與種類也不等. 在 Linux 平台上這些 CPU 資訊可以透過...
-
在 Halide 的使用上會有錯覺地認為 Halide::Runtime::Buffer 的使用必須與 libHalide.so or libHalide.a linking 才可以. 但其實 Halide::Runtime::Buffer 是可以單獨使用的, 只需要 head...
-
現今對於 Daily Linux Developer / User 面對不同程式/開發版本環境感到很頭疼, 常常疲於 執行舊版程式需要安裝舊版本 Library, 設定 RPATH / LD_LIBRARY_PATH 開發需求建立不同的版本 SDK 開發/執行環境, 在較舊系統...
-
在講解 680 中的 SIMD 單元 - HVX 之前, 還是先以 系列文 I 的 blocks diagram開頭, 並且今日重點會是文中提到第3點的官方文件 從 blocks diagram 中可以看到 HVX 由三個主要部分所組成 VX : Vector ...