亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

使用多幀緩沖器繪制的合成圖像的制作方法

文檔序號:2607272閱讀:323來源:國知局
專利名稱:使用多幀緩沖器繪制的合成圖像的制作方法
技術領域
本發(fā)明總體上涉及計算機環(huán)境下的圖像繪制。更具體地說,本發(fā)明涉及使用具有圖像合成器的多幀緩沖器。
背景技術
支持窗口重疊和窗口放置的視窗系統(tǒng)必須在顯示幀緩沖器中保存關于每個窗口中的哪些部分將要被顯示的信息。當一個窗口的幾何形狀——即位置、大小或窗口層疊顯示的順序(從前到后的順序)——發(fā)生改變時,視窗系統(tǒng)必須確定在每一個窗口的可視區(qū)域內即將發(fā)生的變化,執(zhí)行必要的操作以更新窗口的可視區(qū)域,并刷新顯示幀緩沖器中反映窗口的可視區(qū)域內發(fā)生的變化的內容。
圖1示出了向數字顯示器或模擬監(jiān)視器繪制內容的一種常規(guī)方法。在幀緩沖存儲器106或圖像處理單元104中的任意一個可用時,CPU 102或者直接向幀緩沖存儲器106(指幀緩沖器)繪制一個對象,或者通過圖像處理單元104來繪制一個對象。視頻控制器108從幀緩沖器106中讀取所述對象,然后將所述對象直接輸出到一個數字顯示器110,或者輸出到一個數/模轉換器112中,所述數/模轉換器轉換輸出信號使其能夠在模擬監(jiān)視器114上顯示。
圖2示出了一個如上述圖1所示的幀緩沖器106。在圖2中,幀緩沖器106包括兩個窗口204、206。例如,窗口204可以是一個文本編輯窗口,而窗口206可以是一個彈出窗口。在所示的情況下,窗口204的一部分被窗口206掩蓋而不可見(即被覆蓋)。窗口204未被覆蓋的部分在本技術領域中稱為窗口的“可視區(qū)域”(visibleregion)。在如蘋果電腦公司的OS 9、微軟公司的Windows Me等傳統(tǒng)操作系統(tǒng)中,應用程序將其自身的窗口直接寫到幀緩沖器106,應用程序自身負責檢查其每一窗口的可視區(qū)域,從而確保窗口已被覆蓋部分不會被繪制到幀緩沖器中。這種方法(下文稱為經典方法)的一個缺點就是應用程序開發(fā)人員需要引入非常多行的代碼用于檢查每一窗口的可視區(qū)域。由上述第一個缺點推導出的另一個缺點就是應用程序具有在其他應用程序的窗口之上進行繪制的能力,盡管不希望它們這樣做。
繪制窗口的另一種常規(guī)方法需要使用合成器。參見圖3,每個窗口304、306的拷貝均保存在一個后備緩沖器308、310中。應用程序在后備緩沖器中繪制其自身的窗口,除非窗口內容發(fā)生變化,否則這些應用程序將不再負責重新繪制其自身的窗口。合成器312保存與每一窗口的可視區(qū)域相關聯的數據,并且當所述窗口的可視區(qū)域發(fā)生變化時,在幀緩沖器302中正確地重繪每個窗口。上述方法使得應用程序開發(fā)人員無需追蹤可視區(qū)域。
圖4示出了一種使用如圖3所描述的合成器的常規(guī)方法。在CPU 402上運行的應用程序將窗口繪制到窗口緩沖器406、408。作為替代,應用程序可將數據傳遞給GPU 404,由CPU404依次將數據繪制到窗口緩沖器406、408。合成器410從窗口緩沖器406、408中獲取這些窗口,并將其繪制在幀緩沖器412中。在一個窗口的可視區(qū)域發(fā)生變化時,例如當窗口306移到左側,并覆蓋窗口304的更多區(qū)域時,合成器僅簡單地從窗口緩沖器308中重新提獲取窗口304,將正確的可視區(qū)域重繪到幀緩沖器中。生成該窗口的應用程序并不參與上述過程。因此,操作執(zhí)行得更快,并且往往對用戶的視覺效果更好。
為了使依賴直接寫入幀緩沖器的應用程序與運行在具有合成器的操作系統(tǒng)中的應用程序共存,一些常規(guī)的操作系統(tǒng)使用混合圖形子系統(tǒng)以適應這兩種類型的應用程序?,F在參考圖5,圖5示出了一種包含經典窗口504及合成器窗口506的幀緩沖器的示例。經典窗口504是一個由應用程序通過直接存取幀緩沖器而繪制的窗口,正如前面的圖2和圖1所描述的。合成器窗口506是一個由合成器在幀緩沖器中繪制的窗口,并由前面圖3和圖4所描述的方法來創(chuàng)建。
圖6示出了一種將合成器環(huán)境與經典環(huán)境相結合的常規(guī)方法。要使用合成器(“合成器應用程序”)來實現的應用程序602將它們的窗口寫入到后備緩沖器608。合成器606依次從所述后備緩沖器608中讀取數據,并結合其自身擁有的每個窗口的可視區(qū)域記錄,將窗口適當地繪制在幀緩沖器616中。
如先前所述,通常希望經典應用程序604能夠檢查其自身的可視窗口區(qū)域,并且僅將可視的區(qū)域繪制到幀緩沖器616。一種典型的方法是通過系統(tǒng)調用,如“VisRegion”,它向進行調用的應用程序及特定窗口返回正確的可視區(qū)域。在圖6所示的常規(guī)的混合系統(tǒng)中,經典應用程序604請求其自身的VisRegion,并且該調用由合成器606處理。由于所述合成器知道其他經典應用程序窗口614和對于合成器友好的應用程序窗口610、612的位置,合成器向經典應用程序604返回關于其可視區(qū)域的正確信息。經典應用程序604隨后將其窗口正確繪制到幀緩沖器616。
雖然這種混合方法允許經典窗口及合成器窗口在同一操作系統(tǒng)中共存,但這種方法具有嚴重的缺陷。當在概念上(conceptually)希望使經典應用程序604“精確地(nicely)”請求其可視區(qū)域時(例如通過VisRegion調用),多年以來應用程序開發(fā)者已發(fā)現能使其代碼更有效率的捷徑。一種普通的捷徑就是調用“GetFrontWindow”,在經典環(huán)境下,“GetFrontWindow”將返回在所有其他窗口前面的窗口的ID。如果由GetFrontWindow返回的這個ID與經典應用程序604希望繪制的窗口ID相同,那么接下來將繪制整個窗口,而無需檢查其可視區(qū)域——這是由于該窗口在最前面,因而不會被其他窗口覆蓋。正如本領域的技術人員可以理解的,在如圖6所示的應用中,這種方法可能會帶來災難性的后果。這里經典窗口614是屏幕上唯一的經典窗口,盡管該窗口被由合成器606繪制的窗口610和612所覆蓋。因此,如果經典應用程序604調用GetFrontWindow,由于它是所有經典窗口中最靠前的窗口,它將會收到其自身的窗口ID。接下來,如果窗口614自身整個繪制到幀緩沖器616,幀緩沖器616會將窗口614繪制在窗口610和612之上,而這樣做的結果是不正確的。
因此,在本技術領域中,仍需要一種方法能夠使經典應用程序及合成器應用程序共存于一個操作系統(tǒng)中,而不會出現一個應用程序干擾其他應用程序操作的情況。

發(fā)明內容
本發(fā)明提供了一個用于由經典(傳統(tǒng))應用程序所使用的次級幀緩沖器。經典應用程序是指被設計成直接繪制到幀緩沖器,而非繪制到例如由合成器所使用的后備緩沖器的應用程序。根據本發(fā)明,經典應用程序僅將其窗口繪制到次級幀緩沖器,它們如經典幀緩沖器一樣是已知的,而并非繪制到初級幀緩沖器。作為替代,合成器從次級幀緩沖器中讀取窗口數據,并將其繪制到初級幀緩沖器。另外,所述合成器還從后備緩沖器讀取由較為新式的應用程序所寫入的窗口數據,并依次將這些數據繪制到初級幀緩沖器。由于所述合成器為所有窗口保存可視區(qū)數據,因此無論是來自較為新式的應用程序的窗口還是來自經典應用程序的窗口都能被正確地繪制到所述初級幀緩沖器。另外,由于是由所述的合成器而非應用程序自身負責將傳統(tǒng)窗口繪制到所述幀緩沖器,因此,對特定經典應用程序的優(yōu)化而通常導致的經典窗口不能被正確地繪制到新式窗口之上的有害影響將不會再發(fā)生。
最好使用下面兩種方法中的任一種實現繪制。對于經典窗口,將其內容直接繪制到次級幀緩沖器而非后備緩沖器,應用程序響應一個重繪消息或者在需要反映正確的窗口內容時重新繪制窗口的可視區(qū)域內容。
當需要反映正確的窗口內容時,將要通過后備緩沖器繪制的窗口及合成器使它們的內容通過應用程序不時地被刷新。窗口的完整內容被保存在后備緩沖器中。所述合成器可以與任何應用程序動作無關地從該緩沖器中讀取,以繪制由于窗口幾何形狀變化而要表示出的區(qū)域。
為了響應窗口幾何形狀的變化,或者響應來自已經重新繪制其后備緩沖器中的某些部分的應用程序的明確刷新請求,所述合成器收集所有窗口內與要重新繪制的顯示幀緩沖器區(qū)域重疊的區(qū)域。然后,所述合成器從最前面的窗口到后面的窗口對每個窗口進行檢查,從窗口后備緩沖器收集內容,以組裝到將被重繪的區(qū)域中。在每一窗口處,合成器對所收集的內容進行評估,以判定是否已經為需要重繪的區(qū)域積累了所有可能的內容,并且一旦整個區(qū)域充滿了不透明的像素值,即停止操作。除了不透明像素值之外,所述合成器可以積累并非不透明的像素值??梢允褂弥T如Porter-Duff SOVER合成方程式等在本技術領域內眾所周知的數學運算,將每一個像素處的值累積起來。
在本發(fā)明中,合成器將不再忽略經典窗口。相反,如果合成器遍歷窗口列表時遇到經典窗口,它將確定經典幀緩存器中包含在初級幀緩沖器中可見的經典窗口內容部分的區(qū)域,并從經典幀緩沖器中收集將要組裝到要重新繪制的區(qū)域內的內容。所述經典幀緩沖器被視為由所有經典窗口共享的共用后備緩沖器。


