KR101385364B1 - 애플리케이션 인터페이스 부분들을 주변의 컴퓨터 디바이스들 상에 제공하기 위한 방법 및 장치 - Google Patents
애플리케이션 인터페이스 부분들을 주변의 컴퓨터 디바이스들 상에 제공하기 위한 방법 및 장치 Download PDFInfo
- Publication number
- KR101385364B1 KR101385364B1 KR1020127008916A KR20127008916A KR101385364B1 KR 101385364 B1 KR101385364 B1 KR 101385364B1 KR 1020127008916 A KR1020127008916 A KR 1020127008916A KR 20127008916 A KR20127008916 A KR 20127008916A KR 101385364 B1 KR101385364 B1 KR 101385364B1
- Authority
- KR
- South Korea
- Prior art keywords
- display
- display data
- computing device
- window object
- hidden window
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/544—Remote
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/545—Gui
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- User Interface Of Digital Computer (AREA)
- Digital Computer Display Output (AREA)
Abstract
방법들 및 디바이스들이 제 1 컴퓨팅 디바이스 상에서 생성된 이미지 부분들을 제 2 컴퓨팅 디바이스 상에서 디스플레이할 수 있게 한다. 제 1 디바이스 상의 마스터 헬퍼 앱은 사용자 콘텐츠 선택들을 수신하고 각각에 대한 경계 박스들 (bounding boxes) 을 계산한다. 마스터 헬퍼 앱은 시스템 프레임 버퍼를 확장하여 선택된 콘텐츠를 홀드하고 윈도 관리자가 애플리케이션들에 지시하여 콘텐츠들을 확장된 프레임 버퍼에 끌어들이게 할 수도 있다. 마스터 헬퍼 앱은 제 2 디바이스 상의 슬레이브 헬퍼 앱을 호출하여 프레임 버퍼 콘텐츠들을 수신할 수도 있다. 슬레이브 헬퍼 앱은 수신된 디스플레이 데이터를 프레임 버퍼에 저장하여서 이미지는 디스플레이된다. 디스플레이 콘텐츠의 크기변경, 블렌딩 및 분할이 제 1 또는 제 2 디바이스들 중의 어느 하나에 대해 또는 제 3 프록시 디바이스에 대해 달성될 수 있다. 제 2 디바이스 상의 키스트로크들은 제 1 디바이스 상에서 실행되는 커맨드들로 번역될 수 있다.
Description
본 발명은 일반적으로 컴퓨터 그래픽 사용자 인터페이스들에 관한 것이고, 더 상세하게는 주변의 컴퓨터 디바이스들 상에 애플리케이션 인터페이스 부분들을 제공하기 위한 방법들 및 장치에 관한 것이다.
그래픽 사용자 인터페이스들을 가지는 컴퓨팅 디바이스들, 이를테면 컴퓨터 워크스테이션들 및 셀룰러 전화기들은, 사용자들에게 그래픽 인터페이스를 갖는 애플리케이션들을 제공한다. 이러한 그래픽 인터페이스는 이미지들이 애플리케이션들 및 인터넷 웹 페이지들에 의해 디스플레이될 수 있게 한다. 그러나, 현재의 애플리케이션들은 애플리케이션이 실행중인 컴퓨터에 커플링된 디스플레이들 상에서만 이미지들을 디스플레이할 수 있다.
갖가지 양태들은 마스터 헬퍼 애플리케이션을 구현하는 제 1 컴퓨팅 디바이스 상에서 생성된 디스플레이 이미지의 선택된 부분들을 슬레이브 헬퍼 애플리케이션을 구현하는 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 방법을 제공하는데, 이 방법은, 마스터 헬퍼 애플리케이션의 지시 하에, 제 1 컴퓨팅 디바이스 상에서 실행중인 애플리케이션에 의해 생성된 디스플레이 이미지를 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 재포맷팅하고 재포맷팅된 디스플레이 이미지를 제 1 컴퓨팅 디바이스의 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계; 숨은 윈도 객체의 디스플레이 데이터를 마스터 헬퍼 애플리케이션 및 슬레이브 헬퍼 애플리케이션 사이의 통신을 경유하여 제 2 컴퓨팅 디바이스에 전송하는 단계; 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스의 프레임 버퍼에 슬레이브 헬퍼 애플리케이션의 지시 하에 저장하는 단계; 및 제 2 컴퓨팅 디바이스의 프레임 버퍼에 저장된 숨은 윈도 객체의 디스플레이 데이터를 이용하여 제 2 컴퓨팅 디바이스 상의 디스플레이를 랜더링하는 단계를 포함한다.
이 양태의 방법들은 제 1 컴퓨팅 디바이스 상에서 실행중인 애플리케이션에 지시하여 애플리케이션의 디스플레이 이미지의 부분을 제 1 컴퓨팅 디바이스의 프레임 버퍼에 숨은 윈도 객체로서 페인팅하고, 및 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 재포맷팅함으로써 디스플레이 이미지를 재포맷팅하는 단계를 포함할 수도 있다. 이 양태의 방법들은 제 2 컴퓨팅 디바이스 상에 디스플레이될 디스플레이 이미지의 선택을 나타내는 사용자 입력을 제 1 컴퓨팅 디바이스 상에서 수신하는 단계 및 선택된 부분들을 제 2 컴퓨팅 디바이스 상의 디스플레이를 위해 재포맷팅하는 단계를 포함할 수도 있다. 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 재포맷팅하는 단계는 제 1 컴퓨팅 디바이스에서 달성될 수도 있고, 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스에 전송하는 단계는 크기변경된 (resized) 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함할 수도 있다. 다르게는, 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 재포맷팅하는 단계는 제 2 컴퓨팅 디바이스에서 달성될 수도 있다.
추가의 양태에서, 이 방법은 숨은 윈도 객체의 디스플레이 데이터를 제 3 컴퓨팅 디바이스에 전송하고 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 제 3 컴퓨팅 디바이스에서 재포맷팅하는 단계, 및 크기변경된 숨은 윈도 객체의 디스플레이 데이터를 제 3 컴퓨팅 디바이스로부터 제 2 컴퓨팅 디바이스로 전송하는 단계를 포함할 수도 있다. 숨은 윈도 객체의 디스플레이 데이터를 재포맷팅하는 단계는 숨은 윈도 객체의 디스플레이 데이터를 이 데이터가 제 2 컴퓨팅 디바이스의 디스플레이와 호환되는 디스플레이 이미지를 생성하도록 처리하는 단계를 포함할 수도 있다.
추가 양태의 방법에서, 제 1 컴퓨팅 디바이스는 디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하고, 숨은 윈도 객체의 디스플레이 데이터를 재포맷팅하여 제 2 컴퓨팅 디바이스의 디스플레이와 호환되는 단일의 블렌드된 디스플레이 이미지 또는 나란한 디스플레이를 생성할 수도 있다.
디스플레이 데이터의 전송은 제 1 및 제 2 컴퓨팅 디바이스들 사이에 확립된 무선 데이터 링크, 이를테면 Bluetooth® 무선 데이터 링크를 경유하여 달성될 수도 있다.
추가 양태의 방법은 사용자 입력을 제 2 컴퓨팅 디바이스 상에서 수신하는 단계, 수신된 사용자 입력에 관한 정보를 제 1 컴퓨팅 디바이스에 통신하는 단계, 수신된 사용자 입력에 관한 통신하는 정보를 애플리케이션의 디스플레이 이미지의 부분에 상관시켜 제 1 컴퓨팅 디바이스 상에서 동작중인 애플리케이션에 대한 상응하는 사용자 입력을 결정하는 단계, 및 상응하는 사용자 입력을 제 1 컴퓨팅 디바이스 상에서 동작중인 애플리케이션에 통신하는 단계를 포함할 수도 있다.
추가 양태의 방법은 디스플레이 이미지의 부분들이 제 2 컴퓨팅 디바이스에 전송될 수 있음을 제 2 컴퓨팅 디바이스에 통지하는 단계; 제 2 컴퓨팅 디바이스의 사용자에게 디스플레이 이미지의 부분을 수신하는 것의 동의(agreement)를 확인할 것을 프롬프트하는 단계; 제 2 컴퓨팅 디바이스의 사용자가 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였는지를 결정하는 단계; 및 제 2 컴퓨팅 디바이스의 사용자가 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스에서 수신하는 단계를 포함할 수도 있다.
추가 양태의 방법은 제 2 컴퓨팅 디바이스의 디스플레이의 특성들을 제 1 컴퓨팅 디바이스 상에서 실행중인 애플리케이션에 제공하는 단계; 및 애플리케이션으로부터의 디스플레이 이미지를 제 2 컴퓨팅 디바이스의 디스플레이와 호환되는 포맷으로 프레임 버퍼 내로 수신하는 단계를 포함할 수도 있다. 이 양태에서 이미지는 제 1 컴퓨팅 디바이스의 디스플레이보다 큰 디스플레이를 위해 크기변경될 수도 있다.
추가 양태의 방법은 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 제 3 컴퓨팅 디바이스에 전송하는 단계; 수신된 숨은 윈도 객체의 디스플레이 데이터를 제 3 컴퓨팅 디바이스의 프레임 버퍼에 저장하는 단계; 및 제 3 컴퓨팅 디바이스의 프레임 버퍼에 저장된 숨은 윈도 객체의 디스플레이 데이터를 이용하여 제 3 컴퓨팅 디바이스 상의 디스플레이를 랜더링하는 단계를 포함할 수도 있다.
추가의 양태는 위에서 설명된 갖가지 방법들을 구현하도록 구성된 컴퓨팅 디바이스를 구비한다. 추가의 양태는 위에서 설명된 갖가지 방법들을 시스템으로서 구현하도록 구성된 다수의 통신 디바이스들을 구비한 통신 시스템을 구비한다. 일 양태에서 각각의 컴퓨팅 디바이스의 프로그램가능 프로세서는 앞서의 방법들의 프로세스들을 수행하도록 하는 프로세서 실행가능 명령들로 구성된다. 다른 양태에서, 컴퓨팅 디바이스들은 앞서의 방법들의 프로세스들을 달성하기 위한 수단을 포함한다.
갖가지 양태들은 또한 앞서의 방법들의 프로세스들을 수행하기 위한 명령들이 저장되어 있는 컴퓨터-판독가능 저장 매체를 구비한 컴퓨터 프로그램 제품을 구비한다.
첨부 도면들은 여기에 통합되고 이 명세서의 일부를 구성하는 것으로서, 본 발명의 예시적인 양태들을 도시하고, 위에서 주어진 전반적인 설명 및 아래에 주어지는 상세한 설명과 함께 본 발명의 특징들을 설명하는데 기능한다.
도 1은 갖가지 양태들과 함께 사용하기에 적합한 통신 시스템의 시스템 블록도이다.
도 2a는 모바일 디바이스 상에서 제시되는 일 예의 애플리케이션 디스플레이이다.
도 2b는 도 2a에 보인 애플리케이션 디스플레이의 부분들을 구비하는 손목시계 디바이스 상에 제시된 디스플레이의 일 예이다.
도 3a는 웹 브라우저 스크린 이미지 상에 제시된 웹페이지의 일 예이다.
도 3b는 도 3a에 보인 웹페이지 디스플레이의 부분을 구비하는 디지털 화상 (picture) 프레임 디바이스 상에 제시된 디스플레이의 일 예이다.
도 4는 일 양태에 따른 소프트웨어 구성요소 블록도이다.
도 5는 다른 양태에 따른 소프트웨어 구성요소 블록도이다.
도 6은 다른 양태에 따른 소프트웨어 구성요소 블록도이다.
도 7은 다른 양태에 따른 소프트웨어 구성요소 블록도이다.
도 8은 일 양태에 따라 디스플레이 매시업(mashup)들을 주변 디바이스에 이식(porting)하기 위한 방법의 프로세스 흐름도이다.
도 9는 일 양태에 따른 터치스크린 디스플레이를 갖는 모바일 디바이스에 대한 사용자 인터페이스 상호작용의 예시도이다.
도 10은 일 양태에 따라 애플리케이션 디스플레이의 부분들을 주변 디바이스에 이식하는 방법의 프로세스 흐름도이다.
도 11은 다른 양태에 따라 애플리케이션 디스플레이의 부분들을 주변 디바이스에 이식하는 방법의 프로세스 흐름도이다.
도 12는 일 양태에 따라 애플리케이션 디스플레이의 부분들을 주변 디바이스에 이식하는 방법의 프로세스 흐름도이다.
도 13은 다른 양태에 따른 소프트웨어 구성요소 블록도이다.
도 14는 일 양태에 따라 애플리케이션 디스플레이의 부분들을 주변 디바이스에 이식하는 방법의 프로세스 흐름도이다.
도 15는 다른 양태에 따른 소프트웨어 구성요소 블록도이다.
도 16은 갖가지 양태들과 함께 사용하기에 적합한 모바일 디바이스의 구성요소 블록도이다.
도 17은 갖가지 양태들과 함께 사용하기에 적합한 일 예의 컴퓨터의 회로 블록도이다.
도 18은 갖가지 양태들과 함께 사용하기에 적합한 일 예의 손목시계 주변 디바이스의 구성요소 블록도이다.
도 1은 갖가지 양태들과 함께 사용하기에 적합한 통신 시스템의 시스템 블록도이다.
도 2a는 모바일 디바이스 상에서 제시되는 일 예의 애플리케이션 디스플레이이다.
도 2b는 도 2a에 보인 애플리케이션 디스플레이의 부분들을 구비하는 손목시계 디바이스 상에 제시된 디스플레이의 일 예이다.
도 3a는 웹 브라우저 스크린 이미지 상에 제시된 웹페이지의 일 예이다.
도 3b는 도 3a에 보인 웹페이지 디스플레이의 부분을 구비하는 디지털 화상 (picture) 프레임 디바이스 상에 제시된 디스플레이의 일 예이다.
도 4는 일 양태에 따른 소프트웨어 구성요소 블록도이다.
도 5는 다른 양태에 따른 소프트웨어 구성요소 블록도이다.
도 6은 다른 양태에 따른 소프트웨어 구성요소 블록도이다.
도 7은 다른 양태에 따른 소프트웨어 구성요소 블록도이다.
도 8은 일 양태에 따라 디스플레이 매시업(mashup)들을 주변 디바이스에 이식(porting)하기 위한 방법의 프로세스 흐름도이다.
도 9는 일 양태에 따른 터치스크린 디스플레이를 갖는 모바일 디바이스에 대한 사용자 인터페이스 상호작용의 예시도이다.
도 10은 일 양태에 따라 애플리케이션 디스플레이의 부분들을 주변 디바이스에 이식하는 방법의 프로세스 흐름도이다.
도 11은 다른 양태에 따라 애플리케이션 디스플레이의 부분들을 주변 디바이스에 이식하는 방법의 프로세스 흐름도이다.
도 12는 일 양태에 따라 애플리케이션 디스플레이의 부분들을 주변 디바이스에 이식하는 방법의 프로세스 흐름도이다.
도 13은 다른 양태에 따른 소프트웨어 구성요소 블록도이다.
도 14는 일 양태에 따라 애플리케이션 디스플레이의 부분들을 주변 디바이스에 이식하는 방법의 프로세스 흐름도이다.
도 15는 다른 양태에 따른 소프트웨어 구성요소 블록도이다.
도 16은 갖가지 양태들과 함께 사용하기에 적합한 모바일 디바이스의 구성요소 블록도이다.
도 17은 갖가지 양태들과 함께 사용하기에 적합한 일 예의 컴퓨터의 회로 블록도이다.
도 18은 갖가지 양태들과 함께 사용하기에 적합한 일 예의 손목시계 주변 디바이스의 구성요소 블록도이다.
갖가지 양태들이 첨부 도면들을 참조하여 상세히 설명될 것이다. 가능하면, 동일한 참조 번호들이 도면들 전체를 통해서 동일하거나 유사한 부분들을 참조하는데 사용될 것이다. 특정한 예들 및 구현예들에 대한 언급들은 예시의 목적을 위한 것이고, 발명 또는 청구항들의 범위를 제한하려는 의도는 아니다.
이 명세서에서, 용어 "예시적인"은 여기서는 "예, 사례, 또는 예시로서 기능한다"는 의미로 사용된다. "예시적인" 것으로서 여기서 설명된 어떤 구현예라도 다른 구현예들보다 바람직하거나 유익하다고 생각할 필요는 없다.
여기서 사용되는 바와 같이, 용어 "모바일 디바이스"는 예를 들어, 셀룰러 전화기들, 개인휴대 정보단말들 (PDA들), 팜탑 컴퓨터들, 랩톱 및 노트북 컴퓨터들, 무선 전자 메일 수신기들 (예컨대, Blackberry®및 Treo®디바이스들), 멀티미디어 인터넷 가능 셀룰러 전화기들 (예컨대, Blackberry Storm®, 그리고 무선 통신 모듈, 프로세서, 및 메모리를 구비한 유사한 개인용 전자 디바이스들을 포함하여, 프로그램가능 프로세서 및 디스플레이를 구현하는 것으로서, 존재할지도 모르거나, 또는 장래에 개발될 것인 어떤 형태의 프로그램가능 컴퓨팅 디바이스라도 포괄할 것을 의도하고 있다.
갖가지 양태들은 제 1 컴퓨팅 디바이스 상에서 실행중인 애플리케이션에 의해 생성된 이미지의 선택된 부분들을 여기서는 주변 컴퓨팅 디바이스라고도 하는 제 2 컴퓨팅 디바이스의 보기 윈도(view window)에서 디스플레이되도록 디스플레이하기 위한 방법들 및 디바이스들을 제공한다. 참조의 편이를 위해, 디스플레이 이미지를 생성하는 제 1 컴퓨팅 디바이스는 "마스터 디바이스"라고 하는 한편, 이미지를 수신하고 디스플레이하는 제 2 또는 주변 컴퓨팅 디바이스는 "슬레이브 디바이스"라고 한다.
갖가지 양태들은 전문화된 애플리케이션들을 활용하여 마스터 및 슬레이브 디바이스들로부터의 디스플레이 버퍼들의 공유 및 통신 시에 도움을 줄 수도 있다. 참조의 편이를 위해, 이러한 전문화된 애플리케이션들은 여기서는 "헬퍼 앱들"이라고 한다. 마스터 헬퍼 앱은 디스플레이 데이터를 슬레이브 디바이스에 통신하기 위해 디스플레이 이미지들 및 버퍼들을 준비하는 것을 돕도록 마스터 디바이스 상에서 구현될 수도 있고, 슬레이브 헬퍼 앱은 디스플레이 버퍼들을 수신하고 관련된 이미지들을 랜더링하는 것을 돕도록 슬레이브 디바이스 상에서 구현될 수도 있다.
마스터 디바이스 상에서 실행하는 마스터 헬퍼 앱은 마스터 디바이스의 로(low) 레벨 서브시스템에 액세스하는 것에 특권을 주는 것인데, 이 마스터 헬퍼 앱은 운영 체제 (operating system) 내부에 포함된다. 이 마스터 헬퍼 앱은 사용자 입력, 이를테면 핫 키 또는 마우스 클릭을 마스터 디바이스 상에 제공함으로써 처리되는 디스플레이 공유를 사용자가 개시할 수 있게 한다. 마스터 헬퍼 앱은 마스터 디바이스 상에 디스플레이되는 콘텐츠의 하나 이상의 영역들을 슬레이브 디바이스 상에서의 공유를 위해 사용자가 선택할 수 있게 한다. 마스터 디바이스가 터치스크린 디스플레이를 가진다면, 사용자는 콘텐츠의 영역들을 서버 디바이스 상에서의 공유를 위해 특별한 제스처를 사용하여 선택할 수도 있다. 마스터 헬퍼 앱은 사용자가 디스플레이되는 콘텐츠의 다수의 영역들을 선택하는 것을 가능하게 할 수도 있다. 마스터 헬퍼 앱은 선택된 콘텐츠 영역들의 각각에 대한 경계 박스들을 계산할 수도 있다. 마스터 디바이스는 마스터 디바이스와의 통신 범위 내에 있는 슬레이브 디바이스들을 이를테면 Bluetooth® 통신 링크를 경유하여 발견하고, 디스플레이를 위해 선택된 콘텐츠 영역들을 수신하기 위한 특정 슬레이브 디바이스를 사용자가 선택할 수 있게 한다. 일단 슬레이브 디바이스가 식별되면, 마스터 헬퍼 앱은 디바이스의 시스템 프레임 버퍼를 식별된 콘텐츠 영역들을 유지하기에 충분할 정도로 확장할 수도 있다. 마스터 헬퍼 앱은 콘텐츠를 경계 박스 내에 디스플레이하는 애플리케이션을 윈도 관리자(windows manager)에게 요청할 수도 있고 그 애플리케이션의 전체 콘텐츠들을 새로 할당된 프레임 버퍼에 끌어들이도록 그 애플리케이션에 지시할 것을 윈도 관리자에게 요청할 수도 있다. 사용자에게는 마스터 디바이스 상에서의 디스플레이를 위해 애플리케이션을 여전히 기본 버퍼에 끌어들일지를 나타내도록 프롬프트될 수도 있다. 윈도 관리자는 애플리케이션으로부터의 디스플레이 출력을 기본 버퍼 또는 새로 할당된 프레임 버퍼 중의 하나 또는 양쪽 모두에 복사할 수도 있다. 마스터 헬퍼 앱은 슬레이브 디바이스에 대한 접속을 만들고 슬레이브 디바이스 상에서 실행중인 슬레이브 헬퍼 앱을 호출하여 선택된 콘텐츠 영역들의 통신을 달성한다.
사용자는 선택된 콘텐츠 영역들을 슬레이브 디바이스 상에서 디스플레이하는 옵션을 다음 3개의 모드들 중의 하나로 제공할 수도 있다: 전체 디스플레이 장악; 선택된 콘텐츠 영역들을 슬레이브 디바이스의 현재 디스플레이 콘텐츠 위에 오버레이(투명도 레벨을 규정하기 위한 슬라이더를 가짐); 및 양쪽 콘텐츠들을 동일한 스크린 상에 맞춤(fitting).
마스터 디바이스는 슬레이브 디바이스에 그것의 디스플레이 및 처리 능력들에 관하여 질문(query)하여 처리가 진행하여야 하는 방법을 결정할 수도 있다. 일부 구현예들에서, 슬레이브 디바이스는 마스터 디바이스보다는 적은 처리 능력 및 메모리를 가질 것이고, 이 경우 마스터 디바이스는 이미지 프로세싱의 많은 부분을 행하는데 사용될 수도 있다. 다른 구현예들에서, 슬레이브 디바이스는 마스터 디바이스보다는 큰 처리 능력 및 메모리를 가질 것이고, 이 경우 마스터 디바이스는 이미지 데이터를 재처리를 위해 슬레이브 디바이스에 송신할 것이다.
수행되는 처리는 슬레이브 디바이스를 위해 사용자에 의해 선택되는 디스플레이 모드에 의존할 수도 있다. 마스터 디바이스에 의해 제공되는 디스플레이 콘텐츠가 슬레이브 디바이스의 전체 디스플레이를 점유 (즉, "장악(takeover)") 하는 경우에, 마스터 디바이스 상의 마스터 헬퍼 앱은 선택된 콘텐츠 영역들을 마스터 디바이스 프레임 버퍼로부터 획득하며, 그 콘텐츠를 힙(heap) 메모리에서 슬레이브 디바이스의 디스플레이 사이즈에 맞도록 크기변경하고, 크기변경된 데이터를, 이 데이터를 수용하고 그것을 슬레이브 디바이스의 프레임 버퍼에 디스플레이를 위해 저장하는 슬레이브 헬퍼 앱에 송신할 수도 있다.
마스터 디바이스에 의해 제공되는 디스플레이 콘텐츠가 슬레이브 디바이스의 콘텐츠에 오버레이될 경우 (즉, "오버레이 모드") 에, 마스터 디바이스 상의 마스터 헬퍼 앱은 슬레이브 디바이스에 그것의 현재 프레임 버퍼 콘텐츠를 요구한다. 그러면 슬레이브 디바이스에 의해 제공되는 이 디스플레이 정보는 마스터 디바이스 디스플레이의 선택된 콘텐츠 영역들과 마스터 디바이스 프레임 버퍼에서 블렌드되며, 그 후 마스터 헬퍼 앱은 결과적인 디스플레이 데이터를 슬레이브 헬퍼 앱에 송신하며, 슬레이브 헬퍼 앱은 그 데이터를 슬레이브 디바이스의 프레임 버퍼에 디스플레이를 위해 넣어 둔다.
마스터 디바이스에 의해 제공되는 디스플레이 콘텐츠가 슬레이브 디바이스 디스플레이 콘텐츠 옆의 슬레이브 디바이스 디스플레이에 제시될 것이고 (즉, "양쪽 맞춤 모드(fit both mode)") 마스터 디바이스는 더 큰 처리 능력을 가지는 경우에, 마스터 헬퍼 앱은 슬레이브 디바이스에 그것의 현재 프레임 버퍼 콘텐츠들을 요구하고, 그 콘텐츠들을 마스터 헬퍼 앱은 수신하고 크기변경하여 마스터 디바이스 디스플레이의 선택된 콘텐츠 영역들에 방을 제공한다. 또한 마스터 헬퍼 앱은 마스터 디바이스 디스플레이의 선택된 콘텐츠 영역들을 크기변경하여서 양쪽 디스플레이들이 슬레이브 디바이스의 디스플레이 영역 내에서 사이드-바이-사이드 (side-by-side) 로 맞추어질 수 있게 한다. 그러면 2개의 크기변경된 디스플레이들의 결합물은 슬레이브 헬퍼 앱에 송신되는데 슬레이브 헬퍼 앱은 이 데이터를 슬레이브 디바이스의 프레임 버퍼에 디스플레이를 위해 넣어둔다.
디스플레이의 부분을 마스터 디바이스로부터 슬레이브 디바이스로 이동시키는 것 외에도, 슬레이브 디바이스는 디스플레이되는 콘텐츠에 관련된 사용자 입력들을 수용할 수 있는데 이 사용자 입력들은 마스터 디바이스 상에서 실행중인 애플리케이션에 다시 전해져서 슬레이브 디바이스 상의 사용자 인터페이스 능력을 사용가능하게 한다. 슬레이브 디바이스 상에서 수신된 키스트로크들은 마스터 디바이스 상의 마스터 헬퍼 앱에 제공되는데 이 마스터 헬퍼 앱은 수신된 키스트로크들을 입력 커맨드들로서 해석하고 적절한 키스트로크 정보를 디스플레이를 생성하는 애플리케이션에 윈도 관리자를 경유하여 전해준다. 실행중인 애플리케이션은 적절한 처리를 달성하고 디스플레이 콘텐츠들을 2차 프레임 버퍼에서 정상적인 것으로서 랜더링할 수 있는데, 이는 상응하는 디스플레이가 슬레이브 디바이스 상에서 이루어지게 할 것이다.
일 양태에서, 마스터 헬퍼 앱 및 슬레이브 헬퍼 앱은 단일 컴퓨팅 디바이스 상에서 동시에 실행할 수 있다. 이 양태는 2개의 컴퓨팅 디바이스들이 "프록시 디바이스"라고 하는 제 3 컴퓨팅 디바이스와 함께 동작할 수 있게 하는데 이 제 3 컴퓨팅 디바이스는 갖가지 디스플레이 콘텐츠들의 크기변경, 맞춤 및/또는 블렌딩에 연관된 처리의 일부를 수행하는데 사용될 수도 있다. 일 양태에서, 이러한 프록시 디바이스는 그것이 디스플레이 처리 트랜잭션을 핸들링하는데 필요한 처리 능력, 메모리 및 데이터 접속 속력을 가지는 경우에만 사용될 수도 있다. 프록시 디바이스가 디스플레이 처리의 일부를 달성하기 위해 사용되는 경우, 마스터 디바이스 및 슬레이브 디바이스 양쪽 모두는 선택된 콘텐츠를 프록시 디바이스에 재처리를 위해 송신한다. 프록시 디바이스는 요구된 디스플레이 이미지 처리를 수행하고 처리된 데이터를 슬레이브 디바이스에 디스플레이를 위해 송신한다.
갖가지 양태들이 다양한 유선 및 무선 통신 네트워크들에서 채용될 수도 있다. 예로서, 도 1은 갖가지 양태들과 함께 사용하기에 적합한 무선 및 셀룰러 데이터 통신 링크들을 채용하는 무선 통신 네트워크 (10) 를 나타낸다. 이 통신 네트워크 (10) 는 다양한 컴퓨팅 디바이스들, 이를테면 그래픽 사용자 인터페이스를 가지는 모바일 디바이스 (5) 를 구비할 수도 있다. 모바일 디바이스 (5) 는 셀룰러 신호들 (3) 을 셀룰러 기지 사이트 또는 기지국 (14) 으로부터 전송하고/으로 수신하기 위한 트랜시버 및 네트워크 안테나로 구성될 수도 있다. 이 예의 네트워크 (10) 에서, 기지국 (14) 은 셀룰러 네트워크를 운영하는데 필요한 요소들, 이를테면 모바일 교환국 (MSC)(16) 을 구비하는 셀룰러 네트워크의 일 부분이다. 동작시 MSC (16) 는 모바일 디바이스 (5) 가 셀룰러 데이터 호들을 생성하고 수신할 때 호들 및 메시지들을 기지국 (14) 을 경유하여 모바일 디바이스 (5) 에 그리고 모바일 디바이스 (5) 로부터 라우팅할 수 있다. 또한 모바일 디바이스 (5) 는 셀룰러 네트워크를 인터넷 (12) 에 접속시키는 게이트웨이 (18) 를 통해 데이터 패킷들을 송신하고 수신할 수도 있다.
또한 모바일 디바이스 (5) 는 다른 컴퓨팅 디바이스들과의 개인 영역 네트워크, 이를테면 Bluetooth® 무선 통신 링크를 확립할 수 있는 개인 영역 네트워크 신호들 (2) 을 전송하고 수신하기 위한 트랜시버 및 안테나로 구성될 수도 있다. 모바일 디바이스 (5) 는 이러한 개인 영역 네트워크를 이용하여 다른 컴퓨팅 디바이스들, 이를테면 랩톱 컴퓨터 (7), 프로그램가능 디스플레이를 가지는 전자 손목 시계 (6), 및 디지털 화상 프레임 (8) 과 접속할 수도 있다. 랩톱 컴퓨터 (7) 와 같은 컴퓨팅 디바이스들의 일부는 인터넷 (12) 에 대한 접속, 이를테면 유선 또는 무선 근거리 통신망 접속을 확립하기 위한 하드웨어 및 네트워크 접속들로 구성될 수도 있다.
통신 네트워크 (10) 에서 컴퓨팅 디바이스들을 가지는 갖가지 양태들의 사용은 다수의 유용한 애플리케이션들을 사용가능하게 할 수도 있다. 예를 들어, 사용자들은 애플리케이션을 하나의 컴퓨팅 디바이스, 이를테면 모바일 디바이스 (5) 또는 랩톱 컴퓨터 (7) 상에서 실행하고, 애플리케이션 디스플레이의 일부 또는 전부를 개인 영역 네트워크 전송들 (2) 을 통해 더 편리한 디스플레이 디바이스, 이를테면 디지털 화상 프레임 (8) 또는 전자 손목시계 디스플레이 (6) 에 전송할 수 있다. 다른 예로서, 사용자가 전자 메일을 모바일 디바이스 (5) 상에서 셀룰러 무선 네트워크 전송 (3) 을 경유하여 수신할 수도 있고, 개인 영역 네트워크 전송들 (2) 에 의해 통신되는 디스플레이 정보를 가지고서, 전자 손목시계 디스플레이 (6) 상에서 이메일이 수신되었다는 표시를 볼 수 있게 되거나 또는 이메일 자체의 부분들을 볼 수 있게 될 수도 있다. 추가 예로서, 사용자는 인터넷 (12) 상의 웹사이트로부터의 콘텐츠를 유선 접속 (랩톱 컴퓨터 (7) 를 위해 도시된 바와 같음) 을 경유하여, 또는 광역 무선 네트워크 전송 (3)(모바일 디바이스 (5) 를 위해 도시된 바와 같음) 을 경유하여 액세스할 수도 있고, 그 콘텐츠의 적어도 부분들을 디지털 화상 프레임 (8) 또는 전자 손목시계 디스플레이 (6) 상에, 개인 영역 네트워크 통신들 (2) 에 의해 통신되는 디스플레이 정보와 함께 디스플레이하기 위해 선택할 수도 있다. 그래서, 사용자는 인터넷 (12) 상의 스트리밍 비디오 콘텐츠 소스를 개인용 컴퓨터 (7) 를 경유하여 액세스할 수 있고 그 비디오 이미지들을 디지털 화상 프레임 (8) 상에 제시할 수 있다.
도 14 및 15를 참조하여 아래에서 더 충분히 설명되는 바와 같이, 제 1 디바이스 상에서 생성된 이미지 콘텐츠의 부분들을 제 2 디바이스의 디스플레이 상에 제 3 디바이스의 처리 능력을 이용하여 디스플레하는 일 양태가 가능하다. 이는 컴퓨팅 디바이스들, 이를테면 모바일 디바이스 (5), 전자 손목시계 (6), 및 랩톱 컴퓨터 (7) 가 디스플레이 데이터를 개인 영역 네트워크 전송들 (2) 을 경유하여 교환하는 것을 가능하게 할 수도 있는 통신 네트워크 (10) 에 의해 가능하게 된다. 예를 들어, 디스플레이 콘텐츠를 모바일 디바이스 (5) 상에서 광역 무선 네트워크 전송 (3) 을 경유하여 수신하는 사용자는 개인 영역 네트워크 전송들 (2) 에 의해 운반되는 3개의 디바이스들 사이의 데이터 통신들을 가지고서, 랩탑 컴퓨터 (7) 를 이용하여 전자 손목시계 디스플레이 (6) 의 사이즈 내에 맞게 하는데 필요한 이미지 재포맷팅의 일부를 달성함으로써 디스플레이의 일부 벽을 전자 손목시계 (6) 에 이식할 수도 있다.
갖가지 양태들은 그래픽 사용자 인터페이스들 (GUI) 로 구성된 갖가지 컴퓨팅 디바이스들에서 발견되는 구성요소들을 이용할 수도 있다. 컴퓨팅 기술에서 주지된 바와 같이, GUI 환경들은 갖가지 화소 어레이들을 그래픽스를 디스플레이하기 위해 이용할 수도 있다. 이러한 어레이들은 일반적으로 버퍼들, 래스터들(rasters), 화소 버퍼들, 화소 지도들, 또는 비트맵들이라고 할 수도 있다. 제 1 GUI 환경들은 애플리케이션의 출력을 디스플레이 (예컨대, 모니터) 상에 디스플레이하기 위해 단일 화소 버퍼를 활용하였다. 이러한 화소 버퍼는 프레임 버퍼라고 할 수도 있다. 단일 프레임 버퍼를 가지는 GUI 환경에서, 애플리케이션들은 화소 컬러 값들에 상응하는 데이터를 프레임 버퍼 내에 복사할 수도 있고, 모니터는 프레임 버퍼에 저장된 데이터에 따라 스크린에 색을 표현할 수 있다. 디스플레이를 업데이트하기 위하여 디스플레이 드라이버에 의해 액세스되는 프레임 버퍼는 시스템 프레임 버퍼라고 할 수도 있다. 시스템 프레임 버퍼들을 포함한 화소 버퍼들은 종종 이중 버퍼링 및 삼중 버퍼링으로서 알려진 기법들을 통해 다수의 어레이들을 이용할 수 있지만, 갖가지 버퍼들은 여전히 단일 버퍼라고 할 수도 있다.
현대의 GUI 환경들은 다수의 그래픽 애플리케이션들이 윈도잉(windowing)이라 불리우는 개념을 통해 동일한 디스플레이에 액세스하는 것을 허용할 수도 있다. 이러한 환경에서, 운영 체제는 시스템 프레임 버퍼를 대부분의 애플리케이션들로부터 숨길 수 있다. 시스템 프레임 버퍼에 직접 액세스하는 대신, 각각의 애플리케이션은 그것들의 디스플레이 출력을 윈도 버퍼라고도 할 수도 있는 화소 버퍼에 송신할 수도 있다. 윈도 버퍼는 윈도 관리자, 즉 윈도식(windowed) GUI 환경의 일부인 애플리케이션에 의해 판독될 수도 있다. 윈도 관리자는 시스템 프레임 버퍼 내에서 윈도 버퍼의 콘텐츠들이 저장되어야 하는 그런 곳이 있다면 그 곳을 결정할 수 있다. 예를 들면, 윈도식 GUI는 예를 들어 윈도들 내에서 실행중인 3개의 애플리케이션들을 가질 수도 있다. 애플리케이션 A를 위한 윈도가 최소화된다면, 그것의 출력 (즉, 그것의 윈도 버퍼의 콘텐츠들) 은 디스플레이되지 않을 수도 있고 그것의 윈도 버퍼의 콘텐츠들은 윈도 관리자에 의해 무시될 수도 있다. 애플리케이션 B 및 애플리케이션 C를 위한 윈도들이 양쪽 모두가 데스크톱 상에서 활성화되지만 애플리케이션 B를 위한 윈도가 윈도 애플리케이션 C를 위한 윈도를 부분적으로 가린다 (즉, 윈도 B가 윈도 C에 부분적으로 포개진다) 면, 윈도 관리자는 애플리케이션 B의 윈도 버퍼의 전체 콘텐츠들을 시스템 프레임 버퍼에 복사할 것이지만, 애플리케이션 C의 윈도 버퍼의 부분만을 시스템 프레임 버퍼에 복사할 수도 있다.
갖가지 윈도들을 디스플레이하는 것에 더하여, 윈도 관리자는 또한 윈도들에 관한 정보를 애플리케이션들에 제공할 수도 있다. 예를 들어, 윈도 관리자는 애플리케이션에 그것의 윈도가 최소화, 크기변경, 또는 보이지 않고 숨겨질 때를 통지할 수도 있다. 윈도 관리자는 또한 윈도의 사이즈 또는 위치와 같은 윈도에 대한 정보를 제공할 수도 있다. 게다가, 윈도 관리자는 애플리케이션에 사용자가 이 애플리케이션의 윈도와 상호작용 (예컨대, 마우스 포인터가 그 애플리케이션을 위한 윈도 내에 위치되는 동안 마우스 버튼을 클릭) 할 때를 통지할 수도 있다.
윈도식 애플리케이션을 형성하는 갖가지 객체들 (예컨대, 갖가지 화소 버퍼들 및 갖가지 위젯들) 은 윈도식 애플리케이션의 인스턴스의 자식 객체들이라고 간주될 수도 있다. 일반적으로, 텍스트 편집기와 같은 간단한 애플리케이션은 다수의 스레드들을 구비할 수도 있는 단일 운영 체제 프로세스에 해당할 것이다. 일부 더 복잡한 애플리케이션들은 사용자에게 하나의 애플리케이션으로서 보여지는 다수의 프로세스들을 가질 것이다. 당업자들에 의해 이해될 바와 같이, 이 프로세스들은 부모 및 자식 프로세스들로서 함께 링크될 수도 있다.
앞서의 설명은 윈도식 GUI 환경에서 디스플레이들을 생성하기 위한 일 예의 방법일 뿐이다. 많은 윈도 관리자들, 특히 비복합(non-compositing) 윈도 관리자들은, 각각의 윈도마다 윈도 버퍼를 사용하지 않는다. 이러한 윈도 관리자들은 활성 윈도들에 그것들의 출력에 대해 분명하게 묻고 가려진 윈도들에 그것들의 출력이 필요하지 않음을 통지할 수도 있다. 게다가, 윈도들은 각각의 윈도 요소를 위해 버퍼를 보관하지 않을 수도 있다. 그보다는, 일부 윈도 요소들은 벡터 그래픽스 또는 알고리즘을 이용하여 화소 이미지들을 생성하는 유사한 방법을 이용할 수도 있다. 일부 윈도 객체들은 그것의 갖가지 하위구성요소들의 화소 출력을 저장하는 것에 메모리의 부분을 전용하지 않을 수도 있다. 그보다는, 그것들의 화소 출력이 요청되었을 때, 이러한 윈도 객체들은 갖가지 하위구성요소들의 화소 출력을 단순히 종합할 것인데, 이는 메모리에 저장된 전용 화소 어레이에 기초할 수도 있고 기초하지 않을 수도 있다. 그러므로, 여기서 사용되는 바와 같이, 화소 버퍼 (예컨대, 윈도 버퍼, 보기 윈도 버퍼, 또는 랜더(render) 버퍼) 는 화소 값들을 저장하기 위한 전용 메모리 부분, 또는 기능 호출의 결과에 상응하는 화소 값들을 저장하기 위한 임시 메모리 부분을 의미한다.
윈도식 GUI 환경들로 구성된 컴퓨팅 디바이스들은 데스크톱 컴퓨터들로 한정되지 않는다. 모바일 디바이스들은 종종 윈도 관리자를 가지는 GUI 환경들을 구비한다. 윈도 관리자를 가지는 GUI 환경들은 통합형 디스플레이 또는 비디오 신호, 이를테면 HDMI 출력을 운반할 수 있는 접속 또는 단순한 네트워크 인터페이스를 가지는 가상의 어떤 컴퓨팅 디바이스의 부분일 수도 있다. 이러한 디바이스들은 몇 가지만 이름을 대면, 전자 손목시계들, 비디오 고글들, 디지털 화상 프레임들, 텔레비전들, DVD 플레이어들, 및 셋톱 케이블 박스들을 포함할 수도 있다.
예시로서, 윈도식 GUI 환경들로 구성된 모바일 디바이스 (5) 및 전자 손목시계 (6) 가 그래픽 애플리케이션이 다수의 디스플레이들 간에 공유되는 방법을 도시하기 위해 도 2a 및 2b에서 나타낸다. 도시된 예에서는, 도 2a의 윈도식 GUI (20) 내에서 포커 애플리케이션을 실행하는 모바일 디바이스 (5) 가 나타나 있다. 이 예시적인 포커 애플리케이션은 게임의 상황을 나타내는 인터페이스 디스플레이를, 사용자로부터 게임 플레이를 제어하기 위해 터치스크린 입력들을 수신하기 위한 가상 키들 (31, 32, 33) 과 함께 구비한다.
모바일 디바이스 (5) 의 윈도식 GUI (20) 는 둘 이상의 애플리케이션들이 동일한 디스플레이를 공유하도록 할 수도 있다. 통상, 윈도식 GUI 시스템은 애플리케이션 디스플레이 및 다른 애플리케이션 디스플레이 사이의 토글링을 가능하게 한다. 예를 들어, 사용자가 착신 음성 호를 수신할 때, 윈도 관리자는 전화 호 애플리케이션을 위한 그래픽 인터페이스를 디스플레이하기 위하여 포커 게임을 숨길 수도 있다. 그러나, 애플리케이션 디스플레이들 간을 토글링하는 것은 일부 상황들 또는 애플리케이션들에서는 이상적인 것이 아닐 수도 있다. 모바일 디바이스 (5) 는 다수의 애플리케이션들 간에 디스플레이를 동시에 공유하기 위한 다른 방법들, 이를테면 하나의 애플리케이션의 출력의 다른 애플리케이션의 출력에의 알파 블렌딩(alpha blending) 또는 데스크톱 운영 체제들의 사용자들에게 친숙한 전통적인 이동가능 및 크기변경가능 윈도들 내에 애플리케이션 인터페이스들을 디스플레이하는 것을 제공할 수 도 있다. 그러나, 디스플레이를 공유하는 것은 일부 애플리케이션들에 대해 이상적이지 않다. 예를 들어, 사용자가 모바일 디바이스 (5) 상의 비디오를 관람하면서 도 2a에 보인 포커 게임을 플레이하는 중이라면, 이 사용자는 영화 및 게임 사이의 토클 없이 그리고 게임 정보를 나타내기 위해 비디오의 부분을 가리는 일 없이 비디오를 전체 디스플레이 상에서 보기를 원할 수도 있다. 갖가지 양태들은 하나의 컴퓨팅 디바이스 상에서 실행하는 애플리케이션을 다른 컴퓨팅 디바이스 상에서 디스플레이할 수 있게 함으로써 이들 단점들을 극복한다.
도 2b는 포커 게임 디스플레이의 부분들이 모바일 디바이스 (5) 로부터 이식되어온 GUI 윈도 (40) 를 가지는 전자 손목시계 디스플레이 (6) 를 나타내고 있다. 갖가지 양태들은 사용자가 이 사용자에 가장 관계가 있는 애플리케이션의 부분들, 이를테면 그의 카드들 및 돈을 디스플레이하는 부분들을 선택하고 그런 선택된 부분들을 전자 손목시계 디스플레이 (6) 상에 제시할 수 있게 한다.
디스플레이 이미지를 양태에 따라 생성하기 위하여, 사용자는 매시업되어 전자 손목시계 디스플레이 (6) 에 이식되어야할 윈도식 GUI (20) 의 부분들을 모바일 디바이스 (5) 상에서 지정할 수도 있다. 이는 도 2a에 도시되어 있는데, 이 도면은 손목시계 디스플레이 (6) 의 윈도식 GUI (40) 에서 보여져야 할 윈도식 GUI (20) 의 부분들을 강조표시하는 사용자 선택 경계 박스들 (21-30) 을 나타내고 있다. 예를 들어, 선택 경계 박스들 (21-25) 은 테이블 상에 있는 카드들의 값들을 보이는 포커 애플리케이션의 부분들을 선택한다. 그래서 그들 카드들의 상황 및 값들을 보이는 디스플레이를 전자 손목시계 (6) 상에 제시하기 위하여, 사용자는 경계 박스들 (21-25) 내에서 디스플레이의 부분들을 선택하는 것만을 필요로 하여, 포커 애플리케이션 값들이 디스플레이 제 2 폼으로 변환된 것으로 해석될 필요를 없게 한다. 게다가, 사용자는 디스플레이될 정보를 선택할 수 있는데, 이식된 디스플레이에서 사용자가 한 벌의 카드들을 포함하지 않도록 선택한 예가 나타낸다.
대체 양태에서, 애플리케이션 자체는 슬레이브 디바이스에 이식되어야 하는 메인 디스플레이의 부분들을 결정할 수도 있다. 이 양태에서, 애플리케이션은 슬레이브 디바이스의 디스플레이 능력들을 알게 될 수도 있고 이 정보를 이용하여 그 디스플레이에 최적으로 맞는 디스플레이 이미지를 정의할 수도 있다. 예를 들어, 애플리케이션에 슬레이브 디바이스가 176×144 디스플레이를 가지다는 것이 알려지면, 그 애플리케이션은 이 사이즈의 디스플레이에 적합한 이미지를 랜더링할 수 있다. 이는 디스플레이의 화소 및 컬러 해상도에 기초하여, 이를테면 저 해상도 디스플레이들을 위한 단순한 아이콘들을 이용하여 그리고 고 해상도 디스플레이들을 위한 복잡한 아이콘들을 이용하여 객체들을 다르게 랜더링하는 것을 포함할 수도 있다. 디스플레이 이미지들의 자동 크기변경은 슬레이브 디바이스가 마스터 디바이스보다 더 크고, 더 유능한 디스플레이를 할 수 있을 때 다루는 정보가 더 많고 더 큰 디스플레이 이미지를 생성하는 것을 포함할 수도 있다. 예를 들어, 애플리케이션이 640×480 디스플레이를 가지는 셀룰러 전화기 마스터 디바이스 상에서 실행중이고 이미지는 1080P 고 선명 텔레비전으로 이식되어 있다면, 이 애플리케이션은 텔레비전 포맷에 적합한 더 크고 더 상세한 디스플레이 이미지를 랜더링할 수도 있다.
도 2a 및 2b는 또한 제 1 디바이스의 디스플레이 상에서 보여지는 가상 키들이 제 2 디바이스의 디스플레이에 이식될 수 있는 방법을 도시한다. 도시된 예에서, 사용자는 포커 게임 플레이를 제어하기 위한 가상 키들 (31, 32, 33) 을 포괄하는 선택 경계 박스 (30) 를 지정하고 있다. 결과로서, 가상 키들 (31, 32, 33) 은 전자 응답 디스플레이들 (6) 의 윈도식 GUI (40) 상에 나타난다. 아래에서 더 충분히 설명되는 바와 같이, 가상 키들의 이미지들을 제 2 디바이스에 보고하기 위한 방법들은 제 2 디바이스 상에서의 그들 가상 키들의 활성화를 제 1 디바이스 상에서 실행중인 애플리케이션을 위한 적절한 커맨드들로 번역할 수 있다. 그래서, 사용자가 윈도식 GUI (40) 를 가지는 손목 시계 상의 "Raise" 이미지를 누르면, 이 이벤트는 모바일 디바이스 (5) 에 통신될 수 있어서 그 이벤트가 마치 모바일 디바이스 자체 상에서 일어난 것처럼 "Raise" 가상 키 (31) 의 누름으로서 해석될 수 있다.
도 2a 및 2b는 갖가지 양태들의 일부 이점들을 도시한다. 예를 들어, 모바일 디바이스 (5) 는 온라인 게임 플레이를 가능하게 하는 것을 포함하여 포커 애플리케이션을 제시하는 처리 능력 및 네트워크 액세스 능력들을 가진다. 그러나, 그것의 사이즈는 모든 상황들에서 사용하기에 편리하지 않을 수도 있고, 디스플레이는 모바일 디바이스의 일부 사용들 동안, 이를테면 전화 통화를 행하는 동안 최소화될 필요가 있을 수도 있다. 다른 한편으로는, 전자 손목시계 디스플레이 (6) 는 그것을 손목에 차기에 매우 편리하고 그래서 가끔 모바일 디바이스 (5) 디스플레이가 불가능할 때 볼 수 있다. 그러나, 전자 손목시계 (6) 의 메모리 및 처리 능력은 그것의 작은 사이즈에 의해 어쩔 수 없이 제한된다. 그래서 이 양태는 사용자들이 애플리케이션을 실행하는데 충분한 컴퓨팅 능력을 가지지 않을 수도 있는 편리한 컴퓨팅 디바이스, 이를테면 전자 손목시계 디스플레이 상에서 애플리케이션의 사용을 즐길 수 있게 한다. 게다가, 사용자가 제 2 컴퓨팅 디바이스 상에서 제시될 디스플레이의 부분들을 지정할 수 있다는 것은 사용자들이 애플리케이션을 그들의 선호도들에 쉽사리 맞춤화할 수 있게 한다. 그래서, 갖가지 양태들은 사용자들이 2개의 컴퓨팅 디바이스들의 최선의 양태들을 이용할 수도 있게 한다.
갖가지 양태들은 사용자에게 유익함을 줄 수도 있는 다양한 다른 방식들로 사용될 수도 있다. 예를 들어, 도 3a 및 3b는 이미지를 포함하는 데스크톱 디스플레이의 부분이 디지털 화상 프레임 (8) 상의 디스플레이를 위해 선택되고 이식되는 구현예를 도시한다. 도 3a는 웹 캠 이미지를 디스플레이하는 웹 브라우저가 제시되는, 컴퓨터 워크스테이션의 데스크톱 디스플레이 (55) 를 나타내고 있다. 사용자가 웹 캠 이미지를 다른 디스플레이 디바이스, 이를테면 디지털 화상 프레임 (8) 상에 제시하기를 원한다면, 사용자는 본 발명의 양태를 구현하여 디지털 화상 프레임 (8) 에 전송될 데스크톱 디스플레이 (55) 의 부분 (58) 을 선택할 수 있다. 도 3b에 보인 바와 같이, 갖가지 양태들은 사용자가 디지털 화상 프레임 (8) 과 같은 주변 컴퓨팅 디바이스 상에 웹 브라우저 디스플레이의 소망의 부분만을 제시가능하게 할 수도 있다.
윈도식 GUI를 실행할 수 있는 컴퓨팅 디바이스들은 윈도 관리자를 활용하여, 입력 및 출력 디바이스들을 사용자-공간 애플리케이션들 중에서 공유하는 것을 조정할 수도 있다. 윈도 관리자 (120) 가 컴퓨터 운영 체제 (100) 의 다른 양태들과 상호작용하는 방법의 일 예가 도 4에 도시되어 있는데, 이 도면은 컴퓨팅 디바이스 상에서 구현될 수 있는 소프트웨어 구성요소들을 나타내고 있다. 컴퓨팅 디바이스는 통상 운영 체제 (100) 를 활용하여 갖가지 입력 및 출력 디바이스들, 이를테면 터치 스크린 센서 (102), 복수 개의 버튼들 (104), 및 디스플레이 (106) 를 관리한다. 컴퓨팅 디바이스 상의 갖가지 입력 디바이스들은 사용자 입력들을 전기적 신호들로 변환하기 위한 하드웨어 구성요소들, 및 운영 체제 (100) 가 전기적 신호들을 애플리케이션들에 적당한 방식으로 제공할 수 있게 하는 소프트웨어 구성요소들, 이를테면 디바이스 드라이버 양쪽 모두를 구비할 수도 있다.
컴퓨팅 디바이스의 갖가지 출력 디바이스들은 수신된 전기적 신호들에 기초하여 물리적으로 변화하는 하드웨어 구성요소들, 및 이 전기적 신호들을 운영 체제 (100) 의 다른 부분들로부터 수신된 커맨드들에 기초하여 생성하는 상응하는 소프트웨어 구성요소들, 이를테면 디바이스 드라이버를 구비할 수도 있다. 디스플레이 (106) 의 경우에, 그것의 디바이스 드라이버는 시스템 프레임 버퍼를 구비할 수 있다.
운영 체제 (100) 는 입력 및 출력 자원들의 일부를 윈도 관리자 (120) 에 독점적으로 할당할 수도 있다. 또한 운영 체제 (100) 는 윈도 관리자 (120) 에 할당되지 않은 하드웨어 및 소프트웨어 구성요소들에 상응하는 부가적인 입력 및 출력 디바이스들, 이를테면 네트워크 인터페이스에 상응하는 인터넷 접속부 (108) 를 가질 수도 있다. 일부 애플리케이션들은 직접 사용자 상호작용을 요구하지 않을 수도 있고 윈도 관리자 (120) 에 의해 관리되지 않는 하드웨어 자원들만을 활용할 것이다. 사용자 입력과는 독립적으로 동작하는 애플리케이션은 데몬(daemon)(또는 데몬 애플리케이션) 또는 종료 후 램상주(terminate and stay resident)("TSR") 애플리케이션이라고 할 수도 있다.
운영 체제 (100) 는 또한 디스플레이 (106) 의 사용을 요구할 수도 있는 복수 개의 애플리케이션 인스턴스들 (132a, 132b) 을 구비할 수도 있다. 또한 애플리케이션 인스턴스들 (132a, 132b) 은 이를테면 버튼들 (104) 및/또는 터치 스크린 센서 (102) 로부터의 사용자 입력을 주기적으로 요구할 수도 있다. 각각의 이러한 애플리케이션 인스턴스 (132a, 132b) 에 대해, 윈도 관리자는 상태 정보를 윈도 객체 (122a, 122b) 의 형태로 관리할 수도 있다. 이러한 상태 정보는 애플리케이션 인스턴스 (132a, 132b) 에 상응하는 윈도의 사이즈 및 형상과 윈도 관리자 (120) 가 애플리케이션 인스턴스 (132a, 132b) 와 통신하는데 사용할 수 있는 식별자를 포함할 수도 있다. 윈도 관리자 (120) 가 "복합(compositing)" 윈도 관리자에 유사한 양태에서, 윈도 객체 (122a, 122b) 는 애플리케이션 인스턴스 (132a, 132b) 의 그래픽 출력을 저장하는 버퍼를 구비할 수도 있다. 더 작은 디스플레이들을 가지는 일부 컴퓨팅 디바이스들은 애플리케이션들에 상응하는 이동가능 및 크기변경가능 윈도들을 사용자에게 제공하지 않을 수도 있다. 이러한 디바이스 상의 윈도 관리자 (120) 는 단지 사용자가 애플리케이션 디스플레이들 사이를 "토글(toggle)"하는 것만을 허용할 수 있다.
갖가지 양태들은 윈도 관리자 (120) 를 활용하여, 마스터 컴퓨팅 디바이스 상에서 실행중이고 슬레이브 컴퓨팅 디바이스 상에서 디스플레이중인 애플리케이션 (즉, 타깃 애플리케이션) 을 디스플레이할 수도 있다. 윈도 관리자 (120) 가 갖가지 애플리케이션들과 상호작용하여 이러한 디스플레이 방법을 달성하는 방법의 개략적인 예가 도 5에 도시되어 있는데, 이 도면은 마스터 및 슬레이브 컴퓨팅 디바이스들 상에서 구현될 수 있는 소프트웨어 구성요소들을 나타내고 있다. 마스터 디바이스 (5) 는 타깃 애플리케이션 인스턴스 (134) 를 호스팅하는 컴퓨팅 디바이스 (예컨대, 모바일 디바이스) 일 수 있다. 타깃 애플리케이션 인스턴스 (134) 는 마스터 디바이스 (5) 의 프로세서 및 메모리에서 실행하고 마스터 디바이스 (5) 의 자원들, 이를테면 인터넷 접속부 (108) 를 직접 사용한다. 또한 마스터 디바이스 (5) 는 다른 애플리케이션 인스턴스 (132) 를 호스팅할 수도 있다. 마스터 디바이스 (5) 는 윈도 관리자 (120) 를 활용하여 갖가지 애플리케이션 인스턴스들 (132 및 134) 의 입력 및 출력을 관리할 수도 있다. 이전에 논의된 바와 같이, 윈도 관리자 (120) 는 윈도 객체 (122) 를 활용하여 갖가지 애플리케이션 인스턴스들 (132 및 134) 에 관련한 상태 정보를 저장할 수도 있다.
위에서 설명된 바와 같이, 갖가지 양태들은 헬퍼 앱들 (150, 160) 을 활용하여 마스터 및 슬레이브 디바이스들로부터의 디스플레이 버퍼들의 공유 및 통신을 조정할 수도 있다. 도 5에 도시된 바와 같이, 마스터 헬퍼 앱 (150) 은 슬레이브 디바이스 (6) 에 대한 통신을 위해 디스플레이 이미지들 및 버퍼들을 준비하는 것을 돕도록 마스터 디바이스 (5) 상에서 구현될 수도 있고, 슬레이브 헬퍼 앱 (160) 은 디스플레이 버퍼들을 수신하고 관련된 이미지들을 랜더링하는 것을 돕도록 슬레이브 디바이스 (6) 상에서 구현될 수도 있다.
타깃 애플리케이션 인스턴스 (134) 에 관련한 상태 정보는 타깃 애플리케이션 인스턴스 (134) 가 슬레이브 디바이스 (6) 상에서 디스플레이되는 동안 숨은 윈도 객체 (126) 라고 할 수도 있다. 일부 양태들에서, 사용자는 타깃 애플리케이션 인스턴스 (134) 를 이것이 슬레이브 디바이스 (6) 상에서 디스플레이되는 동안 데스크톱으로부터 제거하는 옵션을 가질 수도 있다. 이러한 양태에서, 숨은 윈도 객체 (126) 는 갖가지 윈도들을 시스템 프레임 버퍼에 종합하는 양태의 윈도 관리자 (120) 에 의해 액세스되지 않을 것이다. 숨은 윈도 객체 (126) 는 타깃 애플리케이션 (134) 의 출력을 저장하는 버퍼를 구비할 수도 있다. 이 버퍼는 타깃 애플리케이션 (134) 의 전체 출력을 저장하는 충분한 사이즈로 될 수도 있다. 다르게는, 이 버퍼는 슬레이브 디바이스 (6) 상에서 디스플레이될 것인 타깃 애플리케이션 (134) 의 사용자 선택 부분들과 동등한 사이즈로 될 수도 있다. 마스터 헬퍼 앱 (150) 은 숨은 윈도 객체 (126) 의 버퍼에 액세스하고 그 디스플레이 부분을 개인 영역 네트워크 (109), 이를테면 Bluetooth® 접속을 경유하여 슬레이브 디바이스 (6) 에 송신할 수도 있다. 일부 양태들에서, 사용자는 타깃 애플리케이션 인스턴스 (134) 를 마스터 디바이스 (5) 및 슬레이브 디바이스 (6) 양쪽 모두에 동시에 디스플레이하는 옵션을 가질 것이다. 이러한 양태는 숨은 윈도 객체 (126) 내에 버퍼를 활용하지 않을 수도 있다. 이런 경우, 마스터 헬퍼 앱 (150) 은 시스템 프레임 버퍼에 액세스하여 슬레이브 디바이스 (6) 상에 디스플레이될 부분을 수집할 수도 있다.
갖가지 양태들에서, 슬레이브 디바이스 (6) 는 윈도 관리자 (121) 를 구현할 수도 있다. 슬레이브 디바이스 (6) 는 또한 마스터 디바이스 (5) 로부터의 디스플레이 부분들을 개인 영역 네트워크 접속부 (109) 를 경유하여 수신하기 위한 슬레이브 헬퍼 앱 (160) 를 구비할 수도 있다. 일부 양태들에서, 슬레이브 디바이스 (6) 의 윈도 관리자 (121) 는 수신된 부분들을, 슬레이브 헬퍼 앱 (160) 에 상응하는 윈도 객체 (122) 를 생성하고 이 원도를 전형적인 윈도인 것처럼 디스플레이함으로써 디스플레이할 수도 있다. 일부 양태들에서, 사용자는 타깃 애플리케이션 인스턴스 (134) 가 슬레이브 디바이스 (6) 의 디스플레이를 "장악 (take over)"하는 옵션 (즉, 풀 스크린 모드) 을 가질 수도 있다. 다르게는, 사용자는 타깃 애플리케이션 인스턴스 (134) 를 슬레이브 디바이스 (6) 상에서 정상적인 이동가능 윈도로서 디스플레이하는 옵션을 가질 수도 있다.
도 5를 참조하여 위에서 논의된 바와 같이, 갖가지 양태들은 헬퍼 앱들을 활용하여 마스터 및 슬레이브 디바이스들 전체에 걸쳐 디스플레이 버퍼들을 통신할 수도 있다. 일부 양태들에서, 마스터 및 슬레이브 헬퍼 앱들은 마스터 및 슬레이브 디바이스들 상에서 실행중인 하위구성요소들을 구비할 수도 있다. 헬퍼 앱들의 기능들을 제공하도록 구현될 수도 있는 일부 하위구성요소들의 예들이 도 6 및 7에 도시되는데, 이 도면들은 마스터 및 슬레이브 컴퓨팅 디바이스들 상에서 구현될 수 있는 소프트웨어 구성요소들을 각각 나타내고 있다.
도 6을 참조하면, 마스터 디바이스 (5) 의 윈도 관리자 (120) 는 마스터 헬퍼 앱 플러그인 하위구성요소 (151) 를 구비할 수도 있다. 이 마스터 헬퍼 앱 플러그인 (151) 은 숨은 윈도 객체 (126) 로부터 타깃 애플리케이션 인스턴스 (134) 에 상응하는 데이터를 검색하기 위한 인터페이스를 제공할 수도 있다. 또한 마스터 헬퍼 앱 플러그인 (151) 은 마우스 오브(mouse over) 이벤트와 같은 입력 이벤트들을 포함한, 슬레이브 디바이스 (6) 에 관한 정보를 수신하기 위하여 윈도 관리자 (120) 용의 인터페이스를 제공할 수도 있다. 일부 양태들에서, 슬레이브 디바이스 (6) 는 이를테면 슬레이브 디바이스 (6) 상의 디스플레이 윈도의 사이즈 및 그것이 깨끗하지 못한지 또는 가려졌는지와 같은 윈도용 (windowing) 데이터를 제공할 수도 있다. 이러한 정보는 마스터 헬퍼 앱 (150) 에 의해 마스터 헬퍼 앱 플러그인 (151) 을 통해 애플리케이션 인스턴스 (134) 에 중계될 수도 있다.
또한 마스터 헬퍼 앱 (150) 은 마스터 헬퍼 앱 TSR 하위구성요소 (152)(즉, "종료 후 램상주" 애플리케이션) 을 구비할 수도 있다. 마스터 헬퍼 앱 TSR (152) 은 다른 디바이스들과 통신하여 어떤 잠재적인 슬레이브 디바이스들 (6) 을 발견할 수도 있다. 그것은 또한 마스터 헬퍼 앱 플러그인 (151) 을 경유하여 윈도 관리자 (120) 에 질문함으로써 타깃 애플리케이션 인스턴스 (134) 의 디스플레이 버퍼를 슬레이브 디바이스들 (6) 에 전송할 수도 있다. 일부 양태들에서, 마스터 헬퍼 앱 TSR (152) 은 타깃 애플리케이션 인스턴스 (134) 의 출력을 사용자 선호도들 및 슬레이브 디바이스 (6) 의 능력들에 기초하여 변환할 수도 있다. 예를 들어, 타깃 애플리케이션 인스턴스 (134) 는 이동가능 및 크기변경가능 윈도들을 제공하지 않는 모바일 디바이스 상에서 실행하도록 디자인될 수도 있다. 따라서, 타깃 애플리케이션 인스턴스 (134) 는 그것의 출력을 더 작은 디스플레이, 이를테면 손목의 디스플레이에 맞도록 크기변경하는 능력을 내재하고 있지 않을 수도 있다. 이러한 경우에, 숨은 윈도 (126) 는 모바일 디바이스의 스크린 사이즈와 동등한 디스플레이 버퍼를 구비할 수도 있고 마스터 헬퍼 앱 TSR (152) 은 버퍼를 슬레이브 디바이스 (6) 에 전해주기 전에 그 버퍼를 잘라내기 (crop), 크기변경, 및 회전시킬 수도 있다.
또한 마스터 헬퍼 앱 (150) 은 마스터 헬퍼 앱 사용자 인터페이스 (153) 를 구비할 수도 있다. 마스터 헬퍼 앱 사용자 인터페이스 (153) 는 슬레이브 디바이스 (6) 에 송신될 애플리케이션의 부분들을 규정하고 그리고 디스플레이를 위한 세부사항들 중의 일부, 이를테면 사용하는 슬레이브 디바이스, 슬레이브 디스플레이를 장악할 지의 여부, 및 마스터 및 슬레이브 디바이스들 사이의 리프레시 레이트를 규정하는 능력을 사용자에게 제공할 수도 있다. 마스터 헬퍼 앱 사용자 인터페이스 (153) 는 상응하는 윈도 객체 (122) 를 윈도 관리자 (120) 내부에 가지는 그래픽 애플리케이션일 수도 있다. 사용자에게 적당한 옵션들을 제공하기 위하여, 마스터 헬퍼 앱 사용자 인터페이스 (153) 는 마스터 헬퍼 앱 TSR (152) 로부터 슬레이브 디바이스들 (6) 의 아이덴티티 및 능력들에 관한 데이터를 모을 수도 있다. 마스터 헬퍼 앱 사용자 인터페이스 (153) 는 또한 사용자에게 애플리케이션 부분들을 규정하는 능력을 제공하는데 사용될 수도 있는 정보를 윈도 관리자 (120) 로부터 마스터 헬퍼 앱 플러그인 (151) 을 경유하여 모을 수도 있다.
도 7을 참조하면, 슬레이브 헬퍼 앱 (160) 은 또한 갖가지 하위구성요소들에 의해 구성될 수도 있다. 슬레이브 헬퍼 앱 TSR (162) 은 마스터 디바이스 (5) 로부터 디스플레이 버퍼를 수신하고 그것을 상응하는 윈도 객체 (122) 에 페인팅할 수도 있다. 그것은 또한 사용자 입력 이벤트들 또는 다른 윈도 이벤트들 이를테면 가림(occlusion) 에 상응하는, 윈도 관리자 (120) 로부터 수신되는 데이터를 마스터 디바이스 (5) 에 송신할 수도 있다. 게다가, 그것은 윈도 관리자 (120) 에 이 윈도 관리자의 디스플레이 능력들에 관하여 슬레이브 헬퍼 앱 플러그 인 (161) 을 경유하여 질문할 수도 있다. 슬레이브 헬퍼 앱 TSR (162) 은 또한 마스터 디바이스들과는 서로를 발견하기 위하여 통신할 수도 있다. 슬레이브 헬퍼 앱 (160) 은 사용자에게 선호도들을 규정하는 능력을 제공하기 위한 슬레이브 헬퍼 앱 사용자 인터페이스 (163) 를 더 구비할 수도 있다. 일부 양태들에서 슬레이브 헬퍼 앱 사용자 인터페이스 (163) 는 원치않는 또는 적대적인 애플리케이션이 디스플레이를 장악하는 것을 방지하기 위하여 일정한 접속들을 수락하거나 또는 거부하는 능력을 사용자에게 제공할 것이다.
도 6 및 7에 보인 갖가지 구성요소들은 특정한 기능에 대한 슬레이브 또는 마스터로서 분류될 수도 있다. 특정 컴퓨팅 디바이스는 하나의 헬퍼 앱 플러그인, 하나의 헬퍼 앱 TSR 및 하나의 헬퍼 앱 사용자 인터페이스만을 가지면서 일부 경우들에서는 슬레이브일 수도 있거나 또는 다른 경우들에서는 마스터일 수도 있다. 일부 양태들에서, 슬레이브 및 마스터를 위한 능력들은 애플리케이션들 전체에 걸쳐 분리되어 있을 수도 있다. 다르게는, 슬레이브 및 마스터 양쪽 모두일 수 있는 컴퓨팅 디바이스가 단일 플러그인 및 단일 인터페이스를 가질 수도 있지만 분리된 TSR들을 가질 수도 있다.
다수의 컴퓨팅 디바이스들에 전체에 걸쳐 디스플레이를 확립하기 위한 일 양태의 방법이 도 8에 도시되어 있는데, 이 도면은 컴퓨팅 디바이스에서 구현될 수도 있는 프로세스 (200) 를 나타내고 있다. 프로세스 (200) 에서의 블록 202 에서, 마스터 디바이스 (5) 가 마스터 헬퍼 앱 TSR (152) 을 실행하는 것을 시작할 수 있고, 블록 203에서 슬레이브 디바이스 (6) 는 슬레이브 헬퍼 앱 TSR (162) 을 실행하는 것을 시작할 수 있다. 블록 204에서 마스터 헬퍼 앱 TSR (152) 은 브로드캐스트 메시지를 네트워크에 걸쳐, 이를테면 Bluetooth® 디바이스 디스커버리 프리컨시들 전체에 걸쳐서 송신하고 슬레이브 디바이스들의 디스플레이 능력들을 포함한 응답을 수신함으로써, 잠재적인 슬레이브 디바이스들을 위치결정할 수도 있다. 블록 208에서 마스터 디바이스는 슬레이브 디바이스 상에서 디스플레이될 것인 애플리케이션 인터페이스의 부분들을 규정하는 사용자 입력들을 수신할 수도 있다. 예를 들어, 사용자는 이 프로세서를 키보드 시퀀스 (예컨대, ctrl + f13) 를 입력함으로써, 윈도 메뉴 (즉, 윈도 제어 옵션들 이를테면 최소화 및 나가기를 담고 있는 메뉴) 상에서 메뉴 옵션을 선택함으로써, 또는 터치 스크린 디바이스 상에서 특유의 제스처를 입력함으로써 개시할 수도 있다. 그러면 사용자는 슬레이브 디바이스 상에 디스플레이될 일정한 직사각형 마키(marquee)들을 타깃 애플리케이션 인스턴스 (134) 내에 정의할 수도 있다. 일부 양태들에서, 개시하고 규정하는 프로세스는 도 9를 참조하여 아래에서 논의되는 바와 같이 동시에 일어날 수도 있다
프로세스 200의 블록 214에서, 마스터 헬퍼 앱 사용자 인터페이스 (214) 는 사용자에게 이용가능한 (즉, 마스터 디바이스와 통신하는) 슬레이브 디바이스들의 목록을 제공할 수도 있다. 블록 220에서 마스터 헬퍼 앱은 슬레이브 디바이스의 사용자의 선택을 수신하고 슬레이브 헬퍼 앱에 그 선택을 알려줄 수도 있다. 블록 222에서 슬레이브 헬퍼 앱은 마스터 디바이스 (5) 로부터의 디스플레이 이미지들의 부분들의 수락을 확인해 줄 것을 사용자에게 프롬프트하는 디스플레이를 슬레이브 디바이스 (6) 가 생성하도록 할 수도 있다. 예를 들어, 생성된 프롬프트 컴퓨팅 디바이스가 Bluetooth® 접속을 통해 사용자에게 연락하고 있고 이 컴퓨팅 디바이스의 디스플레이를 장악할 것인 링크를 확립하고 싶어함을 사용자에게 알려줄 수도 있다. 슬레이브 헬퍼 앱은 특정 버튼 누름을 접속의 사용자 확인을 나타내는 것으로서 해석하도록 구성될 수도 있다. 슬레이브 헬퍼 앱은 사용자 입력이 디스플레이 이미지의 전송의 수락을 확인함을 나타내는지를 결정할 수도 있고, 만약 그렇다면, 마스터 디바이스에 이미지 데이터 전송들을 수락할 것임을 및/또는 이미지 데이터 전송들을 수락함을 통지할 수도 있다. 이 확인 프로세스는 옵션이고 이미지들의 컴퓨팅 디바이스로의 우연의 또는 승인되지 않은 이식을 방지하기 위해 제공될 수도 있다.
일부 양태들에서, 단일의 가능한 슬레이브 디스플레이만이 존재할 수도 있고 블록 214 및 220은 자동으로 수행될 수도 있다. 일단 슬레이브 디바이스가 선택되어 있고 (옵션으로) 사용자가 슬레이브 디바이스로의 이미지 이식을 수락하였다면, 블록 224에서 마스터 및 슬레이브 디바이스들은 특정한 디스플레이 모드를 협상할 수도 있다. 이 협상 프로세스는 슬레이브 디바이스 상에서 이용가능한 디스플레이 영역의 비율들을 세팅하는 단계, 및 슬레이브 디바이스로부터 마스터 디바이스로 윈도 이벤트들이 중계될 지 그리고 무엇이 중계될 지를 결정하는 단계를 구비할 수도 있다. 이 협상은 마스터 및 슬레이브 디바이스들 중 어느 하나 또는 양쪽 모두에 대한 동시발생 사용자 상호작용, 이를테면 갖가지 디스플레이 옵션들 중에서 선택하는 것에 관계가 있을 수도 있고, 또한 슬레이브 디바이스 또는 마스터 디바이스에 대한 이전부터 존재하는 사용자 선호도들을 결정하는 단계에 관계가 있을 수도 있다.
프로세스 200에서는 블록 228에서 마스터 디바이스 (5) 의 윈도 관리자 (120) 는 숨은 윈도 (126) 를 타깃 애플리케이션 인스턴스 (134) 를 위해 확립할 수도 있다. 일부 양태들에서, 타깃 애플리케이션 인스턴스 (134) 는 윈도 객체 (122) 에 미리 페인팅될 수도 있다. 윈도 관리자 (120) 는 부가적인 디스플레이 버퍼를 생성하는 것에 관계가 있는 일련의 프로세스들에 의해 윈도 객체 (122) 를 숨은 윈도 객체 (126) 로 변환할 수도 있다. 윈도 관리자 (120) 가 "복합적(compositing)"인 양태에서는 윈도 객체 (122) 에 관련된 디스플레이 버퍼가 이미 있을 수도 있다. 블록 232에서 마스터 헬퍼 앱 TSR (152) 은 숨은 윈도 객체 (126) 의 디스플레이 버퍼에 액세스하고 그런 디스플레이 버퍼를 슬레이브 디바이스 (6) 에 포워딩하는데, 슬레이브 디바이스 (6) 에서 디스플레이 버퍼는 블록 236에서 슬레이브 디바이스에 의해 디스플레이된다. 다중 디바이스 디스플레이를 확립하는 것에 관계가 있는 갖가지 프로세스들이 다양한 시퀀스들로 발생할 수도 있다. 일부 양태들에서는, 블록 214에서 헬퍼 애플리케이션은 사용자가 디스플레이 부분들을 규정하기까지 슬레이브 디바이스들을 찾지 않을 수도 있다.
프로세스 (200) 는 또한 마스터 디바이스 상에서 생성된 다수의 애플리케이션들로부터의 디스플레이 이미지들의 부분들을 슬레이브 디바이스 상에 디스플레이하는데 사용될 수도 있다. 이러한 구현예들에서, 마스터 디바이스는 디스플레이되는 실행중인 둘 이상의 애플리케이션들 (또는 다수의 웹페이지 인스턴스들) 을 가질 수도 있고 블록 208에서는 다수의 애플리케이션들로부터의 디스플레이 이미지들의 부분들을 규정하는 사용자 입력들을 수신할 수도 있다. 블록 228에서 마스터 디바이스 (5) 의 윈도 관리자 (120) 는 숨은 윈도 (126) 를 다수의 애플리케이션들을 위해 확립할 수도 있다.
대체 양태에서는, 블록 208에서 슬레이브 디바이스에 이식될 이미지 부분들의 선택은 사용자에 의한 것 대신 이미지를 생성하는 애플리케이션에 의해 자동으로 수행될 수도 있다. 이 양태에서 이미지를 생성하는 애플리케이션은 슬레이브 디바이스 디스플레이의 특성을 포함한 컴퓨팅 디바이스 디스플레이에 관한 특성들을 수신하도록 구성될 수도 있고, 적절한 디스플레이 레이아웃 및 콘텐츠를 그런 특성들에 기초하여 결정할 수도 있다. 그래서 이 양태에서는, 블록 208에서 마스터 헬퍼 앱은 마스터 디바이스 상에서 실행중인 애플리케이션에 슬레이브 디바이스 능력들을 공급할 수도 있는데, 이 능력들을 애플리케이션은 슬레이브 디바이스에 이식될 디스플레이의 부분들을 규정하는데 사용한다. 이 애플리케이션은 마스터 헬퍼 앱에 대해 정의된 이미지 부분들을 식별할 수도 있어 여기서 설명되는 다른 동작들을 달성할 수도 있다.
갖가지 양태들은 마우스 또는 다른 포인팅 디바이스를 이용하여 직사각형 마키들을 선택함으로써 사용자들이 소망의 애플리케이션 부분들을 규정할 수 있게 할 수도 있다. 도 9는 컴퓨팅 디바이스들 상에서 사용하기에 적합한, 터치 스크린 사용자 인터페이스로 구성되는 일 양태의 사용자 인터페이스 제스처를 나타내고 있다. 이 양태에서 사용자는 한 손가락 (80) 을 터치 스크린 상의 미리정해진 위치, 이를테면 좌측 하단 코너 상에 위치시키고, 제 2 손가락 (82) 을 가지고서 하는 2가지 운동들, 즉 맨 왼쪽 및 맨 오른쪽 좌표들을 규정하는 하나의 가로방향 운동 그리고 맨 위 및 맨 아래 좌표들을 규정하는 세로방향 운동을 이용하여 직사각형 마키를 규정함으로써 소망의 애플리케이션 부분을 규정할 수 있다.
도 5-8을 참조하여 위에서 설명된 양태들은 마스터 디바이스 (5) 가 디스플레이 부분들을 생성하고 그런 부분들을 슬레이브 디바이스 (6) 에 처리를 위해 포워딩하는 구현예들과 관계가 있다. 마스터 디바이스로부터 슬레이브 디바이스로 이러한 디스플레이 이전을 달성하기 위한 프로세서 (300) 가 도 10에 나타내고 있다. 프로세스 300에서는 블록 302에서 타깃 애플리케이션 인스턴스 (134) 가 숨은 윈도 객체 (126) 에 페인트팅을 할 수도 있다. 블록 306에서 마스터 헬퍼 앱 (150) 은 버퍼의 콘텐츠들을 검색하며, 블록 310에서 그 버퍼 콘텐츠들을 슬레이브 디바이스 상의 디스플레이에 적합하도록 변환하고, 그 결과들을 슬레이브 디바이스에 제공할 수도 있다. 버퍼 콘텐츠들을 변환할 시에, 헬퍼 앱 (150) 은 이미지 콘텐츠들을 크기변경하여 슬레이브 디바이스 (6) 의 디스플레이 사이즈 및 특성들에 들어맞게 할 수도 있다. 대체 양태에서, 헬퍼 앱 (150) 은 블록 302에서 애플리케이션이 슬레이브 디바이스에 적합한 사이즈 및 포맷으로 이미지를 숨은 윈도 객체 (126) 에 페인팅하도록 애플리케이션과 통신할 수도 있어서, 블록 310에서는 마스터 헬퍼 앱 (150) 이 버퍼의 콘텐츠들을 슬레이브 디바이스에 제시하는 것만 필요하다. 위에서 언급된 바와 같이, 버퍼 콘텐츠들을 슬레이브 디바이스에 적합한 숨은 윈도 객체로 변환하거나 또는 이미지를 이러한 숨은 윈도 객체에 페인팅할 것을 애플리케이션에 지시하는 것은 마스터 디바이스에 적합한 이미지보다 작은 크기 및 다루는 정보가 덜 광범위한 디스플레이 이미지, 또는 마스터 디바이스에 적합한 이미지보다 큰 크기 및 다루는 정보가 더 광범위한 디스플레이 이미지를 생성할 수도 있다.
블록 314에서 슬레이브 헬퍼 앱 (160) 은 디스플레이 버퍼를 마스터 디바이스로부터 수신할 수도 있고, 블록 318에서 슬레이브 디바이스 (6) 의 윈도 관리자 (121) 는 콘텐츠들을 디스플레이할 수도 있다. 슬레이브 윈도 관리자 (121) 는 타깃 애플리케이션 인스턴스 (134) 의 부분들을 이 부분들이 전체 슬레이브 디바이스 디스플레이를 활용하는 (즉, 마스터 디바이스가 슬레이브 디스플레이를 장악하는) 풀 스크린 모드로 디스플레이할 수도 있다. 마찬가지로, 슬레이브 윈도 관리자 (121) 는 이 부분들을 이 부분들이 슬레이브 디바이스 상에서 다른 그래픽 애플리케이션들에 알파 블렌딩되는 오버레이 모드로 디스플레이할 수도 있다. 게다가, 이 슬레이브 윈도 관리자는 이 부분들을 이 부분들이 슬레이브 디바이스의 그래픽 애플리케이션들의 옆에서 디스플레이되는 "양쪽 맞춤 (fit both)" 모드로 디스플레이할 수도 있다. 이는 슬레이브 헬퍼 앱 (160) 을 이동가능 윈도 객체 (120) 에 할당함으로써 달성될 수도 있다. 다르게는, 이는 슬레이브 디스플레이의 고정된 부분을 슬레이브 헬퍼 앱 (160) 에 할당하고 그래픽 애플리케이션들의 나머지를 나머지 부분에 맞춤으로써 달성될 수도 있다.
슬레이브 디바이스로서 기능하기에 적합한 일부 컴퓨팅 디바이스들은 이용가능한 컴퓨팅 능력을 가지지 않을 수도 있거나 또는 그렇지 않으면 디스플레이의 오버레이 또는 양쪽 맞춤 모드들을 위해 요구된 처리를 핸들링할 수 없을 수도 있다. 일부 양태들에서, 슬레이브 디바이스는 그것의 갖가지 그래픽 애플리케이션들의 출력을 마스터 디바이스에 송신할 수도 있음으로써 마스터 디바이스는 변환들을 수행할 수도 있다.
이러한 디스플레이를 달성하기 위한 방법이 도 11에 나타내는데, 이 도면은 다수의 컴퓨팅 디바이스들 상에서 구현될 수 있는 프로세스 (320) 를 나타낸다. 프로세스 300에서는 블록 302에서 타깃 애플리케이션 인스턴스 (134) 가 숨은 윈도 객체 (126) 에 페인팅을 할 수도 있다. 위에서 언급된 바와 같이, 대체 양태에서, 마스터 헬퍼 앱 (150) 은 애플리케이션과 통신할 수도 있어서, 블록 302에서 애플리케이션은 이미지를 숨은 윈도 객체 (126) 에 슬레이브 디바이스에 적합한 사이즈 및 포맷으로 페인팅한다. 블록 306에서, 마스터 헬퍼 앱 (150) 은 버퍼의 콘텐츠들을 검색할 수도 있다. 블록 304에서, 슬레이브 윈도 관리자 (121) 는 그래픽 애플리케이션들의 콘텐츠들을 종합하고 그것들을 종합 버퍼(aggregate buffer)에 저장할 수도 있다. 이는 슬레이브 윈도 관리자 (121) 가 슬레이브 디바이스로서 기능을 하지 않을 때 애플리케이션들을 종합하고 그것들을 시스템 프레임 버퍼에 저장할 방법과 유사한 방식으로 달성될 수도 있다. 블록 308에서, 슬레이브 헬퍼 앱 (160) 은 종합 버퍼에 액세스하고 그것의 콘텐츠들을 마스터 디바이스에 넘겨줄 수도 있는데 마스터 디바이스에서는 그 콘텐츠들은 마스터 헬퍼 앱 (150) 에 의해 수신된다. 블록 312에서 마스터 헬퍼 앱 (150) 은 윈도 버퍼의 콘텐츠를 변환하며, 그 콘텐츠들을 슬레이브 디바이스 상의 디스플레이에 적합하도록 슬레이브 종합 버퍼와 블렌딩하고, 그 결과들을 슬레이브 디바이스에 전송할 수도 있다. 블록 314에서, 슬레이브 헬퍼 앱 (160) 은 블렌딩된 콘텐츠들을 마스터 헬퍼 앱 (150) 으로부터 수신할 수도 있는데, 이 경우 콘텐츠들은 블록 318에서 슬레이브 윈도 관리자 (121) 에 의해 디스플레이된다.
애플리케이션 부분들을 슬레이브 디바이스 상에 디스플레이하는 것 외에도, 일부 양태들은 사용자가 슬레이브 디바이스 상의 타깃 애플리케이션과 상호작용하도록 할 수도 있다. 전형적인 윈도식 GUI에서, 그래픽 애플리케이션들은 입력 이벤트가 발생할 때 실행될 일정한 코드를 만들어둘 수도 있다. 예를 들어, 이전에 논의된 포커 애플리케이션에서, "fold" 버튼을 위해 규정된 박스 내의 지점에서 터치 스크린을 누르면 포커 애플리케이션은 사용자가 포개는 것을 나타내는 데이터 통신물을 서버에 송신하도록 할 수도 있다. 갖가지 양태들은 슬레이브 디바이스 상의 입력 이벤트가 마스터 디바이스 상의 코드를 실행하는 것을 허용할 수도 있다. 포커 애플리케이션의 예에서, 사용자는 슬레이브 디바이스의 스크린을 터치하고 마스터 디바이스 상에서 실행중인 포커 애플리케이션이 마스터 디바이스로부터 서버에 사용자가 포갬을 나타내는 메시지를 송신하도록 할 수도 있다.
이러한 상호작용을 제공하는 방법이 도 12에서 도시되어 있는데, 이 도면은 다수의 컴퓨팅 디바이스들 상에 구현될 수 있는 프로세스 (350) 를 나타낸다. 프로세스 350에서는 블록 352에서 슬레이브 디바이스가 사용자 입력을 슬레이브 디바이스 (6) 상의 버튼을 누르는 형태로 수신할 수도 있다. 터치스크린 디스플레이를 구비한 슬레이브 디바이스들 상에서, 사용자 입력은 사용자의 터치의 좌표들을 구비하는 터치 이벤트 형태일 수도 있다. 블록 356에서 슬레이브 윈도 관리자 (121) 는 입력 신호들을 수신하고 윈도 객체들 (122) 에 관련한 그것의 상태 정보로부터 입력 신호가 슬레이브 헬퍼 앱 (160) 에 의해 관리되는 윈도 (즉, 애플리케이션 부분들) 에 속한다고 결정할 수도 있다. 블록 360에서 슬레이브 윈도 관리자 (121) 는 입력 이벤트의 유형 (즉, 버튼 클릭) 및 특정한 버튼 눌러짐 또는 터치스크린 터치 이벤트의 상대 좌표들을 나타내는 메시지를 생성하여 슬레이브 헬퍼 앱 (160) 에 송신할 수도 있다. 블록 364에서, 슬레이브 헬퍼 앱 (160) 은 슬레이브 윈도 관리자 (121) 로부터 입력 이벤트를 수신하고 그 입력 이벤트를 마스터 디바이스 (5) 에 포워딩할 수도 있는데 이 마스터 디바이스에서 그 입력 이벤트는 마스터 헬퍼 앱 (150) 에 의해 수신된다. 블록 368에서 마스터 헬퍼 앱 (150) 은 입력 이벤트를 수신하고 수신된 좌표들이 타깃 애플리케이션 (134) 에 상응하는 방법을 숨은 윈도 (126) 의 버퍼에 있는 화소들을 사용자 규정 애플리케이션 부분들에 매핑하는 저장된 정보에 기초하여 결정할 수도 있다. 블록 372에서 마스터 헬퍼 앱 (150) 은 입력 이벤트 유형 및 번역된 좌표들을 포함하는 메시지를 마스터 윈도 관리자 (120) 에 송신할 수도 있다. 블록 376에서 마스터 윈도 관리자 (120) 는 입력 이벤트를 나타내는 메시지를 수신하고, 응답하여, 메시지를 타깃 애플리케이션 (134) 에 송신할 수도 있다. 블록 380에서 타깃 애플리케이션 (134) 은 이 메시지를 수신하며, 입력 이벤트 유형 및 번역된 좌표들에 기초하여, 사용자가 상응하는 기능 (즉, "온클릭(onclick)" 기능) 을 갖는 버튼을 클릭하였는지를 결정하고, 그런 다음 그 기능을 실행할 수도 있다. 블록 384에서 타깃 애플리케이션은 또한 기능의 실행에 기초하여 숨은 윈도에 페인팅 (즉, 화소 출력을 제공) 할 수도 있다.
애플리케이션 부분들을 슬레이브 디바이스 상에 디스플레이하는 것에 관계가 있는 갖가지 프로세스들은 자원 집중적일 수도 있다. 도 11을 참조하여 위에서 논의된 바와 같이, 갖가지 양태들은 처리 부담을 상대적인 컴퓨팅 능력들에 기초하여 할당하는 방법을 결정할 수도 있다. 일부 양태들은 프록시 디바이스가 애플리케이션 부분들을 랜더링하고 및/또는 애플리케이션 부분들을 슬레이브 디바이스의 출력과 결합하도록 할 수도 있다. 예를 들어, 사용자는 비디오를 이 비디오가 모바일 디바이스 상에서 실제로 플레이되는 (즉, 비디오 플레이어가 모바일 디바이스의 저장소 상의 비디오 파일에 액세스하고 그 비디오를 모바일 디바이스의 CPU를 이용하여 디코딩하는) 고글형 컴퓨팅 디바이스 상에 디스플레이하기를 바랄 수도 있다. 모바일 디바이스는 비디오를 디코딩하는 것과 고글의 디스플레이를 관리하는 것을 동시에 할 수도 있거나 또는 못할 수도 있지만, 사용자는 근처의 디바이스에 대한 애플리케이션 부분들의 랜더링을 없애서 배터리 전력을 절약하거나 또는 모바일 디바이스 상의 다른 애플리케이션들을 위한 처리 능력을 확보하기를 바랄 수도 있다. 이는 처리의 일부가 마스터 및 슬레이브 디바이스들과 통신하는 프록시 디바이스에 의해 수행되는 본 발명의 양태로 달성될 수도 있다.
컴퓨팅 디바이스들에서 이러한 구성으로 구현될 수 있는 갖가지 소프트웨어 구성요소들의 예가 도 13에 나타낸다. 위에서 설명된 바와 같이, 마스터 디바이스 (5) 는 타깃 애플리케이션 인스턴스 (134) 에 상응하는 숨은 윈도 객체 (126) 를 가지는 마스터 윈도 관리자 (120) 를 구현할 수도 있다. 마스터 디바이스 (5) 는 또한 슬레이브 디바이스들 (6) 및 프록시 디바이스들 (7)(예컨대, 근처의 랩톱 컴퓨터) 과는 개인 영역 네트워크(personal area network; PAN) 접속부 (109) 를 경유하여 통신하기 위해 마스터 헬퍼 앱 (150) 을 구현할 수도 있다. 슬레이브 헬퍼 앱 (160) 에 상응하는 윈도 객체 (122) 를 가지는 슬레이브 윈도 관리자 (121) 를 구비한 슬레이브 디바이스 (6) 가 있을 수도 있다. 슬레이브 헬퍼 앱 (160) 은 마스터 디바이스들 (5) 및 프록시 디바이스들 (7) 과는 개인 영역 네트워크 접속부 (109), 이를테면 Bluetooth® 네트워크를 경유하여 통신할 수도 있다. 마스터 디바이스들 (52) 및 슬레이브 다바이스들 (6) 과는 개인 영역 네트워크 접속부 (109) 를 경유하여 통신하기 위한 프록시 헬퍼 앱 (155) 을 구비한 프록시 디바이스 (7) 가 더 있을 수도 있다.
다중 디바이스 디스플레이를 위한 일 예의 방법이 도 14에서 도시되어 있는데, 이 도면은 다수의 컴퓨팅 디바이스들 상에서 구현될 수 있는 프로세스 (390) 를 나타낸다. 프로세스 390에서는 블록 302에서 타깃 애플리케이션 인스턴스 (134) 가 윈도 버퍼를 구비할 수도 있는 숨은 윈도 (126) 에 페인팅을 할 수도 있다. 블록 306에서, 마스터 헬퍼 앱 (150) 은 버퍼의 콘텐츠들을 검색하고 그것의 콘텐츠들 프록시 헬퍼 앱 (155) 에 넘겨줄 수도 있다. 위에서 언급된 바와 같이, 대체 양태에서, 마스터 헬퍼 앱 (150) 은 애플리케이션과 통신할 수도 있어서, 블록 302에서 애플리케이션은 이미지를 숨은 윈도 객체 (126) 에 슬레이브 디바이스에 적합한 사이즈 및 포맷으로 페인팅한다. 이는 슬레이브 디바이스로부터의 콘텐츠와 쉽게 종합될 수 있는 이미지를 페인팅할 것을 애플리케이션에 지시하는 것을 포함할 수도 있다. 마스터 헬퍼 앱에 의해 제공된 정보를 이용하면, 애플리케이션은 마스터 디바이스 상의 디스플레이에 적합한 것보다 크거나 작은 이미지를 페인팅할 수도 있다. 블록 304에서, 슬레이브 윈도 관리자 (121) 는 그래픽 애플리케이션들의 콘텐츠들을 종합하고 그것들을 종합 버퍼에 저장할 수도 있다. 블록 308에서, 마스터 헬퍼 앱 (160) 은 종합 버퍼에 액세스하고 그것의 콘텐츠들 프록시 헬퍼 앱 (155) 에 넘겨줄 수도 있다. 블록 312에서, 프록시 헬퍼 앱 (155) 은 숨은 윈도 (126) 버퍼의 콘텐츠들을 디스플레이 부분들에 매핑하고 다른 애플리케이션들의 출력 내의 디스플레이 부분들을 슬레이브 디바이스 (6) 에 맞추는 프로세스들을 수행할 수도 있다. 블록 314에서, 슬레이브 헬퍼 앱 (160) 은 디스플레이 버퍼를 마스터 디바이스로부터 수신할 수도 있고, 블록 318에서 슬레이브 디바이스 (6) 의 윈도 관리자 (121) 는 콘텐츠들을 디스플레이할 수도 있다.
갖가지 양태들의 추가의 응용에서, 슬레이브 디바이스 (6) 가 디스플레이 이미지들을 제 2 슬레이브 디바이스에 중계하도록 구성될 수도 있다. 도 15는 이러한 이미지 공유를 가능하게 할 수도 있는 3개의 컴퓨팅 디바이스들 (5, 6a, 6b) 의 소프트웨어 구성요소 도면을 나타낸다. 위에서 설명된 바와 같이, 마스터 디바이스 (5) 는 타깃 애플리케이션 인스턴스 (134) 에 상응하는 숨은 윈도 객체 (126) 를 가지는 마스터 윈도 관리자 (120) 를 구현할 수도 있다. 마스터 디바이스 (5) 는 또한 슬레이브 디바이스들 (6a, 6b) 과는 개인 영역 네트워크 접속부 (109) 를 경유하여 통신하기 위해 마스터 헬퍼 앱 (150) 을 구현할 수도 있다. 슬레이브 헬퍼 앱 (160a) 에 상응하는 윈도 객체 (122a) 를 가지는 슬레이브 윈도 관리자 (121a) 를 구비한 제 1 슬레이브 디바이스 (6a) 가 있을 수도 있다. 슬레이브 헬퍼 앱 (160a) 은 마스터 디바이스들 (5) 및 다른 슬레이브 디바이스들 (6b) 과는 개인 영역 네트워크 접속부 (109a), 이를테면 Bluetooth® 네트워크를 경유하여 통신할 수도 있다. 덧붙여, 제 1 슬레이브 디바이스 (6a) 는 다른 슬레이브 디바이스 (6b) 와는 개인 영역 네트워크 접속부 (109) 를 경유하여 통신하기 위해 마스터 헬퍼 앱 (150a) 을 구현할 수도 있다. 마찬가지로, 제 2 슬레이브 디바이스 (6b) 는 마스터 디바이스들 (5) 및 다른 슬레이브 다바이스들 (6a) 과는 개인 영역 네트워크 접속부 (109) 를 경유하여 통신하기 위한 프록시 헬퍼 앱 (155) 을 더 구비할 수도 있다.
슬레이브 디바이스들 (6a) 이 마스터 헬퍼 앱 (150a) 및 슬레이브 헬퍼 앱 (160a) 양쪽 모두를 구비할 때, 그것들은 마스터 또는 슬레이브 디바이스 중 어느 하나 또는 양쪽 모두로서 기능을 할 수 있어서 그 슬레이브 디바이스들은 슬레이브 디스플레이를 제 2 슬레이브 디바이스에 중계할 수 있다. 디스플레이 이미지를 제 2 슬레이브 디바이스 (6b) 에 중계하기 위한 프로세스들은 중계하는 슬레이브 디바이스 (6a) 가 슬레이브 및 마스터 디바이스 프로세스들의 양쪽 모두를 구현하면 도 8, 10-12 및 14를 참조하여 위에서 설명된 것들과 일치한다. 이러한 양태를 이용하면, 사용자는 디스플레이 이미지를 그/그녀의 전자 손목시계 디스플레이에 이식하며, 그런 다음 그 디스플레이를 친구의 전자 손목 시계 디스플레이에 이식하여서 그들이 체험을 공유하도록 할 수도 있다.
프로세스들 (300, 320, 350 및 390) 은 또한 디스플레이 부분들을 마스터 디바이스 상에서 동작하는 다수의 타깃 애플리케이션들 또는 웹페이지들로부터 슬레이브 디바이스에 이식하는데 사용될 수도 있다. 이것을 달성하기 위하여, 블록 302에서, 타깃 애플리케이션들 또는 웹페이지들의 각각은 그것들의 디스플레이 출력을 숨은 윈도 객체 (126) 에 페인팅하도록 지시될 수도 있다. 그 후 프로세스들 (300, 320, 350 및 390) 의 각각은 단일 애플리케이션 디스플레이의 경우에서와 유사한 형태로 진행한다.
위에서 설명된 양태들은 외부 네트워크들과는, 이를테면 무선 데이터 링크를 경유하여 통신하도록 구성되는 다양한 휴대용 컴퓨팅 디바이스들, 이를테면, 셀룰러 전화기들, 개인휴대 정보단말들(PDA), 모바일 웹 액세스 디바이스들, 및 장래에 개발될 수도 있는 다른 프로세서 장착 디바이스들 중의 어떤 것으로라도 구현될 수 있다. 통상, 이러한 휴대용 컴퓨팅 디바이스들은 도 16에 도시된 구성요소들을 공통적으로 가질 것이다. 예를 들어, 휴대용 컴퓨팅 디바이스들 (5) 은 프로세서 (401), 이것에 결합된 내부 메모리 (402) 및 디스플레이 (403) 를 구비할 수도 있다. 덧붙여, 휴대용 컴퓨팅 디바이스 (5) 는 프로세서 (401) 에 결합된 무선 데이터 링크 및/또는 셀룰러 전화 트랜시버 (405) 에 접속되는 전자기복사를 송신하고 수신하기 위한 안테나 (404) 를 가질 수도 있다. 휴대용 컴퓨팅 디바이스들 (5) 은 또한 통상 사용자 입력들을 수신하기 위한 키 패드 (406) 또는 미니어처 키보드, 및 메뉴 선택 버튼들 또는 로커 스위치들 (407), 뿐만 아니라 오디오 출력을 생성하기 위한 스피커 (409) 를 구비한다.
위에서 설명된 다수의 양태들은 다양한 컴퓨팅 디바이스들 중의 어떤 것, 이를테면 도 17에 도시된 노트북 컴퓨터 (7) 로 구현될 수도 있다. 이러한 노트북 컴퓨터 (7) 는 통상 프로세서 (461), 이 프로세서에 커플링된 휘발성 메모리 (462), 및 대용량 비휘발성 메모리, 이를테면 디스크 드라이브 (463) 를 담고 있는 하우징 (466) 을 구비한다. 또한 컴퓨터 (7) 는 프로세서 (461) 에 결합된 플로피 디스크 드라이브 (464) 및 콤팩트 디스크 (CD) 드라이브 (465) 를 구비할 수도 있다. 컴퓨터 하우징 (466) 은 또한 통상 터치패드 (467), 키보드 (468), 및 디스플레이 (469) 를 구비한다.
위에서 설명된 다수의 양태들은 또한 다양한 컴퓨팅 디바이스들 중의 어떤 것, 이를테면 도 18에 도시된 손목 컴퓨터 (6) 로 구현될 수도 있다. 이러한 손목 컴퓨터 (6) 는 통상 프로세서 (481), 이 프로세서에 커플링된 휘발성 메모리 (482), 및 대용량 비휘발성 메모리, 이를테면 고체상태 드라이브 (483) 를 담고 있는 하우징 (486) 을 구비한다. 컴퓨터 하우징 (486) 은 또한 통상 복수 개의 버튼들 (468), 및 터치스린 디스플레이 (489) 를 구비한다.
프로세서 (401, 461, 481) 는 여기서 설명된 갖가지 양태들의 기능들을 포함한 다양한 기능들을 수행하도록 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수 있는 어떤 프로그램가능 마이크로프로세서, 마이크로컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수도 있다. 일부 컴퓨팅 디바이스들에서, 하나의 프로세서가 데이터 통신들의 관리 전용이고 하나의 프로세서가 여타 애플리케이션들의 실행 전용인 다수의 프로세서들 (401, 461, 481) 이 제공될 수도 있다.
갖가지 양태들은 설명된 방법들 또는 프로세스들 중의 하나 이상을 구현하도록 구성된 소프트웨어 명령들을 실행하는 컴퓨터 프로세서 (401, 461, 481) 에 의해 구현될 수도 있다. 이러한 소프트웨어 명령들은 메모리 (402, 462, 482) 내에, 하드 디스크 메모리 (464) 내에, 유형의 저장 매체 상에 또는 네트워크 (미도시) 를 경유하여 액세스가능한 서버들 상에 일 양태의 방법 또는 프로세스를 구현하는 개별 애플리케이션들로서, 또는 컴파일된 소프트웨어로서 저장될 수도 있다. 게다가, 소프트웨어 명령들은 임의 접근 메모리 (402, 462, 482), 하드 디스크 메모리 (463), 플로피 디스크 (플로피 디스크 드라이브 (464) 에서 판독가능), 콤팩트 디스크 (CD 드라이브 (465) 에서 판독가능), 전기 소거가능/프로그램가능 판독 전용 메모리 (EEPROM)(483), 판독 전용 메모리 (이를테면 플래시 메모리), 및/또는 컴퓨팅 디바이스 (5, 6, 7) 에 꽂아진 메모리 모듈 (미도시), 이를테면 USB 네트워크 포트에 꽂아진 외부 메모리 칩 또는 USB접속가능 외부 메모리 (예컨대, "플래시 드라이브") 를 포함하여, 어떤 형태의 유형의 프로세서-판독가능 메모리 상에 저장될 수도 있다.
앞서의 방법 설명들 및 프로세스 흐름도들은 구체적인 예들로서만 제공되고 갖가지 양태들의 프로세스들이 제시된 순서로 반드시 수행되어야 함을 요구하거나 의미하도록 의도된 것은 아니다. 이 기술분야의 숙련된 자에 의해 이해될 바와 같이 앞서의 양태들에서의 블록들 및 프로세스들의 순서는 어떤 순서로도 수행될 수도 있다. 단어들 이를테면 "그 후", "그런 다음", "다음에" 등은 단계들의 순서를 한정하려는 의도는 아니고; 이들 단어들은 단지 독자에게 방법들의 기재를 통하여 설명하는데 사용된다. 게다가, 단수형으로, 예를 들어, 관사 "a", "an" 또는 "the"의 사용에 해당하는 것으로 여겨질 수 있는 청구항 요소들에 대한 어떤 참조라도, 그 요소를 단수형으로 제한하는 것으로 해석되지는 않는다.
여기에 개시된 양태들에 관련하여 설명되는 각종 구체적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 프로세스들은 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이것 둘의 조합들로 구현될 수도 있다. 하드웨어 및 소프트웨어의 이러한 상호교환가능성을 명백하게 예증하기 위하여, 갖가지 구체적인 구성요소들, 블록, 모듈들, 회로들 및 알고리즘들은 일반적으로 그들의 기능성을 이용하여 설명되어있다. 이러한 기능성이 하드웨어 또는 소프트웨어 중 어느 것으로 구현되는지는 전체 시스템에 의하여 부가되는 특정 애플리케이션 및 디자인 한정 사항에 의존한다. 당업자들은 전술된 기능을 각각의 특정한 애플리케이션에 대하여 다양한 방식으로 구현할 수도 있지만, 이러한 구현 결정은 본 발명의 범위를 벗어나도록 하는 것으로 해석되지 않아야 한다.
여기에 개시된 양태들에 관련하여 설명된 갖가지 실례의 로직들, 논리 블록들, 모듈들, 및 회로들을 구현하는데 사용되는 하드웨어는 여기에 설명된 기능들을 수행하도록 고안된 범용 프로세서, 디지털 신호 프로세서 (DSP), 주문형 집적회로 (ASIC), 필드 프로그램가능 게이트 어레이 (FPGA) 또는 여타 프로그램가능 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 그것들의 어떤 결합물로 구현되거나 실시될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대체예에서, 이 프로세서는 어떤 기존의 프로세서, 제어기, 마이크로제어기, 또는 상태 기계(state machine) 일 수도 있다. 프로세서는 또한 컴퓨팅 다바이스들의 조합, 예를 들어 DSP 및 마이크로프로세서의 조합, 복수 개의 마이크로프로세서들, DSP 코어와 협력하는 하나 이상의 마이크로프로세서들, 또는 어떤 여타의 이러한 구성으로 구현될 수도 있다. 다르게는, 일부 프로세스들 또는 방법들이 주어진 기능에 특화된 회로에 의해 수행될 수도 있다.
하나 이상의 예시적인 양태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그것들의 어떤 조합으로도 구현될 수도 있다. 소프트웨어로 구현된다면, 기능들은 하나 이상의 명령들 또는 코드로서 컴퓨터 판독가능 매체 상에 저장되거나 전송될 수도 있다. 여기에 개시된 방법 또는 알고리즘의 프로세스들은 컴퓨터 판독가능 매체 상에 상주할 수도 있는 프로세서 실행가능 소프트웨어 모듈로 실시될 수도 있다. 컴퓨터 판독가능 매체는 한 장소에서 다른 장소로의 컴퓨터 프로그램의 전송을 용이하게 하는 어떤 매체라도 포함하는 컴퓨터 저장 매체 및 통신 매체 양쪽 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수도 있는 이용가능한 어떤 매체라도 될 수도 있다. 예로서, 및 비제한적으로, 이러한 컴퓨터 판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타의 광 디스크 스토리지, 자기 디스크 스토리지, 또는 기타 자기 저장 디바이스들, 또는 소망의 프로그램 코드를 컴퓨터에 의해 액세스될 수도 있는 명령들 또는 데이터 구조들의 형태로 운반하거나 저장하는데 사용될 수도 있는 임의의 다른 매체를 포함할 수도 있다. 또한, 어떤 관련된 것이라도 사실상 컴퓨터 판독가능 매체라고 한다. 예를 들어, 소프트웨어가 웹사이트, 서버, 또는 다른 원격 자원으로부터 동축 케이블, 광섬유 케이블, 연선(twisted pair), 디지털 가입자 회선 (DSL), 또는 무선 기술들 이를테면 적외선, 라디오, 및/또는 마이크로파를 이용하여 전송된다면, 동축 케이블, 광섬유 케이블, 연선, DSL, 또는 적외선, 라디오, 및 마이크로파와 같은 무선 기술들은 매체의 정의에 포함된다. 디스크(Disk 및 disc) 는 여기서 사용되는 바와 같이, 콤팩트 디스크(compact disc, CD), 레이저 디스크, 광 디스크, 디지털 다용도 디스크 (DVD), 플로피 디스크(floppy disk) 및 블루레이 디스크를 포함하는데, disk들은 보통 데이터를 자기적으로 재생하지만, disc들은 레이저들로써 광적으로 데이터를 재생한다. 상기한 것들의 조합들도 컴퓨터 판독가능 매체의 범위 내에 포함되어야 한다. 덧붙여, 방법 또는 알고리즘의 동작들은 코드들 및/또는 명령들의 하나 또는 어떤 결합물 또는 세트로서 컴퓨터 프로그램 제품에 통합될 수도 있는 기계 판독가능 매체 및/또는 컴퓨터-판독가능 매체 상에 존재할 수도 있다.
개시된 양태들의 전술한 설명은 이 기술분야의 숙련된 사람이 본 발명을 제작하고 사용할 수 있게끔 제공된다. 이들 양태들에 대한 갖가지 변형예들은 이 기술분야의 숙련된 자들에게 쉽사리 명확하게 될 것이고, 여기에 정의된 일반 원리들은 본 발명의 정신 또는 범위로부터 벗어남 없이 다른 양태들에 적용될 수도 있다. 그래서, 본 발명은 여기에 보인 양태들로 한정할 의도는 아니며 다음의 청구항들 및 여기에 개시된 원리들 및 신규한 특징들과 일치하는 가장 넓은 범위를 부여하는 것을 의도한다.
Claims (101)
- 마스터 헬퍼 애플리케이션을 구현하는 제 1 컴퓨팅 디바이스 상에서 생성된 콘텐츠를 슬레이브 헬퍼 애플리케이션을 구현하는 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 방법으로서,
상기 제 1 컴퓨팅 디바이스의 프로세서 상에서 실행중인 애플리케이션들에 의해 생성된 콘텐츠의 영역들을 선택하는 입력을 상기 제 1 컴퓨팅 디바이스 상에서 수신하는 단계;
상기 제 1 컴퓨팅 디바이스에 의하여, 상기 선택된 영역들 각각을 둘러싸는 경계 박스들을 계산하는 단계;
상기 제 1 컴퓨팅 디바이스에 의하여, 상기 경계 박스들 중 적어도 하나의 경계 박스에 의해 둘러싸여진 콘텐츠를 생성하는 각각의 애플리케이션으로부터 상기 계산된 경계 박스들 각각에 대해 디스플레이 데이터를 검색하는 단계;
상기 마스터 헬퍼 애플리케이션의 지시 하에, 상기 검색된 디스플레이 데이터를 종합함으로써 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 재포맷팅된 디스플레이 데이터를 상기 제 1 컴퓨팅 디바이스의 프레임 버퍼에 숨은 윈도 객체 (hidden window object) 로서 저장하는 단계;
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 마스터 헬퍼 애플리케이션 및 상기 슬레이브 헬퍼 애플리케이션 사이의 통신을 경유하여 상기 제 2 컴퓨팅 디바이스에 전송하는 단계;
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 프레임 버퍼에 상기 슬레이브 헬퍼 애플리케이션의 지시 하에 저장하는 단계; 및
상기 제 2 컴퓨팅 디바이스의 상기 프레임 버퍼에 저장된 상기 숨은 윈도 객체의 디스플레이 데이터를 이용하여 상기 제 2 컴퓨팅 디바이스 상에 상기 디스플레이를 랜더링하는 단계를 포함하는, 디스플레이 방법. - 제 1 항에 있어서,
상기 마스터 헬퍼 애플리케이션의 지시 하에, 상기 검색된 디스플레이 데이터를 종합함으로써 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 재포맷팅된 디스플레이 데이터를 상기 제 1 컴퓨팅 디바이스의 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계는,
상기 제 1 컴퓨팅 디바이스 상에서 실행중인 애플리케이션에 지시하여 상기 애플리케이션의 디스플레이 이미지의 부분을 상기 제 1 컴퓨팅 디바이스의 상기 프레임 버퍼에 숨은 윈도 객체로서 페인팅하는 단계; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계를 포함하는, 디스플레이 방법. - 제 2 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계는 상기 제 1 컴퓨팅 디바이스에서 상기 마스터 헬퍼 애플리케이션의 지시 하에 달성되며; 그리고
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계는 크기변경된(resized) 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함하는, 디스플레이 방법. - 제 2 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계는, 상기 제 2 컴퓨팅 디바이스에서 상기 슬레이브 헬퍼 애플리케이션의 지시 하에 달성되며; 그리고
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계는, 원래 크기의(original sized) 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함하는, 디스플레이 방법. - 제 2 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계 이전에, 상기 숨은 윈도 객체의 디스플레이 데이터를 제 3 컴퓨팅 디바이스에 전송하는 단계를 더 포함하며,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계는 상기 제 3 컴퓨팅 디바이스에서 달성되며; 그리고
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계는 크기변경된 숨은 윈도 객체의 디스플레이 데이터를 상기 제 3 컴퓨팅 디바이스로부터 상기 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함하는, 디스플레이 방법. - 제 2 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계는, 상기 숨은 윈도 객체의 디스플레이 데이터가 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 디스플레이 이미지를 생성하도록 상기 숨은 윈도 객체의 디스플레이 데이터를 처리하는 단계를 포함하는, 디스플레이 방법. - 제 2 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계 이전에, 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스로부터 수신하는 단계를 더 포함하며,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계는, 상기 숨은 윈도 객체의 디스플레이 데이터 및 상기 수신된 제 2 컴퓨팅 디바이스 디스플레이 데이터의 블렌드(blend)를 생성하여 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 단일 블렌드된 디스플레이 이미지를 생성하는 단계를 포함하는, 디스플레이 방법. - 제 2 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계 이전에, 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스로부터 수신하는 단계를 더 포함하며,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계는, 상기 수신된 제 2 컴퓨팅 디바이스 디스플레이 데이터와 사이드-바이-사이드 (side-by-side) 로 상기 숨은 윈도 객체의 디스플레이 데이터를 제시하는 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 단일 디스플레이 이미지를 생성하는 단계를 포함하는, 디스플레이 방법. - 제 2 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 1 및 제 2 컴퓨팅 디바이스들 사이에 확립된 무선 데이터 링크를 경유하여 상기 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함하는, 디스플레이 방법. - 제 9 항에 있어서,
상기 무선 데이터 링크는 블루투스® 무선 데이터 링크인, 디스플레이 방법. - 삭제
- 제 1 항에 있어서,
상기 입력을 상기 제 1 컴퓨팅 디바이스 상에서 수신하는 단계 이전에,
사용자 입력을 상기 제 2 컴퓨팅 디바이스 상에서 수신하는 단계;
상기 제 2 컴퓨팅 디바이스에 의하여, 상기 수신된 사용자 입력에 관한 정보를 상기 제 1 컴퓨팅 디바이스 상의 상기 마스터 헬퍼 애플리케이션에 통신하는 단계;
상기 제 1 컴퓨팅 디바이스에 의하여, 상기 수신된 사용자 입력에 관한 상기 통신된 정보를 상기 경계 박스들 중 하나의 경계 박스에 상관시켜 상응하는 사용자 입력을 결정하는 단계; 및
상기 제 1 컴퓨팅 디바이스에 의하여, 상기 상응하는 사용자 입력을 상기 제 1 컴퓨팅 디바이스 상에서 동작중인 상기 상관된 경계 박스에 의해 둘러싸여진 콘텐츠를 생성하는 애플리케이션에 통신하는 단계를 더 포함하는, 디스플레이 방법. - 제 1 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 마스터 헬퍼 애플리케이션 및 상기 슬레이브 헬퍼 애플리케이션 사이의 통신을 경유하여 상기 제 2 컴퓨팅 디바이스에 전송하는 단계 이전에,
상기 제 1 컴퓨팅 디바이스에 의하여, 디스플레이 이미지의 부분들이 상기 제 2 컴퓨팅 디바이스에 전송될 수 있음을 상기 제 2 컴퓨팅 디바이스에 통지하는 단계;
상기 제 2 컴퓨팅 디바이스에 의하여, 상기 제 2 컴퓨팅 디바이스의 사용자에게 상기 디스플레이 이미지의 부분을 수신하는 것의 동의(agreement)를 확인할 것을 프롬프트하는 단계;
상기 제 2 컴퓨팅 디바이스에 의하여, 상기 제 2 컴퓨팅 디바이스의 상기 사용자가 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였는지를 결정하는 단계; 및
상기 제 2 컴퓨팅 디바이스의 상기 사용자가 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에서 수신하는 단계를 더 포함하는, 디스플레이 방법. - 제 1 항에 있어서,
상기 마스터 헬퍼 애플리케이션의 지시 하에, 상기 검색된 디스플레이 데이터를 종합함으로써 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 재포맷팅된 디스플레이 데이터를 상기 제 1 컴퓨팅 디바이스의 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계는
상기 제 2 컴퓨팅 디바이스의 상기 디스플레이의 특성들을 상기 제 1 컴퓨팅 디바이스 상에서 실행중인 상기 마스터 헬퍼 애플리케이션에 제공하는 단계; 및
상기 마스터 헬퍼 애플리케이션으로부터의 디스플레이 이미지를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 포맷으로 상기 제 1 컴퓨팅 디바이스의 상기 프레임 버퍼 내로 수신하는 단계를 포함하는, 디스플레이 방법. - 제 14 항에 있어서,
상기 마스터 헬퍼 애플리케이션으로부터 수신된 상기 디스플레이 이미지는 상기 제 1 컴퓨팅 디바이스의 디스플레이보다 큰 디스플레이를 위한 크기로 된, 디스플레이 방법. - 제 1 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 프레임 버퍼에 상기 슬레이브 헬퍼 애플리케이션의 지시 하에 저장하는 단계 이전에 또는 그 이후에,
상기 제 2 컴퓨팅 디바이스로부터 상기 숨은 윈도 객체의 디스플레이 데이터를 제 3 컴퓨팅 디바이스에 전송하는 단계;
상기 전송된 숨은 윈도 객체 디스플레이 데이터를 상기 제 3 컴퓨팅 디바이스에서 수신하는 단계;
상기 제 3 컴퓨팅 디바이스에 의하여, 수신된 숨은 윈도 객체의 디스플레이 데이터를 상기 제 3 컴퓨팅 디바이스의 프레임 버퍼에 저장하는 단계; 및
상기 제 3 컴퓨팅 디바이스에 의하여, 상기 제 3 컴퓨팅 디바이스의 상기 프레임 버퍼에 저장된 상기 숨은 윈도 객체의 디스플레이 데이터를 이용하여 상기 제 3 컴퓨팅 디바이스 상에 디스플레이를 랜더링하는 단계를 더 포함하는, 디스플레이 방법. - 컴퓨팅 디바이스로서,
프로세서;
상기 프로세서에 커플링되고 프레임 버퍼를 구비하도록 구성되는 메모리; 및
상기 프로세서에 커플링된 트랜시버를 포함하며,
상기 프로세서는,
상기 프로세서 상에서 실행중인 애플리케이션들에 의해 생성된 콘텐츠의 영역들을 둘러싸는 경계 박스들을 계산하는 단계;
상기 경계 박스들 중 적어도 하나의 경계 박스에 의해 둘러싸여진 콘텐츠를 생성하는 각각의 애플리케이션으로부터 상기 계산된 경계 박스들 각각에 대해 디스플레이 데이터를 검색하는 단계;
상기 검색된 디스플레이 데이터를 종합함으로써 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 재포맷팅된 디스플레이 데이터를 메모리 내의 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 트랜시버를 경유하여 상기 제 2 컴퓨팅 디바이스에 전송하는 단계
를 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 제 17 항에 있어서,
상기 프로세서는
상기 검색된 디스플레이 데이터를 종합함으로써 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 재포맷팅된 디스플레이 데이터를 메모리 내의 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계가,
상기 프로세서 상에서 실행중인 애플리케이션에 지시하여 상기 애플리케이션의 디스플레이 이미지의 부분을 상기 프레임 버퍼에 숨은 윈도 객체로서 페인팅하는 단계; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계를 포함하도록 하는 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 제 18 항에 있어서,
상기 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계가, 크기변경된 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함하도록 하는 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 제 18 항에 있어서,
상기 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계가, 원래 크기의 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함하도록 하는 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 제 18 항에 있어서,
상기 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계 이전에, 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스로부터 수신하는 단계를 더 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들을 실행하도록 구성되며,
상기 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계가, 상기 숨은 윈도 객체의 디스플레이 데이터 및 상기 수신된 제 2 컴퓨팅 디바이스 디스플레이 데이터의 블렌드(blend)를 생성하여 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 단일 블렌드된 디스플레이 이미지를 생성하는 단계를 포함하도록 하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 제 18 항에 있어서,
상기 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계 이전에, 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스로부터 수신하는 단계를 더 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들을 실행하도록 구성되며,
상기 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계가, 상기 수신된 제 2 컴퓨팅 디바이스 디스플레이 데이터와 사이드-바이-사이드로 상기 숨은 윈도 객체의 디스플레이 데이터를 제시하는 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 단일 디스플레이 이미지를 생성하는 단계를 포함하도록 하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 제 17 항에 있어서,
상기 트랜시버는 무선 트랜시버이며; 그리고
상기 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계가, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 트랜시버 및 상기 제 2 컴퓨팅 디바이스 사이에 확립된 무선 데이터 링크를 경유하여 상기 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함하도록 하는 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 제 23 항에 있어서,
상기 트랜시버는 블루투스® 트랜시버인, 컴퓨팅 디바이스. - 삭제
- 제 17 항에 있어서,
상기 프로세서는, 상기 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅 하기 이전에,
사용자 입력에 관한 정보를 상기 제 2 컴퓨팅 디바이스로부터 수신하는 단계;
상기 사용자 입력에 관한 상기 수신된 정보를 상기 경계 박스들 중 하나의 경계 박스에 상관시켜 상응하는 사용자 입력을 결정하는 단계; 및
상기 상응하는 사용자 입력을 상기 프로세서 상에서 동작중인 상기 상관된 경계 박스에 둘러싸여진 콘텐츠를 생성하는 애플리케이션에 통신하는 단계
를 더 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 제 17 항에 있어서,
상기 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 트랜시버를 경유하여 상기 제 2 컴퓨팅 디바이스에 전송하는 단계 이전에, 상기 디스플레이 이미지의 부분들이 상기 제 2 컴퓨팅 디바이스에 전송될 수 있음을 상기 제 2 컴퓨팅 디바이스에 통지하는 단계를 더 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 제 17 항에 있어서,
상기 프로세서는,
상기 검색된 디스플레이 데이터를 종합함으로써 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 재포맷팅된 디스플레이 데이터를 상기 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계가,
상기 제 2 컴퓨팅 디바이스의 상기 디스플레이의 특성들을 상기 프로세서 상에서 실행중인 상기 마스터 헬퍼 애플리케이션에 제공하는 단계; 및
상기 마스터 헬퍼 애플리케이션으로부터의 디스플레이 이미지를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 포맷으로 상기 프레임 버퍼 내로 수신하는 단계를 포함하도록 하는 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 제 28 항에 있어서,
상기 프로세서는 상기 마스터 헬퍼 애플리케이션으로부터 수신된 상기 디스플레이 이미지가 상기 컴퓨팅 디바이스의 디스플레이보다 큰 디스플레이를 위한 크기가 되도록 하는 프로세서 실행가능 명령들을 실행하도록 구성되는, 컴퓨팅 디바이스. - 컴퓨팅 디바이스로서,
프로세서;
상기 프로세서에 커플링되고 프레임 버퍼를 구비하도록 구성되는 메모리;
상기 프로세서에 그리고 상기 프레임 버퍼에 커플링되는 디스플레이; 및
상기 프로세서에 커플링된 트랜시버를 포함하며,
상기 프로세서는,
숨은 윈도 객체 디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하는 단계로서, 상기 숨은 윈도 객체 디스플레이 데이터는, 상기 제 2 컴퓨팅 디바이스 상에서 계산된 경계 박스들 내에 둘러싸여진 콘텐츠를 생성하는 애플리케이션들로부터 수집된 종합된 디스플레이 데이터를 포함하는 재포맷팅된 디스플레이 데이터를 포함하는, 상기 수신하는 단계;
상기 숨은 윈도 객체 디스플레이 데이터를 상기 프레임 버퍼에 저장하는 단계; 및
상기 프레임 버퍼에 저장된 상기 숨은 윈도 객체 디스플레이 데이터를 이용하여 상기 디스플레이 상에 이미지를 랜더링하는 단계
를 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 30 항에 있어서,
상기 프로세서는, 상기 숨은 윈도 객체 디스플레이 데이터를 상기 프레임 버퍼에 저장하는 단계 이전에, 상기 숨은 윈도 객체 디스플레이 데이터를 상기 디스플레이에 맞도록 재포맷팅하는 단계를 더 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 31 항에 있어서,
상기 프로세서는, 상기 숨은 윈도 객체 디스플레이 데이터를 상기 디스플레이에 맞도록 재포맷팅하는 단계가, 상기 숨은 윈도 객체 디스플레이 데이터 및 상기 프로세서 상에서 실행중인 애플리케이션으로부터의 디스플레이 데이터의 블렌드를 생성하여 상기 디스플레이와 호환되는 단일 블렌드된 디스플레이 이미지를 생성하는 단계를 포함하도록 하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 31 항에 있어서,
상기 프로세서는, 상기 숨은 윈도 객체 디스플레이 데이터를 상기 디스플레이에 맞도록 재포맷팅하는 단계가, 상기 프로세서 상에서 실행중인 애플리케이션으로부터의 디스플레이 데이터와 사이드-바이-사이드로 상기 숨은 윈도 객체 디스플레이 데이터를 제시하는 상기 디스플레이와 호환되는 단일 디스플레이 이미지를 생성하는 단계를 포함하도록 하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 31 항에 있어서,
상기 트랜시버는 무선 트랜시버이며; 그리고
상기 프로세서는, 상기 숨은 윈도 객체 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스로부터 수신하는 단계가, 상기 숨은 윈도 객체 디스플레이 데이터를 상기 트랜시버 및 상기 제 2 컴퓨팅 디바이스 사이에 확립된 무선 데이터 링크를 경유하여 수신하는 단계를 포함하도록 하는 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 34 항에 있어서,
상기 트랜시버는 블루투스® 트랜시버인, 컴퓨팅 디바이스. - 제 31 항에 있어서,
상기 프로세서는,
상기 숨은 윈도 객체 디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하는 단계 이전에,
사용자 입력을 수신하는 단계; 및
상기 수신된 사용자 입력에 관한 정보를 상기 제 2 컴퓨팅 디바이스에 통신하는 단계
를 더 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 31 항에 있어서,
상기 프로세서는
상기 숨은 윈도 객체 디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하는 단계 이전에,
디스플레이 이미지의 부분들이 전송될 수 있다는 상기 제 2 컴퓨팅 디바이스로부터의 통지를 수신하는 단계;
디스플레이 이미지의 부분들을 수신하는 것의 동의를 확인할 것을 사용자에게 요구하는 프롬프트를 상기 디스플레이 상에 디스플레이하는 단계;
상기 사용자가 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였는지를 결정하는 단계; 및
상기 사용자가 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면, 상기 숨은 윈도 객체 디스플레이 데이터를 수용하는 단계
를 더 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 37 항에 있어서,
상기 프로세서는, 상기 숨은 윈도 객체 디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하는 단계 이전에, 상기 사용자가 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면 디스플레이 이미지의 부분들이 수용될 것임을 상기 제 2 컴퓨팅 디바이스에 통지하는 단계를 더 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 컴퓨팅 디바이스. - 제 1 통신 디바이스; 및
제 2 통신 디바이스를 포함하는 통신 시스템으로서,
상기 제 1 통신 디바이스는
제 1 프로세서;
상기 제 1 프로세서에 커플링되고 제 1 프레임 버퍼를 구비하도록 구성되는 제 1 메모리; 및
상기 제 1 프로세서에 커플링된 제 1 트랜시버를 포함하며,
상기 제 1 프로세서는,
상기 제 1 프로세서 상에서 실행중인 애플리케이션들에 의해 생성된 콘텐츠의 영역들을 둘러싸는 경계 박스들을 계산하는 단계;
상기 경계 박스들 중 적어도 하나의 경계 박스에 의해 둘러싸여진 콘텐츠를 생성하는 각각의 애플리케이션으로부터 상기 계산된 경계 박스들 각각에 대해 디스플레이 데이터를 검색하는 단계;
상기 검색된 디스플레이 데이터를 종합함으로써 상기 제 2 통신 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 디스플레이 데이터를 상기 제 1 메모리 내의 상기 제 1 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 1 트랜시버를 경유하여 상기 제 2 통신 디바이스에 전송하는 단계
를 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되며:
상기 제 2 통신 디바이스는
제 2 프로세서;
상기 제 2 프로세서에 커플링되고 제 2 프레임 버퍼를 구비하도록 구성되는 제 2 메모리;
상기 제 2 프로세서에 그리고 상기 제 2 프레임 버퍼에 커플링되는 제 2 디스플레이; 및
상기 제 2 프로세서에 커플링된 제 2 트랜시버를 포함하며,
상기 제 2 프로세서는
숨은 윈도 객체의 디스플레이 데이터를 상기 제 1 통신 디바이스로부터 상기 제 2 트랜시버를 경유하여 수신하는 단계;
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 프레임 버퍼에 저장하는 단계; 및
상기 제 2 프레임 버퍼에 저장된 상기 숨은 윈도 객체의 디스플레이 데이터를 이용하여 상기 제 2 디스플레이 상에 이미지를 랜더링하는 단계
를 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 통신 시스템. - 제 39 항에 있어서,
상기 제 1 프로세서는, 상기 검색된 디스플레이 데이터를 종합함으로써 상기 제 2 통신 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하는 동안, 상기 제 1 프로세서 상에서 실행중인 애플리케이션에 지시하여 상기 애플리케이션의 디스플레이 이미지의 부분을 상기 제 1 프레임 버퍼에 숨은 윈도 객체로서 페인팅하는 단계를 더 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 통신 시스템. - 제 40 항에 있어서,
상기 제 1 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 1 트랜시버를 경유하여 상기 제 2 통신 디바이스에 전송하는 단계 이전에, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 통신 디바이스의 상기 제 2 디스플레이에 맞도록 재포맷팅하는 단계를 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되고,
상기 제 1 프로세서는 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 통신 디바이스에 전송하는 단계가 재포맷팅된 숨은 윈도 객체 디스플레이 데이터를 상기 제 2 통신 디바이스에 전송하는 단계를 포함하도록 하는 프로세서 실행가능 명령들로 구성되는, 통신 시스템. - 제 40 항에 있어서,
상기 제 2 프로세서는, 숨은 윈도 객체의 디스플레이 데이터를 상기 제 1 통신 디바이스로부터 상기 제 2 트랜시버를 경유하여 수신하는 단계 이전에, 상기 수신된 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 디스플레이에 맞도록 재포맷팅하는 단계를 더 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 통신 시스템. - 제 40 항에 있어서,
상기 통신 시스템은, 제 3 통신 디바이스를 더 포함하며,
상기 제 3 통신 디바이스는
제 3 프로세서;
상기 제 3 프로세서에 커플링된 제 3 메모리; 및
상기 제 3 프로세서에 커플링된 제 3 트랜시버를 포함하며,
상기 제 3 프로세서는,
상기 숨은 윈도 객체 디스플레이 데이터를 상기 제 1 통신 디바이스로부터 수신하는 단계;
상기 수신된 숨은 윈도 객체 디스플레이 데이터를 상기 제 2 통신 디바이스의 상기 제 2 디스플레이에 맞도록 재포맷팅하는 단계; 및
상기 재포맷팅된 숨은 윈도 객체 디스플레이 데이터를 상기 제 3 트랜시버를 경유하여 상기 제 2 통신 디바이스에 전송하는 단계
를 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되며,
상기 제 1 프로세서는, 상기 검색된 디스플레이 데이터를 종합함으로써 상기 제 2 통신 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 디스플레이 데이터를 상기 제 1 메모리 내의 상기 제 1 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계가 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 3 통신 디바이스에 처리를 위해 전송하는 단계를 포함하고 그리고 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 1 트랜시버를 경유하여 상기 제 2 통신 디바이스에 전송하는 단계가 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 3 통신 디바이스에 처리를 위해 전송하는 단계를 포함하도록 하는 프로세서 실행가능 명령들로 구성되며,
상기 제 2 프로세서는 숨은 윈도 객체의 디스플레이 데이터를 상기 제 1 통신 디바이스로부터 상기 제 2 트랜시버를 경유하여 수신하는 단계가 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 3 통신 디바이스를 경유하여 수신하는 단계를 포함하도록 하는 프로세서 실행가능 명령들로 구성되는, 통신 시스템. - 제 40 항에 있어서,
상기 제 1 및 제 2 트랜시버들은 무선 트랜시버들인, 통신 시스템. - 제 44 항에 있어서,
상기 제 1 및 제 2 트랜시버들은 블루투스® 트랜시버들인, 통신 시스템. - 삭제
- 제 40 항에 있어서,
상기 제 2 프로세서는,
상기 제 1 프로세서 상에서 실행중인 애플리케이션들에 의해 생성된 콘텐츠의 영역들을 둘러싸는 경계 박스들을 계산하는 단계 이전에,
사용자 입력을 수신하는 단계; 및
상기 수신된 사용자 입력에 관한 정보를 상기 제 2 트랜시버를 경유하여 상기 제 1 통신 디바이스에 통신하는 단계
를 더 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되며, 그리고
상기 제 1 프로세서는,
상기 제 1 프로세서 상에서 실행중인 애플리케이션들에 의해 생성된 콘텐츠의 영역들을 둘러싸는 경계 박스들을 계산하는 단계 이전에,
상기 수신된 사용자 입력에 관한 상기 정보를 상기 제 1 트랜시버를 경유하여 수신하는 단계;
상기 수신된 사용자 입력에 관한 상기 수신된 정보를 상기 경계 박스들 중 하나의 경계 박스에 상관시켜 상응하는 사용자 입력을 결정하는 단계; 및
상기 상응하는 사용자 입력을 상기 제 1 프로세서 상에서 동작중인
상기 상관된 경계 박스에 의해 둘러싸여진 콘텐츠를 생성하는 애플리케이션에 통신하는 단계
를 더 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 통신 시스템. - 제 40 항에 있어서,
상기 제 1 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 1 통신 디바이스로부터 상기 제 2 트랜시버를 경유하여 수신하는 단계 이전에, 디스플레이 이미지의 부분들이 상기 제 2 통신 디바이스에 전송될 것임을 상기 제 2 통신 디바이스에 통지하는 단계를 더 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되며, 그리고
상기 제 2 프로세서는,
상기 디스플레이 이미지의 부분들이 상기 제 2 통신 디바이스에 전송될 것임을 상기 제 2 통신 디바이스에 통지하는 단계 이후에,
상기 제 2 통신 디바이스의 사용자에게 상기 디스플레이 이미지의 부분을 수신하는 것의 동의(agreement)를 확인할 것을 프롬프트하는 단계;
사용자 입력을 수신하는 단계;
상기 수신된 사용자 입력이 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였는지를 결정하는 단계; 및
상기 사용자 입력이 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면 상기 숨은 윈도 객체의 디스플레이 데이터를 수용하는 단계
를 더 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 통신 시스템. - 제 48 항에 있어서,
상기 제 2 프로세서는, 상기 숨은 윈도 객체의 디스플레이 데이터를 수용하는 단계 이후에, 상기 사용자 입력이 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면 상기 디스플레이 이미지의 부분들이 수용될 것이라는 통지를 상기 제 1 통신 디바이스에 전송하는 단계를 더 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 통신 시스템. - 제 40 항에 있어서,
상기 제 1 프로세서는,
상기 검색된 디스플레이 데이터를 종합함으로써 상기 제 2 통신 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 디스플레이 데이터를 상기 제 1 메모리 내의 상기 제 1 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계 이전에,
상기 제 2 통신 디바이스의 상기 제 2 디스플레이의 특성들을 상기 제 1 프로세서 상에서 실행중인 상기 마스터 헬퍼 애플리케이션에 제공하는 단계; 및
상기 마스터 헬퍼 애플리케이션으로부터의 디스플레이 이미지를 상기 제 2 통신 디바이스의 상기 제 2 디스플레이와 호환되는 포맷으로 상기 제 1 프레임 버퍼 내로 수신하는 단계
를 더 포함하는 동작들을 수행하는 마스터 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되는, 통신 시스템. - 제 50 항에 있어서,
상기 마스터 헬퍼 애플리케이션으로부터 수신된 상기 디스플레이 이미지는 상기 제 1 통신 디바이스의 디스플레이를 위한 포맷보다 큰 포맷으로 제 2 디스플레이를 위한 크기로 된, 통신 시스템. - 제 43 항에 있어서,
상기 통신 시스템은 제 4 통신 디바이스를 더 포함하며,
상기 제 4 통신 디바이스는,
제 4 프로세서;
상기 제 4 프로세서에 커플링되고 제 4 프레임 버퍼를 구비하도록 구성되는 제 4 메모리;
상기 제 4 프로세서에 그리고 상기 제 4 프레임 버퍼에 커플링되는 제 4 디스플레이; 및
상기 제 4 프로세서에 커플링된 제 4 트랜시버를 포함하며,
상기 제 2 프로세서는 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 트랜시버를 경유하여 상기 제 4 통신 디바이스에 전송하는 단계를 더 포함하는 동작들을 수행하는 슬레이브 헬퍼 애플리케이션을 구현하기 위한 프로세서 실행가능 명령들로 구성되며;
상기 제 4 프로세서는,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 프레임 버퍼에 저장하는 단계 이전에 또는 그 이후에,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 4 트랜시버를 경유하여 수신하는 단계;
상기 수신된 숨은 윈도 객체의 디스플레이 데이터를 상기 제 4 프레임 버퍼에 저장하는 단계; 및
상기 제 4 프레임 버퍼에 저장된 상기 숨은 윈도 객체의 디스플레이 데이터를 이용하여 상기 제 4 디스플레이 상에 디스플레이를 랜더링하는 단계
를 포함하는 동작들을 수행하기 위한 프로세서 실행가능 명령들로 구성되는, 통신 시스템. - 컴퓨팅 디바이스로서,
제 2 컴퓨팅 디바이스 상의 디스플레이를 위한 콘텐츠의 영역들을 선택하는 입력을 수신하기 위한 수단;
상기 선택된 영역들 각각을 둘러싸는 경계 박스들을 계산하기 위한 수단;
상기 경계 박스들 중 적어도 하나의 경계 박스에 의해 둘러싸여진 콘텐츠를 생성하고 상기 컴퓨팅 디바이스 상에 실행하는 하나 이상의 애플리케이션들로부터 상기 계산된 경계 박스들 각각에 대해 디스플레이 데이터를 검색하기 위한 수단;
상기 검색된 디스플레이 데이터를 종합함으로써 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하기 위한 수단;
상기 재포맷팅된 디스플레이 데이터를 프레임 버퍼에 숨은 윈도 객체로서 저장하기 위한 수단; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 트랜시버를 경유하여 상기 제 2 컴퓨팅 디바이스에 전송하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 53 항에 있어서,
상기 검색된 디스플레이 데이터를 종합함으로써 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하기 위한 수단은,
프로세서 상에서 실행중인 애플리케이션에 지시하여 상기 애플리케이션의 디스플레이 이미지의 부분을 상기 프레임 버퍼에 숨은 윈도 객체로서 페인팅하기 위한 수단; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 54 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하기 위한 수단은 재포맷팅된 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 54 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하기 위한 수단은 원래 크기의 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 54 항에 있어서,
디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하기 위한 수단을 더 포함하며,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 재포맷팅하기 위한 수단은, 상기 숨은 윈도 객체의 디스플레이 데이터 및 상기 수신된 제 2 컴퓨팅 디바이스 디스플레이 데이터의 블렌드를 생성하여 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 단일 블렌드된 디스플레이 이미지를 생성하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 54 항에 있어서,
디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하기 위한 수단을 더 포함하며,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 재포맷팅하기 위한 수단은, 상기 수신된 제 2 컴퓨팅 디바이스 디스플레이 데이터와 사이드-바이-사이드로 상기 숨은 윈도 객체의 디스플레이 데이터를 제시하는 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 단일 디스플레이 이미지를 생성하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 53 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하기 위한 수단은, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스와의 사이에 확립된 무선 데이터 링크를 경유하여 상기 제 2 컴퓨팅 디바이스에 전송하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 54 항에 있어서,
상기 제 2 컴퓨팅 디바이스 상에 디스플레이될 디스플레이 이미지의 선택을 나타내는 사용자 입력을 수신하기 위한 수단을 더 포함하며,
디스플레이 이미지를 상기 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 재포맷팅하기 위한 수단은,
프로세서 상에서 실행중인 애플리케이션에 지시하여 상기 디스플레이 이미지의 나타내진 선택된 부분을 상기 프레임 버퍼에 숨은 윈도 객체로서 페인팅하기 위한 수단; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 53 항에 있어서,
사용자 입력에 관한 정보를 상기 제 2 컴퓨팅 디바이스로부터 수신하기 위한 수단;
상기 사용자 입력에 관한 상기 정보를 상기 경계 박스들 중 하나의 경계 박스에 상관시켜 상기 컴퓨팅 디바이스 상에서 상응하는 사용자 입력을 결정하기 위한 수단; 및
상기 상응하는 사용자 입력을 상기 컴퓨팅 디바이스 상에서 동작중인 상기 상관된 경계 박스에 둘러싸인 콘텐츠를 생성하는 애플리케이션에 통신하기 위한 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 53 항에 있어서,
디스플레이 이미지의 부분들이 상기 제 2 컴퓨팅 디바이스에 전송될 수 있음을 상기 제 2 컴퓨팅 디바이스에 통지하기 위한 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 54 항에 있어서,
상기 컴퓨팅 디바이스 상에서 실행중인 애플리케이션에 의해 생성된 디스플레이 이미지를 상기 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 재포맷팅하기 위한 수단은,
상기 제 2 컴퓨팅 디바이스의 상기 디스플레이의 특성들을 상기 컴퓨팅 디바이스 상에서 실행중인 상기 애플리케이션에 제공하기 위한 수단; 및
상기 애플리케이션으로부터의 디스플레이 이미지를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 포맷으로 상기 프레임 버퍼 내로 수신하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 컴퓨팅 디바이스로서,
숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하기 위한 수단으로서, 상기 숨은 윈도 객체의 디스플레이 데이터는, 상기 제 1 컴퓨팅 디바이스 상에서 계산된 경계 박스들 내에 둘러싸인 콘텐츠를 생성하는 애플리케이션들로부터 수집되는 종합된 디스플레이 데이터를 포함하는 재포맷팅된 디스플레이 데이터를 포함하는, 상기 수신 수단;
상기 숨은 윈도 객체의 디스플레이 데이터를 저장하기 위한 수단; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 이용하여 디스플레이 상에 이미지를 디스플레이하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 64 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 디스플레이에 맞도록 재포맷팅하기 위한 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 65 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 디스플레이에 맞도록 재포맷팅하기 위한 수단은, 상기 숨은 윈도 객체의 디스플레이 데이터 및 상기 컴퓨팅 디바이스 상에서 실행중인 애플리케이션으로부터의 디스플레이 데이터의 블렌드를 생성하여 단일 블렌드된 디스플레이 이미지를 생성하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 65 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 디스플레이에 맞도록 재포맷팅하기 위한 수단은, 상기 컴퓨팅 디바이스 상에서 실행중인 애플리케이션으로부터의 디스플레이 데이터와 사이드-바이-사이드로 상기 숨은 윈도 객체의 디스플레이 데이터를 제시하는 이미지를 디스플레이하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 64 항에 있어서,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스로부터 수신하기 위한 수단은, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스와 확립된 무선 데이터 링크를 경유하여 수신하기 위한 수단을 포함하는, 컴퓨팅 디바이스. - 제 64 항에 있어서,
사용자 입력을 수신하기 위한 수단; 및
상기 수신된 사용자 입력에 관한 정보를 상기 제 2 컴퓨팅 디바이스에 통신하기 위한 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 64 항에 있어서,
디스플레이 이미지의 부분들이 전송될 수 있다는 상기 제 2 컴퓨팅 디바이스로부터의 통지를 수신하기 위한 수단;
디스플레이 이미지의 부분들을 수신하는 것의 동의를 확인할 것을 사용자에게 요구하는 프롬프트를 디스플레이하기 위한 수단;
사용자 입력을 수신하기 위한 수단;
상기 수신된 사용자 입력이 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하는지를 결정하기 위한 수단; 및
상기 수신된 사용자 입력이 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인한다고 결정되면, 상기 숨은 윈도 객체의 디스플레이 데이터를 수용하기 위한 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 70 항에 있어서,
상기 수신된 사용자 입력이 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면 디스플레이 이미지의 부분들이 수용될 것임을 상기 제 2 컴퓨팅 디바이스에 통지하기 위한 수단을 더 포함하는, 컴퓨팅 디바이스. - 제 1 통신 디바이스; 및
제 2 통신 디바이스를 포함하는 통신 시스템으로서,
상기 제 1 통신 디바이스는,
상기 제 1 통신 디바이스의 프로세서 상에서 실행중인 애플리케이션들에 의해 생성된 콘텐츠의 영역들을 둘러싸는 경계 박스들을 계산하기 위한 수단;
상기 경계 박스들 중 적어도 하나의 경계 박스에 의해 둘러싸인 콘텐츠를 생성하는 각각의 애플리케이션으로부터 상기 계산된 경계 박스들 각각에 대해 디스플레이 데이터를 검색하기 위한 수단;
상기 검색된 디스플레이 데이터를 종합함으로써 상기 제 2 통신 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 디스플레이 데이터를 제 1 프레임 버퍼에 숨은 윈도 객체로서 저장하기 위한 수단; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 통신 디바이스에 전송하기 위한 수단을 포함하며,
상기 제 2 통신 디바이스는,
숨은 윈도 객체의 디스플레이 데이터를 상기 제 1 통신 디바이스로부터 수신하기 위한 수단;
상기 숨은 윈도 객체의 디스플레이 데이터를 저장하기 위한 수단; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 이용하여 이미지를 랜더링하기 위한 수단을 포함하는, 통신 시스템. - 제 72 항에 있어서,
상기 제 1 통신 디바이스는,
상기 제 1 통신 디바이스 상에서 실행중인 애플리케이션에 지시하여 상기 애플리케이션의 디스플레이 이미지의 부분을 프레임 버퍼에 숨은 윈도 객체로서 페인팅하기 위한 수단; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 통신 디바이스의 디스플레이에 맞도록 재포맷팅하기 위한 수단을 더 포함하는, 통신 시스템. - 제 72 항에 있어서,
상기 제 1 통신 디바이스는,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 통신 디바이스의 디스플레이에 맞도록 재포맷팅하기 위한 수단을 더 포함하며;
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 통신 디바이스에 전송하기 위한 수단은 재포맷팅된 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 통신 디바이스에 전송하기 위한 수단을 포함하는, 통신 시스템. - 제 72 항에 있어서,
상기 제 2 통신 디바이스는, 상기 수신된 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 통신 디바이스의 디스플레이에 맞도록 재포맷팅하기 위한 수단을 더 포함하는, 통신 시스템. - 제 72 항에 있어서,
상기 통신 시스템은 제 3 통신 디바이스를 더 포함하며,
상기 제 3 통신 디바이스는,
상기 숨은 윈도 객체 디스플레이 데이터를 상기 제 1 통신 디바이스로부터 수신하기 위한 수단;
상기 수신된 숨은 윈도 객체 디스플레이 데이터를 상기 제 2 통신 디바이스의 디스플레이에 맞도록 재포맷팅하기 위한 수단; 및
상기 재포맷팅된 숨은 윈도 객체 디스플레이 데이터를 상기 제 2 통신 디바이스에 전송하기 위한 수단을 포함하며,
상기 제 1 통신 디바이스의, 상기 검색된 디스플레이 데이터를 종합함으로써 상기 제 2 통신 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 상기 검색된 디스플레이 데이터를 재포맷팅하고 상기 디스플레이 데이터를 제 1 프레임 버퍼에 숨은 윈도 객체로서 저장하기 위한 수단은 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 3 통신 디바이스에 처리를 위해 전송하기 위한 수단을 포함하고 그리고 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 통신 디바이스에 전송하기 위한 수단은 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 3 통신 디바이스에 처리를 위해 전송하기 위한 수단을 포함하며;
숨은 윈도 객체의 디스플레이 데이터를 상기 제 1 통신 디바이스로부터 수신하기 위한 상기 제 2 통신 디바이스의 수단은 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 3 통신 디바이스를 경유하여 수신하기 위한 수단을 포함하는, 통신 시스템. - 제 72 항에 있어서,
상기 제 1 통신 디바이스는,
상기 제 2 통신 디바이스 상에 디스플레이될 상기 디스플레이 이미지의 선택을 나타내는 사용자 입력을 수신하기 위한 수단;
상기 제 1 통신 디바이스 상에서 실행중인 애플리케이션에 지시하여 상기 애플리케이션의 디스플레이 이미지의 나타내진 선택된 부분을 프레임 버퍼에 숨은 윈도 객체로서 페인팅하기 위한 수단; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 통신 디바이스의 디스플레이에 맞도록 재포맷팅하기 위한 수단을 더 포함하는, 통신 시스템. - 제 72 항에 있어서,
상기 제 2 통신 디바이스는,
사용자 입력을 수신하기 위한 수단; 및
상기 수신된 사용자 입력에 관한 정보를 상기 제 1 통신 디바이스에 통신하기 위한 수단을 더 포함하며,
상기 제 1 통신 디바이스는
상기 수신된 사용자 입력에 관한 상기 정보를 수신하기 위한 수단;
상기 수신된 사용자 입력에 관한 상기 수신된 정보를 상기 경계 박스들 중의 하나의 경계 박스에 상관시켜 상응하는 사용자 입력을 결정하기 위한 수단; 및
상기 상응하는 사용자 입력을 상기 제 1 통신 디바이스 상에서 동작중인 상기 상관된 경계 박스에 둘러싸인 콘텐츠를 생성하는 애플리케이션에 통신하기 위한 수단을 더 포함하는, 통신 시스템. - 제 72 항에 있어서,
상기 제 1 통신 디바이스는 디스플레이 이미지의 부분들이 상기 제 2 통신 디바이스에 전송될 수 있음을 상기 제 2 통신 디바이스에 통지하기 위한 수단을 더 포함하며,
상기 제 2 통신 디바이스는,
상기 제 2 통신 디바이스의 사용자에게 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인할 것을 프롬프트하기 위한 수단;
사용자 입력을 수신하기 위한 수단;
상기 수신된 사용자 입력이 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였는지를 결정하기 위한 수단; 및
상기 사용자 입력이 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면, 상기 숨은 윈도 객체의 디스플레이 데이터를 수용하기 위한 수단을 더 포함하는, 통신 시스템. - 제 79 항에 있어서,
상기 제 2 통신 디바이스는 상기 사용자 입력이 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면 디스플레이 이미지의 부분들이 수용될 것이라는 통지를 상기 제 1 통신 디바이스에 전송하기 위한 수단을 더 포함하는, 통신 시스템. - 제 72 항에 있어서,
상기 제 1 통신 디바이스는,
상기 제 2 통신 디바이스의 디스플레이의 특성들을 상기 제 1 통신 디바이스 상에서 실행중인 상기 애플리케이션에 제공하기 위한 수단; 및
상기 애플리케이션으로부터의 디스플레이 이미지를 상기 제 2 통신 디바이스의 상기 디스플레이와 호환되는 포맷으로 상기 프레임 버퍼 내로 수신하기 위한 수단을 더 포함하는, 통신 시스템. - 제 72 항에 있어서,
상기 통신 시스템은 제 4 통신 디바이스를 더 포함하며,
상기 제 2 통신 디바이스는 상기 숨은 윈도 객체의 디스플레이 데이터를 제 4 통신 디바이스로 전송하기 위한 수단을 더 포함하며,
상기 제 4 통신 디바이스는,
상기 숨은 윈도 객체 디스플레이 데이터를 상기 제 2 통신 디바이스로부터 수신하기 위한 수단;
상기 수신된 숨은 윈도 객체 디스플레이 데이터를 저장하기 위한 수단; 및
상기 숨은 윈도 객체 디스플레이 데이터를 이용하여 디스플레이를 랜더링하기 위한 수단을 포함하는, 통신 시스템. - 프로세서로 하여금,
상기 프로세서 상에서 실행중인 애플리케이션들에 의해 생성된 콘텐츠의 영역들을 둘러싸는 경계 박스들을 계산하는 단계;
상기 경계 박스들 중 적어도 하나의 경계 박스에 의해 둘러싸인 콘텐츠를 생성하는 각각의 애플리케이션으로부터 계산된 경계 박스들 각각에 대해 디스플레이 데이터를 검색하는 단계;
마스터 헬퍼 애플리케이션의 지시 하에, 상기 검색된 디스플레이 데이터를 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 재포맷팅하고 상기 재포맷팅된 디스플레이 데이터를 메모리 내의 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 트랜시버를 경유하여 상기 제 2 컴퓨팅 디바이스에 전송하는 단계
를 포함하는 동작들을 수행하게 하도록 구성된 프로세서 실행가능 소프트웨어 명령들이 저장된, 컴퓨터 판독가능 저장 매체. - 제 83 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 마스터 헬퍼 애플리케이션의 지시 하에, 상기 검색된 디스플레이 데이터를 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 재포맷팅하고 상기 재포맷팅된 디스플레이 데이터를 메모리 내의 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계가,
애플리케이션에 지시하여 상기 애플리케이션의 디스플레이 이미지의 부분을 상기 프레임 버퍼에 숨은 윈도 객체로서 페인팅하는 단계; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 84 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계가 재포맷팅된 숨은 윈도 객체 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 84 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계가 원래 크기의 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 84 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계 이전에, 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스로부터 수신하는 단계를 더 포함하는 동작들을 수행하게 하도록 구성되고,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 재포맷팅하는 단계가 상기 숨은 윈도 객체의 디스플레이 데이터 및 상기 수신된 제 2 컴퓨팅 디바이스 디스플레이 데이터의 블렌드를 생성하여 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 단일 블렌드된 디스플레이 이미지를 생성하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 84 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금, 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스로부터 수신하는 단계를 더 포함하는 동작들을 수행하게 하도록 구성되고,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계 이전에,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 디스플레이에 맞도록 재포맷팅하는 단계가, 상기 수신된 제 2 컴퓨팅 디바이스 디스플레이 데이터와 사이드-바이-사이드로 상기 숨은 윈도 객체의 디스플레이 데이터를 제시하는 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이 디바이스와 호환되는 단일 디스플레이 이미지를 생성하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 83 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에 전송하는 단계가 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스와 확립된 무선 데이터 링크를 경유하여 상기 제 2 컴퓨팅 디바이스에 전송하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 83 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 경계 박스들 중 적어도 하나의 경계 박스에 의해 둘러싸인 콘텐츠를 생성하는 각각의 애플리케이션으로부터 계산된 경계 박스들 각각에 대해 디스플레이 데이터를 검색하는 단계 이후에,
상기 제 2 컴퓨팅 디바이스 상에 디스플레이될 상기 디스플레이 이미지의 선택을 나타내는 사용자 입력을 수신하는 단계를 더 포함하는 동작들을 수행하게 하도록 구성되고,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 마스터 헬퍼 애플리케이션의 지시 하에, 상기 검색된 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 재포맷팅하고 상기 재포맷팅된 디스플레이 데이터를 상기 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계가,
상기 애플리케이션에 지시하여 상기 디스플레이 이미지의 나타내진 선택된 부분을 상기 프레임 버퍼에 숨은 윈도 객체로서 페인팅하는 단계; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 83 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계 이전에,
사용자 입력에 관한 정보를 상기 제 2 컴퓨팅 디바이스로부터 수신하는 단계;
상기 사용자 입력에 관한 상기 정보를 상기 경계 박스들 중 하나의 경계 박스에 상관시켜 상응하는 사용자 입력을 결정하는 단계; 및
상기 상응하는 사용자 입력을 상기 상관된 경계 박스에 둘러싸인 콘텐츠를 생성하는 애플리케이션에 통신하는 단계
를 더 포함하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 83 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이에 맞도록 재포맷팅하는 단계 이전에,
디스플레이 이미지의 부분들이 상기 제 2 컴퓨팅 디바이스에 전송될 수 있음을 상기 제 2 컴퓨팅 디바이스에 통지하는 단계를 더 포함하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 83 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 마스터 헬퍼 애플리케이션의 지시 하에, 상기 검색된 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스의 디스플레이 상에 디스플레이하기 위한 포맷으로 재포맷팅하고 상기 재포맷팅된 디스플레이 데이터를 상기 프레임 버퍼에 숨은 윈도 객체로서 저장하는 단계가,
상기 제 2 컴퓨팅 디바이스의 상기 디스플레이의 특성들을 상기 마스터 헬퍼 애플리케이션에 제공하는 단계; 및
상기 마스터 헬퍼 애플리케이션으로부터의 디스플레이 이미지를 상기 제 2 컴퓨팅 디바이스의 상기 디스플레이와 호환되는 포맷으로 상기 프레임 버퍼 내로 수신하는 단계
를 더 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 프로세서로 하여금,
숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하는 단계로서, 상기 숨은 윈도 객체의 디스플레이 데이터는, 상기 제 2 컴퓨팅 디바이스 상에서 계산된 경계 박스들에 둘러싸인 콘텐츠를 생성하는 애플리케이션들로부터 수집되는 종합된 디스플레이 데이터를 포함하는 재포맷팅된 디스플레이 데이터를 포함하는, 상기 수신 단계;
슬레이브 헬퍼 애플리케이션의 지시 하에 상기 숨은 윈도 객체의 디스플레이 데이터를 저장하는 단계; 및
상기 숨은 윈도 객체의 디스플레이 데이터를 이용하여 이미지를 디스플레이하는 단계
를 포함하는 동작들을 수행하게 하도록 구성된 프로세서 실행가능 소프트웨어 명령들이 저장된, 컴퓨터 판독가능 저장 매체. - 제 94 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 슬레이브 헬퍼 애플리케이션의 지시 하에 상기 숨은 윈도 객체의 디스플레이 데이터를 저장하는 단계 이전에,
상기 슬레이브 헬퍼 애플리케이션의 지시 하에 상기 숨은 윈도 객체의 디스플레이 데이터를 디스플레이에 맞도록 재포맷팅하는 단계를 더 포함하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 95 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 슬레이브 헬퍼 애플리케이션의 지시 하에 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 디스플레이에 맞도록 재포맷팅하는 단계가, 상기 숨은 윈도 객체의 디스플레이 데이터 및 다른 애플리케이션으로부터의 디스플레이 데이터의 블렌드를 생성하여 단일 블렌드된 디스플레이 이미지를 생성하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 95 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 슬레이브 헬퍼 애플리케이션의 지시 하에 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 디스플레이에 맞도록 재포맷팅하는 단계가, 상기 숨은 윈도 객체의 디스플레이 데이터와 사이드-바이-사이드로 다른 애플리케이션으로부터의 디스플레이 데이터를 제시하는 이미지를 디스플레이하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 94 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스로부터 수신하는 단계가, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스와 확립된 무선 데이터 링크를 경유하여 수신하는 단계를 포함하도록 하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 94 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하는 단계 이전에,
사용자 입력을 수신하는 단계; 및
상기 수신된 사용자 입력에 관한 정보를 상기 제 2 컴퓨팅 디바이스에 통신하는 단계
를 더 포함하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 94 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 제 2 컴퓨팅 디바이스로부터 수신하는 단계 이전에,
디스플레이 이미지의 부분들이 전송될 수 있다는 상기 제 2 컴퓨팅 디바이스로부터의 통지를 수신하는 단계;
상기 디스플레이 이미지의 부분들을 수신하는 것의 동의를 확인할 것을 사용자에게 요구하는 프롬프트를 디스플레이하는 단계;
사용자 입력을 수신하는 단계;
상기 사용자 입력이 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였는지를 결정하는 단계; 및
상기 사용자가 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면, 상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에서 수용하는 단계
를 더 포함하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체. - 제 100 항에 있어서,
상기 저장된 프로세서 실행가능 소프트웨어 명령들은, 프로세서로 하여금,
상기 숨은 윈도 객체의 디스플레이 데이터를 상기 제 2 컴퓨팅 디바이스에서 수용하는 단계 이후에,
상기 사용자가 상기 디스플레이 이미지의 부분을 수신하는 것의 동의를 확인하였다고 결정되면 디스플레이 이미지의 부분들이 수용될 것임을 상기 제 2 컴퓨팅 디바이스에 통지하는 단계를 더 포함하는 동작들을 수행하게 하도록 구성된, 컴퓨터 판독가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/558,936 US20110066971A1 (en) | 2009-09-14 | 2009-09-14 | Method and apparatus for providing application interface portions on peripheral computing devices |
US12/558,936 | 2009-09-14 | ||
PCT/US2010/048786 WO2011032152A1 (en) | 2009-09-14 | 2010-09-14 | Method and apparatus for providing application interface portions on peripheral computer devices |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20120061965A KR20120061965A (ko) | 2012-06-13 |
KR101385364B1 true KR101385364B1 (ko) | 2014-04-14 |
Family
ID=43087913
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127008916A KR101385364B1 (ko) | 2009-09-14 | 2010-09-14 | 애플리케이션 인터페이스 부분들을 주변의 컴퓨터 디바이스들 상에 제공하기 위한 방법 및 장치 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20110066971A1 (ko) |
EP (1) | EP2478434A1 (ko) |
JP (1) | JP5681191B2 (ko) |
KR (1) | KR101385364B1 (ko) |
CN (1) | CN102725727B (ko) |
BR (1) | BR112012005662A2 (ko) |
WO (1) | WO2011032152A1 (ko) |
Families Citing this family (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9313769B2 (en) * | 2008-01-14 | 2016-04-12 | Qualcomm Incorporated | Wireless communication paging and registration utilizing multiple types of node identifiers |
US20090182871A1 (en) * | 2008-01-14 | 2009-07-16 | Qualmcomm Incorporated | Backup paging for wireless communication |
US9094933B2 (en) * | 2008-01-14 | 2015-07-28 | Qualcomm Incorporated | Wireless communication paging utilizing multiple types of node identifiers |
JP4518181B2 (ja) * | 2008-04-17 | 2010-08-04 | セイコーエプソン株式会社 | 画像送信装置、表示システム、画像送信プログラム及び記録媒体 |
US8448074B2 (en) | 2009-05-01 | 2013-05-21 | Qualcomm Incorporated | Method and apparatus for providing portioned web pages in a graphical user interface |
US20110119454A1 (en) * | 2009-11-17 | 2011-05-19 | Hsiang-Tsung Kung | Display system for simultaneous displaying of windows generated by multiple window systems belonging to the same computer platform |
US9003309B1 (en) * | 2010-01-22 | 2015-04-07 | Adobe Systems Incorporated | Method and apparatus for customizing content displayed on a display device |
US10996774B2 (en) * | 2010-04-30 | 2021-05-04 | Nokia Technologies Oy | Method and apparatus for providing interoperability between devices |
US20110273393A1 (en) * | 2010-05-06 | 2011-11-10 | Wai Keung Wu | Method and Apparatus for Distributed Computing with Proximity Sensing |
US10162491B2 (en) * | 2011-08-12 | 2018-12-25 | Otoy Inc. | Drag and drop of objects between applications |
CN104115135B (zh) * | 2011-12-15 | 2018-06-08 | 索尼电脑娱乐公司 | 信息处理系统和内容下载方法 |
US9513793B2 (en) * | 2012-02-24 | 2016-12-06 | Blackberry Limited | Method and apparatus for interconnected devices |
US9275142B2 (en) * | 2012-02-29 | 2016-03-01 | Nokia Technologies Oy | Method and apparatus for multi-browser web-based applications |
US9575710B2 (en) * | 2012-03-19 | 2017-02-21 | Lenovo (Beijing) Co., Ltd. | Electronic device and information processing method thereof |
US9733882B2 (en) | 2012-04-19 | 2017-08-15 | Videro Llc | Apparatus and method for coordinating visual experiences through visual devices, a master device, slave devices and wide area network control |
US8970492B2 (en) | 2012-06-08 | 2015-03-03 | Microsoft Technology Licensing, Llc | Remote session control using multi-touch inputs |
US20140075377A1 (en) | 2012-09-10 | 2014-03-13 | Samsung Electronics Co. Ltd. | Method for connecting mobile terminal and external display and apparatus implementing the same |
JP5949406B2 (ja) | 2012-10-01 | 2016-07-06 | 株式会社デンソー | ユニット操作システム、当該システムに用いられるスレーブ表示装置、及び、マスタ表示装置 |
ES2644250T3 (es) * | 2012-12-18 | 2017-11-28 | Huawei Technologies Co., Ltd. | Procedimiento, aparato y sistema de interacción entre aplicaciones web |
US9836437B2 (en) * | 2013-03-15 | 2017-12-05 | Google Llc | Screencasting for multi-screen applications |
KR102189679B1 (ko) * | 2013-07-12 | 2020-12-14 | 삼성전자주식회사 | 외부 기기에 디스플레이된 정보와 관련된 기능을 실행하는 휴대용 기기, 휴대용 기기에서 외부 기기에 디스플레이된 정보와 관련된 기능을 실행하는 방법 및 컴퓨터 판독 가능한 기록 매체 |
KR102208436B1 (ko) * | 2013-08-06 | 2021-01-27 | 삼성전자주식회사 | 출력 방법 및 그 방법을 처리하는 전자 장치 |
CN103530149A (zh) * | 2013-09-27 | 2014-01-22 | 深圳市同洲电子股份有限公司 | 一种游戏手柄模拟配置文件的配置方法及终端 |
KR102107404B1 (ko) * | 2013-10-30 | 2020-05-07 | 삼성전자주식회사 | 어플리케이션을 공유하는 전자 장치 및 그 제어 방법 |
CN105975274B (zh) * | 2013-10-31 | 2020-02-18 | 青岛海信移动通信技术股份有限公司 | 一种应用于Android平台的显示窗口的方法和装置 |
US9550118B2 (en) * | 2013-11-13 | 2017-01-24 | Gaijin Entertainment Corp. | Method for simulating video games on mobile device |
JP6307889B2 (ja) * | 2014-01-16 | 2018-04-11 | セイコーエプソン株式会社 | 表示装置、表示システムおよび表示方法 |
CN106164882A (zh) | 2014-01-29 | 2016-11-23 | 英特尔公司 | 辅助显示机构 |
CA2841371A1 (en) * | 2014-01-31 | 2015-07-31 | Usquare Soft Inc. | Devices and methods for portable processing and application execution |
US9692701B1 (en) * | 2014-04-10 | 2017-06-27 | Google Inc. | Throttling client initiated traffic |
KR102288726B1 (ko) * | 2014-06-09 | 2021-08-12 | 삼성전자주식회사 | 웨어러블 전자 장치, 메인 전자 장치, 시스템 및 그 제어 방법 |
CN104053057B (zh) * | 2014-06-09 | 2019-02-19 | 青岛海信移动通信技术股份有限公司 | 一种硬件升级的方法、设备及系统 |
JP2016035705A (ja) * | 2014-08-04 | 2016-03-17 | パナソニックIpマネジメント株式会社 | 表示装置、表示制御方法、及び表示制御プログラム |
JP2016035706A (ja) * | 2014-08-04 | 2016-03-17 | パナソニックIpマネジメント株式会社 | 表示装置、表示制御方法、及び表示制御プログラム |
US20160048296A1 (en) * | 2014-08-12 | 2016-02-18 | Motorola Mobility Llc | Methods for Implementing a Display Theme on a Wearable Electronic Device |
US9860306B2 (en) | 2014-09-24 | 2018-01-02 | Microsoft Technology Licensing, Llc | Component-specific application presentation histories |
US10635296B2 (en) * | 2014-09-24 | 2020-04-28 | Microsoft Technology Licensing, Llc | Partitioned application presentation across devices |
US10025684B2 (en) | 2014-09-24 | 2018-07-17 | Microsoft Technology Licensing, Llc | Lending target device resources to host device computing environment |
US10448111B2 (en) | 2014-09-24 | 2019-10-15 | Microsoft Technology Licensing, Llc | Content projection |
US9769227B2 (en) | 2014-09-24 | 2017-09-19 | Microsoft Technology Licensing, Llc | Presentation of computing environment on multiple devices |
US9678640B2 (en) * | 2014-09-24 | 2017-06-13 | Microsoft Technology Licensing, Llc | View management architecture |
CN104587669B (zh) * | 2015-01-30 | 2018-03-23 | 北京视博云科技有限公司 | 一种虚拟外设的定制方法 |
US10175866B2 (en) | 2015-06-05 | 2019-01-08 | Apple Inc. | Providing complications on an electronic watch |
US11327640B2 (en) | 2015-06-05 | 2022-05-10 | Apple Inc. | Providing complications on an electronic device |
US10572571B2 (en) * | 2015-06-05 | 2020-02-25 | Apple Inc. | API for specifying display of complication on an electronic watch |
CN105389150B (zh) * | 2015-11-05 | 2018-10-12 | 广东威创视讯科技股份有限公司 | 一种多画面显示控制方法及装置 |
US10748312B2 (en) | 2016-02-12 | 2020-08-18 | Microsoft Technology Licensing, Llc | Tagging utilizations for selectively preserving chart elements during visualization optimizations |
US10347017B2 (en) * | 2016-02-12 | 2019-07-09 | Microsoft Technology Licensing, Llc | Interactive controls that are collapsible and expandable and sequences for chart visualization optimizations |
US10423321B2 (en) * | 2017-11-02 | 2019-09-24 | Dell Products L. P. | Defining a zone to perform an action in a dual-screen tablet |
US11269698B2 (en) * | 2018-10-04 | 2022-03-08 | Google Llc | User interface systems and methods for a wearable computing device |
CA3117791A1 (en) * | 2018-10-29 | 2020-05-07 | Commercial Streaming Solutions Inc. | System and method for customizing information for display to multiple users via multiple displays |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020015042A1 (en) | 2000-08-07 | 2002-02-07 | Robotham John S. | Visual content browsing using rasterized representations |
US20040125400A1 (en) | 2002-06-28 | 2004-07-01 | De Graaff Anthonius A.J. | Image scanning and processing system, method of scanning and processing an image and method of selecting one of a plurality of master files comprising data encoding a scanned image |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS62290287A (ja) * | 1986-06-10 | 1987-12-17 | Nec Corp | 画像伝送方法 |
JPH08101669A (ja) * | 1994-09-30 | 1996-04-16 | Semiconductor Energy Lab Co Ltd | 表示装置駆動回路 |
JPH09231044A (ja) * | 1996-02-26 | 1997-09-05 | Canon Inc | 画面共有システムおよび方法 |
US6216141B1 (en) * | 1996-12-06 | 2001-04-10 | Microsoft Corporation | System and method for integrating a document into a desktop window on a client computer |
US5801691A (en) * | 1996-12-31 | 1998-09-01 | International Business Machines Corporation | Method and apparatus for mobile device screen reformatting utilizing hypertext |
US5798759A (en) * | 1996-12-31 | 1998-08-25 | International Business Machines Corporation | Method and apparatus for mobile device screen reformatting |
US6278448B1 (en) * | 1998-02-17 | 2001-08-21 | Microsoft Corporation | Composite Web page built from any web content |
US6993575B2 (en) * | 2000-02-22 | 2006-01-31 | Oracle International Corporation | Using one device to configure and emulate web site content to be displayed on another device |
US7221370B1 (en) * | 2001-01-26 | 2007-05-22 | Palmsource, Inc. | Adaptive content delivery |
US6981227B1 (en) * | 2002-02-04 | 2005-12-27 | Mircrosoft Corporation | Systems and methods for a dimmable user interface |
US20030156131A1 (en) * | 2002-02-21 | 2003-08-21 | Samir Khazaka | Method and apparatus for emulating a mobile device |
US20040098360A1 (en) * | 2002-11-15 | 2004-05-20 | Humanizing Technologies, Inc. | Customized life portal |
US7574691B2 (en) * | 2003-03-17 | 2009-08-11 | Macrovision Corporation | Methods and apparatus for rendering user interfaces and display information on remote client devices |
US7623722B2 (en) * | 2003-10-24 | 2009-11-24 | Eastman Kodak Company | Animated display for image manipulation and correction of digital image |
JP4342961B2 (ja) * | 2004-01-16 | 2009-10-14 | パイオニア株式会社 | 情報配信表示システムおよび情報配信方法 |
US20050186913A1 (en) * | 2004-02-24 | 2005-08-25 | Research In Motion Limited | Remote user interface |
US7278092B2 (en) * | 2004-04-28 | 2007-10-02 | Amplify, Llc | System, method and apparatus for selecting, displaying, managing, tracking and transferring access to content of web pages and other sources |
US20060236375A1 (en) * | 2005-04-15 | 2006-10-19 | Tarik Hammadou | Method and system for configurable security and surveillance systems |
US7533189B2 (en) * | 2005-06-21 | 2009-05-12 | Microsoft Corporation | Enabling a graphical window modification command to be applied to a remotely generated graphical window |
EP1932141A4 (en) * | 2005-09-13 | 2009-08-19 | Spacetime3D Inc | SYSTEM AND METHOD FOR FORMING A THREE-DIMENSIONAL USER GRAPHIC INTERFACE |
US20070067305A1 (en) * | 2005-09-21 | 2007-03-22 | Stephen Ives | Display of search results on mobile device browser with background process |
US8004535B2 (en) * | 2006-06-01 | 2011-08-23 | Qualcomm Incorporated | Apparatus and method for selectively double buffering portions of displayable content |
CN101657813A (zh) * | 2007-04-04 | 2010-02-24 | 香港科技大学 | 移动设备上网页的自定义渲染 |
CN101344849A (zh) * | 2008-08-22 | 2009-01-14 | 四川长虹电器股份有限公司 | 嵌入式gui环境下实现输入法叠加的方法 |
US8448074B2 (en) * | 2009-05-01 | 2013-05-21 | Qualcomm Incorporated | Method and apparatus for providing portioned web pages in a graphical user interface |
-
2009
- 2009-09-14 US US12/558,936 patent/US20110066971A1/en not_active Abandoned
-
2010
- 2010-09-14 JP JP2012528990A patent/JP5681191B2/ja not_active Expired - Fee Related
- 2010-09-14 KR KR1020127008916A patent/KR101385364B1/ko not_active IP Right Cessation
- 2010-09-14 CN CN201080040779.XA patent/CN102725727B/zh not_active Expired - Fee Related
- 2010-09-14 BR BR112012005662-0A patent/BR112012005662A2/pt not_active Application Discontinuation
- 2010-09-14 EP EP10760835A patent/EP2478434A1/en not_active Withdrawn
- 2010-09-14 WO PCT/US2010/048786 patent/WO2011032152A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020015042A1 (en) | 2000-08-07 | 2002-02-07 | Robotham John S. | Visual content browsing using rasterized representations |
US20070263007A1 (en) | 2000-08-07 | 2007-11-15 | Searchlite Advances, Llc | Visual content browsing with zoom and pan features |
US20040125400A1 (en) | 2002-06-28 | 2004-07-01 | De Graaff Anthonius A.J. | Image scanning and processing system, method of scanning and processing an image and method of selecting one of a plurality of master files comprising data encoding a scanned image |
Also Published As
Publication number | Publication date |
---|---|
EP2478434A1 (en) | 2012-07-25 |
CN102725727A (zh) | 2012-10-10 |
CN102725727B (zh) | 2015-11-25 |
BR112012005662A2 (pt) | 2020-09-15 |
JP2013504826A (ja) | 2013-02-07 |
JP5681191B2 (ja) | 2015-03-04 |
WO2011032152A1 (en) | 2011-03-17 |
KR20120061965A (ko) | 2012-06-13 |
US20110066971A1 (en) | 2011-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101385364B1 (ko) | 애플리케이션 인터페이스 부분들을 주변의 컴퓨터 디바이스들 상에 제공하기 위한 방법 및 장치 | |
US10884620B2 (en) | Configuration of application execution spaces and sub-spaces for sharing data on a mobile touch screen device | |
RU2619889C2 (ru) | Способ и устройство для совместного использования данных между различными сетевыми устройствами | |
US9686145B2 (en) | Adaptive user interface for multi-source systems | |
US20140047392A1 (en) | Method and apparatus for controlling a display | |
US11604580B2 (en) | Configuration of application execution spaces and sub-spaces for sharing data on a mobile touch screen device | |
US20140289415A1 (en) | Continuous and concurrent device experience in a multi-device ecosystem | |
US20140337792A1 (en) | Display apparatus and user interface screen providing method thereof | |
JP2023503679A (ja) | マルチウィンドウ表示方法、電子デバイス及びシステム | |
KR20140131863A (ko) | 단말 장치 및 그의 관련 창을 표시하기 위한 방법 | |
US20180316745A1 (en) | Terminal apparatus and server and method of controlling the same | |
WO2018054321A1 (zh) | 字符输入方法、电子设备及智能终端 | |
US9830056B1 (en) | Indicating relationships between windows on a computing device | |
US9525905B2 (en) | Mapping visual display screen to portable touch screen | |
US11243679B2 (en) | Remote data input framework | |
CN112274910A (zh) | 虚拟按键配置方法、虚拟按键方法及相关装置 | |
EP4145269A1 (en) | Screen projection control method, storage medium, and communication device | |
KR102011834B1 (ko) | 디스플레이 장치 | |
CN113490013B (zh) | 一种服务器及数据请求方法 | |
WO2023072233A1 (zh) | 页面切换方法、页面切换装置、电子设备和可读存储介质 | |
US20240238670A1 (en) | Display device and operation method thereof | |
JP2015176493A (ja) | 端末装置、表示プログラム及び表示方法 | |
CN117615184A (zh) | 显示设备和显示方法 | |
CN116567343A (zh) | 一种投屏方法及显示设备 | |
CN114007127A (zh) | 一种显示设备及多设备配网重试方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170330 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180329 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |