KR101228708B1 - 하드웨어 그래픽 레이어로의 투명 액세스를 제공하는시스템 - Google Patents

하드웨어 그래픽 레이어로의 투명 액세스를 제공하는시스템 Download PDF

Info

Publication number
KR101228708B1
KR101228708B1 KR1020050080113A KR20050080113A KR101228708B1 KR 101228708 B1 KR101228708 B1 KR 101228708B1 KR 1020050080113 A KR1020050080113 A KR 1020050080113A KR 20050080113 A KR20050080113 A KR 20050080113A KR 101228708 B1 KR101228708 B1 KR 101228708B1
Authority
KR
South Korea
Prior art keywords
video
layer
graphics card
software
graphics
Prior art date
Application number
KR1020050080113A
Other languages
English (en)
Other versions
KR20060050830A (ko
Inventor
다린 프라이
안젤라 린
데이비드 도노호
Original Assignee
큐엔엑스 소프트웨어 시스템즈 게엠베하 운트 코. 카게
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 큐엔엑스 소프트웨어 시스템즈 게엠베하 운트 코. 카게 filed Critical 큐엔엑스 소프트웨어 시스템즈 게엠베하 운트 코. 카게
Publication of KR20060050830A publication Critical patent/KR20060050830A/ko
Application granted granted Critical
Publication of KR101228708B1 publication Critical patent/KR101228708B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/04815Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • G09G5/363Graphics controllers
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/10Mixing of images, i.e. displayed pixel being the result of an operation, e.g. adding, on the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2352/00Parallel handling of streams of display data
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2360/00Aspects of the architecture of display systems
    • G09G2360/08Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Computer Graphics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

본 발명은 일반적으로 컴퓨터 그래픽에 관한 것이고, 더 구체적으로, 단일 비디오 디스플레이를 구성하는 데 사용되는 다중 하드웨어 그래픽 레이어를 구성하고 제어하며 액세스하는 방법 및 시스템에 관한 것이다. 본 발명의 하나의 태양은 컴퓨터에서 구동하는 소프트웨어 애플리케이션 및 운영 체제를 포함하는 컴퓨터 환경에서 포괄적으로 정의되는데, 상기 컴퓨터는 그래픽 카드와 비디오 디스플레이를 포함하고, 상기 그래픽 카드는 상기 비디오 디스플레이에 이미지를 렌더링하도록 동작가능한 것이며, 본 발명에 따른 개선점은 상기 운영 체제가 그래픽 카드상에서 하드웨어 레이어들을 지원하는 범용 응용 프로그래밍 인터페이스(API)를 포함하는 것, 상기 운영 체제가 상기 범용 API를 통해 그리기 이벤트를 수신하고 어떤 하드웨어 레이어가 상기 그래픽 카드에서 이용가능한지 및 그들의 파라메터가 무엇인지를 결정하며 상기 그래픽 카드상의 임의의 상기 이용가능한 하드웨어 레이어들에 상기 그리기 요청을 선택적으로 렌더링함으로써 상기 소프트웨어 애플리케이션으로부터의 그리기 요청에 응답하도록 동작가능하며, 이것에 의해 상기 컴퓨터 환경은 그래픽 카드상의 가용 하드웨어 레이어를 소프트웨어 애플리케이션이 이용할 수 있도록 허용하는 것에 있다.

Description

하드웨어 그래픽 레이어로의 투명 액세스를 제공하는 시스템{SYSTEM FOR PROVIDING TRANSPARENT ACCESS TO HARDWARE GRAPHIC LAYERS}
도 1은 공지의 비디오 레이어를 지원하는 컴퓨터 시스템의 블록도.
도 2는 본 발명의 실시예에 따른 비디오 레이어를 지원하는 컴퓨터 시스템의 블록도.
도 3은 본 발명의 실시예의 포톤(PhotonTM) 이벤트 공간 및 QNXTM 운영 체제 환경의 기호 시각화를 나타내는 도면.
도 4는 본 발명의 실시예에서 비디오 하드웨어 레이어 관리를 지원하는 수정된 포톤 이벤트 공간의 기호 시각화를 나타내는 도면.
도 5는 본 발명의 실시예에 따른 비디오 레이어 지원을 구성하는 방법을 나타내는 흐름도.
도 6은 발명의 실시예에서 디폴트 윈도우 매니저 콘솔을 나타내는 도면.
도 7은 발명의 실시예에서 그리기 이벤트를 취급하는 방법을 나타내는 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
12, 32: 소프트웨어 애플리케이션
14: 디스플레이
18, 36: 운영 체제
20: 그래픽 카드
24: 레이어
본 발명은 일반적으로 컴퓨터 그래픽에 관한 것이고, 더 구체적으로, 단일 비디오 디스플레이를 구성하는 데 사용되는 다중 하드웨어 그래픽 레이어(layer)를 구성하고 제어하며 액세스하는 방법 및 시스템에 관한 것이다.
윈도우형 운영 체제는 사용자 및 개발자가 일관된 그래픽 사용자 인터페이스(GUI)를 통해 소프트웨어 애플리케이션(software application)과 상호작용하게 하고, 이와 동시에 다중 소프트웨어 애플리케이션과 동시에 상호작용할 수 있는 능력을 사용자 및 개발자에게 제공한다. 이상적으로, 운영 체제는 일관된 API(응용 프로그램 인터페이스)를 유지하면서 가능한 한 많은 하부 그래픽 하드웨어의 능력에 대한 액세스를 제공하여야 한다. 운영 체제 API는 운영 체제와 이 운영 체제에 접근하는 소프트웨어 애플리케이션간에 인터페이스를 구성하는 루틴, 프로토콜 및 툴(tool)의 세트이다. 소프트웨어 애플리케이션과 운영 환경(즉, 비디오 디스플레이, 하드 드라이브, 키보드 등) 사이의 임의의 상호작용은 운영 체제 API를 통해 수행된다.
부가적으로, 운영 체제는 어느 정도의 특징 투명성(feature transparency)을 지원하여야 한다. 즉, 소프트웨어 애플리케이션은 소프트웨어 애플리케이션이 시스템 특징의 모든 상세를 알 필요없이 시스템 특징으로부터 혜택을 받을 수 있어야 한다. 예를 들어서 16비트 컬러 깊이 디스플레이를 가진 시스템에서 설계된 소프트웨어 애플리케이션은 32비트 컬러 깊이 디스플레이를 가진 시스템에서 의도된 대로 동작하여야 한다. 소프트웨어 애플리케이션은 그 자신이 실행되는 비디오 디스플레이의 지원되는 컬러 깊이를 알 필요가 없다. 운영 체제가 제공하는 특징 투명성의 정도가 크면 클수록 각종 환경에서 구동할 수 있는 소프트웨어 애플리케이션 개발의 용이성이 더 크고, 또한 임의의 주어진 플랫폼에서 사용할 수 있는 소프트웨어 애플리케이션의 선택성이 더 크다.
비디오 메모리, 비디오 표면 및 레이어
퍼스널 컴퓨터 및 기타의 컴퓨팅 장치는 일반적으로, 그래픽 카드, 비디오 카드 및 비디오 보드라고 부르는 회로 보드를 구비하고 있으며, 이 회로 보드는 퍼스널 컴퓨터가 LCD(액정 표시장치) 또는 CRT(음극선관)와 같은 물리적 디스플레이를 구동할 수 있게 한다. 이들 그래픽 카드들은 전형적으로 그들 자신의 비디오 메모리를 포함하고 있기 때문에 비디오 디스플레이 데이터를 저장하기 위해 컴퓨터 RAM(랜덤 액세스 메모리)이 필요하지 않다. 많은 그래픽 카드는 그들 자신의 온보드(on-board) 마이크로프로세서를 또한 구비하고 있어서, 컴퓨터의 메인 마이크로프로세서에 부담을 주지 않고, 그래픽을 렌더링(rendering)하는데 필요한 처리를 매우 신속하게 수행할 수 있다.
그래픽 카드는 전형적으로, 하나의 디스플레이 스크린의 콘텐츠를 저장하기 위해 필요한 비디오 메모리보다 훨씬 더 많은 비디오 메모리를 갖고 있다. 비디오 메모리의 콘텐츠는 동적으로 한정 및 재한정될 수 있는 복수의 청크(chunk)로 분할되고, 각 청크는 특정의 폭, 높이 및 기타의 특성을 갖는다. 각 청크는 비디오 "표면"(surface)이라고 부르고, 이 비디오 표면들 중 하나는 1차 디스플레이(primary display)로서 취급된다. 1차 디스플레이와 관련된 비디오 표면에의 그리기(drawing)는 물리적 디스플레이상에 가시적 그래픽을 생성할 것이다. 1차 디스플레이 이외의 비디오 표면에의 그리기는, 그 표면들의 콘텐츠가 1차 디스플레이의 비디오 표면으로 "블리트"(blit)되지 않는 한 보이지 않을 것이다.
"레이어"(layers) 하드웨어는, 그래픽 카드가 하나 이상의 비디오 표면을 1차 디스플레이의 일부로서 갖도록 허용한다. 각종 비디오 표면이 결합 및/또는 혼합되어 1차 디스플레이를 생성하는 방법은, 그래픽 카드상의 레이어 하드웨어를 통하여 구성할 수 있다. 레이어 하드웨어는 1차 디스플레이에서 목표로 정해진 모든 표면들을 비파괴적으로 결합한다. 즉, 각종 비디오 표면들의 콘텐츠는 레이어링 하드웨어(layering hardware)에 의해 영향을 받지 않고, 디스플레이 장치에서 볼 수 있는 최종 결과만이 영향을 받는다. 이것은 자동 텔레매틱 시스템과 같은 복잡한 그래픽 구성을 필요로 하는 저성능 플랫폼에 이상적인 레이어링 하드웨어로 그래픽 카드를 만드는데, 이 때, 예를 들면, 플레이를 계속하면서 도로 지도(road map) 또는 비디오 프로그램 상에 통풍 시스템(ventilation system)의 세팅을 디스플레이하 는 것이 바람직할 것이다.
"자동 텔레매틱 시스템"은 자동차의 환경 및 오락 시스템을 관리하기 위한 컴퓨터화 제어 시스템의 기술을 말한다. 이 시스템은 또한 자동차 "인포테인먼트"(infotainment) 또는 "인포트로닉"(infotronic)이라고 부르기도 하고, 또는 다른 유사한 이름으로 부르기도 한다. 그러한 시스템이 관리할 수 있는 기능의 일부는 다음의 것을 포함한다.
1. 방송 라디오, 비디오 게임 및 영화 상영과 같은 오락 응용을 지원하는 것. 이 오락 응용은 차량의 다른 디스플레이, 스피커 및 헤드폰 시스템을 향하여 선택적으로 지향될 수 있다;
2. 차량 분위기 조절 시스템을 관리하는 것;
3. 인터넷 액세스, 이메일 및 순시 메세징 서비스를 제공하는 것;
4. 도난 방지 및 자동 다이얼링과 같은 보안 시스템을 제공하는 것;
5. 개인 정보 단말기(PDA), 랩톱 컴퓨터 및 노트북 컴퓨터와 같은 휴대용 컴퓨팅 장치와 인터페이싱 및 동기화하는 것;
6. 전자식 도로 지도를 디스플레이하고, 정확한 지도를 선택하고 지도상에서 차량의 실제 위치를 식별하기 위해 GPS(위성 위치 확인 시스템) 기술을 사용하는 것. 이 기술은 또한 인접 서비스 스테이션, 레스토랑 및 다른 서비스 이용자에게 어드바이스하기 위해 사용될 수 있고, 교통 정보, 운전 어드바이스 및 주차 가능성을 제공할 수 있다; 및
7. 주유소 "판매 시점" 및 관련된 자동 은행 거래 서비스와 무선으로 상호 작용하는 것; 예를 들면, 사용자는 실제 안내원과 상호작용하지 않고 휘발유를 구매할 수 있고, 자신의 차를 세차할 수 있으며, 영화를 다운로드할 수 있다(2001년 발행된 선 마이크로시스템즈 인코포레이티드의 "The eGasStation Architecture- Java TM Technology Based Managed Services for Retail Service Stations" 참조).
상기 리스트는 자동차 텔레매틱 시스템이 지원하도록 설계될 수 있는 것의 작은 샘플에 불과하다. 추가적인 서비스는 시간이 지남에 따라 텔레매틱 시스템에 의해 확실히 지원될 것이다.
종래의 비디오 시스템
종래에 두가지 공통 구성의 비디오 시스템이 있었다.
한 시스템에서, 소프트웨어 애플리케이션은 디스플레이에 영향을 주기 위해 그래픽 카드의 메모리 및 레지스터를 직접 조종하는 운영 체제의 API를 이용하여 이미지, 벡터 및 캐릭터를 그린다(draw). 소프트웨어 애플리케이션은 운영 체제 API를 사용하지만, 소프트웨어 애플리케이션 자체는 하드웨어를 직접 조종하는 그래픽 드라이버로서 작용한다. 이 시스템에서는 하드웨어 분쟁 문제 때문에 한번에 하나의 소프트웨어 애플리케이션만이 그래픽 카드에 액세스한다.
다른 시스템에서, 소프트웨어 애플리케이션은 그리기 요청(draw request)을 패키지화하고 송출하는 운영 체제의 API를 이용하여 그린다. 그래픽 카드의 메모리 및 레지스터를 조종하여 디스플레이에 영향을 주기 위해 운영 체제의 API를 이용하는 소프트웨어 애플리케이션에 패키지화된 그리기 요청이 전달되면, 이들 그리기 요청은 그래픽 카드에 렌더링되고 가시적 디스플레이에 영향을 줄 수 있다. 이 구성에서, 그리기 애플리케이션 및 그래픽 드라이버는 별개의 소프트웨어 프로세스이므로 복수의 애플리케이션들이 하나의 그래픽 카드를 이용하여 그릴 수 있게 허용한다. 패키지화된 그리기 요청을 전달하기 위한 메카니즘은 공지된 윈도우 시스템마다 상이하다.
도 1은 공지된 레이어를 지원하는 그래픽 카드(10)의 전형적인 구성을 블록도로 도시한 것이다. 소프트웨어 애플리케이션(12)이 이미지, 캐릭터 또는 벡터를 디스플레이 스크린(14)에 그리고자 할 때, 소프트웨어 애플리케이션(12)은 "그리기" 요청을 운영 체제(18)의 API(16)에 보낸다. 운영 체제(18)는 그리기 요청을 처리하고 적당한 명령을 그래픽 카드(20)에 보낸다. 이 명령은 운영 체제 API(16) 및 그래픽 카드(20)의 API(22)를 통하여 보내진다. 운영 체제(18)가 그래픽 카드(20)의 하드웨어 레이어(24)에 대한 지식을 갖고 있지 않기 때문에, 그리기 요청은 모두 동일한 레이어인 1차 레이어(26)를 통과할 것이다. 그 다음에 1차 레이어(26) 내의 비디오 이미지가 디스플레이 스크린(14)으로 전달된다.
만일 소프트웨어 애플리케이션(12)이 그래픽 카드(20)의 API(22)의 특정 지식을 갖고 있고 시스템의 나머지가 그것을 허용하면, 소프트웨어 애플리케이션(12)은 그래픽 카드(20)의 메모리 및 레지스터를 조종하기 위해 그래픽 카드(20)로 및 그래픽 카드(20)로부터 메시지를 직접 전달할 수 있다(이것은 위에서 설명한 첫번째 방법이다). 대안적으로, 만일 운영 체제(18)가 그래픽 카드(20)의 API(22)의 특 정 지식과 함께 그래픽 드라이버를 갖고 있고 시스템의 나머지가 그것을 허용하면, 운영 체제(18)의 그래픽 드라이버는 그래픽 카드(20)의 레이어 능력을 조종할 수 있다(이것은 위에서 설명한 두번째 방법이다).
비디오 하드웨어 레이어를 액세스하고 제어하기 위한 API는, 레이어를 지원하는 그래픽 카드를 생산하는 그래픽 카드 제조자에 의해 최초로 공급되었다. 그러나, 이러한 초기의 API에는 다음과 같은 적어도 2가지의 중요한 문제점이 있었다.
1. 다른 제조자로부터의 API는 서로 거의 유사하지 않다. 이것은 그래픽 카드의 레이어 특징을 액세스 및 제어하는데 필요한 소프트웨어 애플리케이션이 하나의 제조자의 그래픽 카드에서만 동작한다는 것을 의미한다.
2. 윈도우형 운영 체제는 비디오 하드웨어 레이어의 존재를 완전하게 인식하지 못하였고, 따라서 레이어들은 운영 체제 API를 통해 액세스되지 못하였다.
더욱 최근에 운영 체제 API는, 비록 소프트웨어 애플리케이션이 하드웨어에 의해 지원되는 레이어에 렌더링될 수 있는 상기 특정 운영 체제 API를 이용할 필요가 있기는 하지만, 하드웨어 레이어링 능력에 대한 일관되지만 제한된 인터페이스를 나타낼 수 있게 되었다. 이 제한 때문에 제3자 소프트웨어를 레이어 인에이블 시스템에 통합하는 것이 불가능하게 되었다. 다시 말하면, 이 새로운 운영 체제 API는 아직까지 새로운 운영 체제 API가 하드웨어 레이어에 액세스하는 것을 제3자 소프트웨어 애플리케이션이 알고 있고 또한 그 사용법을 알고 있을 것을 필요로 한다. 전형적으로, 제3자 소프트웨어 애플리케이션은 이러한 지식을 갖고 있지 않고, 따라서 이것은 "명료한" 해법이 아니다.
이러한 하나의 API는 제한된 형식으로 비디오 레이어 능력에 대한 포괄적 액세스를 제공하는 API인 "DirectFB"이다. DirectFB는 어느 정도까지 1차 디스플레이 표면을 공유하는 능력과 함께 표면들의 배타적 사용으로 제한된다.
소프트웨어 애플리케이션이 그래픽 하드웨어 레이어에 직접 액세스할 수 있게 하는 기존의 운영 체제 API는 일반적으로 레이어가 하드웨어 분쟁 문제 때문에 다중 소프트웨어 애플리케이션에 의해 공유되는 것을 방해한다.
제3자 소프트웨어 애플리케이션, 유산(legacy) 애플리케이션 및 하나 이상의 프로젝트에서 목표정해진 새로운 소프트웨어 애플리케이션을 사용하여 피선택 그래픽 하드웨어의 레이어링 능력을 향상시킬 수 있는 그래픽 해법에 대한 수요가 자동차, 의료 장치, 소비자 및 산업용 자동화 시장에서 증가하고 있다.
그러므로, 전술한 문제점들을 해결하는 그래픽 하드웨어 레이어를 구성, 제어 및 액세스(렌더링)하는 통합된 방법이 필요하다. 선택된 방법은 다음과 같은 목표 시장의 필요성을 고려하여야 한다.
자동차: 크기 및 성능 민감성
소비자: 크기 및 성능 민감성
의료기: 성능 민감성
산업 자동화: 성능 민감성
이러한 설계는 또한 실행 속도, 신뢰성, 복잡성 및 측정 가능성(scalability)을 고려해서 제공되어야 한다.
그러므로, 본 발명의 목적은 종래의 단점들 중 적어도 한가지를 제거하거나 경감시키는 컴퓨터 파일 관리의 신규 방법 및 시스템을 제공하는 데 있다.
본 발명의 하나의 태양은 컴퓨터에서 구동하는 소프트웨어 애플리케이션 및 운영 체제를 포함하는 컴퓨터 환경에서 포괄적으로 정의되는데, 상기 컴퓨터는 그래픽 카드와 비디오 디스플레이를 포함하고, 상기 그래픽 카드는 상기 비디오 디스플레이에 이미지를 렌더링하도록 동작가능한 것이며, 본 발명에 따른 개선점은 상기 운영 체제가 그래픽 카드상에서 하드웨어 레이어들을 지원하는 범용 응용 프로그래밍 인터페이스(API)를 포함하는 것, 상기 운영 체제가 상기 범용 API를 통해 그리기 이벤트를 수신하고 어떤 하드웨어 레이어가 상기 그래픽 카드에서 이용가능한 지 및 그들의 파라메터가 무엇인지를 결정하며 상기 그래픽 카드상의 임의의 상기 이용가능한 하드웨어 레이어들에 상기 그리기 요청을 선택적으로 렌더링함으로써 상기 소프트웨어 애플리케이션으로부터의 그리기 요청에 응답하도록 동작가능하며, 이것에 의해 상기 컴퓨터 환경이 소프트웨어 애플리케이션으로 하여금 상기 그래픽 카드상의 가용 하드웨어 레이어를 이용할 수 있게 하는 것에 있다.
본 발명의 양호한 실시예에서, 비디오 레이어에 대하여 알지 못하는 소프트웨어 애플리케이션이 사실상 레이어에 렌더링할 수 있도록 윈도우 환경 및 레이어 하드웨어를 구성하는 메카니즘이 제공된다. 즉, 소프트웨어 애플리케이션은 비디오 레이어 API를 전혀 사용하지 않고 및 어떤 특정의 그리기 명령을 사용하지 않고 레이어에 렌더링할 수 있다. 이 메카니즘은 레이어 환경에서 미수정 유산 애플리케이션을 사용할 수 있게 한다.
본 발명의 상기 및 기타의 특징들은 첨부 도면을 참조한 이하의 설명으로부터 더욱 명백하게 될 것이다.
일반적으로 말해서, 본 발명은
(1) 그래픽 카드상의 하드웨어 레이어들을 지원하는 범용 API를 구비하고,
(2) 현재 사용중인 그래픽 카드상에서 어떤 레이어들이 이용가능한지 및 이들 레이어들의 파라메터들이 무엇인지를 결정하며,
(3) 가용 비디오 레이어들을 이용함으로써 소프트웨어 애플리케이션으로부터의 그리기 요청에 반응하는 운영 체제를 제공함으로써 종래의 문제점들을 해결한다.
이 시스템은 그래픽 하드웨어 레이어에 렌더링하기 위한 특징 투명성을 제공한다. 이 명세서에서 본 발명의 많은 실시예를 설명하지만, 명백히 본 발명은 많은 다른 방법으로 구현될 수 있다. 도 2의 블록도는 본 발명을 실시하는 전형적인 시스템의 개관을 나타내고 있다.
도 2의 블록도는 도 1의 블록도와 비교할 때 다음과 같은 차이점이 있다. 도 2의 경우, 소프트웨어 애플리케이션(32)이 이미지, 캐릭터 및 벡터를 디스플레이 스크린(14)에 그리고자 할 때, 소프트웨어 애플리케이션은, 이용가능한 레이어 지원에 대한 정보를 알고 있거나 모를 수 있다. 따라서, 시스템(30)은 하드웨어 레이어 정보를 포함하는 요청(38)과 하드웨어 레이어 정보를 포함하지 않는 요청(40)의 2가지 다른 유형의 그리기 요청을 운영 체제(36)의 API(34)에 지원한다.
본 발명의 운영 체제(36)는 (레이어들과 관련될 수 있는) 비디오 표면(38)에 대한 목표정해진(targetting) 그리기 요청을 지원하지만 목표정해지지 않은(non-targetted) 그리기도 또한 지원하는 API(34)를 갖는다. 유산 제3자 소프트웨어 애플리케이션을 지원하기 위하여, 운영 체제(36)는 비레이어(non-layer) 유형의 요청(40)을 종래의 방식으로 취급하여야 한다. 대안적으로, 2가지 분류의 그리기 API, 즉 목표정해지지 않은, 그래서 비레이어가 가능한 API를 제공하는 종래의 API와, 비디오 표면 및 그에 따라서 레이어들에 대한 직접 액세스를 제공하는 표면 또는 레이어 그리기 API가 정의될 수 있다.
운영 체제(36)는 또한 어떤 레이어가 그래픽 카드(20)에서 이용가능한지를 판정하는 일부 수단을 갖는다. 이 지식은 다양한 방법으로, 예를 들면 시스템 설치의 일환으로서 각각의 부트업시에, 또는 하드 코딩을 통하여 그래픽 카드(20)로부터 운영 체제(36)로 전송될 수 있다. 운영 체제(36)는 전형적으로 그래픽 카드와 같은 출력 장치에 특수한 소프트웨어 "드라이버"를 포함하도록 설계된다. 사용자가 새로운 그래픽 카드를 설치할 때, 설치 절차의 일부는 그래픽 카드 드라이버를 시스템에 로드하는 것을 포함할 것이다. 이 드라이버는 일반적으로 특수한 운영 체제에 특정되고, 그래픽 카드를 만들어서 모델링한다. 드라이버는 가끔 CD-ROM상에서 그래픽 카드가 분배되어지지만, 또한 일반적으로 온라인을 이용할 수 있다.
본 발명이 도 1과 관련하여 설명한 것처럼 그래픽 카드(20) 및 디스플레이(14)의 어떠한 변화도 요구하지 않는다는 점에 주목한다. 소프트웨어 애플리케이션(32)은, 만일 특정의 비디오 하드웨어 레이어가 사용될 것을 요구하는 이용가능한 레이어 및 능력에 대한 지식을 갖고 있지 않으면, 소프트웨어 애플리케이션(12)과 동일한 것일 수 있다.
그리기 요청을 수신하였을 때, 운영 체제(36)는 그 요청을 처리하고 운영 체제(36)의 API(34) 및 그래픽 카드(20)의 API(22)를 통해 그래픽 카드(20)에 적당한 명령을 보낸다. 운영 체제(36)가 그래픽 카드(20)의 하드웨어 레이어(24)의 지식을 갖지 않은 도 1의 시스템과 달리, 본 발명의 경우의 운영 체제(36)는 하드웨어 레이어(24)의 지식을 갖고 있으며 또한 그래픽 카드(20)의 드라이버에 상보적인 드라이버를 API(34) 내에 갖는다. 따라서, 그리기 요청은 운영 체제(36)에 의해 결정된 레이어로 향해지고, 어떤 경우에 이 비디오 하드웨어 레이어는 이미지, 캐릭터 또는 벡터를 그리고자하는 소프트웨어 애플리케이션(32)에 의해 결정될 것이지만, 다른 경우에는 상기 결정이 발생된 이벤트의 지오메트리, 그리기 감응 영역의 지오메트리 및 데이터의 우선순위를 이용하여 운영 체제(36) 그 자체에 의해 만들어질 것이다. 이것에 의해 어떤 엘리멘트가 어떤 영역으로 위치적으로 전달되는 것을 제어할 수 있다.
전형적인 예는 다른 비디오 표면보다 우선순위를 가진 레이어와 관련된 영역하에서 위치적으로 발생하는 경보 렌더링을 가지며, 합성된 디스플레이에서 보여지는 모든 다른 콘텐츠, 기후 데이터 및 영화 위에서 경보가 확실하게 보여지게 한다.
이러한 이미지 레이어들은 모두 그래픽 카드(20)에 별도로 저장되고 비파괴적으로 단일의 합성 이미지로 구성된다. 합성 비디오 이미지는 그 다음에 그래픽 카드(20)에 의해 디스플레이 스크린(14)에 보내져서 표시된다.
본 발명의 시스템은 그래픽 카드 하드웨어 레이어가 하부 하드웨어 레이어에 관한 지식을 갖는지 여부에 관계없이 임의의 제3자 응용 소프트웨어에 의해 개발될 수 있게 한다. 본 발명의 시스템은 또한 일정한 인터페이스를 제공하여, 소프트웨어 애플리케이션이 특수한 그래픽 카드의 특성들을 인식하지 못할 것이다. 본 발명의 다른 장점들은 이하의 본 발명에 관한 더 구체적인 설명으로부터 명백하게 될 것이다.
본 발명의 양호한 실시예는 QNXTM RTOS(실시간 운영 체제)에서 동작하는 포톤(PhotonTM) 윈도우잉 시스템과 관련하여 설명하지만, 본 발명은 실제로 임의의 운영 체제에서 구현될 수 있다. 다른 운영 체제에 본 발명을 적용하기 위해 필요한 변형물들은 이 기술에 숙련된 사람이라면 이 명세서의 설명으로부터 쉽게 유도해 낼 수 있을 것이다.
본 발명의 실시예에서 포톤 이벤트 공간 및 QNX 운영 체제 환경(50)의 기호 시각화는 도 3에 도시되어 있다.
QNX 운영 체제는 "메시지 전달 운영 체제"이다. 이것은 소프트웨어 애플리케이션, 운영 체제 자체 및 윈도즈 GUI(그래픽 사용자 인터페이스) 소프트웨어를 포함하는 모든 소프트웨어가 시스템상에서 별도의 소프트웨어 프로세스로서 동작한다는 것을 의미한다. 이 소프트웨어 프로세스는 도 3의 섹션 52에 블록도로 도시되어 있다. 메시지 전달은 이들 소프트웨어 프로세스 사이에서의 기초적인 프로세스간 통신(IPC) 수단이다. 메시지는 이 메시지의 콘텐츠에 부착되는 특수한 의미없이 하 나의 프로세스로부터 다른 프로세스로 전달되는 바이트 패킷이다. 메시지 내의 데이터는 메시지의 송신자 및 그 수신자에 관한 의미를 갖지만, 일반적으로 그 외의 것에 관한 의미는 갖지 않는다.
포톤 환경(50)은 3차원 가상 "이벤트 공간"을 제공하고, 이 공간에서 사용자(60)는 이 공간의 외부에서 내부를 관찰하는 것으로 상상할 수 있다. 포톤 환경(50)은 응용 프로그램이 소유하는 관리 "영역"에 대해서만 그 자신을 한정하고, 각종 "이벤트"가 이벤트 공간(54)의 영역들을 통하여 흐를 때 각종 이벤트의 클리핑 및 스티어링을 수행한다. 소프트웨어 애플리케이션은 영역들을 이 이벤트 공간(54)에 배치할 수 있는데, 상기 영역들은 통과가능한 각종 유형의 이벤트에 대하여 감응하거나 불투명하며, 또는 감응하면서 불투명하다.
소프트웨어 애플리케이션은 각각의 소프트웨어 프로세스 자신이 소유한 하나 이상의 직사각형 영역들을 통하여 포톤 환경(50)에 영향을 줄 수 있다. 예를 들어서, 특수한 포톤 애플리케이션(56)은 영역(58)을 발생할 수 있다. 영역들은 또한 이벤트라고 부르는 객체들을 방출하고 수집할 수 있다. 이 이벤트들은 이벤트 공간(54)을 통하여 양방향(즉, 사용자(60)를 향하는 방향 또는 사용자(60)로부터 멀어지는 방향)으로 이동할 수 있다. 이벤트가 이벤트 공간(54)을 통하여 이동할 때, 그 이벤트들은 다른 영역들과 상호작용하고, 이것이 소프트웨어 애플리케이션이 서로간에 상호작용하는 방법이다. 영역들은 고정적이고, 이벤트들은 이벤트 공간(54)을 통하여 이동한다.
이벤트가 이벤트 공간(54)을 통하여 흐름에 따라 그 직사각형 세트는 다른 소프트웨어 프로세스에 의해 이벤트 공간(54)에 배치된 영역과 교차한다. 이러한 교차가 발생하였을 때, 운영 체제는 이벤트가 교차되는 영역들의 속성에 따라 이벤트의 직사각형 세트를 조정한다.
이벤트는 각종 분류로 되고 여러가지 속성을 갖는다. 이벤트는 시작 영역, 유형, 방향, 직사각형의 부착된 리스트 및 선택적으로 일부 이벤트 특정 데이터에 의해 정의된다. 이벤트들은 이하의 것을 나타내기 위해 사용된다.
ㆍ키 누름, 키보드 상태 정보;
ㆍ마우스 버튼 누름 및 해제;
ㆍ포인터 운동(마우스 버튼을 누르거나 누르지 않은 상태에서);
ㆍ영역 경계 교차;
ㆍ영역 노출 또는 덮기;
ㆍ드래그 동작; 및
ㆍ그리기 기능.
그래픽 드라이버(64)의 통상 동작은 물리적 디스플레이 장치(14)와 동일한 치수 및 그리기 이벤트에 대해 감응하는 포톤 이벤트 공간 내에 영역을 생성한다. 그래픽 드라이버 영역 아래의 영역으로부터 그리기 이벤트(예를 들면, 출력 이벤트(66))를 방출하는 임의의 소프트웨어 애플리케이션은 그래픽 드라이버 영역과 그 이벤트 교차를 가질 것이며, 이벤트 데이터는 그래픽 드라이버로 전달될 것이다. 그래픽 드라이버(64)는 그리기 이벤트(포톤 그리기 스트림)로부터의 데이터를 사용하여 비디오 하드웨어(20)에 및 물리적 디스플레이 장치(14)에 소정의 그래픽을 렌더링한다.
영역은 이벤트가 영역과 교차할 때 처리되는 방법을 제어하는 2가지 속성, 즉 감도와 불투명성을 갖는다. 영역이 특수 유형의 이벤트에 대해 감응한다면, 영역의 소유자는 영역과 교차하는 그 유형의 임의의 이벤트의 카피를 수집한다. 감도 속성은 이벤트의 직사각형 세트를 수정하지 않고 이벤트 공간을 통하여 계속해서 흐르게 하는 이벤트 능력에 영향을 주지 않는다. 그 유형의 이벤트 직사각형 세트의 특정 이벤트 유형 블록부에 불투명한 영역들은 이벤트 공간에서 추가로 이동한다. 만일 영역이 이벤트 유형에 불투명하면, 그 영역과 교차하는 유형의 임의의 이벤트는 교차 지역을 집어내기(clip out) 위해 그 직사각형 세트를 조정한다. 만일 이벤트가 불투명 영역의 교차에 의해 완전하게 클립되었으면, 그리기 이벤트는 더 이상 존재하지 않을 것이다.
아래의 표는 영역의 속성이 그 영역과 교차하는 이벤트에 어떻게 영향을 주는지를 요약한 것이다.
영역의 상태 이벤트 취급 직사각형 세트 취급
무감응성, 투명 무시 영향받지 않음
무감응성, 불투명 무시 조정됨
감응성, 투명 수집 영향받지 않음
감응성, 불투명 수집 조정됨
영역을 전체 이벤트 공간을 횡단하여 배치함으로써, 프로세스는 그 영역을 통과하는 임의의 이벤트를 차단하고 수정할 수 있다. 만일 영역이 감응성이고 불투명이면, 이벤트의 수정된 버젼을 재방출하도록 선택할 수 있다.
루트 영역(62)이라고 부르는 특수한 영역은 항상 사용자(60)로부터 가장 멀리있는 영역이다. 모든 다른 영역들은 루트 영역(62)으로부터 몇가지 방법으로 내 려온다. 사용자(60)로부터 멀어지게 이동하는 이벤트가 일단 루트 영역(62)에 도달하면, 그 이벤트는 더 이상 존재하지 않는다.
본 발명은 소프트웨어 애플리케이션이 포톤 이벤트 공간에서 물리적 표시를 행하지 않는 "오프 스크린 콘텍스트" 또는 "비디오 표면"에 렌더링할 수 있을 때까지 이 개념을 연장한다. 이것을 달성하기 위해, 비디오 표면이 생성되었을 때 그래픽 드라이버에 의해 제공된 식별자는 그 비디오 표면을 독특하게 식별하는 그리기 스트림에 삽입된다. 그 다음에, 그래픽 드라이버는 그리기 요청을 식별된 비디오 표면에 직접 렌더링할 수 있다.
다시 말해서, 소프트웨어 애플리케이션은 포톤 이벤트 공간(54)에서 출력 이벤트를 방출하는 소프트웨어 프로세스를 개시할 수 있다. 이 출력 이벤트는 출력 이벤트가 어느 비디오 레이어로 향해져야 하는지를 나타내는 식별자를 포함할 수 있다. 그래픽 드라이버는 그 표면에 제공하기 위하여 비디오 표면 식별자를 포함하는 요청된 비디오 표면을 발생함으로써 식별자의 존재에 응답한다.
특정의 비디오 표면에 목표정해진 그리기 스트림을 포함하는 이벤트는 그래픽 드라이버 영역에 직접 방출될 수 있다. 다시 말해서, 특수한 비디오 표면에 목표정해진 그리기 스트림은 포톤 이벤트 공간(54)을 통하여 이동하지 않고 그래픽 드라이버에 직접 주어져서 일부 또는 모든 그리기 이벤트의 직사각형을 차단하는 영역의 가능성을 배제한다.
하드웨어 레이어에 투명 액세스를 제공하기 위해, 다음과 같은 2개의 아이디어가 결합되었다.
1. 그래픽 드라이버가 비디오 표면에 렌더링된 영역상에 임의의 그리기 스트림이 수집되어 있는 포톤 이벤트 공간(54)에서 드라이버 영역을 생성하는 용이성이 부가되었다(즉, 드라이버 영역은 콜렉터처럼 작용하고, 그 감도와 일치하는 이벤트는 그래픽 드라이버로 전달된다); 및
2. 오프 스크린 콘텍스트 또는 비디오 표면을 그래픽 카드의 레이어 하드웨어에 관련시키는 능력이 또한 부가되었다.
소프트웨어 애플리케이션이 이용가능한 하드웨어 레이어의 수를 질의하고, 각각의 하드웨어 레이어가 어떤 능력을 지원하는지를 결정하며, 하드웨어 레이어에 의해 부과된 임의의 제한과 정합하는 오프 스크린 콘텍스트/비디오 표면을 생성하고, 드라이버 영역이 그 표면에 목표정해진 포톤 공간에서 생성될 것을 요청하고, 마지막으로 표면을 레이어링 하드웨어의 마면(facet)에 관련시키고 레이어링 하드웨어의 능력을 구성할 수 있게 하는 API 및 지원하는 드라이버를 제공함으로써, 임의의 소프트웨어 애플리케이션이 어떤 방식으로든 소프트웨어 애플리케이션을 수정하지 않고 또한 소프트웨어 애플리케이션이 비디오 하드웨어 레이어가 존재한다는 것을 알지 못하는 상태에서 레이어에 대한 액세스가 제공될 수 있다.
구성 애플리케이션은 비디오 표면, 드라이버 영역, 레이어 연합을 위한 표면 및 레이어 속성을 셋업한다. 일단 이것이 행하여지면, 구성 애플리케이션이 요청되는 드라이버 영역 아래에 위치된 임의의 소프트웨어 애플리케이션은 그 드라이버에 의해 목표정해진 표면에 및 후속적으로 레이어링 하드웨어를 통하여 1차 디스플레이에 렌더링될 것이다.
도 4는 이 개념의 예시적인 그래픽 표시를 나타낸다. 아래의 사항에 주목한다.
ㆍ레이어는 그 레이어가 관련된 비디오 표면의 콘텐츠를 1차 디스플레이에 구성한다(비디오 표면은 시스템의 운영 체제측에서 관리되는 소프트웨어 엔티티이고 레이어는 그래픽 카드상의 펌웨어 엔티티임을 상기한다);
ㆍ비디오 표면은 레이어와 관련될 수도 있고 관련되지 않을 수도 있다;
ㆍ소프트웨어 애플리케이션은 특수한 비디오 표면에서 목표정해진 그리기 스트림 또는 다중 비디오 표면의 존재에 관계없는 그리기 스트림을 방출할 수 있다;
ㆍ만일 그리기가 특정의 비디오 표면에서 목표정해지지 않으면, 이벤트는 포톤 이벤트 공간을 통하여 흐르고 이벤트가 교차하는 그리기에 감응하는 임의의 영역에 의해 수집될 것이다.
ㆍ만일 그리기가 특수한 비디오 표면에서 목표정해지면, 그리기 이벤트는 목표정해진 비디오 표면을 소유하는 드라이버에 의해 생성된 영역에 직접 전달되고 다른 영역들이 그리기 이벤트를 차단하거나 수정하는 포톤 이벤트 공간을 통하여 통상의 이벤트 전파(propagation)를 우회할 것이다.
다중 드라이버 영역은 단일 드라이버에 의해 포톤 이벤트 공간에 둘 수 있고, 이것은 1차 디스플레이와 관련된 것 이외의 비디오 표면을 목표정한다. 이것은 사실상 그 영역 아래에 있는 임의의 소프트웨어 애플리케이션이, 그리기가 궁극적으로 가는 곳을 소프트웨어 애플리케이션이 알지 못한 상태로 드라이버 영역이 관련되는 비디오 표면에 렌더링된다.
만일 그러한 영역이 레이어와 관련된 비디오 표면을 목표정하면, 드라이버 영역 아래의 소프트웨어 애플리케이션으로부터의 그리기 명령이 비디오 표면에 렌더링되고 레이어에 의해 합성될 것이다.
그래서, 소프트웨어 애플리케이션은 레이어에 명백하게 렌더링되지 않고, 포톤 공간을 통하여 그리기를 캐치하는 누군가에게 렌더링되거나 또는 특정의 비디오 표면에 렌더링된다. 비디오 표면이 레이어와 관련된다는 사실은 그리기할 때 소프트웨어 애플리케이션이 사용하는 명령/API에 영향을 주지 않는다.
도 4에서, 소프트웨어 애플리케이션 APP1은 포톤 이벤트 공간(80)을 통하여 그리기한다. 이 그리기는 1차 디스플레이(그래픽 카드의 최상측 하드웨어 레이어)와 관련된 비디오 표면(84)을 목표정하는 드라이버 영역(82)과 교차하도록 발생된다. 즉, 비디오 드라이버(94)가 영역(82)으로부터 수신하는 임의의 그리기 이벤트는 표면(84)에 렌더링될 것이다.
소프트웨어 애플리케이션 APP2는 APP1이 행한 것과 동일한 방법으로 그리기를 행하지만, 이 그리기는 비디오 표면(88)을 목표정하는, 또는 비디오 표면(88)과 관련된 드라이버 영역(86)과 교차한다. 이 비디오 표면(88)은 그래픽 카드상의 다른 레이어와 관련된다.
소프트웨어 애플리케이션 APP3는 소프트웨어 애플리케이션 APP1 및 APP2와 동일한 그리기 API를 이용하여 그리기 하지만, APP3는 그 그리기 목표를 의도적으로 비디오 표면(90)에 설정한다. 사용된 메카니즘은 1차 표면 영역에 직접 보내진 APP3의 그리기 스트림을 갖는다. 그리기 스트림은 이 경우에 그리기 스트림이 비디오 표면(90)에 렌더링되어야 하는 이벤트의 콜렉터인 그래픽 드라이버에 통보하는 식별자를 갖는다. 도 4에서 비디오 표면(90)은 제3 레이어와 관련된다.
소프트웨어 애플리케이션은 구체적으로 그래픽 카드상의 레이어가 아닌 비디오 표면에 렌더링된다는 것에 다시 주목한다. 비디오 표면(88, 90)은 레이어 관련성을 전혀 갖지 않을 수 있다. 그 경우에 보여지는 표면들의 콘텐츠들은 비디오 표면(84)과 관련된 레이어로 블리트되어야 한다.
그래픽 카드상의 레이어 하드웨어(92)는 비디오 표면들(84, 88, 90)을 관리하고, 그 표면들을 그래픽 파이프라인으로 끌어당겨서 물리적 디스플레이 장치(14)에서 보여지는 합성 디스플레이를 발생한다. 비디오 표면들(84, 88, 90)은 공지된 바와 같이 비디오 하드웨어의 비디오 메모리(96) 내의 영역들을 단순히 정의한다.
따라서, 제3자 소프트웨어 애플리케이션의 소프트웨어 프로세스에 의해 발생된 그리기 명령은 이들 비디오 표면들(84, 88, 90) 중 임의의 표면에 위치되어 그에 따라서 처리될 수 있다.
본 발명의 양호한 실시예에서, 도 4에 도시된 포톤 이벤트 공간 내의 비디오 레이어 및 그래픽 드라이버 영역의 구성은 "구성 애플리케이션"이라고 부르는 별도의 소프트웨어 프로세스에 의해 발생된다. 이 구성 애플리케이션은 예를 들면 이 환경을 설정하도록 도 5의 흐름도로 나타낸 단계들을 수행한다.
단계 100에서, 구성 애플리케이션은 이용가능한 하드웨어 레이어의 수에 관하여 특수한 물리적 디스플레이 장치(14)의 그래픽 드라이버에 질의한다. 그래픽 드라이버는 특수한 그래픽 카드(20)에 전용되지만, 레이어를 지원하는 모든 포톤 드라이버는 질의 및 레이어 하드웨어의 제어를 위한 동일한 인터페이스를 갖는다.
그 다음에, 구성 애플리케이션은 단계 102에서 각 비디오 레이어의 능력에 관하여 그래픽 드라이버에 질의한다. 이 정보는 각 비디오 레이어의 치수, 컬러의 수, 치수, 해상도, 스케일 인자, 가상 치수 제한, 크로마 키, 알파 혼합 능력 및 기타의 파라메터와 같은 파라메터들을 특정 환경마다 내포할 것이다.
그래픽 드라이버로부터의 이러한 정보로 무장해서, 구성 애플리케이션은 그 다음에 단계 104에서 원하는 수의 비디오 표면(포톤의 "오프 스크린 콘텍스트"라고 부름)을 발생하고, 단계 106에서 이용가능한 하드웨어 레이어의 수 및 능력에 기초하여 대응하는 레이어를 구성한다.
그 다음에, 구성 애플리케이션은 단계 108에서 상기 드라이버 영역들을 포톤 이벤트 공간(80)에 선택적으로 배치한다. 이 단계는 모든 드라이버 영역을 포톤 이벤트 공간(80)에 배치하는 것이 바람직하지 않을 수 있기 때문에 선택사항이다(비디오 표면의 포톤 공간 내에 드라이버 영역이 부족하면 그 표면에 렌더링하려고 하는 특정의 의도를 갖지 않은 소프트웨어 애플리케이션이 우연히 그 작업을 행하는 것을 방지한다). 위에서 설명한 바와 같이, 일부 그리기 요청을 포톤 이벤트 공간(80)을 통과함이 없이 특수한 비디오 레이어에 직접 보냄으로써 특정의 그리기 요청이 다른 영역에 의해 수정되거나 차단될 가능성을 회피하는 것이 바람직할 수 있다.
예를 들어, 레이어는 사용자에게 알람 조건을 나타내도록 구성하는 것이 바람직할 것이다. 이 레이어는 상기 알람 조건이 사용자(60)에게 어쨌든 표시되는 것 을 보장하도록 포톤 이벤트 공간(80)의 외측에 셋업될 수 있다.
이 점에서, 시스템은 이제 그래픽 카드의 하드웨어 레이어 능력을 개발하도록 구성되어진다.
그 다음에, 구성 애플리케이션이 종료되고 위에서처럼 구성된 포톤 시스템을 남긴다. 레이어와 관련된 비디오 표면에서 목표정해진 그래픽 드라이버 영역 아래에 위치된 임의의 제3자 소프트웨어 애플리케이션은 사실상 그 레이어에 렌더링될 것이다. 제3자 소프트웨어 애플리케이션은 그렇게 존재하는 레이어들이 다중 레이어 시스템에 렌더링할 무엇이든 수정할 필요가 없다는 것에 관한 어떠한 지식도 필요로 하지 않는다.
이 점에서, 레이어와 관련된 비디오 표면에 접속되어 있는 드라이버 영역 아래로부터 렌더링하는 임의의 애플리케이션은 그 레이어에 렌더링할 것이고, 하드웨어는 레이어 속성의 구성에 기초해서 상기 렌더링되는 결과를 최종 디스플레이로 합성할 것이다.
비디오 표면에 접속된 드라이버 영역 아래로부터 렌더링하는 임의의 소프트웨어 애플리케이션은 그 비디오 표면에 렌더링한다는 것에 주목하여야 한다. 비디오 표면이 또한 레이어링 하드웨어에 접속될 필요는 없다. 예를 들면, 화면 보호기는 드라이버 영역이 1024,768 내지 2047,1535로 생성될 것을 요청할 수 있고, 0,0으로 관리 및 디스플레이하는 비디오 표면에 그 영역을 관련시킨다. 그 결과, 화면 보호기는 콘솔(5)상의 소프트웨어 애플리케이션으로부터의 콘텐트를 이용하고 해상도를 1024×768로 가정하여 그 디스플레이를 발생한다.
포톤 이벤트 공간에서의 디폴트 윈도우 매니저 레이아웃은 도 6에 도시하였다. 디스플레이 하부구조는 복수의 "콘솔"로 구성되고, 콘솔 5는 콘솔 1로부터 오른쪽으로 한 칸, 아래쪽으로 한 칸 위치에 있는 콘솔이다.
시스템이 일단 구성되면, 그리기 요청은 도 7의 흐름도에 도시한 방법으로 처리될 수 있다. 이 흐름도는 실제 소프트웨어 코드가 어떻게 구성되는지를 나타내는 것과 반대로, 처리 흐름을 설명하기 위해 단순화한 것이다. 예를 들어서, 운영 체제의 실제 구현은 일반적으로 단계 120에 대하여 도시한 바와 같은 "아니오" 루프를 포함하지 않을 것이다. 운영 체제는 응답을 기다리는 처리 루프에 안주하지 않고 일반적으로 인터럽트의 도착, 기능 호출의 발생, 또는 주기적인 폴링에 대한 응답에 응답한다. 그러나, 본 발명의 실제 소프트웨어 코드 구현은 당업자라면 이와 같은 간단한 방식의 본 발명의 설명으로부터 명백할 것이다.
단계 120에서 그리기 이벤트가 수신되거나, 또는 유사하게, 이미지, 벡터 또는 캐릭터를 물리적 디스플레이에 렌더링하게 하는 임의의 요청이 수신된 때, 처리는 단계 122로 진행한다. 단계 122에서는 그리기 요청이 특정 비디오 하드웨어 레이어에 대하여 플래그되었는지 여부를 결정한다. 만일 플래그되지 않았으면, 그리기 이벤트는 단계 124에 도시한 것처럼 포톤 이벤트 공간(80)을 통하여 보내진다. 그 다음에, 상기 이벤트는 단계 125에서 포톤 이벤트 공간(80) 내의 영역으로 전달된다. 그리기 이벤트가 어느 영역에 할당될 것인지에 대한 결정은 그리기 이벤트의 소스의 지오메트리에 의해 결정된다. 전술한 바와 같이, 예를 들면, 비디오 이미지보다 더 높은 우선순위를 가진 영역에 경보 디스플레이를 보내는 것이 바람직할 수 있다. 사실, 일반적인 레이어드 인터페이스를 구현하기 위해 그리기 이벤트 엔드업(end up)이 어느 표면/레이어에 영향을 주는지 제어할 수 있게 하는 것이 필요하다.
단계 122에서 식별된 그리기 이벤트가 특정 비디오 표면으로 향해지면, 상기 그리기 이벤트는 에미터 영역으로부터 포톤 공간을 통해 이동할 필요없이 그래픽 영역으로 직접 전달된다. 도 5의 단계 108과 관련하여 위에서 설명한 바와 같이, 일부 그리기 요청은 특수한 하드웨어 레이어로 직접 전달하는 것이 바람직할 수 있고, 따라서, 그리기 요청이 다른 영역에 의해 차단되거나 수정될 가능성을 회피한다. 그리기 요청이 포톤 이벤트 공간(80)에 대하여 의도되었으면, 제어는 단계 124로 진행하고, 만일 그리기 요청이 하드웨어 레이어로 직접 가도록 의도되면 제어는 단계 130으로 진행한다.
단계 132에서, 전체 포톤 이벤트 공간(80)은 도 3 및 도 4와 관련하여 설명한 것처럼 처리된다. 이것에 의해 그리기 이벤트는 포톤 이벤트 공간(80) 내에서 처리되고, 가능하다면 하나 이상의 그래픽 드라이버 영역에 투영된다.
이들 그래픽 드라이버 영역들은 특수한 비디오 하드웨어 레이어와 관련되고, 따라서 단계 134에서 상기 비디오 하드웨어 레이어에 렌더링된다. 만일 그리기 이벤트가 단계 130으로 진행하면, 그리기 이벤트는 그리기의 소스와 드라이버 영역 사이의 모든 중간 영역을 바이패스하고 그리기 소스 또는 수신 드라이버 영역의 지오메트리와 관계없이 포톤 이벤트 공간(80) 내의 드라이버 영역에 직접 간단히 방출될 것이다. 그 다음에, 그리기는 원하는 하드웨어 레이어(134)에 렌더링된다.
단계 136에서, 비디오 하드웨어 레이어는 그 다음에 그래픽 카드에 의해 처리되고 물리적 디스플레이 스크린상에 나타난다. 그 다음에, 제어는 단계 120으로 복귀하여 추가의 그리기 이벤트가 도달할 때까지 대기한다.
상기 방법으로 구성된 시스템은, 제3자 소프트웨어 애플리케이션이, 하드웨어 레이어의 존재를 의식하지 않고도, 그래픽 카드 내의 하드웨어 레이어 지원을 이용할 수 있도록 허용한다. 이러한 시스템은, 예를 들면, 텔레비젼 디스플레이가 컴퓨터 디스플레이 또는 이메일을 PIP(picture in picture) 윈도우로 지원할 수 있게 한다. 이메일 특징은 별도의 레이어상의 텔레비젼 디스플레이가 (스포츠 이벤트 중에 스코어를 너무 나쁘게 불명료하게 하지 않도록) 이메일 응용의 사용자 구성가능한 투명 제어를 가능하게 하는 표준 이메일 응용일 수 있다. 유사하게, 직립식 맵핑 응용은 하나의 레이어상에 놓여질 수 있고, 자동 인포(트립 컴퓨터 인포, hvac 세팅 등)는 시스템의 마이크로프로세서에서의 충돌을 최소화하면서 지도상에 디스플레이될 수 있다.
지금까지 본 발명의 특수한 실시예를 도시하고 설명하였지만, 본 발명의 범위 및 정신으로부터 벗어나지 않고 상기 실시예를 여러가지로 변화 및 수정할 수 있음은 명백하다.
본 발명에 따른 방법의 단계들은 목적 코드 또는 소스 코드와 같이 다양한 형식으로 저장된 실행가능한 머신 코드 세트의 실시예일 수 있다. 그러한 코드는 이 명세서에서 간단히 하기 위해 프로그래밍 코드 또는 소프트웨어 코드로서 포괄적으로 설명하였다. 명백한 것이지만, 실행가능 머신 코드는 외부 프로그램 호출에 의해 또는 공지되어 있는 다른 기술에 의해 서브루틴으로서 구현되는 다른 프로그램의 코드와 통합될 수 있다.
본 발명의 실시예들은 방법 단계들의 방법으로 프로그램된 컴퓨터 프로세서 또는 유사한 장치에 의해 실행될 수 있고, 또는 이러한 단계들을 실행하기 위한 수단을 구비한 전자 시스템에 의해 실행될 수 있다. 마이크로프로세서, 디지털 신호 처리기(DSP), 마이크로콘트롤러 및 특수 용도 집적회로(ASIC)들은 그러한 실행이 가능한 장치들의 전형적인 예이다. 유사하게 컴퓨터 디스켓, CD-ROM, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM)와 같은 전자식 기억 매체 또는 공지되어 있는 유사한 컴퓨터 소프트웨어 기억 매체는 본 발명의 방법을 수행하기 위해 필요한 소프트웨어 코드를 저장하기 위해 사용될 수 있다. 또한 이러한 방법 단계들을 나타내는 전자 신호들은 통신 네트워크를 통하여 또한 전송될 수 있다.
본 발명에 따르면, 컴퓨터가 그래픽 카드와 비디오 디스플레이를 포함하고, 상기 그래픽 카드가 상기 비디오 디스플레이에 이미지를 렌더링하도록 동작가능하며, 소프트웨어 애플리케이션 및 운영 체제를 포함하는 컴퓨터 환경에서, 상기 운영 체제가 그래픽 카드상에서 하드웨어 레이어들을 지원하는 범용 응용 프로그래밍 인터페이스(API)를 포함하고, 상기 운영 체제가 상기 범용 API를 통해 그리기 이벤트를 수신하고 어떤 하드웨어 레이어가 상기 그래픽 카드에서 이용가능한지 및 그들의 파라메터가 무엇인지를 결정하며 상기 그래픽 카드상의 임의의 상기 이용가능한 하드웨어 레이어들에 상기 그리기 요청을 선택적으로 렌더링하여 상기 소프트웨어 애플리케이션으로부터의 그리기 요청에 응답하도록 동작가능하게 됨으로써, 상기 컴퓨터 환경이 소프트웨어 애플리케이션으로 하여금 상기 그래픽 카드상의 이용가능한 하드웨어 레이어를 개발할 수 있다.

