2013年7月29日 星期一

Memo

javah -d jni -classpath ./bin/classes com.metaio.virtualbutton.VBInterface adb logcat -c adb logcat -d > logcat.txt

2013年7月27日 星期六

API Tracer For OpenGL ES 2.0

這個case大概是一年多前接的,純粹是為了幫apitrace內加入opengles部分,可笑的是當我寫完後過沒兩個禮拜apitrace就支援opengles了...。
其實tracer的原理還蠻簡單的,先在原本的dll或so上架一層新的dll或so,利用windows會先載入同目錄下的dll以及linux或android下能自訂要載入的so,當需要呼叫libEGL或libGLESv2會先載入我們的api,而我們的api負責將所有api call的parameter記錄下來再去呼叫原本的libEGL和libGLESv2。
基本上麻煩事apitrace都幫我做完了,像是要把所有傳進redering device的buffer內容全記下來這類的function都已經提供了,所以只要把opengles 2.0的所有api列出來稍微查證下內容就行了,唯一比較大的麻煩是apitrace是用Python去產生c++ code及cmake file,十分神奇的作法但比純寫c++要有效率不少。