CN104471526A - 在定制gui显示器中实现先前渲染的帧缓冲区信息 - Google Patents

在定制gui显示器中实现先前渲染的帧缓冲区信息 Download PDF

Info

Publication number
CN104471526A
CN104471526A CN201380038065.9A CN201380038065A CN104471526A CN 104471526 A CN104471526 A CN 104471526A CN 201380038065 A CN201380038065 A CN 201380038065A CN 104471526 A CN104471526 A CN 104471526A
Authority
CN
China
Prior art keywords
computer system
frame buffer
action
buffer zone
display
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380038065.9A
Other languages
English (en)
Other versions
CN104471526B (zh
Inventor
D·J·瑟贝斯塔
R·C·埃尔莫
R·W·舒米德尔
M·T·咖恩斯
C·D·尼科尔森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN104471526A publication Critical patent/CN104471526A/zh
Application granted granted Critical
Publication of CN104471526B publication Critical patent/CN104471526B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1423Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display
    • G06F3/1431Digital output to display device ; Cooperation and interconnection of the display device with other functional units controlling a plurality of local displays, e.g. CRT and flat panel display using a single graphics controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/39Control of the bit-mapped memory
    • G09G5/395Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

各实施例涉及提供对图形用户界面(GUI)帧缓冲区的直接访问以及将输入硬件与登录会话相关联。在一个场景中,计算机系统向远程桌面客户端注册插件软件模块。该注册包括请求为在计算机系统显示器上显示而渲染的一个或多个帧缓冲区。该计算机系统确定已在计算机系统用户和所述远程桌面客户端之间建立了会话。该计算机系统随后接收所请求的帧缓冲区并在该计算机系统显示器上显示所述帧缓冲区和/或向各已注册第三方发送所接收的帧缓冲区。

Description

在定制GUI显示器中实现先前渲染的帧缓冲区信息
背景
计算机图形用户界面通常是使用物理图形处理单元(GPU)来渲染,并随后显示在经由标准物理图形接口电缆(诸如DVI、VGA、DisplayPort或HDMI)连接至该GPU的监视器上的。此通常配置在尝试创建具有更大数量的监视器时具有某些限制。例如,典型的个人计算机(PC)仅附带一个或两个监视器端口。可为台式PC购买具有超过两个端口的售后市场图形卡,但是这些卡相对昂贵。典型的台式PC主板仅具有一个或两个用于图形卡的扩展槽,而具有更多扩展槽的配置需要定制PC,定制PC昂贵且组装和维护很复杂。而且,标准物理图形电缆能够发挥功能的跨越距离有限。
已经开发出各种技术,这些技术允许用户通过不同接口(诸如USB)将监视器连接至计算机。这些技术一般涉及操纵视频驱动器栈以便向OS呈现比实际物理连接到GPU的更多的监视器。这些技术可能引入由视频过滤器驱动器带来的不良的可靠性,视频过滤器驱动器难以开发且非常容易出现由GPU驱动器的变化所导致的损坏。
简要概述
此处描述的实施例涉及提供对图形用户界面(GUI)帧缓冲区的直接访问以及将输入硬件与登录会话相关联。在一个实施例中,计算机系统向远程桌面客户端注册插件软件模块。该注册包括请求为了在计算机系统显示器上显示而渲染的一个或多个帧缓冲区。该计算机系统确定在计算机系统用户和远程桌面客户端之间已建立会话。该计算机系统随后接收所请求的帧缓冲区并在计算机系统显示器上显示帧缓冲区和/或向各已注册第三方发送所接收的帧缓冲区。
在另一实施例中,计算机系统将输入硬件与登录会话相关联。该计算机系统确定哪些显示器设备连接至该计算机系统并且枚举连接至该计算机系统的每个显示器设备。该计算机系统为每个所枚举的显示器设备创建定制会话。创建该定制会话包括向在该计算机系统上运行的远程桌面客户端注册插件软件模块,请求为在所枚举的显示器设备至少一个上显示而渲染的一个或多个帧缓冲区,接收该一个或多个所请求的帧缓冲区。该计算机系统随后在所枚举的显示器设备上显示该帧缓冲区和/或向各已注册第三方发送所接收的帧缓冲区。
提供本概述是为了以简化的形式介绍将在以下具体实施方式中进一步描述的概念选择。本概述不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附加的特征和优点将在以下的描述中被阐述,并且部分地可通过该描述而对本领域技术人员显而易见,或者可通过对本文中的教示的实践来习得。在此描述的各实施例的特征和优点可以通过在所附权利要求中特别指出的手段和组合来实现并获取。在此描述的各实施例的特征将在以下描述和所附权利要求书中变得更加完全显而意见。
附图说明
为了进一步阐明在此描述的各实施例的以上和其他特征,将参考附图来呈现更具体的描述。可以理解,这些附图仅是描绘在此描述的实施例的示例,因此将不被认为是对其范围的限制。各实施例将通过使用附图用附加特征和细节来描述和解释,附图中:
图1解说了此处描述的实施例可在其中操作(包括提供对图形用户界面(GUI)帧缓冲区的直接访问)的计算机架构。
图2解说了用于提供对图形用户界面(GUI)帧缓冲区的直接访问的示例方法的流程图。
图3解说了用于将输入硬件与登录会话相关联的示例方法的流程图。
图4解说了在其中两个用户共享计算机监视器的实施例,每个用户具有他们自己的计算机桌面。
图5解说了在其中使用USB集线器来将单个计算机系统连接至多个计算机监视器的实施例。
具体实施方式
此处描述的实施例涉及提供对图形用户界面(GUI)帧缓冲区的直接访问以及将输入硬件与登录会话相关联。在一个实施例中,计算机系统向远程桌面客户端注册插件软件模块。该注册包括请求为了在计算机系统显示器上显示而渲染的一个或多个帧缓冲区。该计算机系统确定在计算机系统用户和远程桌面客户端之间已建立会话。该计算机系统随后接收所请求的帧缓冲区并在计算机系统显示器上显示帧缓冲区和/或向各已注册第三方发送所接收的帧缓冲区。
在另一实施例中,计算机系统将输入硬件与登录会话相关联。该计算机系统确定哪些显示器设备连接至该计算机系统并且枚举连接至该计算机系统的每个显示器设备。该计算机系统为每个所枚举的显示器设备创建定制会话。创建该定制会话包括向在该计算机系统上运行的远程桌面客户端注册插件软件模块,请求为在所枚举的显示器设备的至少一个上显示而渲染的一个或多个帧缓冲区,接收该一个或多个所请求的帧缓冲区。该计算机系统随后在所枚举的显示器设备上显示该帧缓冲区和/或向各已注册第三方发送所接收的帧缓冲区。
以下讨论现涉及可以执行的多种方法以及方法动作。应当注意,虽然这些方法动作可能是按一定次序讨论的,或者是在流程图中被描绘为是按照特定顺序进行的,然而并非必然需要特定的次序,除非是特别声明的或者是因为一个动作依赖于在执行该动作之前完成另一动作而需要的。
这里描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。这里描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。以数据形式存储有计算机可执行指令的计算机可读介质是计算机存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,此处描述的各实施例可包括至少两种显著不同种类的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM、基于RAM、闪存、相变存储器(PCM)的固态驱动器(SSD),或其它类型的存储器,或者其他光盘存储、磁盘存储或其他磁存储设备,或可用于以计算机可执行指令、数据或数据结构形式存储所期望的程序代码资料且可被通用或专用计算机访问的任何其他介质。
“网络”被定义成允许在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路和/或数据交换机。当信息通过网络(硬连线、无线、或者硬连线或无线的组合)被传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括如下的网络:所述网络可以用于以计算机可执行指令形式或数据结构形式承载数据或所期望的程序代码资料,并且可以被通用或专用计算机访问。上述的组合也应被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓冲在网络接口模块(例如,网络接口卡或“NIC”)内的RAM中,然后最终被传输给计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行(或计算机可解释)的指令包括例如致使通用计算机、专用计算机、或专用处理设备执行某个功能或某组功能的指令。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。更具体而言,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,各实施例可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、平板、寻呼机、路由器、交换机等等。此处描述的各实施例还可在分布式系统环境中实践,在该环境中通过网络(要么经由硬连线数据链路、无线数据链路、要么经由硬连线和无线数据链路的组合)链接起来的本地和远程计算机系统每个都执行任务(例如,云计算、云服务等)。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
在该描述和下面的权利要求书中,“云计算”被定义为用于允许对可配置计算资源(例如,网络、服务器、存储、应用和服务)的共享池的按需网络访问的模型。“云计算”的定义不限于可从这样的模型(在被合适地部署时)中获得的任何其他多个优点。
例如,云计算当前被用于市场,以便提供对可配置计算资源的共享池的普遍存在且方便的按需访问。此外,可配置计算资源的共享池可经由虚拟化而被快速地供应,并可利用低管理努力或服务提供商干预来发布,并随后因此被缩放。
云计算模型可由各种特性组成,诸如按需自服务、广泛网络访问、资源池、快速灵活性、测定的服务等。云计算模型还可形成各种服务模型,诸如例如软件即服务(SaaS)、平台即服务(PaaS)以及基础结构即服务(IaaS)。云计算模型还可以使用不同的部署模型来部署,诸如私有云、社区云、公共云和混合云等。在该描述和权利要求书中,“云计算环境”是其中采用了云计算的环境。
除此之外或作为替代,本文所述的功能可至少部分地由一个或多个硬件逻辑组件来执行。作为示例而非限制,可被使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)以及其它类型的可编程硬件。
此处还描述的系统架构可包括多个独立组件,每个作为整体对系统功能作贡献。该模块性在着手处理平台可缩放性问题时,允许增加的灵活性,并且,为此提供各种优点。通过在受限功能范围内的更小规模部分的使用,系统复杂性和增长可被更容易地管理。通过这些松散耦合的模块的使用,平台容错性增强。随着商业需要规定,各组件可被增量式地增长。模块化开发也转化成减少了新功能的上市的时间。新功能可被添加或减去而不影响核心系统。
图1示出了其中至少一个实施例可被利用的计算机架构100。计算机架构100包括计算机系统101。计算机系统101可以是任何类型的本地或分布式计算机系统,包括云计算系统。计算机系统包括用于执行各种不同功能的各模块。例如,计算机系统101包括插件软件模块105。插件软件模块105被配置成截取针对计算机显示器(例如,130)的帧缓冲区111。该插件软件模块可对帧缓冲区111执行处理,包括向第三方120或向计算机系统用户125发送该帧缓冲区。
计算机系统用户125可建立与计算机系统101的远程桌面客户端会话112。与远程桌面客户端110的会话112允许用户125(连同多个其他用户)登录到同一计算机系统中。例如,如图5中所示,显示器530A-530H处的多个不同用户可登录到远程桌面客户端中以建立与计算机系统501的会话。如此,在这些显示器的每一个显示器处的用户可具有其自己的、定制的桌面,其自己的显示器,其自己的鼠标以及对他们已创建(或以其它方式能够访问)的文档或其他文件的访问。
在许多系统中,计算机图形用户界面(GUI)是使用物理图形处理单元(GPU)处理并随后在经由物理图形接口电缆(诸如数字视觉接口(DVI)、视频图形阵列(VGA)、或高解析度多媒体接口(HDMI)电缆)连接至该GPU的监视器上显示。个人计算机(PC)通常仅附带一个或两个监视器端口。可为台式PC购买具有超过两个端口的售后市场图形卡,但是通常很昂贵。
将多个监视器连接到计算机系统的一种方式是使用不同的接口,包括通用串行接口(USB)。此类实现一般涉及操纵视频驱动器栈以便向操作系统(OS)呈现比实际物理连接到GPU的更多的监视器。此类实现可引入由视频过滤器驱动器带来的不良的可靠性,视频过滤器驱动器容易出现由GPU驱动器的变化导致的损坏。在此类实现中,当从GPU的视频存储器读回时,也可能导致不良性能(例如,当正在通过单个GPU来渲染带光标移动的多个视频流时)。又进一步,操作系统图形子系统经常关于可连接至单个GPU的显示器的数量具有内建限制。
在此处描述的多用户实施例中,在多个用户已建立了至虚拟化桌面的远程桌面连接时,在针对每个桌面的图形UI到达远程桌面客户端110的时候,它已经被渲染为帧缓冲区111。随后,远程桌面客户端110不需要利用GPU。如此处所述的,各实施例提供了软件接口,该软件接口允许第三方(例如,120)直接获得对图形UI帧缓冲区111的访问权。这些帧缓冲区随后可被直接处理、传送并显示在监视器(例如,显示器130),而不使用GPU。此处描述的实施例还通过绕过对所有监视器的单个硬件鼠标光标的任何潜在底层OS限制来允许针对每个监视器使用硬件鼠标光标。
如图5中所示,中心计算机系统501可附接于一个或多个本地用户站(530A-530H)。这些本地用户站中的每一个可包括用于显示操作系统桌面的至少一个监视器、用于用户输入的键盘、以及鼠标。本地用户站可使用经由中心集线器555(诸如USB集线器或其他连接设备)连接至中心计算机系统501的物理监视器以及枚举作为操作系统中的显示器设备的那些物理显示器来创建。还可使用更多类型的本地用户站。这些本地用户站在本文中可被称为“定制呈现器站”。这些定制呈现器站可使用例如通过多功能USB集线器550连接的显示器设备来创建。
用户或安装器可使用直接视频连接站和多个多功能USB集线器(例如,550A-550H)将定制呈现器站连接至中心计算机系统501。该多功能集线器可包括视频端口和用于键盘和鼠标(例如,外围设备531A-531H)的设备端口。安装器连接并映射该直接视频连接站,并随后为该多功能集线器安装定制呈现器插件(例如,插件软件模块105)。安装器将该多功能集线器连接至该中心计算机系统(直接地或通过中心集线器555),并且在该计算机系统重启(或重新启动上面提及的功能性)时,带该多功能集线器的所有站被自动映射至各站并显示桌面登录屏幕(或其他图像)。
中心计算机系统501可被配置成在连接至该计算机(例如,集线器550A-550H)的USB集线器间迭代并为每个集线器调用指定插件。该插件检查所指定的USB集线器来确定该插件是否将该集线器识别为定制站呈现器集线器。如果没有,则该站不被实现为定制呈现站。如果该插件识别该集线器,则返回一指针,该指针标识定制呈现器站的地址。
在一些情况下,接口可被该中心计算机系统101/501用来从定制呈现器站检索唯一标识符,获得该设备的维度,以及将该呈现设备分为一个或多个站(如图4中所示)。该中心计算机系统可使用一种方法来检索该定制呈现器站设备的系统范围的唯一且持久的ID(“实例ID”,例如全局唯一标识符(GUID)106)。该实例ID可被中心计算机系统保留在持久存储区域中以便每当该系统重启时它可重新创建同一站。其他方法可被用来执行各种任务,诸如请求定制呈现设备的屏幕区域的大小(按像素计算)、将定制呈现器站细分为一个或多个区域,其中每个区域代表站的桌面、检索站呈现器的维度以获得站呈现器的定制鼠标呈现器接口、以及为该站呈现器提供帧缓冲区。
定制鼠标呈现器接口可被用来用鼠标指针移动更新站的屏幕。该定制鼠标呈现器接口可访问帧缓冲区111并使用包括该帧缓冲区的大小、色深、和从前一帧缓冲区开始已被修改的区域在内的信息来确定在何处显示该鼠标。当本地用户站的用户在该站的桌面上四处移动该鼠标光标时,该鼠标光标可取决于该光标正覆盖的UI元件来改变为不同的形状。当这些光标改变发生时,该中心计算机系统可以改变该站的光标的形状。例如,当本地用户站的用户在该站的桌面上四处移动该鼠标光标时,该鼠标光标可取决于该光标正覆盖或正被之覆盖的UI元件来从可见变为不可见。
对定制呈现器站的分辨率和取向改变可由第三方做出。该第三方(诸如独立硬件厂商)可提供被配置成改变分辨率和/或取向的软件应用。该应用可被运行以设置分辨率和/或取向。在设置了分辨率和/或取向之后,该中心计算机系统501可被重启,使得被改变了的该定制呈现器站将报告新设置的分辨率。
定制呈现器插件接口105的设计允许在同一中心计算机系统101/501上的多个实现。定制呈现插件接口和相关联的定制呈现器站(530A-530H)的实现可通过用于来自不同制造商的定制呈现器站的人工映射的直接视频连接站和接口在同一中心计算机系统上共存。因为该接口的每个实现支持由该插件接口的实现方制造的特定USB集线器,所以这能够发生。未声明的USB集线器可用于被人工映射至直接视频连接站。下面,分别针对图2和图3的方法200和300进一步解释这些概念。
考虑到以上描述的系统和体系结构,参考图2和图3的流程图将更好地领会根据所公开的主题实现的方法。为了说明简明起见,这些方法被示出和描述为一系列框。然而,应该理解和了解,所要求保护的主题不受框的次序的限制,因为一些框可按不同的次序进行和/或与此处所描绘和描述的其他框同时进行。此外,并非全部所示的框都是实现下面所述的方法所必需的。
图2解说了用于提供对图形用户界面(GUI)帧缓冲区的直接访问的方法200的流程图。现在将频繁参考环境100的组件和数据来描述方法200。
方法200包括向远程桌面客户端注册插件软件模块的动作,其中该注册包括请求为了在计算机系统显示器上显示而渲染的一个或多个帧缓冲区(动作210)。例如,插件注册模块115可向远程桌面客户端110注册插件软件模块105。该注册包括向远程桌面客户端110发送请求已被渲染以用于在计算机监视器(诸如用户125的显示器(130))上显示的帧缓冲区111的帧缓冲区请求116。所注册的插件软件模块可包括唯一持久标识符,诸如GUID 106。定制呈现器站的每个制造商可具有其自己的接口和其自己的处理和呈现帧缓冲区的方式。相应地,每个制造商可向计算机系统101的远程桌面客户端110注册其插件。
每个所注册的插件模块可定义其自己的显示器维度。相应地,一些制造商可指示用于其监视器的显示器维度。这些显示器维度可由针对该制造商的插件软件模块105使用。所述显示器维度包括定制呈现设备的屏幕区域的像素数,或简单地包括屏幕面积。该插件软件模块还提供关于定制呈现器站的其他信息,包括该帧缓冲区的大小、针对该帧缓冲区的色深信息、标识该帧缓冲区的从前一帧缓冲区起已经改变的区域的经修改区域或其他信息。此附加数据可作为帧缓冲区111的一部分或附加于该帧缓冲区来提供。
方法200进一步包括确定已在计算机系统用户和远程桌面客户端之间建立会话的动作(动作220)。计算机系统101可确定在用户125和远程桌面客户端110之间已建立会话112。该远程桌面会话可在计算机系统101(本地计算机)上或在远程计算机系统上运行。从而,术语“远程桌面客户端”是指与用户建立桌面会话的应用,而不管该计算机系统是否实际上远离该用户。该会话验证该用户的身份,认证该用户并为该用户建立虚拟化的桌面(即,远程桌面)。该远程桌面向用户提供其自己的桌面,该桌面具有其自己选择的背景、图标、应用和其他设置。该用户具有对他们已创建或以其他方式具有权利的文件的访问权。以此方式,一旦该用户已登出,则另一用户可登录到该同一计算机系统上,建立会话,并具有其自己的桌面,该桌面不同于任何其他用户的桌面。此外,如下所述,计算机系统101可同时与多个不同用户建立会话112,从而为每个用户提供定制桌面。
方法200接下来包括接收该一个或多个所请求帧缓冲区的动作(动作230)。从而,响应于帧缓冲区请求116,远程桌面客户端110可向该插件软件模块发送帧缓冲区111。所述帧缓冲区随后可被发送至显示器130,其中所述帧缓冲区可向用户显示(动作240A)或可被发送至第三方120(动作240B)以由该第三方处理。该第三方可在独立显示器上显示所述帧缓冲区或对其执行其他类型的处理。通过向第三方或向显示器(130)发送所述帧缓冲区,该软件插件模块105可发送针对特定监视器的帧缓冲区,所述帧缓冲区已经以由该插件的创建者指定的方式被处理。
在一些实施例中,如图4中所示,所注册的插件软件模块105可被细分为一个或多个区域。每个区域表示用于本地用户站的一桌面。从而,显示器设备440可在同一屏幕上显示两个用户桌面(441A和441B)。每个桌面有其自己的会话(例如,112)和其自己的定制呈现器。该插件软件模块告知计算机系统401和显示器设备440在何处分割屏幕,以及每个会话应当在何处显示。每个会话有其自己的分别由用户425A和鼠标443A以及用户425B和鼠标443B控制的鼠标光标(用于桌面441A的442A、以及用于桌面441B的442B)。相应地,两个用户可坐在同一监视器处并观看独立的桌面,该独立的桌面具有独立的文件、独立的背景和独立的外围设备(即,鼠标和键盘)。鼠标光标可以是硬件生成的鼠标光标、软件生成的鼠标光标、或这两者的组合。取决于光标正在覆盖哪个UI元件或者被哪个UI元件覆盖,当用户移动鼠标光标时,该鼠标光标可从对该用户(例如,425A)可见变为不可见。
在其中多个监视器或定制呈现器站(包括外围设备)连接至中心计算机系统101/501的情形中,不同用户站可与包括USB集线器在内的多功能集线器相关联。当定制呈现器站与USB集线器相关联时(当显示器530A和外围设备531A连接至集线器550A时),该显示器将接收实例ID。该实例ID可被用来维护一个或多个计算机系统显示器和集线器之间的映射。类似ID可与外围设备一起使用。如此,显示器和集线器之间的映射不需要在每次重启时被重新执行。该中心计算机系统还针对每个USB设备确定该USB设备是否与插件软件模块相关联。如果是,则该USB设备(例如,图4的鼠标443A)与该插件软件模块相关联并被提供实例ID。以此方式,许多不同显示器和外围设备可连接至中心计算机系统,而许多不同用户可使用单个计算机系统登录并创建桌面会话。
图3解说了用于将输入硬件与登录会话相关联的方法300的流程图。现在将频繁地分别参照图1和图5的环境100和500的组件和数据来描述方法300。
方法300包括确定哪些显示器设备连接至该计算机系统的动作(动作310)。例如,计算机系统501可确定哪些集线器(例如,550A-550H)和/或哪些显示器设备(530A-530H)连接至该计算机系统(直接地或通过中心集线器555)。每个连接的显示器设备随后被枚举(动作320)。枚举显示器设备可包括定义设备类并搜索该类中的设备。例如,该设备类可包括大于24”的所有显示器,或由指定制造商制造的所有显示器,或具有HDMI端口的所有显示器,或某种其他特性或分组。枚举还可包括指定每个设备的全局唯一标识符(GUID)。
方法300随后包括为每个所枚举的显示器设备创建定制会话的动作(动作330)。创建定制会话包括向在该计算机系统上运行的远程桌面客户端注册插件软件模块的动作(动作330A)(即,向远程桌面客户端110注册插件软件模块105),请求为在所枚举的显示器设备中的至少一个上显示而渲染的一个或多个帧缓冲区的动作(动作330B)以及接收该一个或多个所请求的帧缓冲区的动作(动作330C)。从而,帧缓冲区请求116可被从插件注册模块115向该远程桌面客户端发送,作为响应,该远程桌面客户端发送帧缓冲区111。所述帧缓冲区还可包括鼠标数据,该鼠标数据本身包括光标形状和光标位置信息。
方法300接下来包括在所枚举的显示器设备上显示帧缓冲区的动作(动作330C1)和/或向一个或多个所注册第三方发送所接收的帧缓冲区的动作(动作330C2)。该帧缓冲区从而可由显示器130显示和/或被传输至第三方120。该第三方可按任何数量的方式来处理所述帧缓冲区,包括压缩该帧缓冲区以及将其传输至另一计算机系统或计算机系统显示器。
在一些实施例中,在该显示器设备上显示帧缓冲区可包括检测该屏幕的哪些区域正在播放视频以及针对该数据发起独立数据流。例如,如果用户正在观看h.264编码的视频,可通知该插件软件模块两个不同的数据流将进入,并且应当被不同地处理——针对h.264视频的一个数据流以及针对该桌面的其他部分的一个数据流。可使用计算机系统硬件来解码此h.264视频流。以此方式,可与正常内容分开地处理视频流,并且可向视频流提供硬件解码或改进终端用户体验的其他特性。
相应地,提供了提供对图形用户界面(GUI)帧缓冲区的直接访问的方法、系统和计算机程序产品。而且,提供了将输入硬件与登录会话相关联并且允许多个用户同时进行远程桌面会话的方法、系统和计算机程序产品。
此处描述的概念和特征能以其他具体形式来实现,而不背离本发明的精神或描述特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。因此,本公开的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (10)

