新四季網

虛擬表面分配的製作方法

2023-05-02 05:29:36 1

虛擬表面分配的製作方法
【專利摘要】描述了虛擬表面技術。這些技術包括更新的初始化和批處理的支持、更新和預讀列表的使用、排版隔條的使用、混合和BLT操作、諸如下推以及枚舉和組塊之類的表面優化技術、網格使用和遮擋管理技術。
【專利說明】虛擬表面分配

【背景技術】
[0001]各種各樣的計算設備配置繼續增長。從傳統的桌面型個人計算機到行動電話、遊戲控制臺、機頂盒、平板計算機等等,來自這些配置中的每一個的可用的功能性可能極大地變化。
[0002]結果,針對一個配置而開發的傳統的顯示技術可能不再適合於另一配置。舉例來說,之前用於具有大量存儲器資源的設備的顯示技術可能不適合具有較少資源的設備。


【發明內容】

[0003]描述了虛擬表面技術。這些技術包括更新的初始化和批處理的支持、更新和預讀(look aside)列表的使用、排版隔條(gutter)的使用、混合和BLT操作、諸如下推以及枚舉和組塊之類的表面優化技術、網格使用和遮擋管理技術。
[0004]提供本
【發明內容】
來以簡化的形式介紹概念的選擇,這些概念在下面在【具體實施方式】中進一步被描述。本
【發明內容】
不意圖標識所要求保護的主題的關鍵特徵或必要特徵,也不意圖用作確定所要求保護的主題的範圍時的輔助。

【專利附圖】

【附圖說明】
[0005]參考附圖描述【具體實施方式】。在這些圖中,附圖標記的最左邊的(多個)數字標識在其中該附圖標記第一次出現的圖。在描述和圖中的不同實例中相同的附圖標記的使用可以指示類似或相同的項目。
[0006]圖1是在可操作用來施行在此描述的虛擬表面技術的示例實現中的環境的圖示。
[0007]圖2描繪了在其中虛擬表面被調整尺寸的示例實現。
[0008]圖3描繪了在其中示出應用與虛擬表面的邏輯表面之間的交互的示例實現。
[0009]圖4描繪了更詳細地示出圖1的合成系統的示例實現。
[0010]圖5圖示了合成系統發起虛擬表面的操作的示例實現。
[0011]圖6描繪了示出合成系統為更新準備表面的示例實現。
[0012]圖7描繪了合成系統使用圖6的預讀列表的操作的示例實現。
[0013]圖8描繪了示出合成系統採用排版隔條的操作的示例實現。
[0014]圖9描繪了示出合成系統管理有效區的示例實現。
[0015]圖10描繪了示出合成系統使用下推技術組合表面的操作的示例實現。
[0016]圖11描繪了示出合成系統將有效區組合成新的表面的操作的示例實現。
[0017]圖12描繪了示出合成系統採用網格的操作的示例實現。
[0018]圖13描繪了示出合成系統關於遮擋的操作的示例實現。
[0019]圖14是描繪在其中尺寸被分配用於在其中呈現數據的表面的示例實現中的過程的流程圖。
[0020]圖15是描繪在其中合成系統跟蹤有效區的示例實現中的過程的流程圖。
[0021]圖16是描繪在其中採用預讀列表來管理表面的示例實現中的過程的流程圖。
[0022]圖17是描繪在其中基於遮擋來對表面進行調整尺寸的示例實現中的過程的流程圖。
[0023]圖18是描繪在其中描述了牽涉從一個表面到另一個地下推有效區的壓縮技術的示例實現中的過程的流程圖。
[0024]圖19是描繪在其中描述了牽涉將有效區組合成新的表面的壓縮技術的示例實現中的過程的流程圖。
[0025]圖20是描繪在其中合成系統採用網格來做出對於驅動器的調用以使用該網格來呈現表面的示例實現中的過程的流程圖。
[0026]圖21圖示了包括可以被實現為如參考圖1-20所描述的任何類型的計算設備的示例設備的各種組件以實現在此描述的技術的實施例的示例系統。

