SPICE協議定義 顯示通道(1)

2021-07-24 20:16:54 字數 1837 閱讀 3975

[cpp]view plain

copy

print

?enum ;  

[cpp]view plain

copy

print

?enum ;  

spice伺服器使用spice_msg_display_mode訊息傳送到客戶端指定當前畫面的面積和格式,作為回應客戶端建立乙個顯示的區域來呈現所有伺服器傳送來的渲染指令,客戶端在收到伺服器傳送資訊spice_msg_display_mark將重新整理遠端顯示區域。伺服器可以使用spice_msg_display_reset通知客戶端放棄繪圖區域和快取。     spice_msg_display_mode訊息只允許在客戶端不存在可用繪圖區域。spice_msg_display_reset訊息只允許客戶端存在可以用繪圖區域。

spice_msg_display_mark只允許在上述兩訊息之間傳送一次。

在顯示通道建立的時候,客戶端為了使用影象快取及glz壓縮會傳送spice_msgc_display_init訊息到伺服器。訊息包括影象快取id及大小和glz壓縮視窗的大小。這些尺寸和id有客戶端決定。只允許傳送一次。這個大小是主通道建立的時候spice_session_set_caches_hints函式設定的。

繪圖快取是伺服器管理的。快取條目的插入是另外一組命令實現的。快取條目的刪除是通過spice_msg_display_inval_list和spice_msg_display_inval_palette。重新設定快取是通過傳送spice_msg_display_inval_all_pixmaps和spice_msg_display_inval_all_palettes。

1、spicemsgdisplaymode

[cpp]view plain

copy

print

?typedef structspicemsgdisplaymode  spicemsgdisplaymode;  

下面頂乙個一組標記來描述光柵操作。可以應用在源影象、源刷,目的和結果。結合這些標記定義了必要的步驟。需要預製渲染操作。

[cpp]view plain

copy

print

?typedef enumspiceropd  spiceropd;  

op_put, op_or,op_and, op_xor, op_blackness, op_whiteness, and

op_invers 是相互排斥的。

op_blackness,op_whiteness, and op_invers 是獨有的。

下面的部分介紹spice象圖,象圖是spice協議傳輸影象的方法之一。

[cpp]view plain

copy

print

?typedef enumspicebitmapflags spicebitmapflags;  

[cpp]view plain

copy

print

?typedef enumspicebitmapfmt spicebitmapfmt;  

[cpp]view plain

copy

print

?typedef structspicebitmap  spicebitmap;  

[cpp]view plain

copy

print

?typedef structspicepalette  spicepalette; 

UMX T協議定義

bool encrypt flag 是否加密 unsigned long cert entity id 證書主體id bool reliable 是否可靠 bool ack2 是否送達確認 bool fixed post 固定投遞 short fwd flag 儲存 屬性 string ref ke...

spice協議詳解 三 spice架構和通訊

一.相關概念 channel 通道 client和server通過通道進行互動。每個通道型別專用於一種特殊資料型別傳輸。每個通道用乙個專用的tcp套接字,可能是安全的 用ssl加密 或不安全的。在客戶端每個通道有乙個專用的執行緒。因此通過不同的執行緒優先順序,每個通道被安排不同的傳輸功能,通道包括 ...

SPICE 協議 USB 重定向

用spice協議來進行usb透傳的介紹,在spice官網上有 spice 官網 type usb index 0 model ich9 ehci1 type usb index 0 model ich9 uhci1 startport 0 controller type usb index 0 mo...