星期五, 4月 28, 2006

something about osd 2-D acceleration engine

虛擬的觀念: surface ,代表engine 的input , output。
  • input surface - 從DRAM ,一般是image檔。
  • output surface - 就是螢幕。
engine 需要working space,所以每個surface都要操作空間: address。
  • input 還好,因為load image 到DRAM後,自然就要用到space。把這個space的start address assign 給input surface就可以。
  • output 就要prorgrammer估計,最大會要多少,alloca後再assign給output surface。

每個surface還要指定color 的format : true-color 或是palette。如果是palette的話,還要再將palette table 設定好(也就是color array),拿給surface。

設定好input surface 和output surface的property後,input的圖形還不會update到output,要執行一個command,ReplaceRectangle,指定input surface中的區域範圍 要 畫到 output surface的哪一個區域範圍。

如果是繪圖的動作,像Fill Rect,line,Circle.. poly,就不用指定surface了,因為他直接作內部的2-D 加速engine的圖形產生器,直接畫到 output surface。

沒有留言:

網誌存檔