US8922569B1 - Cloud based system for and method of translating between disparate 3D graphics languages in client-server computing environments - Google Patents
Cloud based system for and method of translating between disparate 3D graphics languages in client-server computing environments Download PDFInfo
- Publication number
- US8922569B1 US8922569B1 US13/399,806 US201213399806A US8922569B1 US 8922569 B1 US8922569 B1 US 8922569B1 US 201213399806 A US201213399806 A US 201213399806A US 8922569 B1 US8922569 B1 US 8922569B1
- Authority
- US
- United States
- Prior art keywords
- server
- client
- platform
- api function
- library
- 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.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
Definitions
- the present disclosure relates generally to client-server computing systems, and more particularly to a system for and method of translating between disparate 3D graphics languages in client-server computing environment.
- a computer application or program that is running on one computer may be accessible to another computer (i.e., the client) over a network, such as over the Internet.
- the user interface running on the server is exposed and visible to the client. In this way, the client has remote access to the server and the user of the client device can interact with the application that is running on the server.
- the server application may be, for example, an application that processes two-dimensional (2D) and/or three-dimensional (3D) graphics.
- a 2D and/or 3D graphics application may be used to render graphical objects on a computer display.
- the high-level graphics representation e.g., Direct3D, OpenGL
- an image e.g., a bitmap image
- Creating, compressing, and transmitting these image files may result in high CPU utilization (i.e., computing load) at the server, especially when the application displays objects in motion and when there are a large number of remote users sharing the server. Further, images are often large and, therefore, transmitting images to a large number of remote users consumes a large amount of network bandwidth.
- server and client 3D graphics libraries may differ in only platform-specific extensions or library version (e.g., OpenGL 1.4 v. OpenGL 1.2).
- FIG. 1 illustrates a block diagram of a client-server computing system for providing cross-platform remote access to 3D graphics applications, according to the present disclosure
- FIG. 2 illustrates a flow diagram of a method of displaying graphic objects on a client using client-server computing system, according to the present disclosure
- FIG. 3 illustrates a flow diagram of a method of translating between different 3D graphics languages in client-server computing systems, according to the present disclosure.
- the disclosure provides a client-server computing system that enables cross-platform remote access to 3D graphics applications and methods of efficiently displaying graphic objects on a computer (client) located remotely from a computer (server) that is running the 3D graphics application.
- the client-server computing system of the disclosure exhibits numerous advantages over existing systems.
- the client-server computing system of the disclosure and associated methods enable a server that includes a first type of 3D graphics library (such as Direct3D) to provide 3D graphics application capabilities to clients that include a second type of 3D graphics library (such as OpenGL). This allows clients and servers the freedom to implement an appropriate 3D graphics library for each device without sacrificing compatibility.
- a first type of 3D graphics library such as Direct3D
- OpenGL such as OpenGL
- FIG. 1 illustrates a block diagram of a client-server computing system 100 for providing cross-platform remote access to 3D graphics applications.
- Client-server computing system 100 includes a server 110 that is operatively connected to a client 120 and a display 130 via a network 140 .
- Network 140 may be, for example, a local area network (LAN) and/or a wide area network (WAN) for connecting to the Internet. Entities of client-server computing system 100 may connect to network 140 by any wired and/or wireless means.
- LAN local area network
- WAN wide area network
- client 120 and display 130 are illustrated as separate physical components (e.g., illustrative of a common implementation of a desktop or a workstation computing system such as clients running natively on Windows, Linux, UNIX, and Mac OS X operating system), the capabilities of such separate components can also be integrated in a single device (e.g., a mobile device or a tablet computer).
- the mobile device can be an iPad tablet computer on the iOS operating system (Apple Inc., Cupertino, Calif.), or other mobile client on either the Android operating system (Google Inc., Mountain View, Calif.) or the Windows CE operating system (Microsoft Corp., Redmond, Wash.).
- client or “client computer” should be understood to include any such implementations.
- Server 110 includes a server application 112 , a server 3D library 114 , and a virtual display driver 116 that, in accordance with the client-server model of computing, collectively function to enable server 110 to provide various resources or services to client 120 , which may be located remotely from the server.
- these resources or services pertain to computer graphics.
- Client 120 includes a client application 122 , a client 3D library 124 , and a client display driver 126 . Collectively, these elements function to enable the client and the client user to consume computer graphics resources or services provided by server 110 .
- Server application 112 represents an application executing (i.e., “running”) on server 110 .
- the functionality of server application 112 shall be visible to and accessible by client 120 via network 140 .
- server application 112 may be a computer-aided design (CAD) application, such as AutoCAD (Autodesk, Inc., San Rafael, Calif., USA) or Cadence Virtuoso (Cadence Design Systems, San Jose, Calif.); a medical clinical workflow application such as Symbia.net (Siemens AG, Kunststoff, Germany); an interactive mapping application such as Google Earth (Google, Inc.); or a 3D game.
- CAD computer-aided design
- server application 112 may be a computer-aided design (CAD) application, such as AutoCAD (Autodesk, Inc., San Rafael, Calif., USA) or Cadence Virtuoso (Cadence Design Systems, San Jose, Calif.); a medical clinical workflow application such as Symbia.net (Siemens AG, Kunststoff, Germany); an interactive mapping application such as Google Earth (Google
- server application 112 may be accessed from client 120 using a process herein known as application publishing, which is currently supported by products such as GraphOn GO-Global, Microsoft Remote Desktop Services, and Citrix XenApp.
- application publishing may be performed in accordance with teachings of commonly-owned U.S. Pat. No. 5,831,609, filed Jun. 6, 1995, entitled “Method and system for dynamic translation between different graphical user interface systems”, which is incorporated by reference as though fully set forth herein.
- Client application 122 represents an application installed on and executing on client 120 that emulates a user interface of server application 112 .
- the client application may run in a browser and be implemented in a scripting language such as JavaScript, a multimedia platform such as Adobe Flash, or as a browser add-on (e.g., ActiveX control for Internet Explorer).
- client application 122 may run as a standalone application.
- Client application 122 may receive various input commands from the user via an input device (not shown in FIG. 1 ), then transmit these commands to server 110 , and update the user interface of client application 122 in response to computer graphics commands transmitted from server 110 back to client 120 over network 140 .
- Server 3D library 114 and client 3D library 124 provide a set of common interfaces or graphics functions to server 110 and client 120 , respectively. These components are also referred to herein as a high-level graphics language or a graphics application programming interface (API).
- Server 110 and client 120 utilize different types of libraries.
- server 110 may include the Direct3D graphics API (Microsoft Corp., Redmond, Wash.), while client 120 may include the OpenGL graphics API (Khronos Group, Beaverton, Oreg.).
- Various embodiments of this disclosure are directed towards enabling graphics commands from one library type to be realized using equivalent graphics commands from another library type. This is advantageous as it does not force server 110 and client 120 to adhere to a single common library, rather it lets each entity implement the most appropriate library for the device.
- Virtual display driver 116 is a software code module that enables commands or functions that are called in server 3D library 114 to be marshaled (i.e., encoded) and transmitted to client 120 over network 140 .
- Marshaling or marshalling is the process of transforming the memory representation of such commands to a data format suitable for transmission via network 140 .
- Virtual display driver 116 includes a translation module 118 that, prior to marshaling, classifies graphics commands according to graphics library type and, if necessary, translates commands from one type to another such that the original command can be executed on client 120 .
- translation module 118 may convert a Direct3D graphics command into one or more OpenGL graphics command(s), the latter of which may be transferred to client 120 for execution.
- Client display driver 126 includes a software code module that receives marshaled data from server 110 via client application 122 and executes the 3D library functions using client 3D library 124 . This enables client 120 to handle intensive graphics rendering operations, such as blending or shading, while enabling server 110 to share server application 112 with a large pool of clients. This also reduces the bandwidth requirements of network 140 as pixel array image data (e.g., in the form of Bitmap image files) no longer needs to be transmitted from server 110 to individual clients, such as client 120 , as was the case in conventional client-server computing systems.
- pixel array image data e.g., in the form of Bitmap image files
- FIG. 2 illustrates a flow diagram of an example of a method 200 of displaying graphic objects on a client using client-server computing system 100 of the disclosure.
- Method 200 may include, but is not limited to, the following steps.
- client 120 connects to server 110 via network 140 by a suitable connection of either conventional or novel design.
- the connection may be established in accordance with a Transmission Control Protocol/Internet Protocol (TCP/IP) model as is known to one of skill.
- TCP/IP Transmission Control Protocol/Internet Protocol
- server 110 and client 120 may exchange capability information (i.e., negotiate protocols), which may be of use in later steps of method 200 in which virtual display driver 116 encodes commands from server 3D library 114 .
- the capability information transmitted from client 120 to server 110 may include information about the particular APIs (e.g., OpenGL windowing APIs) supported by client display driver 126 .
- the capability information may include the version or versions of client 3D library 124 (e.g., OpenGL 3.2) that are available on client 120 .
- the capability information may also include any extensions available on client 120 . This information may be transmitted in any format that is supported by the client/server system.
- server 110 may forward the capability information from the server component that is in direct network communication with client 120 to virtual display driver 116 .
- Virtual display driver 116 then stores the information in a memory so that the information can be quickly accessed. This enables virtual display driver 116 to maintain (e.g., expand, update) a central repository of capability information of all client devices. It also enables virtual display driver 116 to quickly lookup the capability of a particular client 120 at resource or service request time.
- client 120 initializes server application 112 on server 110 via network 140 .
- server application 112 being an AutoCAD application
- this step may include, for example, server 110 carrying out various startup instructions of the AutoCAD application.
- These startup instructions generally include loading and initializing server 3D library 114 .
- server 3D library 114 may query virtual display driver 116 to determine its capabilities.
- Virtual display driver 116 may report that it supports a graphics command that is not supported by client 120 if virtual display driver 116 or other software on server 110 can convert the command that client 120 does not support into one or more commands that client 120 does support.
- server application 112 calls or invokes the appropriate function or functions (i.e., “graphics commands”) in server 3D library 114 in response to a request of client 120 . For example, if client 120 issues a request to draw a 3D cube, a call is made to server 3D library 114 to satisfy the “draw 3D cube” request.
- server application 112 calls or invokes the appropriate function or functions (i.e., “graphics commands”) in server 3D library 114 in response to a request of client 120 . For example, if client 120 issues a request to draw a 3D cube, a call is made to server 3D library 114 to satisfy the “draw 3D cube” request.
- server 3D library 114 receives a call made by server application 112 at step 318 .
- Server 3D library 114 then executes the function by making one or more calls to the virtual display driver 116 .
- server 3D library 114 does not generally execute the graphics commands and produce a bitmap image.
- virtual display driver 116 encodes each of the received graphics calls and transmits the information to client 120 via network 140 .
- encoding includes calling upon translation module 118 to classify and, if necessary, translate the commands to an equivalent command (or set of commands) that can be realized by client 120 .
- the information transmitted to client 120 may not be the received graphics calls, but a translation providing equivalent functionality that can be achieved through execution by client 120 .
- FIG. 3 describes an example of a method of translating between different 3D graphics languages that may be performed by translation module 118 as part of step 222 .
- the client component that is in direct network communication with server 110 receives the transmission from virtual display driver 116 .
- the client component then forwards the transmission to client application 122 .
- client application 122 decodes the graphics commands. This step may include, for example, reading (e.g., parsing) function names and function parameters from the server transmission into a format compatible with client 3D library 114 .
- client application 122 decodes the graphics commands. This step may include, for example, reading (e.g., parsing) function names and function parameters from the server transmission into a format compatible with client 3D library 114 .
- client 120 may depend on the details of encoding employed by server 110 at step 222 .
- client application 122 optionally performs additional preprocessing and formatting of the function and its parameters (for example, additional platform-specific or version-specific formatting) and then calls or invokes client 3D library 114 with the decoded function names and parameters that satisfy the request of client 120 .
- client 3D library 124 executes each of the graphic commands and calls client display driver 126 with the resulting pixel image array data.
- the actual implementation of each graphic command that is executed on client 120 e.g., define a surface with a given texture, wrap surface around a sphere
- client 120 is operating on a Windows platform
- the execution of the graphics commands is, for example, a Windows OpenGL implementation.
- Calls to client 3D library 124 differs from conventional client-server computing systems wherein the client is making calls to a 2D library only because the bitmap image (or other form of image array data) has already been generated on the server and supplied to the client by the server.
- client display driver 126 renders an image to display 130 .
- this step may include setting pixel image array data in a memory of the client display driver 120 , which defines the image displayed on the computer's monitor or other form of display.
- FIG. 3 illustrates a flow diagram of an example of a method 300 of translating between different 3D graphics languages.
- Method 300 may be performed by translation module 118 as part of step 222 of method 200 of FIG. 2 .
- Method 300 may include, but is not limited to, the following steps.
- virtual display driver 116 determines whether a received graphics command is a Direct3D command. If the graphics command is received in a function of virtual display driver 116 that supports only Direct3D commands, the determination is implicit. Alternatively, if the graphics command is received in a function of virtual display driver 116 that supports both Direct3D commands and non-Direct3D commands, the determination may be made by accessing data structures that maintain attributes of specific graphics commands (e.g. a lookup table), or it may be made implicitly in code that is specific to the command. If the call is not a Direct3D command, method 300 proceeds to a step 312 . However, if the command is a Direct3D command, method 300 proceeds to a step 314 .
- translation module 118 determines whether virtual display driver 116 supports the received graphics command. This may be determined by accessing data structures that maintain attributes of specific graphics commands (e.g. a lookup table), or it may be determined implicitly in code that is specific to a given graphics command. If the command is supported by virtual display driver 116 , method 300 proceeds to a step 316 . However, if the call is not supported by virtual display driver 116 , method 300 proceeds to a step 318 .
- translation module 118 performs a translation of the command to an equivalent OpenGL command or set of OpenGL commands. This assumes that client 3D library 124 is of the OpenGL type. If client 3D library is of another type, the translation of the command will be to this type instead.
- the type of client 3D library 124 may be available to translation module 118 if included as part of client capability information sent to virtual display driver 116 at step 214 of method 200 of FIG. 2 .
- translation module 118 may first identify whether there is a single OpenGL equivalent command to the Direct3D command. In this case, translation module 118 may convert the Direct3D command to the OpenGL equivalent. For example, D3dContextCreate may be converted to wglCreateContext. If there exists no single equivalent OpenGL command, translation module 118 may then identify whether the Direct3D command can be represented as a set of OpenGL equivalent commands. In this case, translation module 118 may convert the Direct3D command to a set of OpenGL equivalent commands. For example, D3dContextDelete may be implemented using wglMakeCurrent (to ensure the context to be deleted is not current) and wglDeleteContext. If there exists no set of equivalent OpenGL commands, translation module 118 may default back to a screen scraping method, in which the graphics command is converted to a bitmap image by either virtual display driver 116 , server 3D library 114 or some other graphics library on the server.
- translation module 118 may then proceed to classify the commands according to library type specific criteria, such as whether the commands are specific to a particular operating system or API version. Translation module 118 may also perform translation based on the classification. Additional library type specific classification and translation that may be performed at this step can be found in Graphon Corporation ipDisclosure GOJO-1004, entitled “SYSTEM FOR AND METHOD OF CLASSIFYING AND TRANSLATING GRAPHICS COMMANDS IN CLIENT-SERVER COMPUTING SYSTEMS.”
- translation module 118 may then proceed to classify the commands according to library type specific criteria as introduced and referenced herein above.
- virtual display driver 116 determines whether the operating system or some other graphics library on the server can convert the command to a command or set of commands that virtual display driver 116 does support. This may be determined by accessing data structures that maintain attributes of specific graphics commands (e.g. a lookup table), or it may be determined implicitly in code that is specific to a given graphics command. If neither the operating system nor any other graphics library on the server supports the command, method 300 proceeds to a step 320 . However, if server 110 supports the command, method 300 proceeds to a step 322 .
- step 320 having determined that neither the server's operating system nor any other graphics library on the server can convert the command to commands that virtual display driver 116 supports at decision step 318 , virtual display driver 116 generates an error that gets returned to server 3D library 114 .
- virtual display driver 116 prevents this case from occurring by properly reporting to server 3D library 114 the capabilities that it supports. In the event, however, that server 3D library calls a function that virtual display driver 116 does not support, server 3D library 114 may throw the error back to the server application 112 and eventually, to client application 122 .
- the error signifies that the command is not supported by the API library or operating system. If method 300 reaches this step, both method 200 of FIG. 2 and method 300 terminate; that is, execution of the function or functions called at step 218 of method 200 of FIG. 2 cannot be achieved. The caller can be notified.
- a step 322 having determined that a library exists on server 110 that supports the command at decision step 318 , the command is then forwarded to said library of server 110 .
- said graphics library of server 110 reduces the command to a command (or set of commands) that is supported by virtual display driver 116 .
- a command or set of commands
- server 110 is a Windows computer and the graphics command is DrvBitBlt and a parameter is passed to DrvBitBlt that virtual display driver 116 does not support
- virtual display driver 116 's implementation of DrvBitBlt may call the server operating system's EngBitBlt function. EngBitBlt may then break the complex command down into one or more simpler DrvBitBlt commands that virtual display driver 116 does support.
- the operating system of server 110 then calls virtual display driver 116 with the graphic command(s) that virtual display driver 116 supports.
- virtual display driver 116 has utilized the operating system or another graphics library on server 110 to perform a graphics command translation prior to virtual display driver 116 transmitting the command to client 120 .
- a cloud server (not shown), which may be associated with the server 110 and client 120 , or reside elsewhere in the network (e.g., in the cloud).
- a cloud server may be used to facilitate interaction between individual or multiple clients and server 110 by performing protocol and/or graphics conversions as described herein.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
Description
Claims (17)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/399,806 US8922569B1 (en) | 2011-12-30 | 2012-02-17 | Cloud based system for and method of translating between disparate 3D graphics languages in client-server computing environments |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201113341179A | 2011-12-30 | 2011-12-30 | |
US13/399,806 US8922569B1 (en) | 2011-12-30 | 2012-02-17 | Cloud based system for and method of translating between disparate 3D graphics languages in client-server computing environments |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US201113341179A Continuation-In-Part | 2011-12-30 | 2011-12-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
US8922569B1 true US8922569B1 (en) | 2014-12-30 |
Family
ID=52112498
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/399,806 Expired - Fee Related US8922569B1 (en) | 2011-12-30 | 2012-02-17 | Cloud based system for and method of translating between disparate 3D graphics languages in client-server computing environments |
Country Status (1)
Country | Link |
---|---|
US (1) | US8922569B1 (en) |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140333641A1 (en) * | 2013-05-13 | 2014-11-13 | 2236008 Ontario Inc. | System and method for forwarding a graphics command stream |
US20140354657A1 (en) * | 2013-05-31 | 2014-12-04 | Facebook, Inc. | Techniques for rendering and caching graphics assets |
US20150169386A1 (en) * | 2013-12-17 | 2015-06-18 | International Business Machines Corporation | Automating software availability management based on api versioning |
US9064292B1 (en) | 2011-12-30 | 2015-06-23 | hopTo, Inc. | System for and method of classifying and translating graphics commands in client-server computing systems |
US9183663B1 (en) | 2011-12-30 | 2015-11-10 | Graphon Corporation | System for and method of classifying and translating graphics commands in client-server computing systems |
US9219779B1 (en) * | 2011-12-30 | 2015-12-22 | hopTo Inc. | Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications |
US9355429B1 (en) | 1995-06-06 | 2016-05-31 | hopTo Inc. | Client computing system for and method of receiving cross-platform remote access to 3D graphics applications |
US9437032B1 (en) | 2011-12-30 | 2016-09-06 | hopTo Inc. | Server computing system for and method of providing cross-platform remote access to 3D graphics applications |
CN106873930A (en) * | 2017-01-13 | 2017-06-20 | 北京奇虎科技有限公司 | Method, device and the mobile terminal of user interface are drawn using OpenGL |
US9864737B1 (en) | 2016-04-29 | 2018-01-09 | Rich Media Ventures, Llc | Crowd sourcing-assisted self-publishing |
US9886172B1 (en) | 2016-04-29 | 2018-02-06 | Rich Media Ventures, Llc | Social media-based publishing and feedback |
US10015244B1 (en) | 2016-04-29 | 2018-07-03 | Rich Media Ventures, Llc | Self-publishing workflow |
US10083672B1 (en) * | 2016-04-29 | 2018-09-25 | Rich Media Ventures, Llc | Automatic customization of e-books based on reader specifications |
GB2561451A (en) * | 2017-04-13 | 2018-10-17 | Advanced Risc Mach Ltd | Data processing |
US10116519B2 (en) * | 2015-03-27 | 2018-10-30 | Yodiwo Ab | Programmable distributed management system of interconnected things and applications |
US10115174B2 (en) | 2013-09-24 | 2018-10-30 | 2236008 Ontario Inc. | System and method for forwarding an application user interface |
CN112068908A (en) * | 2017-10-23 | 2020-12-11 | 华为技术有限公司 | Graphic processing method and related device and equipment |
US10976986B2 (en) | 2013-09-24 | 2021-04-13 | Blackberry Limited | System and method for forwarding an application user interface |
US11763763B2 (en) | 2020-12-24 | 2023-09-19 | E Ink Holdings Inc. | Electrophoretic display device and driving method for electrophoretic display device |
Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5831609A (en) * | 1994-06-17 | 1998-11-03 | Exodus Technologies, Inc. | Method and system for dynamic translation between different graphical user interface systems |
US6578197B1 (en) | 1998-04-08 | 2003-06-10 | Silicon Graphics, Inc. | System and method for high-speed execution of graphics application programs including shading language instructions |
US6747642B1 (en) | 1999-01-29 | 2004-06-08 | Nintendo Co., Ltd. | Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system |
US20080033940A1 (en) * | 2006-08-01 | 2008-02-07 | Hung The Dinh | Database Query Enabling Selection By Partial Column Name |
US20080201705A1 (en) | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
US20080316218A1 (en) | 2007-06-18 | 2008-12-25 | Panologic, Inc. | Remote graphics rendering across a network |
US20090089453A1 (en) * | 2007-09-27 | 2009-04-02 | International Business Machines Corporation | Remote visualization of a graphics application |
US20090189894A1 (en) | 2008-01-27 | 2009-07-30 | Petrov Julian | Methods and systems for analyzing a remoting system to determine where to render three dimensional data |
US20100070951A1 (en) | 2008-09-15 | 2010-03-18 | Horizon Semiconductors Ltd. | Generic assembler |
US20100118039A1 (en) * | 2008-11-07 | 2010-05-13 | Google Inc. | Command buffers for web-based graphics rendering |
US20100328326A1 (en) | 2009-06-30 | 2010-12-30 | Arnaud Hervas | Multi-platform Image Processing Framework |
US20110035758A1 (en) * | 2005-09-09 | 2011-02-10 | Microsoft Corporation | Plug and play device redirection for remote systems |
US20110055823A1 (en) | 2009-08-27 | 2011-03-03 | Microsoft Corporation | Logical Migration Of Applications And Data |
US20110153824A1 (en) * | 2009-12-17 | 2011-06-23 | Chikando Eric N | Data Processing Workload Administration In A Cloud Computing Environment |
US20120011193A1 (en) | 2010-07-08 | 2012-01-12 | Arnon Gilboa | System And Method For Dynamically Switching Between Mouse Modes |
US8171154B2 (en) * | 2009-09-29 | 2012-05-01 | Net Power And Light, Inc. | Method and system for low-latency transfer protocol |
US20120254453A1 (en) * | 2011-03-28 | 2012-10-04 | Sony Corporation | Remote user interface adapter |
US20120331532A1 (en) * | 2011-06-22 | 2012-12-27 | TerraWi, Inc. | Device-agnostic mobile device thin client computing methods and apparatus |
US20120328326A1 (en) | 2011-06-27 | 2012-12-27 | Brother Kogyo Kabushiki Kaisha | Image forming apparatus having photosensitive drum moving mechanism |
US20130124953A1 (en) | 2010-07-28 | 2013-05-16 | Jian Fan | Producing web page content |
-
2012
- 2012-02-17 US US13/399,806 patent/US8922569B1/en not_active Expired - Fee Related
Patent Citations (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5831609A (en) * | 1994-06-17 | 1998-11-03 | Exodus Technologies, Inc. | Method and system for dynamic translation between different graphical user interface systems |
US6578197B1 (en) | 1998-04-08 | 2003-06-10 | Silicon Graphics, Inc. | System and method for high-speed execution of graphics application programs including shading language instructions |
US6747642B1 (en) | 1999-01-29 | 2004-06-08 | Nintendo Co., Ltd. | Method and apparatus for providing non-photorealistic cartoon outlining within a 3D videographics system |
US20110035758A1 (en) * | 2005-09-09 | 2011-02-10 | Microsoft Corporation | Plug and play device redirection for remote systems |
US20080033940A1 (en) * | 2006-08-01 | 2008-02-07 | Hung The Dinh | Database Query Enabling Selection By Partial Column Name |
US20080201705A1 (en) | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
US20080316218A1 (en) | 2007-06-18 | 2008-12-25 | Panologic, Inc. | Remote graphics rendering across a network |
US20090089453A1 (en) * | 2007-09-27 | 2009-04-02 | International Business Machines Corporation | Remote visualization of a graphics application |
US20090189894A1 (en) | 2008-01-27 | 2009-07-30 | Petrov Julian | Methods and systems for analyzing a remoting system to determine where to render three dimensional data |
US20100070951A1 (en) | 2008-09-15 | 2010-03-18 | Horizon Semiconductors Ltd. | Generic assembler |
US20100118039A1 (en) * | 2008-11-07 | 2010-05-13 | Google Inc. | Command buffers for web-based graphics rendering |
US20100328326A1 (en) | 2009-06-30 | 2010-12-30 | Arnaud Hervas | Multi-platform Image Processing Framework |
US20110055823A1 (en) | 2009-08-27 | 2011-03-03 | Microsoft Corporation | Logical Migration Of Applications And Data |
US8171154B2 (en) * | 2009-09-29 | 2012-05-01 | Net Power And Light, Inc. | Method and system for low-latency transfer protocol |
US20110153824A1 (en) * | 2009-12-17 | 2011-06-23 | Chikando Eric N | Data Processing Workload Administration In A Cloud Computing Environment |
US20120011193A1 (en) | 2010-07-08 | 2012-01-12 | Arnon Gilboa | System And Method For Dynamically Switching Between Mouse Modes |
US20130124953A1 (en) | 2010-07-28 | 2013-05-16 | Jian Fan | Producing web page content |
US20120254453A1 (en) * | 2011-03-28 | 2012-10-04 | Sony Corporation | Remote user interface adapter |
US20120331532A1 (en) * | 2011-06-22 | 2012-12-27 | TerraWi, Inc. | Device-agnostic mobile device thin client computing methods and apparatus |
US20120328326A1 (en) | 2011-06-27 | 2012-12-27 | Brother Kogyo Kabushiki Kaisha | Image forming apparatus having photosensitive drum moving mechanism |
Non-Patent Citations (9)
Title |
---|
U.S. Appl. No. 13/341,110, Office Action mailed Dec. 11, 2013. |
U.S. Appl. No. 13/341,179, Final Office Action mailed Jun. 16, 2014. |
U.S. Appl. No. 13/341,179, Office Action mailed Oct. 29, 2013. |
U.S. Appl. No. 13/341,198, Final Office Action mailed Jun. 11, 2014. |
U.S. Appl. No. 13/341,198, Office Action mailed Dec. 5, 2013. |
U.S. Appl. No. 13/399,793, Final Office Action mailed May 12, 2014. |
U.S. Appl. No. 13/399,793, Office Action mailed Oct. 1, 2013. |
U.S. Appl. No. 13/399,852, Final Office Action mailed May 27, 2014. |
U.S. Appl. No. 13/399,852, Office Action mailed Oct. 21, 2013. |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9355429B1 (en) | 1995-06-06 | 2016-05-31 | hopTo Inc. | Client computing system for and method of receiving cross-platform remote access to 3D graphics applications |
US9437032B1 (en) | 2011-12-30 | 2016-09-06 | hopTo Inc. | Server computing system for and method of providing cross-platform remote access to 3D graphics applications |
US9064292B1 (en) | 2011-12-30 | 2015-06-23 | hopTo, Inc. | System for and method of classifying and translating graphics commands in client-server computing systems |
US9183663B1 (en) | 2011-12-30 | 2015-11-10 | Graphon Corporation | System for and method of classifying and translating graphics commands in client-server computing systems |
US9219779B1 (en) * | 2011-12-30 | 2015-12-22 | hopTo Inc. | Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications |
US9467534B2 (en) | 2011-12-30 | 2016-10-11 | hopTo Inc. | Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications |
US20140333641A1 (en) * | 2013-05-13 | 2014-11-13 | 2236008 Ontario Inc. | System and method for forwarding a graphics command stream |
US20140354657A1 (en) * | 2013-05-31 | 2014-12-04 | Facebook, Inc. | Techniques for rendering and caching graphics assets |
US9934610B2 (en) * | 2013-05-31 | 2018-04-03 | Facebook, Inc. | Techniques for rendering and caching graphics assets |
US10976986B2 (en) | 2013-09-24 | 2021-04-13 | Blackberry Limited | System and method for forwarding an application user interface |
US10115174B2 (en) | 2013-09-24 | 2018-10-30 | 2236008 Ontario Inc. | System and method for forwarding an application user interface |
US20150169386A1 (en) * | 2013-12-17 | 2015-06-18 | International Business Machines Corporation | Automating software availability management based on api versioning |
US9262237B2 (en) * | 2013-12-17 | 2016-02-16 | International Business Machines Corporation | Automating software availability management based on API versioning |
US11381462B2 (en) | 2015-03-27 | 2022-07-05 | Yodiwo Ab | Programmable distributed management system of interconnected things and applications |
US10116519B2 (en) * | 2015-03-27 | 2018-10-30 | Yodiwo Ab | Programmable distributed management system of interconnected things and applications |
US10841170B2 (en) | 2015-03-27 | 2020-11-17 | Yodiwo Ab | Programmable distributed management system of interconnected things and applications |
US10015244B1 (en) | 2016-04-29 | 2018-07-03 | Rich Media Ventures, Llc | Self-publishing workflow |
US9886172B1 (en) | 2016-04-29 | 2018-02-06 | Rich Media Ventures, Llc | Social media-based publishing and feedback |
US9864737B1 (en) | 2016-04-29 | 2018-01-09 | Rich Media Ventures, Llc | Crowd sourcing-assisted self-publishing |
US10083672B1 (en) * | 2016-04-29 | 2018-09-25 | Rich Media Ventures, Llc | Automatic customization of e-books based on reader specifications |
CN106873930A (en) * | 2017-01-13 | 2017-06-20 | 北京奇虎科技有限公司 | Method, device and the mobile terminal of user interface are drawn using OpenGL |
CN106873930B (en) * | 2017-01-13 | 2019-12-13 | 北京安云世纪科技有限公司 | method and device for drawing user interface by using OpenGL and mobile terminal |
US10733689B2 (en) | 2017-04-13 | 2020-08-04 | Arm Limited | Data processing |
CN108733602A (en) * | 2017-04-13 | 2018-11-02 | Arm 有限公司 | Data processing |
GB2561451A (en) * | 2017-04-13 | 2018-10-17 | Advanced Risc Mach Ltd | Data processing |
US20180300844A1 (en) * | 2017-04-13 | 2018-10-18 | Arm Limited | Data processing |
CN108733602B (en) * | 2017-04-13 | 2024-04-19 | Arm有限公司 | data processing |
CN112068908A (en) * | 2017-10-23 | 2020-12-11 | 华为技术有限公司 | Graphic processing method and related device and equipment |
CN112068908B (en) * | 2017-10-23 | 2024-01-30 | 华为技术有限公司 | Graphics processing method, related device and equipment |
US11763763B2 (en) | 2020-12-24 | 2023-09-19 | E Ink Holdings Inc. | Electrophoretic display device and driving method for electrophoretic display device |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8922569B1 (en) | Cloud based system for and method of translating between disparate 3D graphics languages in client-server computing environments | |
US9467534B2 (en) | Cloud-based server computing system for and method of providing cross-platform remote access to 3D graphics applications | |
US9355429B1 (en) | Client computing system for and method of receiving cross-platform remote access to 3D graphics applications | |
US9437032B1 (en) | Server computing system for and method of providing cross-platform remote access to 3D graphics applications | |
JP6092381B2 (en) | Method, system, and computer-readable storage medium for providing access to a remote application via a web client | |
US10354430B2 (en) | Image update method, system, and apparatus | |
KR101159396B1 (en) | Efficient encoding of alternative graphic sets | |
US20170323418A1 (en) | Virtualized gpu in a virtual machine environment | |
US9798436B2 (en) | Remote computing with a low latency mouse mode | |
CN103460670B (en) | The method and system of remote desktop session is carried out for using HTTP processors and remote desktop client general-purpose interface | |
EP2649533B1 (en) | Methods and systems for facilitating a remote desktop session utilizing long polling | |
US20080250424A1 (en) | Seamless Window Implementation for Windows Presentation Foundation based Applications | |
US9384583B2 (en) | Network distributed physics computations | |
US9779467B2 (en) | Rendering hardware accelerated graphics in a web application | |
US10002403B2 (en) | Command remoting | |
TW201415411A (en) | Graphic Rendering | |
US20120011280A1 (en) | Method And System For Transforming Cursor Graphics Information | |
CN103430164A (en) | Methods and systems for remote desktop session redrawing via HTTP headers | |
US8988434B1 (en) | Text rendering for browsers and mobile based applications | |
US8838749B1 (en) | Cloud based client computing system for and method of receiving cross-platform remote access to 3D graphics applications | |
US20120113103A1 (en) | Apparatus and method for executing 3d application program using remote rendering | |
CN109445760B (en) | Image rendering method and system | |
US9183663B1 (en) | System for and method of classifying and translating graphics commands in client-server computing systems | |
US10296713B2 (en) | Method and system for reviewing medical study data | |
US9064292B1 (en) | System for and method of classifying and translating graphics commands in client-server computing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GRAPHON CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:TIDD, WILLIAM;REEL/FRAME:028145/0776 Effective date: 20120429 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YR, SMALL ENTITY (ORIGINAL EVENT CODE: M2551) Year of fee payment: 4 |
|
AS | Assignment |
Owner name: HOPTO INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:GRAPHON CORPORATION;REEL/FRAME:055473/0093 Effective date: 20130830 |
|
AS | Assignment |
Owner name: RPX CORPORATION, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:HOPTO, INC.;REEL/FRAME:055795/0700 Effective date: 20210331 |
|
AS | Assignment |
Owner name: BARINGS FINANCE LLC, AS COLLATERAL AGENT, NORTH CAROLINA Free format text: PATENT SECURITY AGREEMENT;ASSIGNOR:RPX CORPORATION;REEL/FRAME:056241/0453 Effective date: 20210405 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20221230 |