合并圖形操作的制作方法
【專利說明】
【背景技術】
[0001]現今的計算設備具有日益增加數量的處理能力。例如,典型的設備具有中央處理單元(CPU),其具有可以各自執行數據處理的多個處理核。而且,單獨的處理器上可用的核數目繼續增加。隨著多核處理器的流行,在CPU上并行施行多個處理任務的能力出現。例如,各自處置特定處理任務的多個處理線程可以在處理器的相應核上同時執行。因此,可以完成多個任務的速度增加超過先前的單核處理器。
[0002]雖然可用的處理能力已經增加,但是許多計算過程仍然利用用于調度和/或管理處理任務的串行處理方案。例如,一些應用沒有配置成使特定處理任務并行化,并且因此不運用多核處理器的并行處理能力。通過不使處理任務并行化,這些過程不接收起因于并行處理的性能益處。
【發明內容】
[0003]提供本概述來以簡化形式引入在以下詳細描述中進一步描述的概念的選擇。本概述既不旨在標識所要求保護的主題的關鍵特征或基本特征,也不旨在用作輔助確定所要求保護的主題的范圍。
[0004]描述了用于合并圖形操作的技術。在至少一些實施例中,可以生成多個圖形操作以應用到諸如圖形用戶界面(GUI)之類的圖形元素。圖形操作可以合并為可以處理和渲染的單個可渲染圖形操作。
【附圖說明】
[0005]參考附圖描述詳細描述。在附圖中,參考數字最左邊的(多個)數位標識參考數字首先出現的附圖。相同參考數字在描述和附圖中的不同實例中的使用可以指示類似或同樣的項目。
[0006]圖1是可操作為采用本文所討論的技術的示例實現中的環境的圖示。
[0007]圖2圖示了根據一個或多個實施例的示例實現場景。
[0008]圖3圖示了根據一個或多個實施例的示例實現場景。
[0009]圖4圖示了根據一個或多個實施例的示例實現場景。
[0010]圖5圖示了根據一個或多個實施例的示例實現場景。
[0011]圖6圖示了根據一個或多個實施例的示例實現場景。
[0012]圖7是根據一個或多個實施例的描述方法中的步驟的流程圖。
[0013]圖8是根據一個或多個實施例的描述方法中的步驟的流程圖。
[0014]圖9圖示了根據一個或多個實施例的示例實現場景。
[0015]圖10圖示了根據一個或多個實施例的示例實現場景。
[0016]圖11圖示了根據一個或多個實施例的示例實現場景。
[0017]圖12圖示了根據一個或多個實施例的示例實現場景。
[0018]圖13是根據一個或多個實施例的描述方法中的步驟的流程圖。
[0019]圖14是根據一個或多個實施例的描述方法中的步驟的流程圖。
[0020]圖15是根據一個或多個實施例的描述方法中的步驟的流程圖。
[0021]圖16圖示了如參考圖1所描述的示例系統和計算設備,其被配置為實現本文所描述的技術的實施例。
【具體實施方式】
[0022]概沭
描述了用于合并圖形操作的技術。在至少一些實施例中,可以生成多個圖形操作以應用到諸如圖形用戶界面(GUI)之類的圖形元素。圖形操作可以合并為可以處理和渲染的單個可渲染圖形操作。
[0023]例如,考慮其中web瀏覽器顯示網頁的場景。本文所討論的技術可以利用第一線程以施行針對網頁的各種處理,諸如網頁JavaScript執行、格式化任務、布局任務、輸入處理任務等等。可以采用第二獨立運行的線程以施行渲染任務,諸如將網頁的當前視圖顯示給屏幕。
[0024]基于影響網頁的視覺屬性的事件,第一線程可以施行圖形操作,其改變網頁的視覺狀態信息。這樣的事件的示例包括網頁的用戶輸入、圖形元素的動畫、由其他過程所生成的事件等等。例如,視覺狀態信息可以包括網頁的視覺狀態的改變,諸如網頁的圖形元素的運動、圖形元素的大小重調和/或重新著色、網頁的平移和/或滾動等等。
[0025]而且,對于示例場景而言,第二線程可以不立即可用于處理圖形操作和基于操作渲染到網頁。例如,基于由第一線程所生成的先前的圖形操作,第二線程可以忙于渲染。
[0026]因此,可以對圖形操作進行隊列化,直到第二線程變得可用。例如,圖形操作可以隊列化為“同步點”,其各自對應于網頁的視覺狀態中的分立改變。當第二線程變得可用于處理圖形操作時,圖形操作可以合并為可以應用到網頁的單個圖形操作。例如,任一線程可以將圖形操作組合為組合的圖形操作,其反映來自單獨的操作中的每一個的狀態改變。因此,第二線程不需要分離地處理每個圖形操作,但是可以處理和渲染組合的圖形操作以到達如果單獨地處理每個圖形操作則將發生的網頁的相同視覺狀態。
[0027]在以下討論中,首先描述可操作為采用本文所描述的技術的示例環境。然后,題為“用于傳播狀態信息的同步點”的章節描述根據一個或多個實施例的利用同步點的一些示例實現場景和流程。在此之后,題為“合并圖形操作”的章節描述根據一個或多個實施例的用于合并圖形操作的一些示例實現場景和流程。最后,題為“示例系統和設備”的章節描述根據一個或多個實施例的可操作為采用本文所討論的技術的示例系統和設備。
[0028]已經呈現了根據一個或多個實施例的示例實現的概述,現在考慮其中可以采用示例實現的示例環境。
[0029]示例環境
圖1是可操作為采用本文所描述的用于合并圖形操作的技術的示例實現中的環境100的圖示。所圖示的環境100包括可以以各種方式配置的計算設備102。例如,計算設備102可以配置為傳統計算機(例如,臺式個人計算機、膝上型計算機等等)、移動臺、娛樂工具、通信耦合到電視的機頂盒、無繩電話、上網本、游戲控制臺、手持式設備(例如,平板電腦)等等,如關于圖16所進一步描述的。
[0030]計算設備102包括處理器104,其代表針對計算設備102施行各種類型數據處理的功能性。例如,處理器104可以表示計算設備102的中央處理單元(CPU)。處理器104包括多個處理器核,其能夠單獨地施行處理任務。因此,處理器104被配置為施行并行處理,諸如同時執行多個處理線程。以下參考圖16討論處理器104的實現的另外示例。
[0031]計算設備102還包括應用106,其代表經由計算設備102施行各種任務的功能性。應用106的示例包括文字處理器應用、電子郵件應用、內容編輯應用、游戲應用等等。
[0032]應用106包括web平臺應用108,其代表結合web內容操作的應用。web平臺應用108例如可以包括和利用許多不同類型的技術,諸如以示例而非限制的方式,統一資源定位符(URL)、超文本傳輸協議(HTTP)、表述性狀態轉移(REST)、超文本標記語言(HTML)、級聯樣式表(CSS)、JavaScript、文檔對象模型(DOM)以及其他技術。web平臺應用108還可以利用各種數據格式工作,諸如可擴展應用標記語言(XAML)、可擴展標記語言(XML)、JavaScript對象標注(JS0N)等等。web平臺應用108的示例包括web瀏覽器、web應用(例如,“web app”)等等。
[0033]還圖示了過程管理器模塊110,其代表管理計算設備102的處理任務的各方面的功能性。還包括圖形模塊112,其代表施行計算設備102的各種圖形相關任務的功能性。例如,圖形模塊112可以施行圖形處理、渲染任務等等。例如,圖形模塊112可以代表諸如web平臺應用108之類的應用106的渲染引擎。在至少一些實施例中,可以運用過程管理器模塊110和/或圖形模塊112來實現本文所討論的用于合并圖形操作的技術。
[0034]雖然過程管理器模塊110和圖形模塊112被圖示為與應用106分離,但是這不旨在是限制性的。例如,過程管理器模塊110和/或圖形模塊112可以實現為應用106的部分和/或擴展,使得其相應的功能性可以由應用106運用。備選地或額外地,過程管理器模塊110和/或圖形模塊112可以實現為計算設備102的操作系統的部分。以下討論過程管理器模塊110和圖形模塊112的另外操作方面。
[0035]計算設備102包括顯示設備114,其被配置為輸出計算設備102的圖形。在顯示設備114上所顯示的是圖形用戶界面(⑶1)116,其代表與應用106之一相關聯的⑶I。例如,⑶I 116可以包括經由web平臺應用108所呈現的web內容。例如,⑶I 116可以表示諸如網頁之類的web文檔。根據一個或多個實施例,可以采用本文所討論的用于合并圖形操作的技術來施行涉及⑶I 116的各種處理任務,諸如布局處理、輸入處理、圖形渲染等等。
[0036]已經描述了本文所描述的技術可以在其中操作的示例環境,以下章節現在討論利用用于傳播狀態信息的同步點的示例技術,以及然后根據一個或多個實施例的用于合并圖形操作的示例技術。
[0037]用于傳播狀態信息的同步點
以下章節描述根據一個或多個實施例的還利用用于傳播狀態信息的同步點的示例實現場景和進程。
[0038]示例實現場景
以下討論描述利用本文所描述的用于傳播狀態信息的同步點的技術的一些示例實現場景。示例實現場景可以實現在圖1的環境100、圖16的系統1600和/或任何其他適合的環境中。例如,場景可以表示過程管理器模塊110和/或圖形模塊112的功能性。例如,可以通過過程管理器模塊110和/或圖形模塊112生成和/或維持不同場景中所討論的處理線程。
[0039]圖2圖示了根據一個或多個實施例的示例實現場景200。場景200包括⑶I 202,其代表可以顯示的各種圖形元素。例如,⑶I 202可以表示以上參考環境100所討論的⑶I116的實現。⑶I 202包括視覺元素202a。
[0040]場景200還包括主線程204和渲染線程206,其代表用于施行各種處理任務作為生成、管理和渲染⑶I 202的部分的線程。
[0041]一般地,主線程204表示施行針對⑶I 202的各種類型管理任務的處理線程。管理任務的示例包括生成⑶I 202,諸如針對應用106之一。管理任務的其他示例包括執行針對⑶I 202的腳本(例如,JScript)、⑶I格式化任務、⑶I布局任務、D0M操縱等等。渲染線程206表示處理線程,其施行諸如將⑶I 202的像素繪制到顯示器之類的渲染操作。例如,由主線程204所生成的⑶I 202的視覺方面的改變可以被渲染以用于由渲染線程206顯示。根據各種實施例,主線程204可以將各種圖形信息傳遞給渲染線程206以用于渲染和顯示。
[0042]轉到場景200的中部,⑶I 202的視覺方面的改變令主線程204生成圖形數據208。例如,圖形數據208可以描述⑶I 202的視覺方面的改變。這樣的改變的示例包括顏色改變、視覺元素大小重調、視覺元素的動畫、視覺元素的重新定位等等。例如,改變可以以各種方式發生,包括響應于經由各種類型用戶輸入與GUI 202的用戶交互、基于時間的通知或來自執行網站代碼的改變。
[0043]響應于生成圖形數據208,生成可繪制同步點(PSP)210。一般地,PSP 210表示可以由渲染線程206用于渲染⑶I 202的部分的信息集。例如,PSP 210可以包括和/或基于圖形數據208。備選地或額外地,PSP 210可以包括足以使得渲染線程206能夠檢索圖形數據208的信息,諸如圖形數據208所駐留的存儲器地址。
[0044]在至少一些實施例中,PSP 210包括⑶I 202的各種類型狀態信息。例如,PSP 210可以包括狀態改變信息,諸如自生成先前的PSP和/或由渲染線程206施行先前的渲染操作起已經改變的⑶I 202的視覺屬性的指示。因此,根據一個或多個實施例,PSP 210可以不包括用于GUI 202的完整渲染的數據,但是可以簡單地指示足以將GUI 202更新到新視覺狀態的狀態改變信息。然而,這不旨在是限制性的,并且在至少一些實施例中,PSP可以表示⑶I的完整渲染。
[0045]在發射PSP 210之后,主線程204可以繼續處理用于⑶I 202的管理任務,例如在不等待渲染線程206以檢索和/或處理PSP 210的情況下。
[0046]轉到場景200的下部,渲染線程206處理PSP 210以生成狀態改變212。一般地,狀態改變212是基于來自PSP 210的狀態信息