1.一种计算机系统,包括以下:
一个或多个处理器;
系统存储器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述计算系统执行一种用于提供对图形用户界面(GUI)帧缓冲区的直接访问的方法,所述方法包括:
向远程桌面客户端注册插件软件模块的动作,其中所述注册包括请求为在计算机系统显示器上显示而渲染的一个或多个帧缓冲区;
确定已在计算机系统用户和所述远程桌面客户端之间建立会话的动作;
接收一个或多个所请求的帧缓冲区的动作;以及
执行以下至少一个:
在所述计算机系统显示器上显示所述帧缓冲区的动作;以及
向一个或多个已注册第三方发送所接收的帧缓冲区的动作。
2.如权利要求1所述的计算机系统,其特征在于,接收所请求的所述帧缓冲区的所述已注册第三方在独立的计算机系统显示器上显示所述帧缓冲区。
3.如权利要求1所述的计算机系统,其特征在于,已注册的插件软件模块包括唯一持久标识符。
4.如权利要求1所述的计算机系统,其特征在于,还包括定义用于已注册的插件软件模块的显示器维度,其中所述显示器维度包括定制呈现设备的屏幕区域的像素数。
5.如权利要求1所述的计算机系统,其特征在于,进一步包括将已注册的插件软件模块细分为一个或多个区域的动作,其中每个区域表示用于一本地用户站的桌面。
6.如权利要求5所述的计算机系统,其特征在于,进一步包括在所述计算机系统显示器上呈现所述细分区域中的每一个。
7.一种计算机系统,包括以下:
一个或多个处理器;
系统存储器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述计算系统执行一种用于将输入硬件与登录会话相关联的方法,所述方法包括:
确定哪些显示器设备连接至所述计算机系统的动作;
枚举连接至所述计算机系统的每个显示器设备的动作;
为所枚举的每个显示器设备创建定制会话的动作,其中创建定制会话包括:
向所述计算机系统上运行的远程桌面客户端注册插件软件模块;
请求为在所枚举的显示器设备的至少一个上显示而渲染的一个或多个帧缓冲区;以及
接收一个或多个所请求的帧缓冲区;以及
执行以下至少一个:
在所枚举的显示器设备上显示所述帧缓冲区的动作;以及
向一个或多个已注册的第三方发送所接收的帧缓冲区的动作。
8.如权利要求7所述的计算机系统,其特征在于,进一步包括将鼠标数据与所述帧缓冲区包括在一起,其中所述鼠标数据包括光标形状和光标位置。
9.如权利要求7所述的计算机系统,其特征在于,枚举每个显示器设备包括定义设备类并搜索该类中的设备。
10.一种计算机系统,包括以下:
一个或多个处理器;
系统存储器;
其上存储有计算机可执行指令的一个或多个计算机可读存储介质,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述计算系统执行一种用于提供对图形用户界面(GUI)帧缓冲区的直接访问的方法,所述方法包括:
向远程桌面客户端注册插件软件模块的动作,其中所述注册包括请求为在计算机系统显示器上显示而渲染的一个或多个帧缓冲区;
确定已在计算机系统用户和所述远程桌面客户端之间建立会话的动作;
接收一个或多个所请求的帧缓冲区的动作;
将已注册的插件软件模块细分为一个或多个区域的动作,其中每个区域表示用于一本地用户站的桌面;以及
在所述本地用户站的每一个上显示所述帧缓冲区的动作。
CN201380038065.9A 2012-07-16 2013-07-10 在定制gui显示器中实现先前渲染的帧缓冲区信息 Active CN104471526B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261672230P 2012-07-16 2012-07-16
US61/672,230 2012-07-16
US13/658,450 US9798508B2 (en) 2012-07-16 2012-10-23 Implementing previously rendered frame buffer information in a customized GUI display
US13/658,450 2012-10-23
PCT/US2013/049824 WO2014014714A1 (en) 2012-07-16 2013-07-10 Implementing previously rendered frame buffer information in a customized gui display

Publications (2)

Publication Number Publication Date
CN104471526A true CN104471526A (zh) 2015-03-25
CN104471526B CN104471526B (zh) 2018-01-12

Family

ID=49913612

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380038065.9A Active CN104471526B (zh) 2012-07-16 2013-07-10 在定制gui显示器中实现先前渲染的帧缓冲区信息

Country Status (5)

Country Link
US (1) US9798508B2 (zh)
EP (1) EP2872983B1 (zh)
CN (1) CN104471526B (zh)
BR (1) BR112015000755B1 (zh)
WO (1) WO2014014714A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108886513A (zh) * 2016-03-08 2018-11-23 巴科股份有限公司 具有经节制内容流的协作平台
CN112074812A (zh) * 2018-05-04 2020-12-11 茨特里克斯系统公司 提供利用用户和系统提示优化的分层显示远程处理的计算机系统及相关方法
CN115668298A (zh) * 2020-05-14 2023-01-31 高通股份有限公司 用于增强现实内容的图谱管理的方法和装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3177023B1 (en) * 2014-07-30 2020-02-05 Sk Planet Co., Ltd. Apparatus for cloud streaming service
US10540136B2 (en) * 2016-05-24 2020-01-21 Dell Products, L.P. Faster frame buffer rendering over a network
WO2018194667A1 (en) * 2017-04-21 2018-10-25 Hewlett-Packard Development Company, L.P. Firmware outputted keyboard code to enter operating system state
CN116560532B (zh) * 2023-07-06 2023-09-26 麒麟软件有限公司 一种wayland环境下远程桌面获取硬件光标的实现方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928464B2 (en) * 2001-04-30 2005-08-09 Microsoft Corporation Systems and methods for unified remote control access
CN1758217A (zh) * 2004-05-03 2006-04-12 微软公司 辅助显示器系统结构
US7667707B1 (en) * 2005-05-05 2010-02-23 Digital Display Innovations, Llc Computer system for supporting multiple remote displays
CN101872293A (zh) * 2009-04-23 2010-10-27 威睿公司 用于复制传输到远程显示装置的帧缓冲区的方法和系统
US20100306306A1 (en) * 2009-05-31 2010-12-02 Yaniv Kamay Virtual machine system supporting a large number of displays

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5949437A (en) 1997-02-19 1999-09-07 Appian Graphics Corp. Dual video output board with a shared memory interface
US8134568B1 (en) 2004-12-15 2012-03-13 Nvidia Corporation Frame buffer region redirection for multiple graphics adapters
US7432934B2 (en) * 2005-10-19 2008-10-07 Hewlett-Packard Development Company, L.P. System and method for display sharing
US7453454B2 (en) * 2005-10-26 2008-11-18 Hewlett-Packard Development Company, L.P. Image display system and method
CA2633966C (en) * 2005-12-15 2014-04-15 Lehman Brothers Inc. System and method for secure remote desktop access
US7439937B2 (en) 2006-04-14 2008-10-21 Microsoft Corporation Appropriately rendering terminal server graphical data at multiple client side monitors
US20070288640A1 (en) 2006-06-07 2007-12-13 Microsoft Corporation Remote rendering of multiple mouse cursors
US8806027B2 (en) * 2007-02-14 2014-08-12 Microsoft Corporation Nearby media device tracking
US7950046B2 (en) * 2007-03-30 2011-05-24 Uranus International Limited Method, apparatus, system, medium, and signals for intercepting a multiple-party communication
US8106909B2 (en) 2007-10-13 2012-01-31 Microsoft Corporation Common key frame caching for a remote user interface
US8433812B2 (en) 2008-04-01 2013-04-30 Microsoft Corporation Systems and methods for managing multimedia operations in remote sessions
US20100039496A1 (en) * 2008-08-12 2010-02-18 Saied Kazemi Video Conferencing Using Affiliated Displays
US20100082733A1 (en) * 2008-09-30 2010-04-01 Microsoft Corporation Extensible remote programmatic access to user interface
US8375138B2 (en) 2008-11-05 2013-02-12 Fh Innovations, Ltd Computer system with true video signals
US8601401B2 (en) * 2009-01-30 2013-12-03 Navico Holding As Method, apparatus and computer program product for synchronizing cursor events
US8638337B2 (en) 2009-03-16 2014-01-28 Microsoft Corporation Image frame buffer management
US20120268650A1 (en) * 2009-10-02 2012-10-25 Ncomputing Inc. System and method for a thin-client terminal system using a serial bus
US8370550B2 (en) 2010-02-12 2013-02-05 Microsoft Corporation Rule-based assignment of control of peripherals of a computing device
US20110238381A1 (en) * 2010-03-26 2011-09-29 Randolph Construction Services, Inc. Data Management System
US8918848B2 (en) * 2010-04-26 2014-12-23 Blackberry Limited Method and system for third party client authentication
US8868642B2 (en) * 2010-07-08 2014-10-21 Red Hat Israel, Ltd. System and method for dynamically switching between mouse modes
WO2012044557A2 (en) 2010-10-01 2012-04-05 Imerj, Llc Auto-configuration of a docked system in a multi-os environment
US20120218292A1 (en) * 2011-02-10 2012-08-30 Ncomputing Inc. System and method for multistage optimized jpeg output
US20130155049A1 (en) * 2011-12-15 2013-06-20 Luugi Marsan Multiple hardware cursors per controller

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6928464B2 (en) * 2001-04-30 2005-08-09 Microsoft Corporation Systems and methods for unified remote control access
CN1758217A (zh) * 2004-05-03 2006-04-12 微软公司 辅助显示器系统结构
US7667707B1 (en) * 2005-05-05 2010-02-23 Digital Display Innovations, Llc Computer system for supporting multiple remote displays
CN101872293A (zh) * 2009-04-23 2010-10-27 威睿公司 用于复制传输到远程显示装置的帧缓冲区的方法和系统
US20100306306A1 (en) * 2009-05-31 2010-12-02 Yaniv Kamay Virtual machine system supporting a large number of displays

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108886513A (zh) * 2016-03-08 2018-11-23 巴科股份有限公司 具有经节制内容流的协作平台
CN108886513B (zh) * 2016-03-08 2022-08-16 巴科股份有限公司 具有经节制内容流的协作平台
CN112074812A (zh) * 2018-05-04 2020-12-11 茨特里克斯系统公司 提供利用用户和系统提示优化的分层显示远程处理的计算机系统及相关方法
CN115668298A (zh) * 2020-05-14 2023-01-31 高通股份有限公司 用于增强现实内容的图谱管理的方法和装置
CN115668298B (zh) * 2020-05-14 2024-01-12 高通股份有限公司 用于增强现实内容的图谱管理的方法和装置

Also Published As

Publication number Publication date
BR112015000755B1 (pt) 2022-02-15
BR112015000755A8 (pt) 2021-06-01
CN104471526B (zh) 2018-01-12
EP2872983A1 (en) 2015-05-20
US20140015842A1 (en) 2014-01-16
WO2014014714A1 (en) 2014-01-23
EP2872983B1 (en) 2021-08-04
US9798508B2 (en) 2017-10-24
BR112015000755A2 (pt) 2017-06-27

Similar Documents

Publication Publication Date Title
CN104471526A (zh) 在定制gui显示器中实现先前渲染的帧缓冲区信息
Alzahrani et al. Mobile cloud computing: advantage, disadvantage and open challenge
US9405845B2 (en) Adaptable layouts for social feeds
Miller et al. Virtualization: virtually at the desktop
CN104580399B (zh) 一种基于OpenStack和Spice的云桌面实现方法
CN102323882B (zh) 一种应用于Web3D的数据处理装置和方法
US10769859B2 (en) Methods and systems for displaying digital smart objects in a three dimensional environment
JP2013546043A (ja) 即時リモートレンダリング
EP3311565B1 (en) Low latency application streaming using temporal frame transformation
WO2018144292A1 (en) Graphics processing unit partitioning for virtualization
CN106797398B (zh) 用于向客户端提供虚拟桌面服务的方法和系统
US20220028351A1 (en) Virtualizing graphics processing in a provider network
CN109840114A (zh) 页面处理方法及移动终端
CN109656646B (zh) 一种远程桌面控制方法、装置、设备及虚拟化芯片
CN108965430A (zh) 图片获取方法、装置、计算机设备及存储介质
US20090037809A1 (en) Server based control of ad placement in client software
US10169841B1 (en) Dynamic interface synchronization for virtualized graphics processing
US9998536B2 (en) Metered network synchronization
JP7361399B2 (ja) 画面キャプチャ方法、端末および記憶媒体
Li et al. The implementation of a GPU-accelerated virtual desktop infrastructure platform
US20180189090A1 (en) Exposing Hardware Work Queues as Virtual Devices in Virtual Machines
Arsan Design and implementation of remotely managed embedded digital signage system
CN114398018A (zh) 画面显示方法、装置、存储介质及电子设备
Mishima et al. Cost effective digital signage system using low cost information device
Espenschied et al. Exhibiting Digital Art via Emulation.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
TA01 Transfer of patent application right

Effective date of registration: 20171020

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant