是示出了將虛擬顯示器與模擬一起使用的方法的一個實施例的流程圖。倉Ij建用于在應(yīng)用層和一個或多個顯示設(shè)備之間傳送顯示數(shù)據(jù)和用戶輸入事件的一個或多個顯示器接口,每個顯示器接口都物理地連接到由操作系統(tǒng)管理的計算系統(tǒng)(方框1004)。創(chuàng)建用于在應(yīng)用層和一個或多個虛擬顯示設(shè)備之間傳送顯示數(shù)據(jù)和用戶輸入事件的一個或多個虛擬顯示器接口,每個虛擬顯示器接口都未物理地連接到由操作系統(tǒng)管理的計算系統(tǒng)(方框 1008) ο
[0075]利用顯示器接口中的至少一個顯示器接口向一個或多個顯示設(shè)備中的至少一個顯示設(shè)備傳送顯示數(shù)據(jù)并從其接收用戶輸入事件(方框1012)。利用一個或多個虛擬顯示器接口中的至少一個虛擬顯示器接口向一個或多個虛擬顯示設(shè)備中的至少一個虛擬顯示設(shè)備傳送顯示數(shù)據(jù)并從其接收用戶輸入事件(方框1016)。生成表示窗口屬性的輸出,其中在對虛擬顯示器的模擬中,窗口利用虛擬顯示器接口中的至少一個虛擬顯示器接口來在一個或多個虛擬顯示設(shè)備的至少一個虛擬顯示設(shè)備上顯示圖形用戶界面的交互元素(方框1020)。利用由圖形處理單元提供的硬件加速來渲染用于在一個或多個虛擬顯示設(shè)備上顯示的輸出(方框1024)。將用于在一個或多個虛擬顯示設(shè)備上顯示的輸出與預(yù)期值進行比較來評估顯示器性能(方框1028)。
[0076]該方法還可以包括重新采樣和/或縮放渲染的內(nèi)容以用于在其他顯示器(即,非優(yōu)選顯示器)上顯示,并在外部顯示器上呈現(xiàn)重新采樣和/或縮放的圖像內(nèi)容。
[0077]實例計算機系統(tǒng)
[0078]圖11示出了被配置為實施上文所述的任意或所有實施例的計算機系統(tǒng)1100。在不同的實施例中,計算機系統(tǒng)1100可以是各種類型的設(shè)備中的任何設(shè)備,包括但不限于:個人計算機系統(tǒng)、臺式計算機、膝上型電腦、筆記本電腦、平板電腦、一體電腦或上網(wǎng)本計算機、大型計算機系統(tǒng)、手持式計算機、工作站、網(wǎng)絡(luò)計算機、相機、機頂盒、移動設(shè)備、消費者設(shè)備、視頻游戲機、手持式視頻游戲設(shè)備、應(yīng)用服務(wù)器、存儲設(shè)備、電視、視頻記錄設(shè)備、外圍設(shè)備(諸如交換機、調(diào)制解調(diào)器、路由器)、或一般性的任何類型的計算或電子設(shè)備。
[0079]可以在一個或多個計算機系統(tǒng)1100上執(zhí)行如本文所述用于實施和利用虛擬顯示設(shè)備的系統(tǒng)和方法的各種實施例,計算機系統(tǒng)1100可以與各種其他設(shè)備交互。需注意,根據(jù)各種實施例,上文相對于圖1-圖10描述的任何部件、動作或功能性可以實現(xiàn)于配置為圖11的計算機系統(tǒng)1100的一種或多種計算機上。在所示實施例中,計算機系統(tǒng)1100包括經(jīng)由輸入/輸出(I/O)接口 1130耦接到系統(tǒng)存儲器1120的一個或多個處理器1110。計算機系統(tǒng)1100進一步包括耦接到I/O接口 1130的網(wǎng)絡(luò)接口 1140,以及一個或多個輸入/輸出設(shè)備1150,諸如光標(biāo)控制設(shè)備1160、鍵盤1170和顯示器1180 (其可以包括內(nèi)部或主顯示器以及一個或多個外部或輔助顯示器,諸如本文中描述的那些)。在一些實施例中,計算機系統(tǒng)1100可以實現(xiàn)計算設(shè)備諸如圖1中例示為計算設(shè)備110。如前所述,計算設(shè)備110可以包括圖形控制器或卡,其包括用于硬件加速(未示出)的一個或多個專用圖形處理單元(GPU),并且可以由諸如GPU執(zhí)行本文描述為被執(zhí)行的一些或所有功能性。
[0080]在不同的實施例中,輸入/輸出設(shè)備1150可以包括一個或多個顯示終端、鍵盤、鍵區(qū)、觸摸板、掃描設(shè)備、語音或光學(xué)識別設(shè)備、或適于由一個或多個計算機系統(tǒng)1100輸入或訪問數(shù)據(jù)的任何其他設(shè)備。多個輸入/輸出設(shè)備1150可以存在于計算機系統(tǒng)1100中,或者可以分布在計算機系統(tǒng)1100的各個節(jié)點上。在一些實施例中,類似的輸入/輸出設(shè)備可以與計算機系統(tǒng)1100分開,并且可以通過有線或無線連接(諸如通過網(wǎng)絡(luò)接口 1140)與計算機系統(tǒng)1100的一個或多個節(jié)點交互。
[0081]在一些實施例中,如本文所述,圖11中示出的輸入/輸出設(shè)備1150還可以包括被配置為生成(渲染)和/或縮放用于在各種內(nèi)部、虛擬和/或外部顯示設(shè)備上顯示的圖像內(nèi)容的一個或多個顯示發(fā)生單元、縮放單元和/或顯示驅(qū)動器。在一些實施例中,輸入/輸出設(shè)備1150可以包括用于管理計算機系統(tǒng)1100和一個或多個外部虛擬顯示設(shè)備之間連接的電路。計算機系統(tǒng)1100內(nèi)的圖形控制器可被配置為將要顯示的對象渲染到系統(tǒng)存儲器1120中的一個或多個幀緩沖器中。圖形控制器可包括一個或多個圖形處理器(或GPU),該圖形處理器可執(zhí)行圖形軟件以執(zhí)行部分或全部的圖形操作和/或某些圖形操作的硬件加速。硬件加速和軟件實現(xiàn)的量可在各個實施例間變化。
[0082]在一些情況下,可以想到實施例可以利用計算機系統(tǒng)1100的單個實例來實現(xiàn),而在其他實施例中,多個此類系統(tǒng)或者構(gòu)成計算機系統(tǒng)1100的多個節(jié)點可以被配置為作為實施例的不同部分或?qū)嵗闹鳈C。例如,在一個實施例中,一些元素可以經(jīng)由計算機系統(tǒng)1100的與實現(xiàn)其他元素的那些節(jié)點不同的一個或多個節(jié)點來實現(xiàn)。
[0083]在各種實施例中,計算機系統(tǒng)1100可以是包括一個處理器1110的單處理器系統(tǒng)、或者包括幾個處理器1110(例如兩個、四個、八個、或另一適當(dāng)數(shù)量)的多處理器系統(tǒng)。處理器1110可以是能夠執(zhí)行指令的任何合適的處理器。例如,在各種實施例中,處理器1110可以是實現(xiàn)多種指令集架構(gòu)(ISA)(諸如x86、PowerPC、SPARC、或MIPS ISA、或任何其他合適的ISA)中任何指令集架構(gòu)的通用或嵌入式處理器。在多處理器系統(tǒng)中,每個處理器1110通??梢?、但并非必須實現(xiàn)相同ISA。一般來講,處理器1110可實現(xiàn)任何指令集架構(gòu),并且可以被配置為執(zhí)行該指令集架構(gòu)中定義的指令。處理器可采用任何微架構(gòu),包括標(biāo)量、超標(biāo)量、流水線、超流水線、無序、有序、推測性、非推測性等,或它們的組合。處理器可包括電路系統(tǒng),并且可任選地實現(xiàn)微編碼技術(shù)。處理器可包括一個或多個一級高速緩存,以及處理器和一個或多個存儲器控制器之間的一個或多個另外層次的高速緩存。其他實施例可在處理器中包括多個層次的緩存,并且另外一些實施例可在處理器和存儲器控制器之間不包括任何緩存。
[0084]可以配置系統(tǒng)存儲器1120以存儲程序指令1122,程序指令包括虛擬顯示器接口程序指令1124和/或可以由處理器1110訪問的顯示數(shù)據(jù)1132。在各種實施例中,可以利用任何合適的存儲器技術(shù)實現(xiàn)系統(tǒng)存儲器1120,諸如動態(tài)隨機存儲存儲器(DRAM)、同步DRAM (SDRAM)、雙數(shù)據(jù)率(DDR、DDR2、DDR3 等)、SDRAM (包括 SDRAM 的移動版本,諸如 mDDR3等,SDRAM的低功率版本,諸如LPDDR2等)、RAMBUS DRAM (RDRAM)、靜態(tài)RAM(SRAM)、非易失性/閃存型存儲器和/或任何其他類型的存儲器。在一些實施例中,一個或多個存儲器設(shè)備可以耦接到電路板上以形成諸如單列直插存儲器模塊(SIMM)、雙列直插存儲器模塊(DIMM)等的存儲器模塊。另選地,該設(shè)備可以與片上系統(tǒng)在芯片堆疊結(jié)構(gòu)、封裝堆疊結(jié)構(gòu)或者多芯片模塊結(jié)構(gòu)中安裝。
[0085]在例示的實施例中,在由一個或多個處理器1110執(zhí)行時,可以配置程序指令1122以實施結(jié)合或利用上述任何功能的應(yīng)用1124。例如,可以配置程序指令1122以利用本文所述的任何或所有技術(shù)控制或管理虛擬顯示設(shè)備。此外,存儲器1120的虛擬顯示數(shù)據(jù)1132可以存儲針對一個或多個顯示器參數(shù)1134和/或顯示器覆蓋參數(shù)1136的值。在其他實施例中,系統(tǒng)存儲器1120中可以包括不同的要素和數(shù)據(jù)。在一些實施例中,程序指令和/或數(shù)據(jù)可以被接收、發(fā)送或存儲在獨立于系統(tǒng)存儲器1120或計算機系統(tǒng)1100的不同類型的計算機可訪問介質(zhì)上或類似介質(zhì)上。盡管將計算機系統(tǒng)1100描述為實施前面各圖的功能框的功能性,但可以通過這樣的計算機系統(tǒng)實施本文描述的任何功能性。
[0086]在各種實施例中,存儲器控制器(未示出)可包括被配置為與各種存儲器請求者(例如處理器、圖形電路系統(tǒng)等)交互的任何電路。對于此類存儲器控制器可支持任何種類的互連。例如,可使用共享總線(或多條總線),或者使用點到點互連??梢允褂弥链鎯ζ骺刂破鞯娜只ミB的局部互連的分層連接。在一個具體實施中,存儲器控制器可具有多個端口,其中處理器擁有專用端口,圖形電路擁有另一個專用端口等。
[0087]在一個實施例中,I/O接口 1130可以被配置為協(xié)調(diào)設(shè)備中的處理器1110、系統(tǒng)存儲器1120、和任何外圍設(shè)備包括網(wǎng)絡(luò)接口 1140或其他外圍設(shè)備接口(諸如輸入/輸出設(shè)備1150)之間的I/O通信。在一些實施例中,I/O接口 1130可以執(zhí)行任何必要的協(xié)議、定時或其他數(shù)據(jù)轉(zhuǎn)換來將來自一個部件(例如系統(tǒng)存儲器1120)的數(shù)據(jù)信號轉(zhuǎn)換為適于供另一部件(例如處理器1110)使用的格式。在一些實施例中,I/O接口 1130例如可以包括對通過各種類型的外圍設(shè)備總線(諸如外圍部件互連(PCI)總線標(biāo)準(zhǔn)或通用串行總線(USB)標(biāo)準(zhǔn)的變體)附接的設(shè)備的支持。在一些實施例中,I/O接口 1130的功能例如可以被劃分到兩個或更多個單獨部件中,諸如北橋和南橋。此外,在一些實施例中,I/O接口 1130(諸如到系統(tǒng)存儲器1120的接口)的一些或所有功能可以被直接并入到處理器1110中。
[0088]網(wǎng)絡(luò)接口 1140可以被配置為允許在計算機系統(tǒng)1100和附接到網(wǎng)絡(luò)1185的其他設(shè)備(例如承載器或代理設(shè)備)之間、或者在計算機系統(tǒng)1100的節(jié)點之間交換數(shù)據(jù)。在各種實施例中,網(wǎng)絡(luò)1185可以包括一種或多種網(wǎng)絡(luò),包括但不限于:局域網(wǎng)(LAN)(例如以太網(wǎng)或企業(yè)網(wǎng))、廣域網(wǎng)(WAN)(例如互聯(lián)網(wǎng))、無線數(shù)據(jù)網(wǎng)、某種其他電子數(shù)據(jù)網(wǎng)絡(luò)、或它們的某種組合。在各種實施例中,網(wǎng)絡(luò)接口 1140例如可以支持經(jīng)由有線或無線通用數(shù)據(jù)網(wǎng)絡(luò)諸如任何適當(dāng)類型的以太網(wǎng)網(wǎng)絡(luò)的通信;經(jīng)由電信/電話網(wǎng)絡(luò)諸如模擬語音網(wǎng)絡(luò)或數(shù)字光纖通信網(wǎng)絡(luò)的通信;經(jīng)由存儲區(qū)域網(wǎng)絡(luò)諸如光纖信道SAN或經(jīng)由任何其他適當(dāng)類型的網(wǎng)絡(luò)和/或協(xié)議的通信。
[0089]本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,計算機系統(tǒng)1100僅僅是例示性的,而并非旨在限制實施例的范圍。具體地,計算機系統(tǒng)和設(shè)備可以包括能夠執(zhí)行所指示的功能的硬件或軟件的任意組合,包括計算機、網(wǎng)絡(luò)設(shè)備、互聯(lián)網(wǎng)裝置、PDA、無線電話、尋呼機等。計算機系統(tǒng)1100還可以連接到未示出的其他設(shè)備或者可以作為獨立系統(tǒng)工作。此外,所示部件所提供的功能性在一些實施例中可以被組合在更少的部件中或者被分布在附加部件中。類似地,在一些實施例中,一些所示部件的功能性可以不被提供,和/或可以還有其他附加功能性可供使