Claims (25)

  1. 그래픽 카드, 비디오 디스플레이 및 운영 체제를 포함하는 컴퓨터 시스템에서 비디오 디스플레이를 관리하는 방법으로서, 상기 컴퓨터 시스템은 소프트웨어 애플리케이션들을 실행하도록 동작가능하고 상기 그래픽 카드는 이미지들을 상기 비디오 디스플레이에 렌더링(rendering)하도록 동작가능한 것인, 상기 비디오 디스플레이 관리 방법에 있어서,
    상기 운영 체제의 범용 응용 프로그램 인터페이스(API)를 통하여 상기 소프트웨어 애플리케이션들로부터 그리기 요청(draw request)들 - 상기 그리기 요청들 중 하나 이상은 상기 그래픽 카드의 특정 비디로 레이어를 식별함 - 을 수신하는 단계와;
    그리기 요청들 및 소프트웨어 영역들의 관리를 위한 좌표계를 정의하는 3차원 이벤트 공간 - 상기 소프트웨어 영역들 각각은 상기 그래픽 카드의 비디오 레이어를 목표로 하고(targetting) 상기 3차원 이벤트 공간 내의 평면 영역으로서 정의되며, 상기 그리기 요청들 각각은 상기 3차원 이벤트 공간 내의 벡터로서 정의되고, 상기 소프트웨어 영역들은 상기 소프트웨어 영역들을 통과하는 그리기 요청들에 응답하도록 선택적으로 구성됨 - 을 구성하는 단계와;
    상기 운영 체제가, 특정 비디오 레이어를 식별하는 그리기 요청들을 상기 특정 비디오 레이어에 렌더링하고, 특정 비디오 레이어를 식별하지 않는 그리기 요청들을 상기 3차원 이벤트 공간의 대응하는 소프트웨어 영역에 의해 목표정해진(targeted) 비디오 레이어에 렌더링하는 단계와;
    상기 그래픽 카드가, 상기 비디오 디스플레이에서의 디스플레이를 위해 비디오 레이어들상의 데이터를 맵핑하는 단계
    를 포함하는, 비디오 디스플레이 관리 방법.
  2. 제1항에 있어서, 상기 렌더링하는 단계는,
    특정 비디오 레이어를 식별하지 않는 상기 그리기 요청에 응답하는 단계로서, 상기 그리기 요청이 어느 비디오 레이어에 렌더링되어야 하는지를 결정하고 그 결정에 따라 상기 그리기 요청을 렌더링함으로써, 응답하는 단계
    를 포함하는 것인, 비디오 디스플레이 관리 방법.
  3. 제2항에 있어서, 상기 결정은, 상기 그리기 요청의 지오메트리 및 그리기 감응 영역의 지오메트리에 따라, 상기 그리기 요청이 향해질 비디오 레이어를 선택하는 단계를 포함하는 것인, 비디오 디스플레이 관리 방법.
  4. 제2항에 있어서, 상기 그래픽 카드는 비디오 레이어 데이터를 비파괴적으로 저장하기 위한 메모리를 포함하는 것인, 비디오 디스플레이 관리 방법.
  5. 제1항에 있어서, 상기 그리기 요청은, 이미지, 벡터 또는 글자를 상기 비디오 디스플레이에 나타내도록 하는 요청을 포함하는 것인, 비디오 디스플레이 관리 방법.
  6. 제1항에 있어서, 상기 소프트웨어 영역들 각각은 상기 3차원 이벤트 공간 내의 치수(dimension) 및 위치 파라메터를 포함하는 것인, 비디오 디스플레이 관리 방법.
  7. 제6항에 있어서, 상기 그래픽 카드의 치수는 상기 비디오 디스플레이의 치수와 동일한 것인, 비디오 디스플레이 관리 방법.
  8. 제6항에 있어서, 상기 3차원 이벤트 공간 내의 루트 영역의 치수는, 상기 비디오 디스플레이의 치수보다 더 커서 그리기 요청이 오프 스크린 콘텍스트(off screen context)에 렌더링되도록 하는 것인, 비디오 디스플레이 관리 방법.
  9. 제6항에 있어서, 상기 컴퓨터 시스템에서 실행되는 각각의 소프트웨어 애플리케이션은 상기 3차원 이벤트 공간 내의 영역과 관련되는 것인, 비디오 디스플레이 관리 방법.
  10. 제9항에 있어서, 상기 소프트웨어 영역들 중 적어도 하나는 상기 그래픽 카드에 적당한 그래픽 드라이버인 것인, 비디오 디스플레이 관리 방법.
  11. 제10항에 있어서, 상기 소프트웨어 영역들 중 2개 이상은 그래픽 드라이버이고, 상기 2개 이상의 그래픽 드라이버는 상기 3차원 이벤트 공간 내에서 중첩되지 않으며, 상기 2개 이상의 그래픽 드라이버는 서로 다른(separate) 그래픽 비디오 레이어들과 연관되는 것인, 비디오 디스플레이 관리 방법.
  12. 제4항에 있어서, 상기 그래픽 카드상의 연관된 비디오 레이어들의 파라메터들에 따라 드라이버 영역들을 발생하는 단계를 더 포함하는, 비디오 디스플레이 관리 방법.
  13. 제4항에 있어서, 구성(configuring) 애플리케이션을 이용하여 비디오 표면, 드라이버 영역, 표면 대 레이어 연관성, 및 레이어 속성을 구성하는 단계를 더 포함하는, 비디오 디스플레이 관리 방법.
  14. 제1항에 있어서,
    구성 애플리케이션을 이용하여 비디오 표면, 드라이버 영역, 표면 대 레이어 연관성, 및 레이어 속성을 구성하는 단계와;
    운영 체제의 범용 API를 통하여 도달하는 그리기 요청의 수신에 응답하는 단계로서, 상기 그리기 요청이 특정 비디오 레이어에 대하여 플래그(flag)되어 있는지를 결정하고, 만일 플래그 되어 있다면 상기 그리기 요청을 상기 특정 비디오 레이어로 보내고, 플래그되어 있지 않다면 상기 3차원 이벤트 공간 - 상기 3차원 이벤트 공간은, 상기 3차원 이벤트 공간의 제1 단부(first end)에 루트 평면을 가지며, 각각의 특성 세트는 치수 특성 및 위치 특성을 포함하고, 상기 치수 특성은 상기 3차원 이벤트 공간 내의 평면 지역의 치수 세트를 나타내고, 상기 위치 특성은 상기 3차원 이벤트 공간 내의 적어도 제2 평면 지역에 대한 상기 3차원 이벤트 공간 내의 상기 평면 지역의 상대적 위치를 나타냄 - 내에서 상기 그리기 요청을 처리함으로써, 응답하는 단계
    를 더 포함하는, 비디오 디스플레이 관리 방법.
  15. 제14항에 있어서, 상기 구성하는 단계는,
    구성 애플리케이션에 의해, 특정한 디스플레이의 그래픽 드라이버에게 가용 비디오 레이어의 수에 대해 질의하는 단계와;
    상기 구성 애플리케이션에 의해, 상기 그래픽 드라이버에게 각 비디오 레이어의 능력에 대해 질의하는 단계와;
    상기 구성 애플리케이션에 의해, 필요한 수의 비디오 표면을 발생시키는 단계와;
    상기 구성 애플리케이션에 의해, 상기 가용 비디오 레이어의 수와 능력에 기초하여 대응하는 레이어들을 구성하는 단계
    를 포함하는 것인, 비디오 디스플레이 관리 방법.
  16. 제15항에 있어서, 특정 비디오 레이어들과 직접 연관되는 비디오 표면들을 정의하는 단계를 더 포함하는 비디오 디스플레이 관리 방법.
  17. 제16항에 있어서, 상기 응답하는 단계는,
    소프트웨어 애플리케이션 프로그램으로부터 수신된 제1 이벤트 신호 - 상기 제1 이벤트 신호는 이벤트 유형 및 지역 특성(area property)을 갖는 것이고, 상기 지역 특성은 상기 3차원 이벤트 공간 내에서 이벤트 지역을 정의함 - 에 응답하는 단계와;
    상기 이벤트 지역이 제1 프로그램 지역 - 상기 제1 프로그램 지역은 상기 3차원 이벤트 공간 내에 정의되고 상기 소프트웨어 애플리케이션 프로그램에 대응함 - 과 교차하는지 여부를 결정하는 단계를 포함하고,
    만일 교차하면,
    상기 소프트웨어 애플리케이션 프로그램이 상기 이벤트 유형을 테스트함으로써 상기 제1 이벤트 신호에 감응하는지(sensitive)의 여부를 결정하고, 만일 감응한다면, 상기 제1 이벤트 신호에 대응하는 정보를 포함한 출력 신호를 상기 소프트웨어 애플리케이션 프로그램에 송신하는 단계와;
    상기 소프트웨어 애플리케이션 프로그램이 상기 이벤트 유형을 테스트함으로써 상기 제1 이벤트 신호를 수정해야 하는지 여부를 결정하고, 만일 수정해야 한다면, 상기 이벤트 지역으로부터 상기 제1 프로그램 지역을 클립핑함으로써 상기 지역 특성을 수정하는 단계를 수행하는 것인, 비디오 디스플레이 관리 방법.
  18. 컴퓨터 시스템에 있어서,
    컴퓨터와;
    상기 컴퓨터에 설치된 그래픽 카드와;
    상기 그래픽 카드에 전기적으로 접속된 비디오 디스플레이와;
    상기 컴퓨터에서 실행되는 소프트웨어 애플리케이션과;
    상기 컴퓨터에서 실행되며, 상기 그래픽 카드 상의 하드웨어 레이어들을 지원하는 범용 응용 프로그래밍 인터페이스(API)를 포함하는 운영 체제를 포함하고,
    상기 운영 체제는,
    i) 상기 범용 API를 통하여 그리기 요청을 수신하고,
    ii) 상기 그래픽 카드 상의 어떤 하드웨어 레이어들이 가용(available)한지를 결정하며,
    iii) 상기 그래픽 카드상의 상기 가용 하드웨어 레이어들 중 대응하는 레이어들에 그리기 요청들을 렌더링함으로써 상기 소프트웨어 애플리케이션으로부터의 그리기 요청들에 응답하는 것으로서,
    상기 그리기 요청들 각각이 상기 그래픽 카드의 특정 비디오 표면(surface)에 대해 플래그(flag)되어 있는지 여부를 결정하고,
    특정 비디오 표면에 대해 플래그되지 않은 그리기 요청들에 대해, 3차원 이벤트 공간 - 상기 3차원 이벤트 공간은 그리기 이벤트들 및 소프트웨어 영역들의 관리를 위한 좌표계를 포함하고, 상기 소프트웨어 영역들 각각은 상기 3차원 이벤트 공간 내의 평면 영역으로서 정의되고, 상기 그리기 이벤트들 각각은 상기 3차원 이벤트 공간 내의 벡터로서 정의되고, 상기 소프트웨어 영역들은 상기 소프트웨어 영역을 통과하는 그리기 이벤트들에 응답하도록 선택적으로 구성됨 - 을 구성함으로써,
    상기 소프트웨어 애플리케이션으로부터의 그리기 요청들에 응답하도록 동작가능하며,
    상기 그래픽 카드는, 상기 비디오 디스플레이상에서의 디스플레이를 위해 상기 비디오 표면 상의 데이터를 상기 가용 하드웨어 레이어들에 맵핑하도록 동작가능한 것인, 컴퓨터 시스템.
  19. 제18항에 있어서, 상기 운영 체제는 또한, 특정 하드웨어 레이어의 식별을 포함한 그리기 요청에 대해, 상기 특정 하드웨어 레이어에 상기 그리기 요청을 렌더링함으로써, 응답하도록 동작가능한 것인 컴퓨터 시스템.
  20. 제18항에 있어서, 상기 운영 체제는 또한, 상기 그래픽 카드상의 하드웨어 레이어와 연관된 드라이버 영역을 생성하도록 동작가능한 것인, 컴퓨터 시스템.
  21. 제18항에 있어서, 상기 컴퓨터 시스템에서 실행되는 각각의 소프트웨어 애플리케이션은 상기 3차원 이벤트 공간 내의 영역과 연관되는 것인, 컴퓨터 시스템.
  22. 제18항에 있어서, 상기 운영 체제는 또한, 관련된 하드웨어 레이어들의 파라메터들에 따라 드라이버 영역들을 정의하도록 동작가능한 것인, 컴퓨터 시스템.
  23. 삭제
  24. 삭제
  25. 삭제
KR1020050080113A 2004-08-30 2005-08-30 하드웨어 그래픽 레이어로의 투명 액세스를 제공하는시스템 KR101228708B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/928,698 US7830372B2 (en) 2004-08-30 2004-08-30 Method and system for providing transparent access to hardware graphic layers
US10/928,698 2004-08-30

Publications (2)

Publication Number Publication Date
KR20060050830A KR20060050830A (ko) 2006-05-19
KR101228708B1 true KR101228708B1 (ko) 2013-02-01

Family

ID=35517664

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050080113A KR101228708B1 (ko) 2004-08-30 2005-08-30 하드웨어 그래픽 레이어로의 투명 액세스를 제공하는시스템

Country Status (6)

Country Link
US (5) US7830372B2 (ko)
EP (2) EP1635253B1 (ko)
JP (1) JP2006073001A (ko)
KR (1) KR101228708B1 (ko)
CN (1) CN1770129A (ko)
CA (1) CA2516881C (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016072811A1 (ko) * 2014-11-07 2016-05-12 삼성전자 주식회사 디스플레이 장치 및 디스플레이 장치의 제어 방법
WO2016178446A1 (ko) * 2015-05-07 2016-11-10 에스피테크놀러지주식회사 그래픽 처리 장치와 이에 포함되는 크로스 드라이버 제어 모듈 및 그 제어방법
KR101849224B1 (ko) * 2016-10-20 2018-04-17 한화시스템 주식회사 단일 보드 컴퓨터를 위한 그래픽 카드 및 그래픽 api 제공방법

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100914120B1 (ko) * 2002-04-15 2009-08-27 마이크로소프트 코포레이션 비디오 렌더러와 그래픽 디바이스 드라이버, 및 이들간의 상호 작용을 용이하게 하기 위한 장치, 시스템, 방법 및 전자적으로 액세스 가능한 매체
US7830372B2 (en) 2004-08-30 2010-11-09 Qnx Software Systems Gmbh & Co. Kg Method and system for providing transparent access to hardware graphic layers
US20070150364A1 (en) * 2005-12-22 2007-06-28 Andrew Monaghan Self-service terminal
US7971208B2 (en) * 2006-12-01 2011-06-28 Microsoft Corporation Developing layered platform components
CN101067924B (zh) * 2007-05-28 2010-05-19 广东威创视讯科技股份有限公司 一种基于第三方播放软件的视频加速方法
US8884981B2 (en) * 2007-09-04 2014-11-11 Apple Inc. Dynamically reconfigurable graphics layer system and method
US8234668B2 (en) 2008-12-23 2012-07-31 Microsoft Corporation Content access
CN102117477B (zh) * 2010-01-06 2014-12-03 康佳集团股份有限公司 一种嵌入式设备显示等待动画的方法及系统
US9396001B2 (en) * 2010-11-08 2016-07-19 Sony Corporation Window management for an embedded system
KR101334526B1 (ko) * 2011-03-02 2013-11-28 박재현 투명 윈도를 이용한 그리기 동작 제어 방법
CN102867284B (zh) * 2011-07-07 2016-10-26 腾讯科技(深圳)有限公司 一种图形绘制引擎装置及其实现方法
EP2756408A4 (en) * 2011-09-12 2015-02-18 Intel Corp MULTIPLE SIMULTANEOUS DISPLAYS ON A SCREEN
US20130069981A1 (en) * 2011-09-15 2013-03-21 Research In Motion Limited System and Methods for Managing Composition of Surfaces
US9286122B2 (en) * 2012-05-31 2016-03-15 Microsoft Technology Licensing, Llc Display techniques using virtual surface allocation
US9936002B2 (en) * 2014-02-21 2018-04-03 Dell Products L.P. Video compose function
CN104133671B (zh) * 2014-06-30 2017-10-27 汉柏科技有限公司 一种数字处理设备的硬件接口屏蔽装置及方法
CN105446585B (zh) * 2014-08-29 2019-03-15 优视科技有限公司 一种安卓智能终端浏览器视频显示方法及装置
EP3230885B1 (en) 2014-12-08 2024-04-17 Umbra Technologies Ltd. Method for content retrieval from remote network regions
CN113225369A (zh) 2015-01-06 2021-08-06 安博科技有限公司 用于中立应用程序编程接口的系统和方法
US10630505B2 (en) 2015-01-28 2020-04-21 Umbra Technologies Ltd. System and method for a global virtual network
ES2959674T3 (es) 2015-04-07 2024-02-27 Umbra Tech Ltd Cortafuegos de perímetro múltiple en la nube
CN112583744B (zh) 2015-06-11 2023-04-18 安博科技有限公司 用于网络挂毯多协议集成的系统和方法
WO2017047848A1 (ko) * 2015-09-18 2017-03-23 (주)재플 다중화 특성을 이용한 재핑 광고 시스템
EP3387819B1 (en) 2015-12-11 2022-09-28 Umbra Technologies Ltd. System and method for information slingshot over a network tapestry and granularity of a tick
EP4054156B1 (en) 2016-04-26 2024-01-17 Umbra Technologies Ltd. Data beacon pulsers powered by information slingshot
CN108132719A (zh) * 2016-12-01 2018-06-08 龙芯中科技术有限公司 基于VxWorks操作系统的鼠标滚轮的实现方法及装置
US10380038B2 (en) * 2017-08-24 2019-08-13 Re Mago Holding Ltd Method, apparatus, and computer-readable medium for implementation of a universal hardware-software interface
JP6800125B2 (ja) * 2017-09-29 2020-12-16 太陽誘電株式会社 回路基板及び回路モジュール
WO2019214803A1 (en) * 2018-05-07 2019-11-14 Huawei Technologies Co., Ltd. A method, an apparatus and a computer program for display contents generation
KR101939309B1 (ko) * 2018-05-30 2019-01-16 주식회사 바탕건축사사무소 건축물 외장 장치
US10710536B1 (en) * 2019-03-25 2020-07-14 Himax Technologies Limited Function safety system for vehicle malfunction display
CN115904148A (zh) * 2022-11-14 2023-04-04 京东方科技集团股份有限公司 触控事件的处理方法及装置、存储介质、电子设备

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734852A (en) 1993-12-02 1998-03-31 Object Technology Licensing Corp. Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system
US6397262B1 (en) 1994-10-14 2002-05-28 Qnx Software Systems, Ltd. Window kernel
US6448958B1 (en) 1997-07-04 2002-09-10 International Business Machines Corporation Remote control method, server and recording medium

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2118201C (en) 1994-10-14 2003-02-04 Patrick M. Hayden Photon windowing kernel
JPH10507853A (ja) * 1994-10-25 1998-07-28 オブジェクト テクノロジー ライセンシング コーポレイション ウィンドウをサービスするためのオブジェクト指向システム
US5546518A (en) * 1995-01-06 1996-08-13 Microsoft Corporation System and method for composing a display frame of multiple layered graphic sprites
US6832266B1 (en) * 2000-02-07 2004-12-14 Sun Microsystems, Inc. Simplified microkernel application programming interface
US7051282B2 (en) * 2003-06-13 2006-05-23 Microsoft Corporation Multi-layer graphical user interface
US7830372B2 (en) * 2004-08-30 2010-11-09 Qnx Software Systems Gmbh & Co. Kg Method and system for providing transparent access to hardware graphic layers

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5734852A (en) 1993-12-02 1998-03-31 Object Technology Licensing Corp. Method and apparatus for displaying hardware dependent graphics in an object-oriented operating system
US6397262B1 (en) 1994-10-14 2002-05-28 Qnx Software Systems, Ltd. Window kernel
US6448958B1 (en) 1997-07-04 2002-09-10 International Business Machines Corporation Remote control method, server and recording medium

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016072811A1 (ko) * 2014-11-07 2016-05-12 삼성전자 주식회사 디스플레이 장치 및 디스플레이 장치의 제어 방법
US10331331B2 (en) 2014-11-07 2019-06-25 Samsung Electronics Co., Ltd. Display device and method of controlling display device
WO2016178446A1 (ko) * 2015-05-07 2016-11-10 에스피테크놀러지주식회사 그래픽 처리 장치와 이에 포함되는 크로스 드라이버 제어 모듈 및 그 제어방법
KR101849224B1 (ko) * 2016-10-20 2018-04-17 한화시스템 주식회사 단일 보드 컴퓨터를 위한 그래픽 카드 및 그래픽 api 제공방법

Also Published As

Publication number Publication date
CA2516881A1 (en) 2006-02-28
EP1635253A3 (en) 2010-04-21
US8648852B2 (en) 2014-02-11
US20120256930A1 (en) 2012-10-11
US20110050688A1 (en) 2011-03-03
EP2631784B1 (en) 2020-06-24
JP2006073001A (ja) 2006-03-16
EP1635253B1 (en) 2018-04-18
EP2631784A3 (en) 2013-10-16
US8098246B2 (en) 2012-01-17
EP2631784A2 (en) 2013-08-28
CN1770129A (zh) 2006-05-10
US7830372B2 (en) 2010-11-09
US20140143711A1 (en) 2014-05-22
US20130222362A1 (en) 2013-08-29
CA2516881C (en) 2019-06-04
US8416235B2 (en) 2013-04-09
EP1635253A2 (en) 2006-03-15
US20060048164A1 (en) 2006-03-02
KR20060050830A (ko) 2006-05-19
US9274677B2 (en) 2016-03-01

Similar Documents

Publication Publication Date Title
KR101228708B1 (ko) 하드웨어 그래픽 레이어로의 투명 액세스를 제공하는시스템
CN109388467B (zh) 地图信息显示方法、装置、计算机设备及存储介质
EP2726981B1 (en) Human machine interface unit for a communication device in a vehicle and i/o method using said human machine interface unit
US7024626B2 (en) System and method of producing user interface information messages
US7689926B2 (en) Selective window exclusion for captured content
US9081648B2 (en) Software architecture for developing in-vehicle software applications
EP2138926B1 (en) Method for determining destination of request, program, and display system using the method
KR20120134132A (ko) 사용자 입력 옵션의 협동적 이네이블을 제공하기 위한 장치 및 방법
CN105783939B (zh) 具有可扩展显示装置的导航系统及其操作方法
US8077143B2 (en) Motion based display management
US20120200403A1 (en) Methods, systems, and computer program products for directing attention to a sequence of viewports of an automotive vehicle
CN113467865A (zh) 信息处理方法、装置、电子设备及存储介质
CN115562736A (zh) 显示处理方法、装置、电子设备及介质
WO2013179636A1 (en) Touch-sensitive input device compatibility notification
CN115712372A (zh) 内容显示方法、装置、设备、介质和车辆
US11573676B2 (en) Method and system for managing contextual views within a user interface
CN117492878A (zh) 车载显示方法、装置、存储介质以及电子设备
WO2015179481A2 (en) Method, apparatus, and system for data transfer across applications
CN116400841A (zh) 界面显示方法、装置、电子设备和可读存储介质
CN115686715A (zh) 车辆的开机画面显示方法、装置、设备及存储介质
CN117909018A (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: 20160112

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170117

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180110

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190110

Year of fee payment: 7