圖1顯示了一種在數字顯示器或模擬監(jiān)視器上繪制內容的常規(guī)方法。
圖2顯示了具有多個窗口的幀緩沖器。
圖3顯示了合成器在顯示窗口中的使用。
圖4顯示了一種使用合成器的常規(guī)方法。
圖5顯示了包括一個經典窗口和一個合成器窗口的幀緩沖器的實例。
圖6顯示了將合成器環(huán)境和經典環(huán)境相結合的一種常規(guī)方法。
圖7顯示了根據本發(fā)明一個實施例的框圖實例。
圖8顯示了根據本發(fā)明一個實施例的繪制窗口的方法。
具體實施例方式所述附圖僅僅出于說明的目的描述了本發(fā)明的優(yōu)選實施例。本領域的技術人員能夠很容易從下文的討論中認識到,可以使用這里所描述的結構和方法的替代方案,而不會背離這里所述的本發(fā)明的原理。
圖7示出了根據本發(fā)明一個實施例的框圖實例。圖7包括合成器應用程序702,每一個合成器應用程序都具有一個后備緩沖器708;經典應用程序704;合成器706;與經典窗口712、714一起顯示的經典幀緩沖器720;以及與經典窗口712、714和合成窗口710一起顯示的幀緩沖器716。
經典應用程序704將窗口繪制到經典幀緩沖器720。在一個優(yōu)選實施例中,經典幀緩沖器720是主存儲器中的一個軟件幀緩沖器;或者在另一個作為替代的實施例中,經典幀緩沖器720是視頻卡中的一個硬件幀緩沖器。在任一種情況下,都將為任一經典應用程序提供該幀緩沖器的地址,通常希望為這些經典應用程序提供“真實的”幀緩沖器地址。
同以前一樣,應用程序702被設計為使用合成器類型的系統(tǒng),將其數據寫到后備緩沖器708。所述合成器706讀取后備緩沖器708的內容,并在確定每一窗口的正確可視區(qū)域后,將這些內容繪制到幀緩沖器716。然而,現在經典應用程序704將其窗口繪制到一個經典幀緩沖器720,而不是初級幀緩沖器。經典應用程序仍然不需要任何關于非經典應用程序窗口的信息以正常工作。響應于來自經典應用程序的請求,合成器706將返回正確的(在經典應用程序的范圍域內)可視區(qū)域,并且經典應用程序通過慣用的方式將窗口繪制到經典幀緩沖器720。從經典應用程序的角度來看,需要注意的是,它所寫入的“真實的”幀緩沖區(qū)是該應用程序所知道的唯一幀緩沖區(qū)。實際上,在最初為應用程序提供幀緩沖器信息時,返回的是經典幀緩沖器720,而不是幀緩沖器716。通常,幀緩沖器的地址是作為圖形狀態(tài)(graphicsstate)的一部分而提供的,所述圖形狀態(tài)是在應用程序啟動并初始化其繪制代碼時創(chuàng)建的,例如在Macintosh環(huán)境中調用QDInit()函數。在其他的編程環(huán)境中根據需要來提供該信息,作為圖像狀態(tài)創(chuàng)建或窗口創(chuàng)建的一部分。
合成器706保存一個已經顯示在系統(tǒng)顯示器上的所有窗口列表。在一個實施例中,該列表按照從前到后的順序排列,而在另一實施例中,按照從上到下的順序排列,從而使相應的窗口排列,即哪個窗口在頂部,成為已知。當一個窗口的幾何形狀改變時,合成器706將對該窗口以及該窗口下面的所有窗口執(zhí)行窗口三步窗口幾何形狀調整。
首先,確定每個窗口中從可見變?yōu)楸黄渌翱谡谏w的區(qū)域,并將這些將被遮蓋的區(qū)域從窗口的可視區(qū)域中去除,以防止這些區(qū)域被繪制。第二步,更新幾何形狀發(fā)生變化的窗口,以反映其新的幾何形狀。第三步,確定所有窗口中先前被遮蓋但現在變?yōu)榭梢姷膮^(qū)域,并且在經典窗口的情況下通過向應用程序發(fā)送一個重繪消息,或者通過由所述合成器706從窗口后備緩沖器708組裝顯示器的適當區(qū)域,將這些顯現出來的區(qū)域重新繪制到初級幀緩沖器。
在本發(fā)明中,向每一經典窗口添加了第二組窗口可見性數據。當一個經典窗口的幾何形狀發(fā)生變化時,由合成器執(zhí)行兩遍上述的三步窗口幾何形狀調整過程,第一遍用于更新將應用于初級幀緩沖器的實際窗口可見性信息,第二遍用于更新僅考慮其他經典窗口時將要繪制到經典幀緩沖器的窗口的可見性。
通過將來自緩沖器708的窗口與經典幀緩沖器720中的窗口合并,以及為每一窗口確定適當的可視窗口區(qū)域,合成器706將窗口繪制到幀緩沖器716。由于合成器706負責全部的繪制,因此即使當擁有該窗口的應用程序使用簡化操作確定可視區(qū)域時,經典窗口也不會再被不正確地繪制在其他窗口之上。例如,正如經典幀緩沖器720中所示,經典窗口712部分地覆蓋著經典窗口714。假設生成窗口712的經典應用程序704采用GetFrontWindow調用確定了窗口712實際上就是其范圍域內最前面的窗口,并因此簡單地將窗口712直接繪制到幀緩沖器720,而不是從合成器706調用VisRegion。然而,由于應用程序704僅僅是繪制到經典幀緩沖器720,這種優(yōu)化不會產生任何危害。合成器706讀取經典幀緩沖器720的內容,將其繪制到幀緩沖器716,并且還將窗口710繪制到其合適的位置,重疊在經典窗口712、714之上。
圖8示出了根據本發(fā)明一個實施例的繪制窗口的方法。當所述合成器檢測802出一個窗口的幾何形狀變化時,首先重新繪制當前窗口804。如果在幾何形狀變化之前或之后沒有其他的窗口位于被重繪的窗口下方806,則該過程停止。否則,為位于被重繪的窗口下方的窗口確定該窗口中即將被遮蓋或顯現的區(qū)域808。如果該窗口是一個經典窗口810,則更新將要應用于初級幀緩沖器的實際窗口可見性信息812,以及更新經典可視區(qū)域列表及窗口列表。如果在步驟810中發(fā)生幾何形狀變化的不是經典窗口,那么僅更新將要應用于初級幀緩沖器的實際可見性信息814。如果有多個窗口將被遮蓋或者顯現816,則為每個窗口重復執(zhí)行步驟808至814。接下來,在步驟818中,為所有窗口積累的已改變的區(qū)域由合成器寫入(flush)到所述初級幀緩沖器。如果一個經典窗口的幾何形狀發(fā)生變化820,則將一個重繪消息發(fā)送到具有已改變的窗口的經典應用程序822,然后上述過程結束。
在一個優(yōu)選實施例中,當經典應用程序704完成其顯現的窗口區(qū)域的重繪或重畫過程后,合成器706將對于初級幀緩沖器716中由經典窗口刷新其內容的部分重新運行。合成器最好能夠通過兩種方式中的任一種確定由經典應用程序重繪的區(qū)域。
在一個實施例中,經典環(huán)境通過發(fā)送一個ShieldCursor請求來請求所述合成器706隱藏要重新繪制的區(qū)域內的鼠標光標。這一請求中包括需要重繪其中的窗口內容、并且不需要顯示光標的區(qū)域,以避免光標和窗口內容繪制操作之間的沖突。所述合成器706收集光標已經被屏蔽的區(qū)域,并且周期性地將該區(qū)域刷新到所述幀緩沖器716。
作為替代,在其中運行所有經典應用程序704的經典環(huán)境自身可以觀察到應用程序的行為,包括監(jiān)測將要由ShieldCursor調用保護的區(qū)域,一旦確定應用程序704已完成了繪制操作,就可以請求將ShieldCursor調用及繪制原語(drawing primitives)所應用的積累區(qū)域刷新到幀緩沖器716。當應用程序進行已知的系統(tǒng)調用以等待完成更多工作時,如“WaitNextEvent”,就可以確定這些應用程序已經完成了繪制操作。
因此,本發(fā)明使得操作系統(tǒng)環(huán)境能夠完全支持自身實現窗口管理并將窗口直接繪制到幀緩沖器的經典應用程序以及依賴合成器來管理其可視區(qū)域的合成器應用程序。
本發(fā)明已經非常詳細地對有限數目的實施例進行了描述。本領域的技術人員可以理解,本發(fā)明也可以由其他的實施例實現。首先,部件的特定命名、名詞術語的大小寫、屬性特征、數據結構、或任何其他程序設計或結構方面,并不是強制性的或重要的,并且實施本發(fā)明或其特征的機制也可以使用不同的名字、格式、或協(xié)議。此外,如前所述,系統(tǒng)可以通過結合硬件和軟件的結合、或者完全以硬件的形式實現。并且,此處所描述的各種系統(tǒng)組件間特定的功能性劃分也僅僅是示例性的,而不是強制的;即由單個系統(tǒng)組件完成的功能也可由多個組件替代完成,而由多個組件完成的功能也可由單個組件替代完成。例如,所述合成器的特定功能等等可以在多個或一個模塊中提供。另外,出于易讀性和易于理解的考慮,主要通過繪制應用程序窗口描述了本發(fā)明。但本領域的技術人員應認識到本發(fā)明的應用比計算機圖形繪制更為廣泛。
上文的描述中某些部分對本發(fā)明的算法及符號表達方面的特征進行了說明。這些算法描述和表達是由計算機圖形顯示領域的技術人員所采用的、能夠最有效地向本領域的其他技術人員傳達其工作實質內容的手段。這些操作,雖然是從功能上或邏輯上進行的描述,也應被理解為能夠通過計算機程序實現。此外,在將這些操作設置當作模塊或代碼設備提及時,也已方便地證明其不失普遍性。
但是還應當記住的是,所有這些術語及類似的術語均應當與適當的物理量聯系起來,僅僅作為應用于這些物理量的方便標注。除非本描述中明顯有相反的特別聲明,貫穿整個說明書或討論中所使用的術語,如“處理”或“計算處理(computing)”或“計算(calculating)”或“確定”或“顯示”或者類似的術語,指的是計算機系統(tǒng)或類似的電子運算設備的行為或處理,它們操作并轉換在計算機系統(tǒng)存儲器或寄存器或者其他信息存儲、傳輸或顯示設備中用物理(電子)量來代表的數據。
本發(fā)明的特定方面包括處理步驟以及在此用算法形式描述的指令。應當注意的是,本發(fā)明的處理步驟及指令可以以軟件、固件或硬件形式實現,并且當以軟件形式體現時可以被下載,從而駐留可通過實時網絡操作系統(tǒng)所采用的不同平臺上,并由這些平臺進行操作。
本發(fā)明還涉及用于執(zhí)行在此所描述的操作的設備。該設備可根據所需的目的專門制造,或者可包括一個通用計算機,該通用計算機由存儲在計算機中的計算機程序選擇性地啟動或重配置。這樣的計算機程序可存儲在計算機可讀存儲介質中,例如、但不限于任何類型的盤,包括軟盤、光盤、CD-ROM、磁光盤(magnetic-optical disk)、只讀存儲器(ROM),隨機訪問存儲器(RAM)、EPROM、EEPROM、磁卡或光卡、專用集成電路(ASIC)、或者任何適于存儲電子指令的介質類型,并且以上存儲介質的每一種都與計算機系統(tǒng)總線相耦合。此外,在本說明書中提及的計算機可包括單一處理器,或者是為增強計算能力而設計使用的多處理器體系結構。
這里所描述的算法和顯示并非固有地關聯到任何特定的計算機或其他設備。也可使用具有根據上述指導的程序的各種通用系統(tǒng),或者可以證明便于為執(zhí)行上述所需方法步驟而構建更專業(yè)的設備。對于這些各種各樣的系統(tǒng)所需的結構可以從前面的描述中清楚地獲得。另外,對本發(fā)明的描述并未參照任何特定的編程語言??梢岳斫猓缭诖怂枋龅?,可以使用多種編程語言來實現本發(fā)明的指導,并且任何對特定語言的參照均屬本發(fā)明的公開內容及最佳實施方式的范圍內。
最后,還應注意到,說明書中所使用的語言主要是出于可讀性和指導性目的而選用的,并非為劃界或限定所述發(fā)明主題而選用。相應地,本發(fā)明的公開內容是為了說明,而非用于限制本發(fā)明的范圍。
權利要求
1.一種用于繪制應用程序窗口的系統(tǒng),包括初級幀緩沖器,用于提供輸出給顯示設備的窗口數據;次級幀緩沖器,用于從多個應用程序接收窗口數據;合成器,被配置為從多個后備緩沖器接收窗口數據;保存與所述次級幀緩沖器中的窗口數據相關聯的第一可視區(qū)域數據;保存與后備緩沖器中的窗口數據和次級幀緩沖區(qū)中的窗口數據相關聯的第二可視區(qū)域數據;以及向所述初級幀緩沖器輸出由所述第一可視區(qū)域數據及所述第二可視區(qū)域數據合成的最終的幀緩沖器內容。
2.根據權利要求1所述的系統(tǒng),其中所述初級幀緩沖器構成計算機存儲設備的一部分。
3.根據權利要求1所述的系統(tǒng),其中所述初級幀緩沖器構成圖形處理單元(GPU)的一部分。
4.根據權利要求1所述的系統(tǒng),其中所述次級幀緩沖器構成計算機存儲器設備的一部分。
5.根據權利要求1所述的系統(tǒng),其中所述次級幀緩沖器構成圖形處理單元(GPU)的一部分。
6.一種用于繪制應用程序窗口的計算機程序產品,該計算機程序產品包括包含有計算機程序代碼的計算機可讀介質,其包括初級幀緩沖器模塊,用于提供輸出給顯示設備的窗口數據;次級幀緩沖器模塊,用于從多個應用程序接收窗口數據;合成器模塊,通信耦合到所述初級幀緩沖器模塊和次級幀緩沖器模塊,被配置為從多個后備緩沖器接收窗口數據;保存與所述次級幀緩沖器中的窗口數據相關聯的第一可視區(qū)域數據;保存與后備緩沖器中的窗口數據和次級幀緩沖區(qū)中的窗口數據相關聯的第二可視區(qū)域數據;以及向所述初級幀緩沖器輸出由所述第一可視區(qū)域數據及所述第二可視區(qū)域數據合成的最終的幀緩沖器內容。
7.根據權利要求6所述的計算機程序產品,其中所述初級幀緩沖器模塊構成計算機存儲設備模塊的一部分。
8.根據權利要求6所述的計算機程序產品,其中所述初級幀緩沖器模塊構成圖形處理單元(GPU)模塊的一部分。
9.根據權利要求6所述的計算機程序產品,其中所述次級幀緩沖器模塊構成計算機存儲設備模塊的一部分。
10.根據權利要求1所述的系統(tǒng),其中所述第二可視區(qū)域數據包括由所述系統(tǒng)顯示的窗口的列表。
11.根據權利要求10所述的系統(tǒng),其中所述窗口列表按照從前到后的順序排列。
12.根據權利要求10所述的系統(tǒng),其中所述窗口列表按照從上到下的順序排列。
13.根據權利要求6所述的計算機程序產品,其中所述次級幀緩沖器模塊構成圖形處理單元(GPU)的一部分。
14.一種用于繪制應用程序窗口的方法,包括保存與所述次級幀緩沖器中的窗口數據相關聯的第一可視區(qū)域數據,所述次級幀緩沖器包含來自多個應用程序的窗口數據;保存與從多個后備緩沖器接收到的窗口數據相關聯的第二可視區(qū)域數據;以及向一個初級幀緩沖器輸出由所述第一可視區(qū)域數據及所述第二可視區(qū)域數據合成的最終的幀緩沖器內容。
15.根據權利要求14所述的方法,其中所述初級幀緩沖器構成計算機存儲設備的一部分。
16.根據權利要求14所述的方法,其中所述初級幀緩沖器構成圖形處理單元(GPU)的一部分。
17.根據權利要求14所述的方法,其中所述次級幀緩沖器構成計算機存儲設備的一部分。
18.根據權利要求14所述的方法,其中所述次級幀緩沖器構成圖形處理單元(GPU)的一部分。
19.根據權利要求14所述的方法,還包括響應于從多個后備緩沖器接收到的新窗口數據為每個窗口確定該窗口將被遮蓋的區(qū)域;并且根據所確定的將被遮蓋的區(qū)域更新所述第二可視區(qū)域數據。
20.根據權利要求19所述的方法,還包括向所述初級幀緩沖器輸出由所述第一可視區(qū)域數據和更新后的第二可視區(qū)域數據合成的更新后的最終幀緩沖器內容。
21.一個用于繪制應用程序窗口的合成器,該合成器包括接收模塊,用于從多個后備緩沖器接收窗口數據;第一可視區(qū)域模塊,用于保存與次級幀緩沖器中的窗口數據相關聯的第一可視區(qū)域數據;第二可視區(qū)域模塊,用于保存與所述后備緩沖器中的窗口數據和所述次級幀緩沖區(qū)中的窗口數據相關聯的第二可視區(qū)域數據;以及輸出模塊,用于向初級幀緩沖器輸出由所述第一可視區(qū)域數據和所述第二可視區(qū)域數據合成的最終幀緩沖器內容。
22.一種用于繪制應用程序窗口的方法,該方法包括檢測第一個窗口中的幾何形狀變化;重新繪制所述第一個窗口;對位于所述第一個窗口下方的多個下級窗口中的每一個窗口確定該下級窗口的一個可視區(qū)域;確定該下級窗口是否為一個經典窗口;對是經典窗口的下級窗口做出響應,更新經典可視區(qū)域列表以包括該窗口的可視區(qū)域;根據所確定的該下級窗口的可視區(qū)域向初級幀緩沖器輸出每個下級窗口。
23.根據權利要求22所述的方法,還包括對是經典窗口的下級窗口做出響應,向擁有該下級窗口的應用程序發(fā)送一個重繪消息。
24.根據權利要求23所述的方法,還包括接收對于初級幀緩沖器的一個特定區(qū)域隱藏鼠標光標的請求;并且將該特定區(qū)域寫入到所述幀緩沖器。
全文摘要
提供了一個由經典應用程序使用的次級幀緩沖器(720),所述經典應用程序被設計為直接繪制到幀緩沖器。經典應用程序將其窗口繪制到所述次級幀緩沖器,而并非繪制到初級幀緩沖器(716)。一個合成器(706)從所述次級幀緩沖器讀取窗口數據,并將其繪制到初級幀緩沖器。所述合成器還讀取由其他應用程序寫入到后備緩沖器(708)的窗口數據,并將這些數據繪制到所述初級幀緩沖器。由于所述合成器為所有窗口保存可視區(qū)域數據,因此所述窗口可以被正確地繪制到所述初級幀緩沖器,無論這些數據是來自后備緩沖窗口還是來自經典應用程序。此外,由于是由所述合成器而非應用程序自身負責將傳統(tǒng)窗口繪制到所述幀緩沖器,因此由經典應用程序的優(yōu)化所導致的經典窗口被不恰當地繪制并覆蓋到新形式窗口之上的情況將不會再發(fā)生。
文檔編號G09G5/36GK1886779SQ200480035479
公開日2006年12月27日 申請日期2004年10月4日 優(yōu)先權日2003年12月18日
發(fā)明者邁克爾·J.·帕克特 申請人:蘋果電腦有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1