robot
最新文章(10)
Mqskit 和其它相關工具
CPython 的 GC 二、三事
寫 Mecurial Extension 是件快樂的事!
Mozilla 台灣辨公室徵人啟事
關於 Apple 的兩項專利
core dump 之前的 frame
怎麼發出 beep 聲?
先承認你要找的是奴才吧!
程式碼要清的多乾淨?
FreeBSD 的 Thread-Local Storage 實作
首頁
新編
最新留言
Entries RSS
重要關鍵字(10)
coding (122)
Python (93)
FreeBSD (71)
WEB (61)
URL (48)
hardware (46)
javascript (36)
Linux (34)
blog (30)
C++ (16)
所有關鍵字
新增 URL
專案 MadButterfly
by thinker
2 Columns
關鍵字:
雜記
最近又埋頭於一個 project ,稱為 linkname:MadButterfly http://www.assembla.com/spaces/MadButterfly/ ,定位為 SVG 為基礎的 $GUI$ 架構。更清楚的說,就是讓 application 可以用 SVG 畫出 $GUI$ ,透過 MadButterfly 呈現在螢幕上,並和使用者互動。這情況就和 Javascript 配合 DOM/HTML 所產生的效果類以,但將 HTML 改成 SVG ,將 Javascript 換成任何語言(可能)。也就是說, MadButterfly 呈現給 programmer 的,是一個只能瀏覽 SVG 的 browser ,並且可動態產生和修改顥示的內容,就和 Javascript 產生 Dynamic HTML 道理一樣。 這有什麼好處呢? linkname:[這段影片] http://osku.de/simsui/simsui-PROTOTYPE1_video_tutorial.ogg 可以說明其威力。該影片是由一位德國朋友所製作,他透過 clutter 實作了一個簡單的$範例$。而 MadButterfly 就是要提供這樣一個環境,讓 application 能釋放 SVG 的威力。 目前 MadButterfly 完成 SVG spec 裡的 * path * solid color paint * linear gradient paint 而 SVG 物件的狀態追縱和更新系統已完成,能自動針對有變動的物件,做畫面的部分更新,以改善效能。下圖是一個$範例$。 [attach:MadButterfly-demo.png] 目前 linkname:repository http://hg.assembla.com/MadButterfly (mercurial) 裡有一個$範例$ X_main ,能在 X 下面做一個簡單的動畫 demo 。但這個 demo 還很粗糙,效果上還有很大的調整空間。例如,目前是直接畫在 window ,因此會有閃爍的情況,可透過一個 buffer 來避免。 MadButterfly 目前只於 $FreeBSD$ 上測過, Makefile 也是針對 $FreeBSD$ 寫的 (非 gmake)。make 時需要 cairo 。 另外需要 CUnit ,以進行 unit $test$。 == TODO == * 補齊 SVG Tiny 1.2 內的其它 shape * 補齊 SVG Tiny 1.2 內的其它 paint * 改進執行效果 * $Linux$ 及其它平台的移植 * Language binding * Parser to translate SVG to internal representation
最後更新時間: 2008-08-02 23:56:05 CST |
引用
查詢:
COMMENTS: