共享合成資源的制作方法
【專利說明】
【背景技術】
[0001]在計算設備上可以再現(xiàn)各種各樣的元素,諸如,圖標、窗口、動畫等等。而且,典型地,在計算設備上執(zhí)行的應用的數(shù)目不斷增加以及每個應用典型提供的元素數(shù)目也不斷增加,諸如,以便提供附加功能性和更豐富的用戶體驗。
[0002]然而,元素的這種增加會消耗計算設備的大量資源,諸如處理器、存儲器、圖形硬件和其他資源。因此,這種消耗也會對應用其本身的執(zhí)行、計算設備對用戶的響應性等等造成影響。
【發(fā)明內容】
[0003]描述了共享合成資源。在一個或多個實施方案中,全局合成系統(tǒng)可被配置成對于多個進程(例如,應用)進行再現(xiàn)。例如,全局合成系統(tǒng)可被配置成暴露進程可訪問的一個或多個應用編程接口(API)。API然后可用來使得單個合成引擎執(zhí)行對于多個應用的再現(xiàn)。因此,單個合成引擎可被利用來支持各種各樣的功能性,諸如管理由多個進程進行的共享合成資源。這種共享可以以各種各樣的方式執(zhí)行,這些方式包括使用寫入器/讀取器范例。
[0004]本概要被提供來以簡化的形式介紹概念的選擇,這些概念還將在下面的詳細說明中進行描述。本概要既不打算確認所要求保護的主題的關鍵特征或必要特征,其也不打算用來幫助確定所要求保護的主題的范圍。
【附圖說明】
[0005]詳細描述是參照附圖描述的。在圖中,參考數(shù)字的最左面的(一個或者多個)數(shù)字標識該參考數(shù)字首次出現(xiàn)的圖。在描述和圖中的不同實例中的相同參考數(shù)字的使用可以指示類似的或相同的項目。
[0006]圖1是在可操作實施全局合成系統(tǒng)的示例性實施方案中的環(huán)境的圖示。
[0007]圖2圖示了一個示例性系統(tǒng),其中全局合成系統(tǒng)被更詳細地圖示為包括圖1的合成引擎以及用戶模式庫和目標數(shù)據庫模塊。
[0008]圖3描繪了被配置為可被合成引擎消耗來再現(xiàn)元素的全局合成樹的圖表的一個例子。
[0009]圖4圖示了一個示例性系統(tǒng),其中全局合成系統(tǒng)被更詳細地圖示為支持共享的合成資源。
[0010]圖5描繪了被配置為包括用于通過寫入器和讀取器進程相關聯(lián)地實施的可共享視覺資源的合成樹的圖。
[0011]圖6是描繪了單個合成引擎管理對共享合成資源的訪問的示例性實施方案中的過程的流程圖。
[0012]圖7圖示了包括如參照圖1描述的計算設備的示例性系統(tǒng)。
[0013]圖8圖示了如參照圖1-7描述的用來實施本文描述的技術的實施例的可被實施為任何類型的計算設備的示例性設備的各種部件。
【具體實施方式】
[0014]概述
由計算設備用來再現(xiàn)元素的傳統(tǒng)技術采用了分布式系統(tǒng),在其中每個進程被指派對應的合成引擎。因為這一點,不同的合成引擎不知道其他合成引擎正在執(zhí)行什么處理。這會導致冗余、元素的不必要的再現(xiàn)等等,這可能會阻礙實施傳統(tǒng)技術的計算設備的效率,并且因此可能會使得這些傳統(tǒng)技術不適合于由“薄”計算設備使用。
[0015]本文描述了全局合成技術和共享合成資源。這些技術包括可由多個不同進程經由一個或多個API訪問的單個合成引擎的使用。因此,可以使得合成引擎“知道”由各種進程正在作出何種貢獻,以及那些元素如何相關。這個知識然后可被利用來改進應用的元素再現(xiàn)的效率。在一個或多個實施方案中,合成引擎與屬于那些應用的線程異步運行,這允許應用使得內容在其窗口內動畫化,以及使用不同的再現(xiàn)技術來使得這樣的內容光柵化。附加地,來自系統(tǒng)中的每個進程的合成數(shù)據可以在單個圖(例如,全局合成樹)中被管理,所述單個圖允許合成引擎執(zhí)行全局優(yōu)化(諸如遮擋檢測)并且以高效和安全的方式混合和匹配來自多個進程的內容。
[0016]這也可以被利用來在進程之間共享合成資源。例如,第一進程可以創(chuàng)建可以與第二進程共享的合成資源,諸如,浮動、顏色、動畫觸發(fā)、變換、視覺件(visual)、或其他視覺屬性。這樣,不同的進程可以共享合成資源。例如,寫入器/讀取器范例然后可以由合成引擎實施,在所述合成引擎中,寫入器進程具有修改共享合成資源屬性的權限,而讀取器進程具有規(guī)定要被再現(xiàn)的元素的權限。這樣,讀取器進程可以規(guī)定“什么”元素要被再現(xiàn),而寫入器進程可以規(guī)定元素要“如何”被再現(xiàn),而這兩種進程的任一進程都不知道由另一進程所規(guī)定了什么內容。這樣,每個進程的執(zhí)行可以從另一進程的執(zhí)行中進行抽象,而準許共享合成資源。這些和其他技術的進一步討論可以相關于以下的圖而找到。
[0017]在以下的討論中,首先描述可以利用本文所描述的技術的示例性組合環(huán)境。接著是共享合成資源的章節(jié),其描述了可在示例性合成系統(tǒng)以及其他系統(tǒng)中被實施的進程之間的合成資源的共享。然后描述了可以在示例性環(huán)境以及其他環(huán)境中執(zhí)行的示例性過程。因此,示例性過程的性能、合成資源的共享、和示例性環(huán)境不限于另外描述的實施方案的每個實施方案,那些實施方案是可利用本文描述的技術的多個不同實施方案的例子。
[0018]示例性合成環(huán)境
圖1是在可操作利用本文描述的技術的示例性實施方案中的環(huán)境100的圖示。所圖示的環(huán)境100包括計算設備102,其經由網絡106通信地耦合到web服務104。計算設備102以及可實施web服務104的計算設備可以以各種各樣的方式被配置。
[0019]例如,計算設備可被配置成能夠通過網絡106進行通信的計算機,諸如臺式計算機、移動站、娛樂電器、通信耦合到顯示設備的機頂盒、無線電話、游戲控制臺等等。因此,計算設備102的范圍可以從具有大量存儲器和處理器資源的完全資源設備(例如,個人計算機、游戲控制臺)到只具有有限存儲器和/或處理資源的低資源設備(例如,傳統(tǒng)機頂盒、手持式游戲控制臺)。附加地,雖然示出了單個計算設備102,但計算設備102可以表示多個不同設備,諸如由企業(yè)(business)利用以諸如通過網絡服務104執(zhí)行操作的多個服務器、遙控器和機頂盒組合、被配置來捕獲手勢的圖像捕獲設備和游戲控制臺等等。
[0020]雖然網絡106被圖示為互聯(lián)網,但網絡可以假設為多種多樣的配置。例如,網絡106可包括廣域網(WAN)、局域網(LAN)、無線網、公共電話網、內部網等等。而且,雖然示出了單個網絡106,但網絡106可被配置成包括多個網絡。
[0021]計算設備102還被圖示為包括操作系統(tǒng)108。操作系統(tǒng)108被配置成把計算設備102的基礎功能性抽象為在計算設備102上可執(zhí)行的應用110。例如,操作系統(tǒng)108可以將計算設備102的處理、存儲器、網絡、和/或顯示功能性進行抽象,以使得應用110 (其可包括單個或多個進程)可被寫入,而不用知道這個基礎功能性是“如何”實施的。例如,應用110可以把要被顯示設備112再現(xiàn)和顯示的數(shù)據提供給操作系統(tǒng)108,而不用理解這個再現(xiàn)將被如何執(zhí)行。
[0022]操作系統(tǒng)108還可以表示各種各樣的其他功能性,諸如管理文件系統(tǒng)與可由計算設備102的用戶導航的用戶界面。其例子被圖示為在計算設備102的顯示設備112上顯示的桌面。
[0023]操作系統(tǒng)108還被圖示為包括全局合成系統(tǒng)114。全局合成系統(tǒng)114可以表示包括直接合成部件的系統(tǒng),所述直接合成部件被配置成允許應用I1使用單個合成引擎116(此后也稱為全局合成引擎116)來在顯示設備112上繪制項目。雖然被圖示為操作系統(tǒng)108的一部分,但全局合成系統(tǒng)114可以以各種各樣的其他方式實施,諸如作為瀏覽器的一部分、作為獨立模塊等等。而且,全局合成系統(tǒng)114可以是通過網絡116分布的,其例子被圖示為在web服務104上包括全局合成系統(tǒng)118。
[0024]用戶體驗(例如,對于應用110生成的用戶界面)可包括可以互相交互大量元素,諸如窗口、動畫(例如,文本滾動)等等。例如,第一窗口可以對應于電子郵件應用,而第二窗口122可以對應于如在顯示設備112上圖示的瀏覽器。因此,眾多不同的再現(xiàn)部件可以在任何一個特定時間點被涉及。附加地,這些不同元素可以具有不同的刷新率,諸如連同視頻和靜態(tài)文本的“自動收報機(ticker)”顯示的動畫。
[0025]全局合成系統(tǒng)114可被利用來將這個功能性抽象化,以使得不同的應用110可以卸載這種再現(xiàn),并且因此不知道這種再現(xiàn)是如何執(zhí)行的。例如,應用110 (其在本討論中是進程的例子)可以提供描述要被再現(xiàn)的元素、元素放置、和元素如何互相關連的數(shù)據。
[0026]附加地,全局合成系統(tǒng)114可以支持“獨立的”動畫。應用110例如可以傳送動畫的聲明(dec Iarat 1n )描述,其描述動畫是如何被再現(xiàn)的。例如,所述描述可以描述什么內容正在被動畫化、重繪(redraw)發(fā)生的速率、動畫開始的位置、動畫要移動的曲線、動畫的結束位置、動畫被再現(xiàn)的時間量等等。
[0027]這種再現(xiàn)然后可以在不需要進一步指令的情況下由全局合成系統(tǒng)114執(zhí)行和繼續(xù)進行。這樣,動畫的再現(xiàn)是與調用方(例如,應用110)無關的,以使得喪失與應用110的通信、應用110的不一致的處理等等不會對動畫的再現(xiàn)有影響。由此,這可被用來通過減少由應用110進行的通信數(shù)量來再現(xiàn)動畫而改進動畫的“平滑