這個**,要說好呢,還是有很多的可以學習的地方的,不過很多地方也是實現得比較粗糙。
要對真彩色支援,首先要了解到:
1、它是16位增強色的,是沒有調色盤的。具體原理後述。
2、它的素材也是針對增強色設計的,位元組可直接用於增強色模式,不可直接用於真彩色模式。
認識到了這兩點,基本知道該怎麼做了。
先說說增強色模式,現在一般的傳奇3私服,會提供乙個登入器,登入器除了ip**之外,還有乙個作用就是在執行程式時,把電腦設定成增強色模式,不然按現代的機器,真彩色模式執行,把增強色的資料直接當成rgb顏色渲染,會花屏。
增強色用2個位元組(word)表示乙個顏色,r分量佔5位,g分量佔6位,b分量佔5位,共計16位。
因此每個分量有乙個位掩碼和乙個位移碼,對這個word資料作用掩碼和位移,就可以取出對應的分量的顏色值。當電腦在增強色模式下時,這個操作是自動進行的。
取出rgb分量,還是不能將其用於表示rgb,原因是精度不一樣導致的資料單位不一樣。
真彩色中,乙個分量是乙個位元組,即8位,而增強色中,乙個分量是5或者6位。因此,需要做乙個縮放。
例如,紅色,在真彩色中,r分量是0xff,而在增強色中,r是二進位制11111。
因此,r和b分量需要乘以8,g分量需要乘以4。然後,就可以組合成rgb真彩色了。
因為程式的素材本身就不是真彩色的,因此,我們只需要對su***ce的操作進行真彩色的支援即可。
首先dx裝置要設定成32位深度的,然後,對su***ce的取色彩操作,要認為是直接在取真彩色的資料,並且在取出計算分量時,相應的要除以8,或4,縮放到增強色的空間。對su***ce的寫入色彩操作,要認為是在寫真彩色資料,所以要先把word的增強色變換到dword的真彩色rgb,然後在寫入。另外,因為色彩深度不一樣,對su***ce的pitch處理時要考慮到,因為它是以位元組為單位的。
struts2的客戶端驗證
struts2同樣支援客戶端驗證 1.struts2標籤的form的主題 theme 一定不能設為 2.將form的validate屬性設為true。這樣客戶端就會根據相應的action的xml驗證檔案產生乙個js對客戶端進行驗證。一般開發中只使用struts2的服務端驗證,而不使用struts2的...
webService 客戶端呼叫 axis2
今天找出來給同事用,重新改了下 給同事.返回request的方法 soap包 return method public static void main string args throws axisfault new string,60000 system.out.println result.t...
Linux MySQL客戶端的error 2059
在 vmware 虛擬機器的客戶機 centos7 裡面安裝執行有 docker 的 mysql 8.0,由於當前 centos7 預設的 mysql 客戶端版本太低 5.5.60 低版本的客戶端認 mysql native password 認證外掛程式,而高版本認 caching sha2 pa...