【具體實施方式】
[0027]綜沭
虛擬表面可以用來分配和管理用於呈現視像的表面。這些虛擬表面例如可以用來克服硬體的限制,諸如管理大於硬體可能為呈現這些視像而分配的存儲器的網頁的呈現,諸如管理大的網頁、沉浸式應用,等等。
[0028]在此描述了虛擬表面合成和更新技術。在一個或更多實現中,描述了管理用於呈現的表面的技術。這包括如結合圖4和5而進一步描述的支持更新的初始化和批處理的技術、如結合圖6和7而描述的更新和預讀列表的使用、如結合圖8而描述的排版隔條的使用、如結合圖9而描述的混合和BLT操作、諸如如結合圖10而描述的下推以及如結合圖11而描述的枚舉和組塊之類的表面優化技術、如結合圖12而描述的網格使用以及如結合圖13而描述的遮擋管理技術。
[0029]在下面的討論中,首先描述可操作用來施行在此描述的虛擬表面技術的示例環境。然後描述在該示例環境以及其他環境中可操作的示例過程。同樣地,該示例環境不限於這些示例過程的性能。
[0030]示例環塏
圖1圖示了根據一個或更多實施例、通常在100處的操作環境。環境100包括具有可以包括一個或更多處理器的處理系統104、圖示為存儲器106的計算機可讀存儲媒體的示例、作業系統108以及一個或更多應用110的計算設備102。作為示例而非限制,計算設備102可以體現為諸如桌面型計算機、可攜式計算機、諸如個人數字助理(PDA)之類的手持計算機、行動電話、平板計算機等等之類的任何合適的計算設備。下面在圖21中示出並描述了計算設備102的不同示例。
[0031]計算設備102還包括圖示為在處理系統104上執行並且可存儲在存儲器106中的作業系統108。計算設備102進一步包括圖示為存儲在存儲器106中並且在處理系統104上也可執行的應用110。作業系統108代表了計算設備102的功能性,其可以抽象供應用110使用的底層硬體和軟體資源。舉例來說,作業系統108可以抽象在應用110無需「知曉」如何完成顯示的情況下如何將數據顯示在顯示設備112上的功能性。還構思了各種各樣其他的示例,諸如抽象計算設備102的處理系統104和存儲器106資源、網絡資源,等等。
[0032]計算設備102還圖示為包括合成系統114。儘管圖示為作業系統108的一部分,但是合成系統114可以以各種各樣的方式被實現,諸如獨立模塊、單獨的應用、計算設備102本身的硬體的一部分(例如,SOC或ASIC),等等。合成系統114可以採用各種各樣的技術來呈現視像,諸如經由一個或更多應用編程接口(API)展示供應用110用來呈現視像的功能性。
[0033]舉例來說,一個這樣的技術可以基於稱為交換鏈的對象,其可以利用表示位圖的緩衝器的陣列。這些緩衝器中的一個例如可以用來在任意一個時刻在顯示設備112上展現數據並且因此可以稱為「在屏緩衝器」或「前緩衝器」。其他緩衝器被使得對於應用110可用以用於離屏地進行光柵化並且因此可以稱為「離屏緩衝器」或「後緩衝器」。
[0034]應用110可以以各種各樣的方式對於顯示在顯示設備112上的內容做出改變。在這樣的第一技術中,應用110可以重繪後緩衝器中的一個並且「翻轉」內容,諸如通過使用指針而使得離屏緩衝器中的一個成為在屏緩衝器,反之亦然。
[0035]在這樣的第二技術中,還可以利用不同尺寸的緩衝器。舉例來說,合成系統114可以將第一緩衝器用作在屏緩衝器。合成系統114還可以將小於第一緩衝器的第二緩衝器用作離屏緩衝器。因此,當要對內容做出更新時,可以將該更新光柵化到第二緩衝器。然後可以例如使用bit將該更新拷貝到在屏緩衝器。這樣,可以節約計算設備102的資源。
[0036]合成系統114還可以配置成支持虛擬表面技術。這些技術可以用來幫助應用110的開發者減少用來呈現視像的計算設備102的資源。這可以包括虛擬表面118的使用,從而使得應用110能夠將視覺數據的表面分解成塊片並且隨後提前呈現這些塊片。還構思了在其中不使用塊片來如下面進一步描述的那樣劃分表面(例如,應用110指定尺寸)的其他實現。
[0037]虛擬表面118可以配置為一個或更多邏輯表面120的集。邏輯表面120代表了如應用110所見的單個表面並且可以與一個或更多視像相關聯。邏輯表面120例如可以配置為具有固定尺寸的塊片,並且多個塊片可以布置在固定的格子中,儘管應當容易地顯而易見的是,還構思了在其中不使用固定尺寸的塊片的各種各樣的其他實例。舉例來說,塊片的尺寸可以由希望呈現視像的應用來指定並且因此塊片的尺寸在該實例中可以由應用本身來設置,其在下面的討論中也被稱為「大塊」。
[0038]虛擬表面118可以用來表示比紋理所表示的區域更大的區域。舉例來說,應用110可以在創建時刻指定虛擬紋理的尺寸。該尺寸建立針對虛擬表面118的邊界。該表面可以與一個或多個視像相關聯。在一個或更多實現中,當虛擬表面被首先初始化時,它並不被實際的分配支持。換言之,虛擬表面118在初始化時可以不「保持位」但是可以在稍後的時間點(例如在分配時)這樣做。
[0039]在下面的討論中,視像可以是指基本的合成元件。舉例來說,視像可以包含供合成系統114處理的位圖和關聯的合成元數據。視像的位圖可以與交換鏈(例如,對於諸如視頻之類的動態內容)或圖表集(atlas)表面(例如,對於半動態內容)相關聯。在合成系統114所支持的單個視覺樹中可以支持這兩個展現模型。
[0040]對於半動態內容,圖表集可以充當針對視像的位圖的更新模型並且可以是指可以包括要呈現的多個層的聚合層,儘管還構思了單個層。視像及其性質操縱(例如,偏移、轉換、實現,等等)以及更新視像的基於圖表集的位圖(開始繪製、暫停繪製、再繼續繪製、終止繪製)的方法經由應用編程接口 116而被展示,而圖表集層尺寸、塊片尺寸、位圖更新的打包/壓縮/管理對於應用110可以是隱藏的。
[0041]交換鏈是指可以諸如通過改變指針而一個接一個地「翻轉」到屏幕的一系列緩衝器。相應地,翻轉模式是這樣的模式:通過該模式交換鏈技術被用來例如通過在離屏與在屏緩衝器之間的交換點的使用來使得離屏緩衝器成為在屏緩衝器。然而,bit模式是指這樣的技術:其中合成系統114的運行時間發布從離屏緩衝器到在屏緩衝器的「bit」(例如,位塊圖像轉移),其可以用來更新在屏緩衝器。
[0042]如之前所描述的,當虛擬表面118在一個或更多實現中被首先初始化時,它並不被實際的分配支持。換言之,它不「保持任何位」。一旦應用110開始更新表面,合成系統114就可以施行塊片(B卩,合成表面對象)的分配。應用110可以經由諸如對於相應操作的開始繪製、暫停繪製、再繼續繪製和終止繪製API調用之類的各種各樣的操作來更新虛擬表面118。映射可以由合成系統114的內部算法確定並且在一個或更多實現中被使得對於應用110不可見。
[0043]此外,合成系統114可以經由API來展示使得應用110能夠對虛擬表面118進行調整尺寸和修剪的功能性。舉例來說,調整尺寸操作可以用來改變虛擬表面118的邊界。這意味著新的更新和/或分配將落入新的尺寸所設置的邊界內。應用110還可以使用該方法來通知合成系統114:虛擬表面118的區不再被使用(例如,不是有效的)並且因此可用於收回。如果調整尺寸導致區域縮小,則應用110不再能夠通過合成系統114的管理來對新的邊界之外的區做出更新。
[0044]圖2描繪了在其中虛擬表面被調整尺寸的示例實現200。在所圖示的示例中,分別使用第一和第二階段202、204來示出3x3虛擬表面被調整尺寸成2x2。在第二階段204中包含交叉陰影線的區表示作為調整尺寸操作的一部分而將被丟棄的塊片。如先前所提到的,用來存儲這些塊片的存儲器106然後可以由合成系統114收回。調整尺寸之後,在不首先對虛擬表面再次調整尺寸的情況下,應用110將不再能夠對丟棄的區(B卩,打上交叉陰影線的區)做出更新。
[0045]此外,在一個或更多實現中,可以由合成系統114響應於操作的指示的接收來發起調整尺寸操作。舉例來說,合成系統114在接收到該指示時可以實現調整尺寸更新而不等待應用調用「委託(commit)」。舉例來說,應用可以調用「Resize (0,O)'「Resize (INT_MAX, INT_MAX)」和「Commit 0」。在該示例中,應用110已經使得內容在第一次調整尺寸時被丟棄,所以第二次調整尺寸沒有效果,即使它在「CommitO 」之前被調用。在這種情況下,顯示設備112不顯示內容,因為沒有內容可用於顯示。
[0046]修剪操作可以用來向合成系統114描述應用110所請求的虛擬圖表集的區。因此,可以施行修剪操作而不對虛擬表面118的邊界進行調整尺寸。然而,它確實告知合成引擎114當前哪些邏輯表面將被分配,其示例結合下面的圖而被描述。
[0047]圖3描繪了在其中示出應用與虛擬表面的邏輯表面之間的交互的示例實現300。該示例還通過第一和第二階段302、304的使用而被圖示。在該示例中,在第一和第二階段302、304兩者中示出了應用的視口 306。相應地,在第一階段302,應用最初呈現通過打上交叉陰影線而示出的、在視口 306內的虛擬表面(其包括15個塊片)的最開始的6個塊片。
[0048]當虛擬表面所表示的頁面被滾動時,應用現在可以使得最後六個塊片如第二階段304中所示的那樣被呈現。相應地,應用110可以調用「修剪」來指示:最後六個塊片所限定的區當前正被使用並且因此內容的其餘部分當前未被使用。然後,合成系統114可以選擇回收原先表示最開始的6個塊片的邏輯表面506。
[0049]合成系統114還可以展示圖1的API 116以創建和刪除邏輯的(即,物理的)和虛擬的表面以及對單個的表面做出更新。合成系統114可以加強將由應用110更新的區以避免當在可更新區域的外部繪製時的外來視像。
[0050]初始化和枇處理
圖4描繪了更為詳細地示出圖1的合成系統114的示例實現400。在當今的計算世界中,用戶經常發現他們自己觀看且在大量和豐富的內容中導航,在任意一個時刻,顯示設備並不顯示全體內容。這個的示例包括複雜且動態的網頁、具有一大串實況項目/照片組的現代應用視圖、音樂或其他實況內容,或大的文檔。
[0051]諸如觸摸和基於圖像捕捉的操縱之類的用戶接口允許用戶在平板、電話、大型TV/投影等等上跨越用戶接口的眾多顯示而快速地滾動、搖攝和變焦縮放。在大多數情況下,全體內容的預呈現和當它動起來且改變時將它保持為最新可能過分昂貴並且實際上甚至可能不能由設備的硬體所支持。替代地,進入視口的內容的部分可以被智能地呈現和高速緩存,例如在用戶操縱使它進入視口之前被推測性地提前呈現並且如前面描述的當視口移開時被從高速緩存丟棄以減少所使用的資源。
[0052]為了向用戶提供所期望的響應性,合成和呈現可以由合成系統114單獨地施行。這通過合成系統114合併合成引擎402、控制器404和呈現器406而被圖示。在一個或更多實現中,可以異步地執行合成系統114的這些組件。這樣,預呈現的內容可以由合成引擎402和響應於用戶輸入的控制器404進行搖攝/變焦縮放,而呈現器406繼續呈現。
[0053]如之前所描述的,合成系統114可以採用一個或更多虛擬表面118。虛擬表面118的使用允許對已經呈現的內容進行高速緩存和合成。呈現器406更新和修剪虛擬表面118上的區域可以基於推測性的呈現策略而被施行,而控制器404和合成引擎402用來轉換虛擬表面118。可以基於用戶輸入來施行該轉換以基於虛擬表面118的具有所呈現的內容且在視口中的區域來生成對於用戶接口的更新。合成引擎402可以配置成一次合成多個虛擬表面118和/或視像。
[0054]在一個或更多實現中,合成系統114可以配置成採用邏輯表面120作為用作針對合成的前緩衝器的固定或混合尺寸的塊片。當呈現器406想要更新虛擬表面118的一部分時,呈現器406可以施行到單獨的更新表面中的呈現或者直接呈現到塊片表面。如果使用單獨的更新表面,則當完成繪製時將內容從更新表面拷貝到這些前緩衝器塊片。然後,當呈現器406將有效內容從塊片修剪掉時可以釋放這些塊片。
[0055]然而,該實現可能導致結構的裂縫,因為已經改變的內容與過時的內容被合成在屏幕上。此外,在虛擬表面上被更新的區的塊片或大塊之間的接縫可能由於排版隔條和採樣(例如雙線性)或T型接合而被生成,以及導致過多的CPU和GPU使用以應付排版隔條、多個重疊更新和複雜的有效區。另外,由於動態內容改變或者如用戶所操縱的內容,可能遭遇過多的存儲器使用。對於每塊片固定/混合尺寸的表面的方法,對於較大尺寸的塊片來說,由於這些塊片的未使用部分,可能遭遇存儲器浪費;由於針對較小塊片的呈現/處理更新和在合成時刻呈現它們,可能遭遇CPU/GPU浪費;以及如果使用單獨的更新緩衝器,則可能遭遇從更新緩衝器到前緩衝器的CPU/GPU拷貝成本。因此,在合成系統114的實現中可以施行各種各樣的考慮之間的平衡。
[0056]當操縱不適合視口的豐富和/或動態內容時,這些考慮可以包括針對用戶體驗質量和性能的下面的一組原則。這樣的第一原則稱為視覺響應性。這意味著虛擬表面118可以配置成在用戶和用戶操縱的「指尖」處感覺像真實的表面。這可以通過合成系統114的配置而被支持以在沒有被感知到的滯後的情況下響應和跟蹤操縱。呈現器406從控制器404和合成引擎402的分離可以用來以魯棒的方式支持這一原則。
[0057]這樣的第二原則牽涉視覺一致性。在該示例中,當表面被操縱並且其中的動態內容(例如動畫)被更新時,顯示設備112上的內容並不顯示幹擾用戶的專心或信心的偽像。舉例來說,內容可以被顯示而沒有接縫、可見的裂縫或損壞、用戶接口的部分不滯後於它們將被附接到的其他部分,等等。
[0058]這些原則的第三個牽涉視覺完整性。如果用戶接口在視覺上是完整的,則用戶很少看見覆蓋顯示設備112的部分的填充物/佔位物圖案(例如,棋盤),並且如果如此,則該顯示被限制到相對短的持續時間。此外,表面內容更新並不可見地滯後,然而這可能不能得到保證,例如,對於低功率設備上跨越變焦縮放級別的開放式(open-ended)的豐富內容。舉例來說,呈現器406更新虛擬表面118和合成引擎402合成它越是最優和高效,呈現器406就具有越多的帶寬來進一步推測性地提前呈現以實現附加的視覺完整性。
[0059]第四個原則牽涉實況表面。對於該原則,動畫、視頻和其他動態內容在操縱期間沒有磕巴地繼續播放和執行。這可以被實現,如果呈現器406實現了視覺完整性並具有實現實況表面的帶寬。這可以通過虛擬表面118的高效更新和合成而被支持。
[0060]合成系統114可以配置成平衡這些原則。這樣,可以實現綜合的解決方案,該解決方案支持視覺正確性和一致性以及響應性以用於管理和合成虛擬表面更新使得呈現器406具有足夠的帶寬來確保視覺完整性和實況表面。
[0061]圖5圖示了合成系統114發起虛擬表面118的操作的示例實現500。該實現通過第一和第二階段502、504的使用而被圖示。在第一階段502,應用110請求在其中呈現用戶接口的表面的尺寸,其可以與一個或更多視像相關聯。如之前所描述的,虛擬表面118首先被初始化(例如,被創建)使得它不被實際的分配支持,並且因此在初始化時並不「保持位」。
[0062]然後,應用110可以指定要被呈現到虛擬表面118的視像。相應地,合成引擎402可以合成由呈現器406呈現到虛擬表面118的這些視像,諸如如所圖示的汽車。這可以通過使用在其中由應用指定分配的尺寸的塊片或「大塊」而被施行。
[0063]在第二階段504,呈現器406可以接收指令以更新虛擬表面118的區域,諸如該表面的矩形區域。呈現器406與合成引擎402之間的接口是這樣的,使得呈現器406可以跨越眾多虛擬表面118而實現多個更新506(例如,其可以包括修剪指令、對視像的改變、視像的創建或移除,等等),以及轉換可以將這些表面作為內容的視像上的更新。更新506的示例包括配置為光標的視像和配置為用戶可選擇的按鈕的視像。
[0064]在實現中,可以調用「委託」操作使得多個更新506可以由呈現器406呈現,例如,成批地被更新。這樣,合成系統114可以防止呈現不完整的更新。這允許呈現器406使得一致且連貫的視像由顯示設備112按照視覺一致性原則顯示。
[0065]此外,處理用戶輸入的控制器404可以基於用戶操縱直接在合成引擎402上更新對於視像的轉換(例如,用於搖攝或變焦縮放)而不通過呈現器406。這個方面提供了視覺響應性,即使呈現器406被佔用相對長的時間段,例如為了在具有有限處理資源的瘦設備上處理動畫或針對動態內容的其他狀態改變和或光柵化複雜內容。
[0066]虛擬表面118的實現可以牽涉向呈現器406提供呈現器406可以呈現到其中的表面和偏移。然後,當合成引擎402已經拾取並且正在處理已經被委託給呈現器406的整批的更新時,該表面可以由合成引擎402 「翻轉」。這可以用來消除如果單獨的更新表面被呈現器406用於呈現更新則本將被施行的拷貝操作。
[0067]翻轉還允許合成引擎402確保:呈現器406在單個批次中生成(例如,經由委託操作)的更新506中的每一個使其對於顯示設備112來說是一個整體。因此,合成系統114可以避免處理部分更新。
[0068]審新和預讀列表
圖6描繪了示出合成系統114為更新準備表面的示例實現600。合成系統114可以使用各種各樣的技術來為更新準備表面。在第一情形中,合成系統114可以從應用接收分配區域以施行更新的請求,其在所圖示的示例中被圖示為第一矩形602。
[0069]響應於該請求,合成系統114可以分配大於所請求的區域的區域,其被示出為包括所請求的第一矩形602的第二矩形604。因此,如果隨後接收到稍微不同的尺寸的更新,則這允許重用之前被分配的表面。
[0070]合成系統114例如可以維持之前由合成系統114分配的表面608的預讀列表606。這可以由合成系統114用來為重用表面608和表面608的「大塊」而「積蓄」存儲器106。
[0071]這些表面608例如可以被維持在針對不再在使用中的表面的計算設備102的存儲器106中。因此,在接收到合成系統114為更新提供表面的請求時,合成系統114可以首先檢查預讀列表606以確定在計算設備102的存儲器106中是否有對應於該請求的任何之前所分配的表面608可用。如果是,則合成系統114可以利用這些表面從而通過不分配新的表面來改進系統的整體效率。此外,通過向表面分配如之前所描述的比所請求的更大的尺寸(例如,具有更多像素),可以提高這些表面608與隨後的更新相關的可能性。
[0072]舉例來說,如果在一段時間內接收到稍微不同的尺寸的更新,則這允許之前所分配的表面608的更多重用,例如當下一更新是針對寬出或高出幾個像素的區域時。因此,替代分配新的表面,合成系統114可以利用之前被使得可用的表面的預讀列表606來定位相關的表面。應當注意,表面的部分的修剪和其他更新也可以是可用的。
[0073]這可以通過基於經確認的批次的區而被跟蹤。如果更新適合還具有其他有效內容的現有表面608的可用部分,則該表面可以被重用。這通過避免從多個不同表面進行呈現還降低了在合成側的成本,因為每個這樣的過渡招致設置成本。可以基於歷史峰值使用或各種各樣其他的因素來設置預讀列表606的尺寸(例如,被維持在該列表中和計算設備102的存儲器中的許多表面608)。
[0074]圖7描繪了合成系統114使用圖6的預讀列表606的操作的示例實現700。該實現使用第一、第二和第三階段702、704、706而被示出。在第一階段702,表面708被分配以供呈現器406呈現。然後,可以給予呈現器406對於表面708的控制以施行呈現。
[0075]在該呈現期間,可以在第二階段704分配另一表面710以用於施行更新。在該示例中,該另一個表面710被包括在顯示的與正被呈現器406呈現的表面708相同的區域內。因此,當表面708正在被呈現時,表面710可以被分配和填充(例如,被繪製到)。然後,可以將該表面710傳遞給呈現器406以用於呈現,例如,響應於如之前所描述的委託命令。
[0076]在第三階段706,可以接收另一更新以用於更新用戶接口。在該示例中,合成系統114通過使用圖6的預讀列表606來確定該更新牽涉之前所分配的表面,例如,來自第一階段702的表面708。相應地,合成系統114可以使用已經被分配的表面708來包括更新712。這樣,可以使用表面708而不重新分配新的表面,從而節省計算設備102的資源。還構思了各種各樣其他的示例。
[0077]排版隔條
圖8描繪了示出合成系統114採用排版隔條的操作的示例實現800。在維持視覺正確性時的一個問題牽涉丟失排版隔條。舉例來說,虛擬表面可以被安置或分級到亞像素偏移,諸如由於滾動等等。相應地,針對顯示設備112要顯示的像素的值基於相鄰像素而被確定,諸如使用雙線性採樣。
[0078]然而,安置在更新802的邊緣804上的更新802的相鄰像素可能具有基於錯誤信息的值。舉例來說,如果在更新802外部的相鄰像素包含「垃圾」(例如,來自其他更新),則光柵器可以從這些像素採樣並由此產生具有壞值的像素,當由顯示設備112顯示時其可能看起來像接縫。
[0079]應付這個的一個方式是將在可能在另一塊片/團塊表面806中的邊緣處的像素的行或列全部拷貝到更新802的新分配的表面中的相鄰像素。然而,這些附加的拷貝可以證明對於計算設備的處理資源(例如,對於計算設備102的CPU和GPU資源兩者)過分地昂貴。
[0080]相應地,在一個或更多實現中,更新802的邊緣與表面邊緣對齊。然後使用鉗制操作,其使得光柵器當採樣將落在表面外部的「相鄰」像素時使用在該表面邊緣處的像素的值。這可以用來產生成本與視覺正確性之間的合理權衡,即使結果可能在視覺上不是完全正確,該結果對於用戶看起來也相當正確。在一個或更多實現中,排版隔條本身不被更新。
[0081]在一些實例中,更新邊緣可能不能與表面邊緣對齊。這可能是由於大於更新的表面的分配。在這樣的實例中,可以將在同一表面上的更新的邊緣處的像素的行/列拷貝到相鄰像素以獲得與鉗制行為類似的效果。
[0082]類似地,在一個或更多實現中,當被修剪和更新時,不利用可能被繪製的潛在的新像素來更新排版隔條,因為它們包含連同當前有效的像素被顯示過的之前有效的像素。這支持正確性與性能之間的權衡,其在一般情況下產生最小的當被觀看時妨礙用戶的視覺偽像。
[0083]混合和BLT
圖9描繪了示出合成系統114管理有效區的示例實現900。如之前所描述的,虛擬表面118可以包含有效的但對於更新不有效的部分。對於所圖示的虛擬表面118的示例,例如,更新可以牽涉虛擬表面118中的光標而不是汽車。因此,光標可以用來限定虛擬表面118的區,該區當與虛擬表面118的其他區相對時是有效的。通過跟蹤針對該虛擬表面118以及其他表面兩者的這些區,合成系統114自身可以利用各種各樣的優化。
[0084]舉例來說,描述了將要從表面被呈現的區劃分成被混合的和被BLT的兩部分的技術。該技術可以用來尋址在其中更新小且在虛擬表面上得到的有效區相對複雜(例如,導致具有許多小的源表面的複雜網格)的實例。
[0085]如果表面是「預相乘」或透明的(而不是「不透明」或設置成忽略阿爾法值),則該表面被「混合」。這可以用來混合具有在其中不存在呈現器所提供的內容的、「被清除的」和/或全透明的像素的較大的矩形形狀。在一些情況下,這變得比利用描畫複雜形狀的路徑/邊緣中的每一個的輪廓的複雜網格進行處理和光柵化更優。
[0086]當對於不透明表面有效區是複雜的時,該方法還可以用於排版隔條。舉例來說,內部部分可以被BLT但邊緣附近的像素被混合使得相鄰像素被清除。因此,當光柵器從這些像素採樣時可以實現精確的值。在一個或更多實現中,該技術被用於虛擬表面118的邊緣而不用於塊片團塊與構成虛擬表面的表面之間的內部邊緣。
[0087]位可以被拷貝並且部分被清除以便確保與塊片尺寸對齊的團塊表面被分配並且來自擁有該塊片的之前的表面的內容被移入新的表面中。在一個或更多實現中,對於將由呈現器406更新的部分(例如,如圖7中所示的在中間的更新矩形)並不施行這個。如果表面是不透明的,則在更新之後,可以通過「混合」而使邊緣上的像素變得不透明,即在那些像素的阿爾法通道中得到完全的不透明性。
[0088]可以使用由非重疊矩形條帶構成的「區」來施行拷貝、清除和變得不透明的任務中的每一個。可以使得區相交、形成聯合或被減去。另外,組成區的非重疊矩形條帶被枚舉。這允許將各個矩形和區高效地合併成單個區並且提取最優的一組得到的矩形。例如,Win32HRGN是可以被採用來利用這些工具的⑶I結構體。這些操作被用來標識將在其上進行操作(例如,清除或拷貝)的經合併和優化的各組矩形,而不是單個地按照每個塊片確定做什麼。這可以用來實現用於施行這些任務的CPU和GPU兩者中的顯著的效率,並且還允許將塊片/對齊尺寸減小到相對小的值,諸如32x32或16x16,從而減少如之前所描述的浪費。
[0089]可以基於有效區的複雜度而不同地應付來自呈現器406的修剪請求。在典型的情況下,可以根據修剪請求來更新塊片團塊/表面的有效區。然而,如果有效區是複雜的且BLT/混合技術正在被使用,則可以施行附加的操作。舉例來說,有效區的部分可以被混合成變成不透明,因為這些部分現在被定位在該區的邊緣處。應付這個的另一方式是為從其移除有效部分的塊片創建新的團塊。然而,這些塊片可以繼續使得一些有效部分留下。對於這些塊片來說,可以從變成不透明的現有表面拷貝留下的有效部分,並且可以清除被修剪掉的部分。當呈現器406例如由於委託操作而委託整個批次的更新時,可以委託這些新的團塊。可以使用矩形條帶的區來優化這個操作,儘管還構思了其他示例。
[0090]當呈現器406委託一組更新時,可以將修剪和視覺轉換(例如,得到的一組塊片團塊/表面及其有效區)傳達給合成引擎402。可以利用相應的令牌來傳達這些更新,這些令牌可以由合成引擎402用來確保針對這些表面上的光柵化的任何未完成的CPU/GPU工作被完成。此時,可以使用附加的技術來進一步改進效率,其示例在下面的段落中被描述。
[0091]下椎
圖10描繪了示出合成系統114使用下推技術組合表面的操作的示例實現1000。在該示例中,合成系統114進行了表面分配1002以顯示視像,其在圖中使用斜槓(hash marks)而示出為方框。然後進行另一表面分配1004以施行更新,其示出為安置有該斜槓標記的方框的白色方框。
[0092]合成系統114通過跟蹤表面的有效區,可以將分配進行組合來改進資源使用。舉例來說,從多個表面的呈現可以比從單個表面的呈現更為資源密集。
[0093]在所圖示的示例中,表面分配1004的有效部分被「下推」到表面分配1002中。這使用虛線方框而被圖示以指示:來自表面分配1004的有效區現在被包括在表面分配1002中。在下推之後,可以釋放包括更新的表面分配1004,從而使得計算設備102的存儲器106的部分空閒。因此,通過利用對於被組合的表面中的一個的分配,該技術可以用來將表面進行組合而不創建新的表面分配。
[0094]舉例來說,在一些實例中,合成系統114可能面對當前或之前批次的更新中的重疊的大的更新。這可能導致包括相對小的有效區的多個表面的分配。結果,合成系統114可能具有被分配的大的表面,但是相對小的有效區可能防止這些表面被釋放。
[0095]然而,通過將有效區從第一表面(例如,較新較小的表面)「下推」到第二表面(例如,較舊較大的表面),可以移除來自第一表面的有效區。這準許釋放第一表面,從而使得存儲器空閒並且減少由合成系統114管理的表面分配的量而不牽涉附加的表面分配。這樣,可以將呈現較少表面的任務分派給呈現器406,從而改進合成系統114的效率。還構思了在其中進行新表面分配的其他技術,其示例在下面的段落中被描述。
[0096]構.舉和鉬塊
圖11描繪了示出合成系統114將有效區組合成新表面的操作的示例實現1100。如之前所描述的,合成系統114可以配置成跟蹤表面分配的有效區,其示例被圖示為具有相應的有效區的1102 (I)、1102 (2)和1102 (η)。隨著時間的推移,有效區相對於包括該區的表面的尺寸可能減小,諸如由於來自其它表面的更新等等。相應地,合成系統114可以配置為將來自表面分配1102 (I)-1102 (η)的有效區組合成一個或更多新的表面分配1104。
[0097]合成系統114例如可以配置成通過減少被設置為源並被呈現以用於在顯示設備112上合成顯示的許多表面來尋址表面分配和合成。這可以通過枚舉整體虛擬表面有效區中經優化的一組矩形而被施行。然後可以為每個這樣的矩形創建團塊。如果這導致大量較小的矩形,則可以使用前面討論的混合/BLT技術。這樣,可以實現將由合成引擎402適當地合成的、具有已經被清除的像素的區域的較大的矩形。
[0098]當合成引擎402接收到更新批次時,例如,該引擎可以首先確定虛擬表面被「弄髒」的部分和構成將被更新的顯示樹的視像。這可以被施行以包括顯式地計算和將來自更新和修剪的髒區傳達給合成器,例如,即使底層表面或「團塊」可能改變(例如,下推或重新組塊),因為同一內容的有效區可能已經留存(carry over),所以沒有新的髒區被生成。可以每更新/修剪操作地來顯式地傳達描述有效區的這些矩形。在一個或更多實現中,可以減小髒區以導致較少數目的較大的矩形從而避免在設置和執行許多較小的呈現操作時招致大的開銷。完成這個的一種技術是允許最大數目的髒矩形。當遭遇新的髒矩形時,可以將這些矩形添加到列表或者與整體上導致最小面積增加的矩形相合併(例如,形成聯合)。
[0099]網格
圖12描繪了示出合成系統114採用網格的操作的示例實現1200。網格(例如,一大串點)可以包括多個視像,可以向GPU的驅動器做出對於這些視像的單個繪製調用。這樣,可以減少向該驅動器做出的許多繪製調用,從而避免每個調用所牽涉的開銷。
[0100]合成引擎402具有合成虛擬表面118的團塊/表面的許多選項。舉例來說,由於合成引擎402知曉每個團塊的有效區,所以合成引擎402可以先跳過與將被更新的髒區不重疊的那些團塊。如果包含在虛擬表面118中的視像是像素對齊的,則轉化不使用前面描述的排版隔條技術來進行轉換。這允許對於這些團塊中的每個矩形使用簡單的BLT/混合。
[0101]替代一次一個地施行這些操作,合成引擎402可以從該組矩形創建出三角形網格並且使用該網格來使得表面被呈現。舉例來說,具有有效區的一組矩形1202可以由合成系統114檢查。然後通過使每個矩形分裂成兩個三角形可以為該組矩形生成三角形網格1204。然而,可以從這些矩形形成T型接合。T型接合可以使得三角形網格1204被光柵化而帶有接縫,例如由於浮點或捨入誤差。相應地,合成系統114可以替代地處理該組矩形以形成不包括T型接合的非重疊矩形的三角形網格1206。
[0102]所生成的網格可以跨越合成幀而被高速緩存並且當團塊的矩形不改變時被重用。如果存在非像素對齊的轉換但該轉換僅包括轉化,則合成引擎402仍然可以獨立地為每個團塊生成網格並且呈現每個團塊。然而,如果存在更為複雜的轉換,則合成引擎402可以處理該組矩形以避免T型接合從而確保不帶接縫的正確的光柵化。
[0103]為此,每個團塊可以向由合成系統114管理的網格生成器對象登記一組相應的矩形。當每個坐標被檢查時,合成系統114的網格生成器功能性可以在已經登記的邊緣上添加一個或更多附加的頂點。每個登記的邊緣還可以具有在添加到其自身的範圍中的現有頂點。結果是針對具有附加頂點的每個團塊的一組矩形。然後這些矩形可以使用這些頂點而被分解成一組非重疊的三角形。因此,在非簡單轉換的情況下,可以使用這些生成的如三角形網格1206中所示的沒有T型接合的網格來呈現這些團塊。
[0104]摭擋
圖13描繪了示出合成系統114關於遮擋的操作的示例實現1300。即使每個團塊可以具有混合其表面的部分以及BLT其他部分的指令,對於不透明的虛擬表面來說,合成系統114也知曉每個團塊上的有效且不透明的區。
[0105]對於遮擋來說,這些區可以跨越整個虛擬表面而被累積並且用於由合成引擎402進行遮擋檢測。在一個或更多實現中,合成引擎402可以枚舉所有登記的遮擋矩形來標識在Z-序上更靠近用戶的不透明視像所遮擋的部分以供顯示設備112顯示。
[0106]然而,通過遮擋傳遞將矩形分解成複雜的形狀可能是昂貴的。為了確保構成區的非重疊矩形條帶完全遮擋將由該整個區遮擋的矩形,合成系統114可以使用矩形包含和相交技術。
[0107]在圖13的示例實現1300中示出了這樣的技術的示例,其通過第一和第二階段1302、1304而被示出。在第一階段1302,第一和第二矩形1306、1308將由合成引擎402合成。然而,合成引擎402可以確定第一矩形1306的部分1310被第二矩形1308遮擋。
[0108]相應地,如果遮擋矩形使得整個邊緣模糊,則合成引擎402可以配置成減小經核對的矩形使得結果仍然是已被減小的單個矩形。這個的示例在第二階段1306中被示出,在第二階段1306中第一矩形1306被減小使得它不包括被第二矩形1308遮擋的部分1310。因此,第二矩形1308的邊緣可以用來限定針對第一矩形1306的新邊緣,從而節約計算設備102的資源。還構思了各種各樣其他的示例。
[0109]示例討稈
下面的討論描述了可以使用之前描述的系統和設備而被實現的技術。這些過程中的每一個的方面可以實現在硬體、固件或軟體或其組合中。這些過程被示出為指定由一個或更多設備施行的操作且不一定限於所示用於供相應的方塊施行這些操作的順序的一組方塊。在下面的討論的部分中,將參考圖1的環境100以及圖2-13的系統和示例實現。
[0110]圖14描繪了示例實現中的過程1400,在該示例實現中一尺寸被分配給在其中呈現數據的表面。合成系統接收分配在其中呈現一個或更多視像的表面的請求,該請求指定該表面的尺寸(方塊1402)。該請求例如可以源自於開始「呈現位」的應用。在一個或更多實現中,當請求只是被接收而未被分配時表面可以已經被初始化,使得當請求被接收時該表面不「保持位」。
[0111]響應於請求的接收,合成系統分配具有大於所請求的尺寸的尺寸的表面來呈現該一個或更多視像(方塊1404)。如之前所描述的,合成系統114可以配置成「積蓄存儲器」以促進不再有效的被分配的表面的重用。通過使表面比應用所請求的更大,合成系統114可以提高該表面稍後將再次有用的可能性。
[0112]圖15描繪了在其中合成系統跟蹤有效區的示例實現中的過程1500。包括供顯示設備顯示的視像的表面由合成系統管理(方塊1502)。這些表面例如可以配置為如之前所描述的虛擬表面。
[0113]有效區在將由顯示設備顯示的表面內被跟蹤(方塊1504)。這些表面例如可以最初配置成更新顯示的一部分。然而,隨著時間的推移,其他表面可以進一步更新該顯示的已經被更新的部分。相應地,表面的部分可以保持對於顯示有效而其他部分不有效。合成系統114可以配置成跟蹤該有效性,其可以用來支持各種各樣不同的功能性,諸如如在討論中的其他地方所進一步描述的遮擋管理、表面尺寸調整、表面壓縮等等。
[0114]圖16描繪了在其中採用預讀列表來管理表面的示例實現中的過程1600。合成系統接收分配在其中呈現一個或更多視像的表面的請求(方塊1602)。如前面那樣,應用110可以通過合成系統114的一個或更多API 116來將該請求作為調用。
[0115]合成系統檢查預讀列表以確定對應於所接收的請求並且不包括對於計算設備的顯示設備進行顯示有效的視像的表面當被分配在該計算設備的存儲器中時是否可用(方塊1604)。預讀列表例如可以引用被分配在存儲器中但例如由於稍後所接收的更新而不再具有有效部分的表面。
[0116]響應於所確定的表面可用的檢查,使得所確定的表面可用以用於呈現該一個或更多視像(方塊1606)。所確定的表面例如已經被分配了如之前所描述的比所請求的更大的尺寸並且因此與隨後的更新相關。還構思了各種各樣其他的示例。
[0117]圖17描繪了在其中基於遮擋來對表面調整尺寸的示例實現中的過程1700。進行確定:表面的一部分將被顯不設備將要顯不的另一表面遮擋(方塊1702)。合成引擎402例如可以確定針對表面的顯示的Z-序並且確定其他表面的至少部分將被呈現在該表面的部分上。
[0118]從該表面移除該部分(方塊1704)。這可以以各種各樣的方式而被施行,諸如通過使用其他表面的邊緣來限定將被減小的該表面的邊緣,從而限定該表面的至少一個新邊緣。
[0119]具有被移除的部分的表面連同其他表面被呈現(方塊1706)。這樣,可以避免呈現從表面被移除的部分,從而節約計算設備102的資源。
[0120]圖18描繪了在其中描述了牽涉從一個表面到另一個地下推有效區的壓縮技術的示例實現中的過程1800。跟蹤合成系統可使用來呈現一個或更多視像的多個表面的有效區(方塊1802)。合成系統114例如可以確定表面的哪些部分將由顯示設備顯示並且哪些部分將不顯示。
[0121]然後,合成系統進行確定:第一表面的第一有效區可包括在第二表面的分配內(方塊1804)。第一表面例如可以配置為更新。然後可以施行隨後的更新,其使得除第一有效區以外的更新的部分變得無效。
[0122]然後,第一有效區被下推以供包括為第二表面的部分(方塊1806)。這可以包括將有效區的位拷貝到第二表面。在拷貝之後,然後可以釋放第一表面從而節約維持單獨的表面時的資源以及通過使用較少數目的表面來改進呈現操作的效率。因此,在該示例中未分配新的表面,從而節省計算設備102在進行和維持分配時的資源。還構思了其他示例,其示例描述如下。
[0123]圖19描繪了在其中描述了牽涉將有效區組合成新的表面的壓縮技術的示例實現中的過程1900。跟蹤合成系統可使用來呈現一個或更多視像的多個表面的有效區(方塊1902)。如前面那樣,合成系統114可以確定多個表面的哪些部分將由顯示設備顯示並且哪些部分將不顯示。
[0124]然後,為可使用來包括來自該多個表面的有效區的新表面計算分配(方塊1904)。該新表面例如可以配置為具有供包括多個有效區的範圍的矩形。然後,可以分配該新表面以包括來自多個表面的有效區(方塊1906),並且然後可以將有效區拷貝到新表面,從而使得合成系統115能夠使起始的表面空閒。還構思了合成系統114進行表面壓縮的各種各樣的其他示例。
[0125]圖20描繪了在其中合成系統114採用網格來做出對於驅動器的調用以使用該網格來呈現表面的示例實現中的過程2000。網格形成自不包括T型接合的一組矩形(方塊2002)。網格例如可以形成為描述被形成以避免T型接合併且因此如之前所描述的在呈現那些接合(例如,接縫)時所遭遇的複雜情況的一組三角形。做出對於驅動器的調用以使用網格來呈現表面(方塊2004),諸如對於可以用來描述具有針對用戶接口中的更新的有效區的多個矩形的圖形功能性(例如,GPU)的驅動器的單個調用。因此,網格可以有助於避免使用對於用來形成如前面對應段落中所描述的網格的三角形的矩形中的每一個的調用。
[0126]示例系統和設各
圖21圖示了包括代表可以實現在此描述的各個技術的一個或更多計算系統和/或設備的示例計算設備2102的一般在2100處的示例系統。計算設備2102可以例如是服務提供方的伺服器、與客戶端相關聯的設備(例如,客戶端設備)、片上系統和/或任何其他合適的計算設備或計算系統。計算設備2102被圖示為包括圖1的合成系統114。
[0127]如所圖示的示例計算設備2102包括處理系統2104、一個或更多計算機可讀媒體2106和彼此通信耦合的一個或更多I/O接口 2108。儘管未示出,但是計算設備2102可以進一步包括系統總線或將各個組件彼此耦合的其他數據和命令轉移系統。系統總線可以包括諸如存儲器總線或存儲器控制器、外圍總線、通用串行總線和/或使用各種各樣的總線架構中的任一個的處理器或本地總線之類的不同總線結構的任意一個或組合。還構思了各種各樣其他的示例,諸如控制和數據線。
[0128]處理系統2104代表使用硬體施行一個或更多操作的功能性。相應地,處理系統2104被圖示為包括可以配置為處理器、功能方塊等等的硬體元件2110。這可以包括如專用集成電路或使用一個或更多半導體而形成的其他邏輯器件那樣的硬體中的實現。硬體元件2110不受它們從其而被形成的材料或其中所採用的處理機制的限制。舉例來說,處理器可以包括(多個)半導體和/或電晶體(例如,電子集成電路(1C))。在這樣的語境中,處理器可執行的指令可以是電子地可執行的指令。
[0129]計算機可讀存儲媒體2106被圖示為包括存儲器/儲存器2112。存儲器/儲存器2112表示與一個或更多計算機可讀媒體相關聯的存儲器/儲存器容量。存儲器/儲存器組件2112可以包括易失性媒體(諸如隨機訪問存儲器(RAM))和/或非易失性媒體(諸如只讀存儲器(ROM)、閃速存儲器、光碟、磁碟,等等)。存儲器/儲存器組件2112可以包括固定的媒體(例如,RAM、R0M、固定硬驅動,等等)以及可移除媒體(例如,閃速存儲器、可移除硬驅動、光碟,等等)。可以以如下面進一步描述的各種各樣的其他方式來配置計算機可讀媒體2106。
[0130](多個)輸入/輸出接口2108代表允許用戶向計算設備2102輸入命令和信息並且還允許使用各種輸入/輸出設備將信息展現給用戶和/或其他組件或設備的功能性。輸入設備的示例包括鍵盤、光標控制設備(例如,滑鼠)、麥克風、掃描儀、觸摸功能性(例如,配置成檢測物理觸摸的電容性或其他傳感器)、攝像機(例如,其可以採用可見波長或諸如紅外頻率之類的不可見波長來識別如不牽涉觸摸的手勢的運動),等等。輸出設備的示例包括顯示設備(例如,監視器或投影儀)、揚聲器、印表機、網卡、觸覺響應設備,等等。因此,可以以如下面進一步描述的各種各樣的方式來配置計算設備2102以支持用戶交互。
[0131]在此可以在軟體、硬體元件或程序模塊的一般語境中描述各個技術。通常,這樣的模塊包括施行特定任務或實現特定抽象數據類型的例程、程序、對象、元件、組件、數據結構等等。如在此所使用的術語「模塊」、「功能性」和「組件」通常表示軟體、固件、硬體或其組合。在此所描述的技術的特徵是平臺獨立的,意味著可以在具有各種各樣的處理器的各種各樣的商業計算平臺上實現這些技術。
[0132]所描述的模塊和技術的實現可以存儲在一些形式的計算機可讀媒體上或者跨越它們而被傳輸。計算機可讀媒體可以包括可以由計算設備2102訪問的各種各樣的媒體。作為示例而非限制,計算機可讀媒體可以包括「計算機可讀存儲媒體」和「計算機可讀信號媒體」。
[0133]與純粹的信號傳輸、載波或信號本身相比,「計算機可讀存儲媒體」可以是指實現信息的持久和/或非暫態存儲的媒體和/或設備。因此,計算機可讀存儲媒體是指非信號承載媒體。計算機可讀存儲媒體包括諸如易失性和非易失性、可移除和非可移除的媒體之類的硬體和/或在適合於諸如計算機可讀指令、數據結構、程序模塊、邏輯元件/電路或其他數據之類的信息的存儲的方法或技術中實現的存儲設備。計算機可讀存儲媒體的示例可以包括但不限於RAM、ROM、EEPR0M、閃速存儲器或其他存儲器技術、CD-ROM、數字多功能盤(DVD)或其他光學存儲、硬碟、磁卡帶、磁帶、磁碟儲存器或其他磁存儲設備,或其他存儲設備、有形媒體,或適於存儲期望的信息並且由計算機訪問的製品。
[0134]「計算機可讀信號媒體」可以是指配置成諸如經由網絡將指令傳輸到計算設備2102的硬體的信號承載介質。信號媒體通常可以體現計算機可讀指令、數據結構、程序模塊,或諸如載波、數據信號或其他傳送機制之類的在經調製的數據信號中的其他數據。信號媒體還包括任何信息遞送媒體。術語「經調製的數據信號」意指以在信號中編碼信息的這樣的方式使其特性中的一個或更多個被設置或改變的信號。作為示例而非限制,通信媒體包括諸如有線網絡或直接連線連接之類的有線媒體和諸如聲學、RF、紅外和其他無線媒體之類的無線媒體。
[0135]如之前所描述的,硬體元件2110和計算機可讀媒體2106代表以硬體形式實現的模塊、可編程器件邏輯和/或固定器件邏輯,其在一些實施例中可以被採用來實現在此所描述的技術的至少一些方面以使得施行一個或更多指令。硬體可以包括集成電路或片上系統的組件、專用集成電路(ASIC)、現場可編程門陣列(FPGA)、複雜可編程邏輯器件(CPLD)和矽或其他硬體中的其他實現。在該語境中,硬體可以操作為施行由該硬體體現的指令和/或邏輯所限定的程序任務的處理設備以及用於存儲供執行的指令的硬體,例如,之前所描述的計算機可讀存儲媒體。
[0136]也可以採用前面內容的組合來實現在此所描述的各個技術。相應地,軟體、硬體或可執行模塊可以實現為體現在一些形式的計算機可讀存儲媒體上的一個或更多指令和/或邏輯,和/或由一個或更多硬體元件2110實現。計算設備2102可以配置成實現對應於軟體和/或硬體模塊的特定指令和/或功能。相應地,作為軟體由計算設備2102可執行的模塊的實現可以至少部分地在硬體中完成,例如通過使用處理系統2104的計算機可讀存儲媒體和/或硬體元件2110。指令和/或功能可以由一個或更多製品(例如,一個或更多計算設備2102和/或處理系統2104)可執行/可操作以實現在此所描述的技術、模塊和示例。
[0137]如圖21中所進一步圖示的,當在個人計算機(PC)、電視設備和/或行動裝置上運行應用時,示例系統2100實現針對無縫用戶體驗的無處不在的環境。服務和應用在所有三個環境中基本上類似地運行以當使用應用、玩視頻遊戲、觀看視頻等等的同時從一個設備過渡到下一個時得到共同的用戶體驗。
[0138]在示例系統2100中,多個設備通過中央計算設備互連。中央計算設備對於多個設備可以是本地的或者可以被定位成遠離該多個設備。在一個實施例中,中央計算設備可以是通過網絡、網際網路或其他數據通信連結而連接到多個設備的一個或更多伺服器計算機的雲。
[0139]在一個實施例中,該互連架構使得功能性能夠跨越多個設備而被遞送從而向該多個設備的用戶提供共同且無縫的體驗。多個設備中的每一個可以具有不同的物理需求和能力,並且中央計算設備使用平臺來實現既是為設備量身定製的而對所有設備也是共同的、對於設備的體驗的遞送。在一個實施例中,創建一類目標設備並且為該通用類的設備量身定製體驗。一類設備可以由這些設備的物理特徵、使用類型或其他共同特性來限定。
[0140]在各個實現中,計算設備2102可以假設各種各樣不同的配置,諸如供計算機2114、移動裝置2116和電視2118使用。這些配置中的每一個包括可以具有通常不同的構造和能力的設備,並且因此計算設備2102可以根據不同設備類中的一個或更多而被配置。例如,計算設備2102可以實現為包括個人計算機、桌面型計算機、多屏幕計算機、膝上型計算機、網絡本等等的計算機2114類設備。
[0141]計算設備2102還可以實現為包括諸如行動電話、可攜式音樂播放器、可攜式遊戲設備、平板計算機、多屏幕計算機等等之類的行動裝置的移動裝置2116類設備。計算設備2102還可以實現為包括具有或連接到非正式觀看環境中通常較大的屏幕的設備的電視2118類設備。這些設備包括電視、機頂盒、遊戲控制臺等等。
[0142]在此所描述的技術可以由計算設備2102的這些各個配置支持並且不限於在此所描述的技術的特定示例。這個功能性還可以全部地或者部分地通過使用分布式系統(諸如經由如下面描述的平臺2122在「雲」 2120上)而被實現。
[0143]雲2120包括和/或代表針對資源2124的平臺2122。平臺2122抽象雲2120的硬體(例如,伺服器)和軟體資源的底層功能性。資源2124可以包括當在遠離計算設備2102的伺服器上執行計算機處理時可以被使用的應用和/或數據。資源2124還可以包括在網際網路上和/或通過諸如蜂窩或WiFi網絡之類的訂閱者網絡而提供的服務。
[0144]平臺2122可以對資源和功能進行抽象以將計算設備2102與其他計算設備相連接。平臺2122還可以起到對資源的分級進行抽象的作用以提供對於所遭遇的對經由平臺2122實現的資源2124的需求的對應級別的分級。相應地,在互連的設備實施例中,在此描述的功能性的實現可以分布在系統2100各處。舉例來說,功能性可以在計算設備2102上以及經由對雲2120的功能性進行抽象的平臺2122而部分地實現。
[0145]結論
儘管已經以特定於結構特徵和/或方法論行為的語言描述了本發明,但是應當理解,在所附的權利要求中限定的本發明不一定限於所描述的特定特徵或行為。相反,特定特徵和行為作為實現所要求保護的發明的示例形式而被公開。
【權利要求】
1.一種由計算設備實現的方法,所述方法包括: 由合成系統接收分配在其中呈現一個或更多視像的表面的請求,所述請求指定所述表面的尺寸;以及 響應於所述請求的接收,由所述合成系統分配具有大於所請求的尺寸的尺寸的表面來呈現所述一個或更多視像。
2.如權利要求1中所述的方法,其中所述請求由所述合成系統從所述計算設備所執行的一個或更多應用接收。
3.如權利要求2中所述的方法,其中所述請求經由所述合成系統的一個或更多應用編程接口從所述一個或更多應用接收。
4.如權利要求1中所述的方法,其中所述表面通過所述合成被初始化但當所述請求被接收時不分配在所述計算設備的存儲器中。
5.如權利要求1中所述的方法,其中所述表面是虛擬表面,該虛擬表面由所述合成系統維持並且包括創建、更新和刪除該虛擬表面的功能性。
6.如權利要求5中所述的方法,其中所述虛擬表面包括在請求被接收之前呈現一個或更多視像以將所述一個或多個視像顯示在所述計算設備的顯示設備上的功能性。
7.如權利要求1中所述的方法,其中所述虛擬表面當被初始化時不被來自所述一個或多個應用的實際分配支持。
8.一種計算設備,包括一個或更多模塊,該一個或更多模塊至少部分地實現在硬體中並且配置成實現合成系統來展示供一個或更多應用訪問以分配在其中呈現具有由所述一個或更多應用指定的尺寸的一個或更多視像的虛擬表面的應用編程接口。
9.如權利要求8中所述的計算設備,其中由所述合成系統進行的所述表面的分配被施行以具有大於所述一個或更多應用所請求的尺寸的尺寸。
10.一個或更多計算機可讀存儲媒體,包括存儲在其上的指令,響應於由計算設備進行的執行,所述指令使得該計算設備實現合成系統以施行包括管理包括供顯示設備顯示的視像的表面和跟蹤將由所述顯示設備顯示的所述表面內的有效區的一個或更多操作。
【文檔編號】G06F9/50GK104321752SQ201380028075
【公開日】2015年1月28日 申請日期:2013年5月17日 優先權日:2012年5月31日
【發明者】R.芬克, L.E.布蘭科, J.W.普裡斯特利, C.埃爾根, S.P.蒙卡尤 申請人:微軟公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