KR100247720B1 - 그래픽 사용자 인터페이스에서 윈도우의 스캔 라인 압축을 사용하여 글로벌 히트 테스트 데이타 구조를 생성하기 위한 방법 및 시스템 - Google Patents

그래픽 사용자 인터페이스에서 윈도우의 스캔 라인 압축을 사용하여 글로벌 히트 테스트 데이타 구조를 생성하기 위한 방법 및 시스템 Download PDF

Info

Publication number
KR100247720B1
KR100247720B1 KR1019960052777A KR19960052777A KR100247720B1 KR 100247720 B1 KR100247720 B1 KR 100247720B1 KR 1019960052777 A KR1019960052777 A KR 1019960052777A KR 19960052777 A KR19960052777 A KR 19960052777A KR 100247720 B1 KR100247720 B1 KR 100247720B1
Authority
KR
South Korea
Prior art keywords
window
scan line
pel
vector
display
Prior art date
Application number
KR1019960052777A
Other languages
English (en)
Other versions
KR970062964A (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 KR970062964A publication Critical patent/KR970062964A/ko
Application granted granted Critical
Publication of KR100247720B1 publication Critical patent/KR100247720B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • 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/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements

Abstract

데이타 처리 시스템의 윈도우 환경의 윈도우의 강화된 로케이터 히트 테스팅 및 영역 클립핑 방법 및 시스템이 제공된다. 디스플레이의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는 글로벌 히트 테스트 데이타 구조가 생성된다. 각각의 압축 스캔 라인 데이타 세트는 하나 이상의 벡터들과, 디스플레이의 관련 스캔 라인의 하나 이상의 스팬들의 윈도우 소유권을 나타내는 각각의 벡터와 관련된 윈도우 식별자를 포함한다. 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터에 의해 식별된 스팬을 소유하는 윈도우를 식별한다. 윈도우의 강화된 로케이터 히트 테스팅은 선택된 펠의 윈도우 소유권을 정의하는 압축 스캔 라인 데이타 세트를 액세스하고, 선택된 펠을 포함하는 벡터를 결정하며, 결정된 벡터와 관련된 윈도우 식별자를 검색함으로써 디스플레이의 선택된 펠을 소유하는 윈도우를 식별한다. 검색된 윈도우 식별자는 선택된 펠의 강화된 로케이터 히트 테스트의 결과이다. 윈도우의 강화된 영역 클립핑은 디스플레이의 펠에 각각 대응하는 다수의 펠들을 갖는 비트맵 이미지를 생성하고, 비트맵 이미지의 각각의 펠에 대해, 대응 펠을 포함하는 벡터를 갖는 스캔 라인 데이타 세트를 액세스함으로써 영역 클립핑을 실행한다. 그 후 대응 펠을 포함하는 벡터와 관련된 위도우 식별자가 선택된 윈도우 식별자인지가 결정된다. 영역 클립핑은, 윈도우 식별자가 선택된 윈도우 식별자가 아니라고 결정된 각각의 펠에 대해 디스플레이의 각각의 대응 펠을 비트맵 이미지의 펠로 설정함으로써 달성된다.

Description

그래픽 사용자 인터페이스에서 윈도우의 스캔 라인 압축을 사용하여 글로벌 히트 테스트 데이타 구조를 생성하기 위한 방법 및 시스템
본 발명은 일반적으로 데이타 처리 시스템의 그래픽 사용자 인터페이스에서의 방법 및 시스템에 관한 것으로, 특히, 데이타 처리 시스템의 그래픽 사용자 인터페이스에서의 불규칙한 형태의 윈도우의 글로벌 히트 테스트 데이타 구조를 생성하기 위한 방법 및 시스템에 관한 것이다. 특히, 본 발명은 데이타 처리 시스템 그래픽 사용자 인터페이스에서의 불규칙한 형태의 윈도우의 스캔 라인 압축을 사용하여 글로벌 히트 테스트 데이타 구조를 생성하여, 불규칙한 형태의 윈도우의 강화된 로케이터 히트 테스팅(enhanced locator hit testing) 및 영역 클립핑을 제공하는 방법 및 시스템에 관한 것이다.
퍼스널 컴퓨터용 사용자 인터페이스는 사용자가 컴퓨터와 통신하는 방법을 규정한다. 이러한 통신 링크는 애플리케이션 사용 방법, 업무 전환 방법, 및 선택 방법을 규정한다. 다수의 최신 컴퓨터들은 사용자와의 이러한 통신 링크를 제공하기 위해 그래픽 사용자 인터페이스(GUI)를 제공한다. 그래픽 사용자 인터페이스는 사용자가 스크린상의 메뉴 아이템들의 화상 표현 및 리스트를 지정함으로써, 커맨드들을 선택하고, 프로그램들을 개시하며, 파일 리스트들 및 다른 옵션들을 보게 하는 디스플레이 포맷 타입이다. 선택은, 일반적으로 키보드 또는 마우스에 의해 활성화될 수 있다. 소형 이미지들(아이콘들)로 표시된, 디스플레이 상의 오브젝트들을 지정하기 위해 마우스를 사용함으로써, 사용자는 임의의 복잡한 커맨드들을 몰라도 컴퓨터를 제어할 수 있다. 마우스 제어 그래픽 사용자 인터페이스는 사용자가 프로그램 및 데이타를 나타내는 아이콘들을 지정하고 아이콘들을 윈도우 프레임으로 그룹화하게 된다.
윈도우 환경은 윈도우라고 하는 스크린의 특정하게 표시된 영역들을 사용자에게 제공하는 오퍼레이팅 시스템 또는 쉘이다. 각각의 윈도우는 가상 디스플레이 디바이스인 것처럼 독립적으로 동작할 수 있다. 윈도우 환경은 통상 윈도우들이 디스플레이 상에서 크기가 재조정되거나 이동할 수 있게 한다. Macintosh Finder, MS Windows, 및 OS/2 Presentation Manager는 윈도우 환경의 모든 예들이다. 윈도우 방식의 프로그램에서, 스크린은 여러가지 윈도우들로 분할될 수 있는데, 그 각각의 윈도우는 자체 경계를 각각 갖고 서로 다른 문서를 각각 포함할 수 있다. 각각의 윈도우는 또한 자체 메뉴 또는 다른 제어를 포함하고, 사용자는 각 윈도우들을 확대 및 축소시킬 수 있다. 몇몇 프로그램에서, 윈도우들은 스크린 상에서 나란히 (side by side) 오픈된다. 다시 말하면, 오픈 윈도우들은 서로 중첩될 수 있다.
윈도우 환경을 생성 및 제어하는 윈도우 서브시스템들은 통상 윈도우를 사각형으로 저장 및 디스플레이한다. 현재의 디스플레이에서의 특정 윈도우의 위치는 스크린 상의 원점 및 윈도우 사각형의 크기로 규정된다. 따라서, 공지된 모든 윈도우 서브시스템에서, 윈도우는 사각형으로서 규정되어야만 한다.
사용자가 통상 "데스크탑(desktop)"이라고 하는 디스플레이를 가로질러 로케이터(locator) 또는 포인터를 이동시키면, 하나의 윈도우로부터 다음 윈도우로 이동한다. 대부분의 컴퓨터에서, 오퍼레이팅 시스템은 어떤 윈도우 상에 포인터가 있는지를 결정하기 위해 로케이터 히트 테스팅 메카니즘을 제공한다. 이 로케이터 히트 테스팅은 연속적으로 실행된다. 로케이터 히트 테스트에 의해 표시된 바와 같이, 윈도우가 히트(hit)를 얻을 때, 윈도우 시스템은 윈도우에 로케이터 또는 마우스 이벤트 신호를 송신하여 마우스가 현재 윈도우 상을 지정하고 있음을 나타낸다. 표시된 윈도우를 소유하는 애플리케이션은 사용자 피드백을 제공할 기회를 갖는다. 이러한 피드백의 예들은 그래픽 애플리케이션들이 포인터를 크로스 헤어(cross hair)로서 보여줄 때, 에디터들이 포인터를 텍스트 포인터로 변경시키고, 다른 애플리케이션은 사용자가 현재의 장소를 클릭하면 무슨 일이 발생하는지를 나타내는 텍스트 블록을 디스플레이하는 것이다. 사용자가 윈도우의 특정 영역을 클릭하면, 이 마우스 이벤트는 또한 마우스에 의해 현재 히트된 윈도우에 전송되어 윈도우를 소유하는 애플리케이션으로 하여금 요청된 기능을 실행하게 한다.
윈도우들이 중첩될 수 있기 때문에, 윈도우 서브시스템은 윈도우 z-배열의 각각의 디스플레이된 윈도우의 상대적 "z-위치를 나타내는 깊이 리스트(depth list)를 생성한다. 이 깊이 리스트는, 윈도우에 제3 차원을 제공하여, 어떤 윈도우들이 다른 윈도우들의 상하에 있는지를 보여줌으로써 디스플레이된 윈도우의 중첩 및 클립핑을 가능케 한다. 다른 윈도우들의 상부에 있는 애플리케이션 및/또는 윈도우들이 하부의 모든 윈도우들 또는 일부 윈도우들을 커버(클립)하기 때문에, 로케이터 히트 테스팅이 상당히 복잡하게 된다. 이제, 디스플레이의 특정 영역에 하나 이상의 윈도우가 배치될 수 있게 되어, 히트 테스트 코드가 해당 영역에서 히트를 갖는 제1 윈도우를 찾기 위해 깊이 리스트의 탑 다운 z-배열 탐색(top down z-order search)을 실행해야만 한다. 이렇게 느린 선형 탐색은 데스크탑이 다수의 윈도우들로 커버될 때 로케이터 히트 테스트를 실행하는데 필요한 시간을 상당히 증가시킨다.
애플리케이션이 자체 윈도우로 드로잉할 때도 매우 유사한 문제가 발생한다. 드로잉은 중첩하는 윈도우들에 의해 클립되어야만 한다. 오퍼레이팅 시스템의 그래픽 서브시스템은 클립핑 영역 리스트를 사용하여 이 임무를 달성한다. 클립핑 영역 리스트는 중첩 윈도우들을 수용하기 위해 클립되어야만 하는 각각의 디스플레이 윈도우 내의 사각형 영역들을 정의한다.
몇몇 인터페이스가 불규칙한 형태의 윈도우를 디스플레이하는 동안, 윈도우는 디스플레이 상의 사각형 형태 내에서 정의된다. 불규칙한 형태의 윈도우는 현재의 디스플레이의 사각형 영역을 "소유(own)"한다. 따라서, 불규칙한 형태의 윈도우에 의해 중첩된 윈도우가, 불규칙한 형태의 윈도우에 의해 소유된 사각형 영역 내에 있지만, 실제로 불규칙한 형태의 윈도우 상에 있지 않은 한 지점에서 지정될 때 문제가 발생한다. 로케이터 히트 테스트는 사각형 영역으로 불규칙한 형태의 윈도우를 정의하기 때문에, 불규칙한 형태의 윈도우는 하부의 의도된 윈도우 대신 히트를 수신한다.
따라서, 데스크탑 및 애플리케이션의 디스플레이 방식의 발전된 특성으로 인해, 히트 테스팅 및 영역 클립핑을 실제로 정확하게 하기 위해 종래의 기술들을 사용하여 불규칙한 형태의 윈도우를 구현하면 거대한 양의 프로세서 시간을 발생시킨다. 불규칙한 형태의 윈도우를 위해 고속 히트 테스팅 및 영역 클립핑을 갖는 윈도우 환경을 제공하는 것이 바람직하다. 이 윈도우 환경은 수천개의 클립핑 사각형들과 관련된 오버헤드를 약화시키지 않고 또는 불규칙한 형태의 윈도우를 소유하는 애플리케이션이 영역 클립핑을 해결하게 함으로써 불규칙한 형태의 윈도우의 히트 테스팅 및 윈도우 클립핑의 방법 및 시스템을 제공한다.
본 발명에 따르면, 데이타 처리 시스템의 윈도우 환경의 윈도우의 강화된 로케이터 히트 테스팅 및 영역 클립핑 방법 및 시스템이 제공된다. 히트 테스팅 및 영역 클립핑의 경우, 데이타 처리 시스템의 윈도우 환경의 디스플레이의 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는 글로벌 히트 테스트 데이타 구조가 생성된다. 각각의 압축 스캔 라인 데이타 세트는 하나 이상의 벡터들과, 디스플레이의 관련 스캔 라인의 하나 이상의 스팬들의 윈도우 소유권을 나타내는 각각의 벡터와 관련된 윈도우 식별자를 포함한다. 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터에 의해 식별된 스팬을 소유하는 윈도우를 식별한다. 스팬은 스캔 라인의 하나 이상의 펠이다. 윈도우의 강화된 로케이터 히트 테스팅은 선택된 펠의 윈도우 소유권을 정의하는 글로벌 히트 테스트 데이타 구조 내의 압축 스캔 라인 데이타 세트를 액세스하고, 선택된 펠을 포함하는 상기 액세스된 압축 스캔 라인 데이타 세트의 벡터를 결정하며, 결정된 벡터와 관련된 윈도우 식별자를 검색함으로써 디스플레이의 선택된 펠을 소유하는 윈도우를 식별한다. 검색된 윈도우 식별자는 선택된 펠의 강화된 로케이터 히트 테스트의 결과이다. 윈도우의 강화된 영역 클립핑은 디스플레이의 펠에 각각 대응하는 다수의 펠들을 갖는 비트맵 이미지를 생성하고, 비트맵 이미지의 각각의 펠에 대해, 대응 펠을 포함하는 벡터를 갖는 스캔 라인 데이타 세트를 액세스함으로써 영역 클립핑을 실행한다. 그 후 대응 펠을 포함하는 벡터와 관련된 윈도우 식별자가 선택된 윈도우 식별자인지가 결정된다. 윈도우 식별자가 선택된 윈도우 식별자가 아니라고 결정된 비트맵 이미지의 각각의 펠에 대해 디스플레이의 각각의 대응 펠을 비트맵 이미지의 펠로 설정함으로써 영역 클립핑이 달성된다.
제1도는 본 발명을 구현하는데 사용될 수 있는 데이타 처리 시스템의 양호한 실시예를 도시한 도면.
제2도는 본 발명의 양호한 실시예에 따라 데이타 처리 시스템의 시스템 유닛의 기본 구성 소자들을 도시한 블럭도.
제3도는 본 발명의 양호한 실시예에 따라 데이타 처리 시스템의 오퍼레이팅 시스템에서 사용되는 표준 그래픽 사용자 인터페이스를 도시한 도면.
제4도는 본 발명의 양호한 실시예에 따라 데이타 처리 시스템의 윈도우 환경에서 불규칙적인 형태의 윈도우들을 디스플레이하는 데스크탑을 도시한 도면.
제5도는 본 발명의 양호한 실시예에 따라 윈도우 환경에서의 불규칙적인 형태의 윈도우들의 강화된 로케이터 히트 테스팅 방법의 플로우챠트.
제6도는 본 발명의 양호한 실시예에 따라 윈도우 환경에서의 불규칙적인 형태의 윈도우들의 강화된 영역 클립핑 방법의 플로우챠트.
제7도는 본 발명의 양호한 실시예에 따라 글로벌 히트 테스트 데이타 구조를 생성하는 프로세스의 플로우챠트.
〈도면의 주요부분에 대한 부호의 설명〉
12 : 시스템 유닛 14 : 디스플레이 디바이스
16 : 키보드 18 : 마우스
20 : 프린터 22 : 디스켓 드라이브
23 : 하드 디스크 드라이브 24 : CD-ROM 드라이브
26 : CPU 27 : 코프로세서
28 : 캐시 제어기 30 : 캐시 메모리
58 : RAM
도면중 특히 도 1을 참조하면, 본 발명을 구현하는데 이용될 수 있는 데이타 처리 시스템의 양호한 실시예가 도시되어 있다. 도시된 바와 같이, 데이타 처리 시스템(10)은 시스템 유닛(12), 디스플레이 디바이스(14), 키보드(16), 마우스(18) 및 프린터(20)를 포함한다. 본 기술 분야에 공지된 바와 같이, 시스템 유닛(12)은 키보드(16), 마우스(18), 또는 네트워킹/원격 통신 인터페이스(도시되지 않음)와 같은 입력디바이스들로부터 데이타를 수신한다. 마우스(18)는, 데이타 처리 시스템 구성 소자들 및 응용 프로그램들을 포함하는 시스템 오브젝트들이 디스플레이 디바이스(14)에 디스플레이된 관련 그래픽 오브젝트들의 선택 및 이동을 통해 마우스(18)에 의해 조작될 수 있는 그래픽 사용자 인터페이스(GUI)와 관련하여 양호하게 이용될 수 있다. 데이타의 저장 및 검색을 지원하기 위해, 시스템 유닛(12)은 공지된 방식으로 시스템 유닛(12)에 모두 접속된 디스켓 드라이브(22), 하드 디스크 드라이브(23) 및 CD-ROM 드라이브(24)를 더 포함한다. 본 기술 분야에 숙련된 자들은 다른 종래의 구성 소자들도 또한 상호 작용을 위해 시스템 유닛(12)에 접속될 수 있음을 알고 있다.
도 2를 참조하면, 데이타 처리 시스템(10)의 시스템 유닛(12)의 주요 구성 소자들의 블럭도가 도시되어 있다. 도시된 바와 같이, 시스템 유닛(12)은 소프트웨어 명령들을 실행하는 중앙 처리 장치(CPU : 26)를 포함한다. CPU(26)용으로 임의의 적합한 마이크로프로세서가 이용될 수 있는데, CPU(26)는 양호하게 IBM Microelectronics로부터 구입 가능한 PowerPCTM마이크로프로세서들 중 하나이다. 또한, CPU(26)는 다수의 벤더들로부터 구입 가능한 8OX86 마이크로프로세서들 중 하나로서 구현될 수 있다.
CPU(26) 외에, 선택적 수치 연산 코프로세서(27 : optional math coprocessor), 캐시 제어기(28), 및 캐시 메모리(30)가 고속 CPU 로컬 버스(25)에 결합된다. 수치 연산 코프로세서(27)는 CPU(26)와는 구별되는 선택적 프로세서이며, CPU(26) 보다 훨씬 효율적으로 다수의 수치 계산들을 실행한다. 캐시 메모리(30)는 자주 액세스되는 데이타 및 명령들을 저장하는 소형의 고속 메모리를 포함한다. 캐시 제어기(28)에 의해 캐시(30)의 동작이 제어되어 캐시(30)의 내용의 디렉토리를 유지하고 선택된 캐시 코히어런시 프로토콜(cache coherency protocol)을 실시한다.
CPU 로컬 버스(25)는 버퍼(32)에 결합되어, CPU 로컬 버스(25)와 시스템 버스(34) 사이에 통신을 제공하여, 버퍼(32)와 다른 버퍼(36) 사이로 연장된다. 시스스템 버스(34)는 버스 제어 및 타이밍 유닛(38)과 다이렉트 메모리 액세스(DMA) 유닛(40)에 접속되며, 중앙 아비터(48;central arbiter) 및 DMA 제어기(41)를 포함한다. DMA 제어기(41)는 CPU(26)를 포함하지 않는 메모리 액세스들을 지원한다. 다이렉트 메모리 액세스들은 RAM(58)과, 디스크 어댑터(82)와 같은 "지능" 주변 장치(intelligent peripheral device) 사이에서 데이타를 직접 전달하는데 통상 이용된다. 다수의 주변 장치들로부터의 DMA 요청은 중앙 아비터(48)에 의해 조정된다. 이하에 기술된 바와 같이, 중앙 아비터(48)는 또한 조정 제어 버스(42)를 통해 송신된 제어 신호들에 의해 마이크로 채널 버스(44)에 결합된 디바이스들에 대한 액세스를 조정한다.
CPU(26)는 휘발성 랜덤 액세스 메모리(RAM : 58)로부터 데이타 및 명령들을 액세스하고 RAM(58)에 데이타를 저장한다. RAM(58)은 메모리 제어 유닛(50), 어드레스 승산기(54) 및 데이타 버퍼(56)를 포함한다. 메모리 제어 유닛(52)은 판독 인에이블 신호 및 기록 인에이블 신호를 생성하여 데이타의 저장 및 검색을 용이하게 하고 CPU(26)에 의해 이용되는 가상 어드레스들을 RAM(58) 내의 물리 어드레스들로 맵핑하는 어드레스 변환 기능들을 포함한다. 본 기술 분야에 숙련된 자들에 의해 알 수 있는 바와 같이, RAM(58)은 전원이 데이타 처리 시스템(10)에 제공되는 동안 오퍼레이팅 시스템 및 응용 소프트웨어의 세그먼트들을 저장하는 다수의 개별 휘발성 메모리 모듈들을 포함한다. 소프트웨어 세그먼트들은 균일한 수의 가상 메모리 어드레스들을 각각 포함하는 하나 이상의 가상 메모리 페이지들로 분할된다. 소프트웨어를 실행하는 데에 RAM(58) 내에 저장될 수 있는 가상 메모리의 페이지가 보다 많이 필요한 경우, 현재 필요하지 않은 페이지들은 필요한 페이지들로 바뀌게 되어, 디스크 어댑터(82)에 의해 제어되는 하드 디스크 드라이브(23)와 같은 보조 기억 장치에 저장된다.
메모리 제어기(50)는 RAM(58) 내의 특정 어드레스들을 선택하는 어드레스 승산기(54), 및 RAM(58)으로부터 판독되고 RAM(58)에 저장되는 데이타를 버퍼하는 데이타 버퍼(56)를 더 포함한다. 메모리 제어기(50)는 또한 각각의 프로세스에 할당된 가상 어드레스 공간 내에서 시스템 프로세스들 및 사용자 프로세스들은 분리시키는 메모리 보호를 제공한다. 따라서, 사용자 모드에서 실행되는 프로그램은 자신이 가상 어드레스 공간에 할당된 메모리에만 액세스할 수 있다; 프로세스들 간에 메모리 공유가 지지되고 그 프로그램이 적절한 액세스 특권들을 가지지 않는 한, 사용자 모드 프로그램은 다른 프로세스의 가상 어드레스 공간 내의 메모리에는 액세스 할 수 없다.
도 2를 참조하면, 버퍼(36)는 시스템 버스(34)와, 마이크로 채널 버스(44)와 같은 선택 기능 버스간의 인터페이스를 제공한다. I/O 디바이스 또는 메모리에 더 접속될 수 있는 마이크로 채널 어댑터 카드들을 수신하기 위한 다수의 I/O 슬롯(46)들이 마이크로 채널 버스(44)에 접속된다. 조정 제어 버스(42)는 DMA 제어기(41) 및 중앙 아비터(48)를 I/O 슬롯들(46) 및 디스크 어댑터(82)에 결합시킨다. 마이크로 채널 구조 버스 조정 프로토콜을 구현함으로써, 중앙 아비터(48)는 연장 카드들, 제어기들 및 CPU(26)에 의해 마이크로 채널 버스(44)로의 액세스를 조절한다. 또한, 중앙 아비터(48)는 마이크로 채널 버스(44)에 결합된 버스 마스터들 간의 마이크로 채널 버스(44)의 소유권을 중재한다(arbitrate). 버스 마스터지지(bus master support)는, 프로세서 및 그 지지 칩들을 포함하는 버스 마스터 어댑터들을 추가함으로써 마이크로 채널 버스(44)의 멀티프로세서 구조들이 생성되게 한다.
시스템 버스(34)는 버퍼(66)를 통해 플레이너 I/O 버스(68)에 결합된다. 다수의 I/O 어댑터들과, 디스플레이 어댑터(70), 디스크 어댑터(82), 비휘발성 RAM(74), 시계(72), 직렬 어댑터(78), 타이머(80), 판독 전용 메모리(ROM : 86), CD-ROM 어댑터(88), 네트워크 어댑터(85), 키보드/마우스 제어기(84), 모뎀(87) 및 병렬 어댑터(76)를 포함하는 다른 주변 장치들은 플레이너 I/O 버스(68)에 부착된다. 디스플레이 어댑터(70)는 CPU(26)로부터의 그래픽 데이타를 디스플레이 디바이스(14)를 구동하는데 이용되는 RGB 비디오 신호들로 변환한다. 오퍼레이팅 시스템 및 실행중인 응용 소프트웨어에 따라, 가시 출력은 텍스트, 그래픽, 애니메이션 및 멀티미디어 비디오를 포함할 수 있다. 디스크 어댑터(82)는 하드 디스크 드라이브(23) 및 디스켓 드라이브(22)로의 데이타 저장 및 드라이브(23, 22)로부터의 데이타 검색을 제어한다. 디스크 어댑터(82)는 판독/기록 헤드의 위치 배정 및 드라이브와 CPU(26)간의 중재와 같은 일을 담당한다. 비휘발성 RAM(74)은 데이타 처리 시스템(10)의 현재의 구조를 나타내는 시스템 구조를 데이타를 저장한다. 예를 들어, 비휘발성 RAM(74)은 하드 디스크 드라이브(23) 또는 디스켓 드라이브(22) 내에 배치된 디스켓의 용량, 디스플레이 디바이스(14)의 종류, 빈 RAM(58)의 양, 및 현재의 시스템 구조를 나타내는 정보를 포함한다. 데이타 처리 시스템(10)으로부터 전원이 제거되면 데이타는 비휘발성 RAM에 저장된다.
시계(72)는 CPU(26)에 의해 실행되는 응용 프로그램에 의해 시간 및 날짜 계산에 사용된다. 직렬 어댑터(76)는 직렬 포트(도시되지 않음)를 통한 외부 디바이스들에 대한 동기 또는 비동기 직렬 인터페이스를 제공하여 데이타 처리 시스템(10)이 직렬 통신 디바이스와의 정보 송수신을 가능하게 한다. 타이머들(80)은 데이타 처리 시스템(10) 내의 다수의 이벤트들의 시간을 정하는데 사용될 수 있는 다수의 간격 타이머(interval timer)들을 포함한다. 상술된 바와 같이, 타이머들(80)은 단일-스레드 오퍼레이팅 시스템 환경(single-threaded operating system environment)용으로 작성된, 몇몇 응용 프로그램들, 특히, 게임들에 의해 직접 제어되는 디바이스들 중에 있다.
CPU(26)가 DOS 오퍼레이팅 시스템 하에서 동작할 때 ROM(86)은 사용자/트랜스패런트 I/O 동작(user-transparent I/O operation)들을 제공하는 기본 입력/출력 시스템(BIOS)를 통상 저장한다. BIOS는 또한 파워 온 시에 시스템 셋업을 실행하는 파워 온 셀프 테스트(POST : power on self-test) 진단 루틴들을 포함한다. 예를 들어, POST는 하드웨어에 문의하고, BIOS 데이타 영역(BDA)을 할당하고, ROM(86) 내의 인터럽트 처리 루틴들을 지시하기 위해 인터럽트 벡터 테이블을 구성하며, 타이머(80), 시계(72) 및 시스템 유닛(12) 내의 다른 디바이스들을 초기화한다. CD-ROM 어댑터(88)는 CD-ROM 드라이브(24) 및 CD-ROM(24A)으로부터의 데이타 검색을 제어한다.
병렬 어댑터(76)는 시스템 유닛(12)이 병렬 포트를 통해 프린터(20)와 같은 외부 디바이스들과 병렬로 데이타를 출력시킨다. 키보드/마우스 제어기(84)는 키보드(16) 및 마우스와 같은 포인팅 디바이스로 시스템 유닛(12)을 인터페이스한다. 이 포인팅 디아비스들은 사용자가 마우스 버튼을 누를 때 포인터의 위치를 나타내는 그래픽 포인터와 같은 온-스크린 소자를 제어하는데 통상 이용된다. 다른 포인팅 디바이스들은 그래픽 태블릿, 스타일러스, 라이트 펜, 죠이스틱, 퍽(puck), 트랙볼, 트랙패드, 및 IBM에 의해 "TrackPoint"라는 상표로 판매된 포인팅 디바이스를 포함한다.
결국, 시스템 유닛(12)은 컴퓨터 네트워크들을 포함하는, 데이타 처리 시스템(10)과 다른 데이타 처리 시스템들 간의 통신을 용이하게 하는 네트워크 어댑터(85) 및 모뎀(87)을 포함한다. 네트워크 어댑터(85)는 네트워크 포트에 접속된 로컬 영역 네트워크(LAN)와 같은 컴퓨터 네트워크에 데이타 처리 시스템(10)을 접속시키는데 이용된다. 컴퓨터 네트워크들은 네트워크 접속을 통해 데이타의 전자 전송을 전자적으로 지원한다. 네트워크들은 또한 분배된 처리도 지원하여, 데이타 처리 시스템(10)이 네트워크에 링크된 다른 데이타 처리 시스템과 업무를 공유하게 한다. 모뎀(87)은 원격 통신 라인을 통해 전달된 아날로그 데이타의 디지탈 형태로의 변조 및 복조를 제공한다. 예를 들어, 모뎀은 "PRODIGY"라는 서비스 마크로 Prodigy Services Corporation에 의해 제공된 정보 서비스와 같은 온라인 정보 서비스에 데이타 처리 시스템(10)을 접속시키는데 이용될 수 있다. 온라인 서비스 제공자는 모뎀을 통해 데이타 처리 시스템(10)에 다운로드될 수 있는 소프트웨어 및 데이타를 제공한다. 또한, 모뎀(87)을 통한 전화 통신은 서버, 전자 게시판, 및 인터넷 또는 "월드 와이드 웹"과 같은 소프트웨어의 다른 소스들과의 접속을 제공한다.
이하에 기술된 바와 같이, 본 발명의 양상들은 컴퓨터 시스템 상에서 구현될 수 있는 특정 방법 및 기능들에 관련된 것이다. 본 발명의 이러한 양상들은 컴퓨터시스템에서 사용되는 컴퓨터 프로그램 제품으로서 구현될 수 있다. 본 발명의 기능들을 정의하는 컴퓨터 프로그램들이: (a) 기록 불가능한 저장 매체[예를 들면, ROM(86), 또는 CD-ROM 드라이브(24)와 같이 컴퓨터 I/O 접속 장치에 의해 판독 가능한 CD-ROM 디스크들과 같은 컴퓨터 내의 판독 전용 메모리 디바이스들]에 영구적으로 저장된 정보; (b) 기록 가능한 저장 매체[예를 들면, 디스켓 드라이브(22) 내의 플로피 디스크 또는 하드 디스크 드라이브(23)]에 변경 가능하게 저장된 정보; 또는 (c) 네트워크 어댑터(85)에 접속된 컴퓨터 네트워크 또는 모뎀(87)에 접속된 원격 통신 라인과 같은 통신 매체를 통해 컴퓨터에 전달되는 정보를 포함하지만 이에만 제한되지는 않고 다양한 형태로 컴퓨터에 전달될 수 있음을 본 기술 분야에 숙련된 자들은 쉽게 알 수 있다. 따라서, 그러한 매체가 본 발명의 방법-기능을 지시하는 컴퓨터 판독 가능 명령들을 전달하는 경우, 이러한 매체들은 본 발명의 다른 실시예들을 나타냄을 알 수 있다.
도 3을 참조하면, 데이타 처리 시스템의 오퍼레이팅 시스템에서 사용되는 표준 GUI가 도시되어 있다. 디스플레이 디바이스(14)에 의해 사용자에게 디스플레이된 배경 데스크탑(100)은 다수의 사용자-선택 가능 아이콘들(102-116)을 포함한다. 각각의 아이콘들(102-116)은 사용자가 종래에는 마우스(18)의 좌측 버튼을 더블 클럭함으로써 그래픽 포인터(101)를 사용하여 선택할 수 있는 애플리케이션, 기능 또는 파일 저장 영역을 나타낸다. 사용자가 아이콘들(102-116) 중 하나를 선택하면, 선택된 아이콘에 대응하는 기능이 활성화되고 선택된 아이콘이 강조된다. 아이콘들(102-116) 대부분은 아이콘이 선택될 때 디스플레이되는 하나의 관련 윈도우 또는 일련의 윈도우를 갖는다. 예를 들어, 도 3에 도시된 바와 같이, 윈도우 프로그램 아이콘(114)이 선택되면, 윈도우(118)가 사용자에게 디스플레이되어 다른 가능한 선택들[즉, 아이콘들(120-130)]을 제공한다.
도 4를 참조하면, 본 발명의 양호한 실시예에 따라, 데이타 처리 시스템의 윈도우 환경에서 불규칙적인 형태의 윈도우들을 디스플레이하는 데스크탑(150)이 도시되어 있다. 데스크탑 윈도우(dsk : 150)는 표준 윈도우(sw : 155) 및 2개의 불규칙적인 형태의 윈도우들, 즉, 시계(clk : 160) 및 오브젝트(obj : 165)를 포함한다.
도 4에 도시된 바와 같이, 데스크탑(150)은 그래픽 메모리에서 복수의 스캔 라인 데이타 세트들로 표시된 복수의 스캔 라인들에 의해 디스플레이상에 생성된다. 예를 들어, 데스크탑(150)은 1000개의 스캔 라인들을 갖는데, 이들 중 3개의 스캔 라인들이 도 4에 sl 0, sl 500, sl 900으로 도시되어 있다. 본 발명에 따르면, 오퍼레이팅 시스템은 이 데스크탑(150)의 경우에, 윈도우 환경의 현재의 디스플레이상의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는 메모리에서 글로벌 히트 테스트 데이타 구조를 생성한다. 데이타 구조의 압축 스캔 라인 데이타 세트 각각은 하나 이상의 벡터들, 및 현재의 디스플레이의 관련 스캔 라인의 하나 이상의 스팬들의 윈도우 소유권을 나타내는 각각의 벡터와 관련된 윈도우 식별자를 포함한다. 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터에 의해 식별된 스팬을 소유하는 윈도우 환경 내의 윈도우를 식별한다. 본 기술 분야에 숙련된 자들이 아는 바와 같이, 스팬은 그래픽 이미지 내에서, 통상 수평으로 디스플레이된 화소들의 길이이다. 또한, 여기서 사용되는 바와 같이, 스팬은 스캔 라인의 하나 이상의 "펠(pel)"이다. 여기서 펠은 그래픽 포인팅 디바이스에 의한 선택을 위해 분해될 수 있는 최소 수의 화소이다.
도 4에 도시된 현재의 디스플레이의 글로벌 히트 테스트 데이타 구조는 각 스캔 라인마다 하나씩 천개의 압축 스캔 라인 데이타 세트들을 포함한다. 현재의 디스플레이의 글로벌 히트 테스트 데이타 구조의 3개의 압축 스캔 라인 데이타 세트들의 일례는 다음과 같다 :
sl 0=(0...639,dsk).
sl 500=(0,119,dsk), (120,127,obj), (128,146,dsk), (147,154,obj),
(155,380,sw), (381,639,dsk).
sl 900=(0,124,dsk), (125,165,clk), (166,380,sw), (381,639,dsk).
각각의 압축 스캔 라인 데이타 세트는 적어도 하나의 벡터 및 각각의 벡터와 관련된 윈도우 식별자를 포함한다. 예를 들어, sl 0은 펠 0 내지 펠 639로부터 전체 스캔 라인을 지정하는 벡터 〈0,639〉에 의한 단일 스팬, 및 정의된 벡터 내의 모든 펠을 데스크탑 윈도우(150)가 소유하는 것으로 식별하는 윈도우 식별자, 이 경우 "dsk"를 나타낸다.
스캔 라인 sl 500의 압축 스캔 라인 데이타 세트는 스캔 라인을 포함하는 6개의 스팬들에 대한 윈도우 소유권을 정의한다. 스캔 라인의 제1 스팬은 벡터 〈0,119〉(즉, 펠 0 내지 펠 119)에 의해 정의되고, 데스크탑이 소유하는 윈도우 식별자에 의해 도시된다. 스캔 라인 sl 500의 제2 스팬은 벡터 〈120,127〉(즉, 펠 120 내지 펠 127)에 의해 정의되고, 오브젝트(165)가 소유하는 윈도우 식별자에 의해 도시된다. 스캔 라인의 제3 스팬은 벡터 〈128,146〉(즉, 펠 128 내지 펠 146)에 의해 정의되고, 데스크탑 윈도우(150)가 소유하는 윈도우 식별자에 의해 도시된다. 스캔 라인 sl 500 내의 다음 스팬은 벡터 〈147,154〉(즉, 펠 147 내지 펠 154)에 의해 정의되고, 윈도우 식별자에 의해 오브젝트(165)가 소유하는 것으로 식별된다. 스캔 라인의 제5 스팬은 벡터 〈155,380〉(즉, 펠 155 내지 펠 380)에 의해 정의되고, 표준 윈도우(155)가 소유하는 윈도우 식별자에 의해 도시된다. 스캔 라인 sl 500의 최종 스팬은 벡터 〈381,639〉(즉, 펠 381 내지 펠 639)에 의해 정의되고, 윈도우 식별자에 의해 데스크탑(150)이 소유하는 것으로 식별된다.
스캔 라인 sl 900의 압축 스캔 라인 데이타 세트는 스캔 라인을 포함하는 4개의 스팬들에 대한 윈도우 소유권을 정의한다. 스캔 라인의 제1 스팬은 벡터 〈0,124〉(즉, 펠 0 내지 펠 124)에 의해 정의되고, 데스크탑이 소유하는 윈도우 식별자에 의해 도시된다. 스캔 라인 sl 900의 제2 스팬은 벡터 〈125,165〉(즉, 펠 125 내지 펠 165)에 의해 정의되고, 시계(160)가 소유하는 윈도우 식별자에 의해 도시된다. 스캔 라인의 제3 스팬은 벡터 〈166,380〉(즉, 펠 166 내지 펠 380)에 의해 정의되고, 표준 윈도우(155)가 소유하는 윈도우 식별자에 의해 도시된다. 스캔 라인 sl 900 내의 최종 스팬은 벡터 〈381,639〉(즉, 펠 381 내지 펠 639)에 의해 정의되고, 윈도우 식별자에 의해 데스크탑(150)이 소유하는 것으로 식별된다. 유사한 방법으로, 현재의 디스플레이의 모든 스캔 라인은 압축되고 메모리에 저장되어 글로벌 히트 테스트 데이타 구조를 형성한다.
후술되는 바와 같이, 본 발명의 글로벌 히트 테스트 데이타 구조는 데이타 처리 시스템의 윈도우 환경에서의 강화된 로케이터 히트 테스팅 및 불규칙한 형태의 윈도우들의 영역 클립핑 방법 및 시스템을 가능하게 한다. 글로벌 히트 테스트 데이타 구조를 생성하기 위해, 런 길이(run length) 인코드 압축 기술은 디스플레이를 위한 각각의 윈도우의 스캔 라인들을 버퍼에 저장한다. 이 버퍼들은 z-배열로 정렬되고 데스크탑 전면에 분해된다. 윈도우 관리 서브시스템은 강화된 로케이터 히트 테스트 기능을 갖고 비디오 디바이스 드라이버 서브시스템은 불규칙한 형태의 윈도우들에 대한 강화된 클립핑 영역 테스트 기능을 갖는다. 따라서, 윈도우 환경(windowing environment)에 의해 테스크탑 상에서의 모든 형태 및 크기의 중첩 윈도우들의 디스플레이가 제공될 수 있고, 다른 플랫폼에서와 같이 박스형 윈도우로만 제한되는 것이 아님을 알 수 있다. 본 발명은 종래 기술의 기술들과 관련된 성능면에서 불리함이 없는 고성능 로케이터 히트 테스트 및 고성능 클립핑 영역 테스트를 실행하는 이러한 독특한 기능을 제공한다.
도 5를 참조하면, 본 발명의 양호한 실시예에 따라, 윈도우 환경에서 불규칙한 형태의 윈도우의 강화된 로케이터 히트 테스팅 방법의 플로우챠트가 도시되어 있다. 이 방법은 단계(200)에서 개시되어 데이타 처리 시스템에서 윈도우 환경의 현재의 디스플레이를 위해 글로벌 히트 테스트 데이타 구조가 생성되는 단계(205)로 진행한다. 글로벌 히트 테스트 데이타 구조는 현재의 디스플레이의 스캔 라인들을 나타내기 위해 생성된 복수의 압축 스캔 라인 데이타 세트들을 포함한다. 각각의 압축 스캔 라인 데이타 세트는 현재의 디스플레이의 하나의 스캔 라인을 나타내고 스캔 라인의 각각의 스팬을 위해 벡터 및 벡터와 관련된 윈도우 식별자를 포함한다. 벡터는 스팬 내의 최초 펠 및 최종 펠을 나타냄으로써 관련 스캔 라인의 스팬을 식별한다. 윈도우 식별자는 그 스팬을 소유하는 윈도우를 식별한다.
프로세스는 그 후 결정 블록(210)으로 진행되어, 사용자가 그래픽 포인팅 디바이스를 이용하여 현재의 디스플레이의 특정 펠 또는 펠 영역을 지정했는지를 결정한다. 사용자가 그래픽 포인터를 사용하여 현재의 디스플레이의 펠을 선택하면, 프로세스는 단계(215)로 진행되어 선택된 펠의 소유권을 정의하는 글로벌 히트 테스트 데이타 구조 내의 압축 스캔 라인 데이타 세트가 액세스된다. 프로세스는 단계(220)로 진행되어, 식별된 압축 스캔 라인 데이타 세트의 어떤 벡터가 선택된 펠을 포함하는지가 결정된다. 그 후, 프로세스는 단계(225)로 진행하여 결정된 벡터와 관련된 윈도우 식별자가 검색된다. 검색된 윈도우 식별자는 선택된 펠에 대한 강화된 로케이터 히트 테스트의 결과이다. 그 후, 프로세스는 결정 블록(210)으로 복귀되어, 사용자가 새로운 펠로 그래픽 포인터를 이동시키기를 기다린다.
본 발명은 고성능 로케이터 히트 테스팅을 위한 프로세스를 제공함을 알 수 있다. 이러한 프로세스에 있어서, 한 장소[예를 들면, 도 4의 (125x, 500y)]에서의 마우스 클릭은 글로벌 히트 테스트 데이타 구조에 액세스하고, 대응 압축 스캔 라인 데이타 세트에 액세스하며, 선택된 펠과 스캔 라인 데이타 세트 벡터들을 비교하고, 선택된 펠과 일치하는 벡터와 관련된 윈도우 핸들을 로딩함으로써 해결된다. 이 프로세스는 윈도우들 중 한 윈도우가 히트 테스트를 받아들일 때까지 히트 테스트를 각각의 윈도우에 z-배열로 송신하는 종래 기술의 프로세스 보다 상당히 효율적임을 알 수 있다. 20개 또는 30개의 윈도우들이 한번에 디스플레이되는 윈도우 환경에서, 종래 기술의 로케이터 히트 테스트를 실행하는데에는 본 발명 보다 잠정적으로 20 내지 30 배 더 시간이 걸린다.
도 6을 참조하면, 본 발명의 양호한 실시예에 따라 데이타 처리 시스템의 윈도우 환경에서 불규칙한 형태의 윈도우의 강화된 영역 클립핑 방법의 플로우챠트가 도시되어 있다. 이 프로세스는 단계(230)에서 개시되어 단계(235)로 진행하여 현재의 디스플레이의 글로벌 히트 테스트 데이타 구조가 생성된다.
이 프로세스는 결정 블록(240)으로 진행되어, 비트맵 이미지가 현재의 디스플레이 내의 윈도우를 소유하는 애플리케이션에 의해 생성될 때까지 이 프로세스가 유지된다. 이 비트맵 이미지는 다수의 펠들을 갖고, 이 펠들은 현재의 디스플레이의 펠들에 대응하는 스크린 위치를 갖는다. 따라서, 전체 비트맵 이미지가 디스플레이되면, 비트맵 이미지의 각각의 펠은 현재의 디스플레이의 대응 펠에 출력된다. 비트맵 이미지가 생성된 후에, 프로세스는 결정 블록(245)로 진행하여 비트맵 이미지의 최초 펠에 대한 글로벌 히트 테스트 데이타 구조에 배치된 윈도우 식별자가 디스플레이 애플리케이션이 소유하는 윈도우인지가 결정된다. 비트맵 이미지의 각각의 펠에 대해, 그 펠의 윈도우 소유권 데이타를 포함하는 스캔 라인 데이타 세트가 액스세된다. 스캔 라인 데이타 세트는 현재의 디스플레이의 펠의 위치를 포함하는 벡터를 갖는다. 그 후 이 벡터와 관련된 윈도우 식별자가 비트맵 이미지를 디스플레이하는 윈도우를 식별하는지가 결정된다.
결정이 부정인 경우, 이 프로세스는 결정 블록(240)으로 복귀되어 다른 비트 맵 이미지 생성을 기다린다. 펠이 애플리케이션의 윈도우에 의해 소유되면, 이 펠은 디스플레이될 수 있고 프로세스는 단계(250)로 진행하여 디스플레이의 대응 펠이 비트맵 이미지 펠로 세트된다. 결정 블록(252)은 비트맵의 최종 펠이 단계(245)에서 테스트되었는지를 결정한다. 테스트되지 않았으면, 프로세스는 단계(243)로 진행되어 비트맵 이미지의 다음 펠이 선택된 후 단계(245)로 복귀한다. 비트맵의 최종 펠이 테스트되었으면, 프로세스는 블록(240)으로 복귀하여 다른 비트맵 이미지가 애플리케이션에 의해 생성되기를 기다린다. 이러한 방법으로, 애플리케이션이 현재의 디스플레이의 펠을 소유하였다고 결정되는 경우, 비트맵 이미지의 각각의 펠은 현재의 디스플레이의 대응 펠에서 그래픽 메모리에 저장된다.
도 7을 참조하면, 본 발명의 양호한 실시예에 따라, 글로벌 히트 테스트 데이타 구조를 생성하기 위한 프로세스의 플로우챠트가 도시되어 있다. 이 프로세스는 단계(255)에서 개시되어 단계(260)로 진행하여 히트 테스트 데이타 구조가 윈도우 환경에서 각각의 윈도우를 위해 생성된다. 각각의 히트 테스트 데이타 구조는 관련 윈도우만의 스캔 라인들의 각각의 펠에 대한 윈도우 소유권을 나타낸다. 따라서, 각각의 히트 테스트 데이타 구조는 관련 윈도우가 디스플레이되는 경우에만 디스플레이의 윈도우 소유권을 나타낸다. 그 후 프로세스는 단계(265)로 진행하여 히트 테스트 데이타 구조에 대해 깊이 리스트가 z-배열로 편성된다. 공지된 바와 같이, 중첩 윈도우들을 갖는 윈도우 환경에서, 각각의 윈도우는 윈도우 환경에서의 모든 윈도우의 z-배열에 대응하는 현재의 디스플레이 상의 다른 윈도우들에 대해 상대적인 z 위치를 갖는다. 이 z 위치는 각각의 윈도우에 제3 차원을 제공함으로써, 다수의 중첩 윈도우들간의 계층을 나타낸다.
그 후 프로세스는 단계(270)로 진행되어, 현재의 디스플레이의 모든 펠의 윈도우 소유권이 결정된다. 이것은 깊이 리스트의 z-배열의 각각의 히트 테스트 데이타 구조를 액세스하여 각각의 윈도우의 장소 및 현 z-배열을 결정함으로써 이루어진다. 펠은 현재 이 펠에 배치된 최고 z 위치를 갖는 윈도우에 의해 소유된다. 단계(275)에서, 프로세스는 동일한 윈도우가 소유하는 하나 이상의 펠들이 하나의 스팬을 형성하도록, 현재의 디스플레이의 모든 스캔 라인들의 모든 스팬을 정의한다.
그 후 프로세스는 단계(280)로 진행하여 디스플레이 스캔 라인들의 정의된 스팬들이 윈도우 환경의 현재의 디스플레이의 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들로 압축된다. 각각의 압축 스캔 라인 데이타 세트는 현재의 디스플레이의 관련 스캔 라인의 하나 이상의 정의된 스팬들의 윈도우 소유권을 나타낸다. 압축 스캔 라인 데이타 세트의 데이타는 벡터 및 관련 스캔 라인의 각각의 스팬의 윈도우 식별자를 포함한다. 벡터는 스캔 라인의 스팬 내의 최초 펠 및 최종 펠을 포함함으로써 스팬을 식별한다. 벡터와 관련된 윈도우 식별자는 식별된 스팬을 소유하는 윈도우를 식별한다. 그 후 프로세스는 단계(285)에서 종료된다.
복수의 압축 스캔 라인 데이타 세트들은 현재의 디스플레이의 글로벌 히트 테스트 데이타 구조를 형성한다. 글로벌 히트 테스트 데이타 구조는 데스크탑의 각각의 라인 상의 각각의 포인트의 소유 윈도우 처리를 포함하는 스캔 라인 데이타 구조에 의해 압축 스캔 라인을 제공한다. 간단한 사각형의 경우, 저장된 데이타는 스캔 라인 0을, 열 0에서 윈도우 폭까지를 소유하는 윈도우 높이로 나타낸다. 보다 복잡한 형태의 윈도우의 경우, 전체 형태의 경계 박스가 결정되어, 윈도우의 시점 및 크기를 결정한다. 다음으로, 이 윈도우가 그 상에 실제로 드로우되는 각각의 스캔 라인의 펠들을 포함하는 리스트가 생성된다. 이 리스트는 기존의 복합 영역 클립핑 코드 형태로 생성될 수 있다. 이 리스트는 현재의 스캔 라인상의 스팬의 최초 펠로부터 최종 펠까지의 간단한 벡터들을 사용하여 표현됨으로써, 히트 테스트 데이타 구조를 압축시킨다. 하나 이상의 인접 스캔 라인이 동일한 "히트 리스트(hit list)"를 가지면, 스캔 라인들은 Y 차원을 통해 압축될 수 있고, 히트 테스트 데이타 구조를 상당히 압축시킨다.
본 발명의 일례로서, 도 4의 데스크탑에 시계(160)를 드로잉하는 프로세스를 고려해 보자. 이 애플리케이션의 디바이스 드라이버는 스캔 라인 단위로, 시계를 정의하는 원의 외부 영역에 대한 클립핑을 행하기 위해 글로벌 히트 테스트 데이타 구조를 액세스하고, 윈도우 비트들만을 그래픽 메모리에 송신한다. 본 기술 분야의 숙련자라면 알 수 있는 바와 같이, 윈도우에 의해 소유되지 않는 기존의 비트들의 배타적 논리합을 취한 후 경계를 표시하는 사각형(boundary rectangle)을 채우는 것보다 훨씬 빠르다. 이러한 프로세스는 경계를 표시하는 사각형이 크고 특정 스캔 라인 상의 히트의 수가 작은 경우에 매우 느려지게 된다.
본 기술 분야의 숙련자라면 알 수 있는 바와 같이, 현재의 디스플레이의 윈도우 환경의 윈도우가 이동, 추가 또는 삭제될 때 새로운 글로벌 히트 테스트 데이타가 구조가 생성되어야 한다. 이것은 윈도우의 z-배열이 변경될 수 있고 현재의 디스플레이 내의 개별 펠들의 소유권이 또한 변경될 수 있기 때문이다. 또한, 단계(205)와 단계(235)는 동일한 단계들이고 도 5 및 도 6의 프로세스들이 동시에 실행되는 경우 반복될 필요가 없음을 알 수 있다. 마찬가지로, 새로운 글로벌 히트 테스트 데이타 구조가 윈도우 환경의 변경 결과로서 생성될 때, 도 5 및 도 6의 프로세스들은 단계(200 및 230)에서 다시 개시된다.
데스크탑이 다수의 중첩 불규칙한 형태의 윈도우들을 가지는 경우에라도, 본 발명이 로케이터 또는 포인터에 의해 표시된 윈도우를 해결하는데 매우 신속하고 효율적인 방법임을 알 수 있다. 또한, 본 발명을 사용하는 히트 테스팅 및 영역 클립핑의 성능이 몇몇 또는 모든 윈도우들에 결함이 있더라도 불규칙한 형태의 윈도우들에 의해 영향을 받지 않음을 알 수 있다. 경계를 표시하는 사각형이 필요하지 않고 따라서 데스크탑 상의 윈도우들의 형태 및 사이즈에 제한을 가할 필요가 없다. 예를 들어, 실선으로 된 그리드를 포함하는 단일 윈도우를 생성하여, 이 윈도우를 데스크탑 상의 모든 윈도우의 최상부에 배치할 수 있고, 그리드 윈도우의 바들 사이에 있고 하부에 있는 윈도우를 선택할 수 있다. 이 기능은 종래 기술에 공지되어 있는 것으로 그래픽 사용자 인터페이스의 사용자 및 설계자들에게 상당히 유용하다. 또한, 본 발명은 스캔 라인 정보를 통해 데이타를 수신하는 디스플레이 디바이스 또는 프린터 상의 불규칙한 형태의 윈도우에 송신된 도형의 윈도우 클립핑을 실행하기 위한 매우 신속하고 효율적인 방법을 제공한다. 디스플레이 드라이버의 특정한 실시 형태는 스크린 상에서 갱신되어야만 하는 펠들의 수를 최소화하기 위해 데이타를 사용함으로써, 전달률을 최대화하고 사각형이 아닌 윈도우를 디스플레이할 때의 성능을 증가시킬 수 있다.
본 발명은 특정한 양호한 실시예를 참조하여 기술되었지만, 본 기술 분야에 숙련된 자들은 본 발명의 원리 및 범위를 벗어나지 않는 범위 내에서 다양하게 변경될 수 있음을 안다.

Claims (16)

  1. 데이타 처리 시스템의 윈도우 환경에서의 윈도우의 강화된 로케이터 히트 테스팅(enhanced locator hit testing) 방법에 있어서, 데이타 처리 시스템에서 윈도우 환경의 디스플레이를 위한 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는 글로벌 히트 테스트(global hit test) 데이타 구조를 생성하는 단계 - 상기 복수의 압축 스캔 라인 데이타 세트들의 각각의 압축 스캔 라인 데이타 세트는 하나 이상의 벡터들과, 디스플레이의 관련 스캔 라인의 하나 이상의 스팬(span)들의 윈도우 소유권을 나타내는 각각의 벡터와 관련된 윈도우 식별자를 포함하고, 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터에 의해 식별된 스팬을 소유하는 윈도우를 식별하고, 스팬은 스캔 라인의 하나 이상의 펠(pel)임 - ; 및 디스플레이의 선택된 펠을 소유하는 윈도우를 식별하는 단계를 포함하고, 상기 윈도우 식별 단계는 상기 선택된 펠의 윈도우 소유권을 정의하는 글로벌 히트 테스트 데이타 구조 내의 압축 스캔 라인 데이타 세트를 액세스하는 단계; 상기 선택된 펠을 포함하는 상기 액세스된 압축 스캔 라인 데이타 세트의 벡터를 결정하는 단계; 및 상기 결정된 벡터와 관련된, 윈도우 식별자를 검색하는 단계를 포함하며, 상기 검색된 윈도우 식별자는 상기 선택된 펠의 강화된 로케이터 히트 테스트의 결과인, 데이타 처리 시스템의 윈도우 환경에서의 윈도우의 강화된 로케이터 히트 테스팅 방법.
  2. 제1항에 있어서, 다수의 윈도우들이 윈도우 환경 내에 있으며, 상기 글로벌 히트 테스트 데이타 구조를 생성하는 단계는, 데이타 처리 시스템에서 윈도우 환경의 디스플레이를 위한 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는 글로벌 히트 테스트 데이타 구조를 생성하는 단계 - 상기 복수의 압축 스캔 라인 데이타 세트들의 각각의 압축 스캔 라인 데이타 세트는 하나 이상의 벡트들과, 디스플레이의 관련 스캔 라인의 하나 이상의 스팬들의 윈도우 소유권을 나타내는 각각의 벡터와 관련된 윈도우 식별자를 포함하고, 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터에 의해 식별된 스팬을 소유하는 윈도우를 식별하고, 스팬을 스캔 라인의 하나 이상의 펠임 -; 상기 디스플레이의 펠에 각각 대응하는 다수의 펠들을 갖는 비트맵 이미지(bitmap image)를 생성하는 단계; 상기 비트맵 이미지의 각각의 펠에 대해, 대응 펠을 포함하는 벡터를 갖는 스캔 라인 데이타 세트를 액세스하고, 대응 펠을 포함하는 벡터와 관련된 윈도우 식별자가 선택된 윈도우 식별자인지를 결정하는 단계; 및 상기 윈도우 식별자가 선택된 윈도우 식별자가 아니라고 결정된 비트맵 이미지의 각각의 펠에 대해 디스플레이의 각각의 대응 펠을 비트맵 이미지의 펠로 설정하는 단계를 포함하는 데이타 처리 시스템의 윈도우 환경에서의 윈도우의 강화된 로케이터 히트 테스팅 방법.
  3. 제1항에 있어서, 윈도우 환경에서의 윈도우가 디스플레이에서 이동, 추가 또는 삭제될 때, 새로운 글로벌 히트 테스트 데이타 구조를 생성하는 단계를 더 포함하는 데이타 처리 시스템의 윈도우 환경에서의 윈도우의 강화된 로케이터 히트 테스팅 방법.
  4. 제1항에 있어서, 윈도우 환경에서의 윈도우는 사각형 형태의 윈도우가 아닌 불규칙한 형태의 윈도우이고, 상기 글로벌 히트 테스트 데이타 구조가 불규칙한 형태의 윈도우를 디스플레이하는 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는, 데이타 처리 시스템의 윈도우 환경에서의 윈도우의 강화된 로케이터 히트 테스팅 방법.
  5. 데이타 처리 시스템의 윈도우 환경에서의 윈도우의 강화된 영역 클립핑(region clipping) 방법에 있어서, 데이타 처리 시스템에서 윈도우 환경의 디스플레이를 위한 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는 글로벌 히트 테스트 데이타 구조를 생성하는 단계 - 상기 복수의 압축 스캔 라인 데이타 세트들의 각각의 압축 스캔 라인 데이타 세트는 하나 이상의 벡터들과, 디스플레이의 관련 스캔 라인의 하나 이상의 스팬들의 윈도우 소유권을 나타내는 각각의 벡터와 관련된 윈도우 식별자를 포함하고, 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터에 의해 식별된 스팬을 소유하는 윈도우를 식별하고, 스팬은 스캔 라인의 하나 이상의 펠임 - ; 상기 디스플레이의 펠에 각각 대응하는 다수의 펠들을 갖는 비트맵 이미지를 생성하는 단계; 상기 비트맵 이미지의 각각의 펠에 대해, 대응 펠을 포함하는 벡터를 갖는 스캔 라인 데이타 세트를 액세스하고, 대응 펠을 포함하는 벡터와 관련된 윈도우 식별자가 선택된 윈도우 식별자인지를 결정하는 단계; 및 상기 윈도우 식별자가 선택된 윈도우 식별자가 아니라고 결정된 비트맵 이미지의 각각의 펠에 대해 디스플레이의 각각의 대응 펠을 비트맵 이미지의 펠로 설정하는 단계를 포함하는 데이타 처리 시스템의 윈도우 환경에서의 윈도우의 강화된 영역 클립핑 방법.
  6. 제5항에 있어서, 다수의 윈도우들이 윈도우 환경 내에 있으며, 상기 글로벌 히트 테스트 데이타 구조를 생성하는 단계는, 상기 윈도우 환경에서의 각각의 윈도우에 대한 히트 테스트 데이타 구조를 생성하는 단계 - 상기 각각의 히트 데스트 데이터 구조는 스캔 라인들의 각각의 펠에 대한 관련 윈도우만의 윈도우 소유권을 나타냄 -; 상기 히트 테스트 데이타 구조에 대해 z-배열로 깊이 리스트(depth list)를 편성하는 단계 - 각각의 윈도우는 윈도우 환경에서의 모든 윈도우들의 z-배열에 대응하는 디스플레이상의 다른 윈도우들에 대해 상대적인 z 위치를 가짐 -; 상기 깊이 리스트의 z-배열의 각각의 히트 테스트 데이타 구조를 액세스함으로써 상기 디스플레이의 모든 펠의 윈도우 소유권을 결정하는 단계 - 펠은 그 펠의 소유권을 나타내는 히트 테스트 데이타 구조를 갖는 최고 z 위치를 갖는 윈도우에 의해 소유됨 -; 동일 윈도우가 소유하는 하나 이상의 펠이 스팬을 형성하도록 상기 디스플레이의 모든 스캔 라인들의 모든 스팬을 정의하는 단계; 및 정의된 스팬들을 상기 윈도우 환경에서의 디스플레이의 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들로 압축하는 단계를 포함하며, 복수의 압축 스캔 라인 데이타 세트들의 각각의 압축 스캔 라인 데이타 세트는, 디스플레이의 관련 스캔 라인의 하나 이상의 정의된 스팬들의 윈도우 소유권을 나타내고, 하나 이상의 벡터들 및 각각의 벡터와 관련된 윈도우 식별자를 포함하고, 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터의 식별된 스팬을 소유하는 윈도우를 식별하는, 데이타 처리 시스템의 윈도우 환경에서의 윈도우의 강화된 영역 클립핑 방법.
  7. 제5항에 있어서, 윈도우 환경에서의 윈도우가 디스플레이에서 이동, 추가 또는 삭제될 때, 새로운 글로벌 히트 테스트 데이타 구조를 생성하는 단계를 더 포함하는, 데이타 처리 시스템의 윈도우 환경에서의 윈도우의 강화된 영역 클립핑 방법.
  8. 제5항에 있어서, 윈도우 환경에서의 윈도우는 사각형 형태의 윈도우가 아닌 불규칙한 형태의 윈도우이고, 상기 글로벌 히트 테스트 데이타 구조는 상기 불규칙한 형태의 윈도우를 디스플레이하는 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는, 데이타 처리 시스템의 윈도우 환경에서의 윈도우의 강화된 영역 클립핑 방법.
  9. 윈도우 환경에서의 윈도우의 강화된 로케이터 히트 테스팅을 위한 데이타 처리 시스템에 있어서, 데이타 처리 시스템에서 윈도우 환경의 디스플레이를 위한 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는 글로벌 히트 테스트 데이타 구조를 생성하기 위한 수단 - 상기 복수의 압축 스캔 라인 데이타 세트들의 각각의 압축 스캔 라인 데이타 세트는 하나 이상의 벡터들과, 디스플레이의 관련 스캔 라인의 하나 이상의 스팬들의 윈도우 소유권을 나타내는 각각의 벡터와 관련된 윈도우 식별자를 포함하고, 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터에 의해 식별된 스팬을 소유하는 윈도우를 식별하고, 스팬은 스캔 라인의 하나 이상의 펠임 -; 및 디스플레이의 선택된 펠을 소유하는 윈도우를 식별하기 위한 수단을 포함하고, 상기 윈도우 식별 수단은 상기 선택된 펠의 윈도우 소유권을 정의하는 글로벌 히트 테스트 데이타 구조 내의 압축 스캔 라인 데이타 세트를 액세스하기 위한 수단, 상기 선택된 펠을 포함하는 상기 액세스된 압축 스캔 라인 데이타 세트의 벡터를 결정하기 위한 수단, 및 상기 결정된 벡터와 관련된 윈도우 식별자를 검색하기 위한 수단을 포함하고, 상기 검색된 윈도우 식별자는 상기 선택된 펠의 강화된 로케이터 히트 테스트의 결과인, 윈도우 환경에서의 윈도우의 강화된 로케이터 히트 테스팅을 위한 데이타 처리 시스템.
  10. 제9항에 있어서, 다수의 윈도우들이 윈도우 환경 내에 있으며, 상기 글로벌 히트 테스트 데이타 구조를 생성하기 위한 수단은, 데이타 처리 시스템에서 윈도우 환경의 디스플레이를 위한 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는 글로벌 히트 테스트 데이타 구조를 생성하기 위한 수단 - 상기 복수의 압축 스캔 라인 데이타 세트들의 각각의 압축 스캔 라인 데이타 세트는 하나 이상의 벡터들과, 디스플레이의 관련 스캔 라인의 하나 이상의 스팬들의 윈도우 소유권을 나타내는 각각의 벡터와 관련된 윈도우 식별자를 포함하고, 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터에 의해 식별된 스팬을 소유하는 윈도우를 식별하고, 스팬을 스캔 라인의 하나 이상의 펠임 -; 상기 디스플레이의 펠에 각각 대응하는 다수의 펠들을 갖는 비트맵 이미지를 생성하기 위한 수단; 상기 비트맵 이미지의 각각의 펠에 대해, 대응 펠을 포함하는 벡터를 갖는 스캔 라인 데이타 세트를 액세스하고, 대응 펠을 포함하는 벡터와 관련된 윈도우 식별자가 선택된 윈도우 식별자인지를 결정하기 위한 수단; 및 상기 윈도우 식별자가 선택된 윈도우 식별자가 아니라고 결정된 비트맵 이미지의 각각의 펠에 대해 디스플레이의 각각의 대응 펠을 비트맵 이미지의 펠로 설정하기 위한 수단을 포함하는, 윈도우 환경에서의 윈도우의 강화된 로케이터 히트 테스팅을 위한 데이타 처리 시스템.
  11. 제9항에 있어서, 윈도우 환경에서의 윈도우가 디스플레이에서 이동, 추가 또는 삭제될 때, 새로운 글로벌 히트 테스트 데이타 구조를 생성하기 위한 수단을 더 포함하는, 윈도우 환경에서의 윈도우의 강화된 로케이터 히트 테스팅을 위한 데이타 처리 시스템.
  12. 제9항에 있어서, 윈도우 환경에서의 윈도우는 사각형 형태의 윈도우가 아닌 불규칙한 형태의 윈도우이고, 상기 글로벌 히트 테스트 데이타 구조는 상기 불규칙한 형태의 윈도우를 디스플레이하는 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는, 윈도우 환경에서의 윈도우의 강화된 로케이터 히트 테스팅을 위한 데이타 처리 시스템.
  13. 윈도우 환경에서의 윈도우의 강화된 영역 클립핑을 위한 데이타 처리 시스템에 있어서, 데이타 처리 시스템에서 윈도우 환경의 디스플레이를 위한 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는 글로벌 히트 테스트 데이타 구조를 생성하기 위한 수단 - 상기 복수의 압축 스캔 라인 데이타 세트들의 각각의 압축 스캔 라인 데이타 세트는 하나 이상의 벡터들과, 디스플레이의 관련 스캔 라인의 하나 이상의 스팬들의 윈도우 소유권을 나타내는 각각의 벡터와 관련된 윈도우 식별자를 포함하고, 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터에 의해 식별된 스팬을 소유하는 윈도우를 식별하고, 스팬은 스캔 라인의 하나 이상의 펠임- ; 상기 디스플레이의 펠에 각각 대응하는 다수의 펠들을 갖는 비트맵 이미지를 생성하기 위한 수단; 상기 비트맵 이미지의 각각의 펠에 대해, 대응 펠을 포함하는 벡터를 갖는 스캔 라인 데이타 세트를 액세스하고, 대응 펠을 포함하는 벡터와 관련된 윈도우 식별자가 선택된 윈도우 식별자인지를 결정하기 위한 수단; 및 상기 윈도우 식별자가 선택된 윈도우 식별자가 아니라고 결정된 비트맵 이미지의 각각의 펠에 대해 디스플레이의 각각의 대응 펠을 비트맵 이미지의 펠로 설정하기 위한 수단을 포함하는, 윈도우 환경에서의 윈도우의 강화된 영역 클립핑을 위한 데이타 처리 시스템.
  14. 제13항에 있어서, 다수의 윈도우들이 윈도우 환경 내에 있으며, 상기 글로벌 히트 테스트 데이타 구조를 생성하기 위한 수단은, 상기 윈도우 환경에서의 각각의 윈도우에 대한 히트 테스트 데이타 구조를 생성하는 단계 - 상기 각각의 히트 테스트 데이터 구조는 스캔 라인들의 각각의 펠에 대한 관련 윈도우만의 윈도우 소유권을 나타냄 -; 상기 히트 테스트 데이타 구조에 대해 z-배열로 깊이 리스트를 편성하기 위한 수단 - 각각의 윈도우는 윈도우 환경에서의 모든 윈도우들의 z-배열에 대응하는 디스플레이 상의 다른 윈도우들에 상대적인 z 위치를 가짐 -; 상기 깊이 리스트의 z-배열의 각각의 히트 테스트 데이타 구조를 액세스함으로써 상기 디스플레이의 모든 펠의 윈도우 소유권을 결정하기 위한 수단 - 펠은 그 펠의 소유권을 나타내는 히트 테스트 데이타 구조를 갖는 최고 z 위치를 갖는 윈도우에 속함 -; 동일 윈도우가 소유하는 하나 이상의 스팬이 스팬을 형성하도록 상기 디스플레이의 모든 스캔 라인들의 모든 스팬을 정의하기 위한 수단; 및 정의된 스팬들을 상기 윈도우 환경에서의 디스플레이의 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들로 압축하기 위한 수단을 포함하며, 복수의 압축 스캔 라인 데이타 세트들의 각각의 압축 스캔 라인 데이타 세트는, 디스플레이의 관련 스캔 라인의 하나 이상의 정의된 스팬들의 윈도우 소유권을 나타내고, 하나 이상의 벡터들 및 각각의 벡터와 관련된 윈도우 식별자를 포함하고, 벡터는 관련 스캔 라인의 스팬을 식별하고, 각각의 윈도우 식별자는 관련 벡터의 식별된 스팬을 소유하는 윈도우를 식별하는, 윈도우 환경에서의 윈도우의 강화된 영역 클립핑을 위한 데이타 처리 시스템.
  15. 제13항에 있어서, 윈도우 환경에서의 윈도우가 디스플레이에서 이동, 추가 또는 삭제될 때, 새로운 글로벌 히트 테스트 데이타 구조를 생성하기 위한 수단을 더 포함하는, 윈도우 환경에서의 윈도우의 강화된 영역 클립핑을 위한 데이타 처리 시스템.
  16. 제13항에 있어서, 윈도우 환경에서의 윈도우는 사각형 형태의 윈도우가 아닌 불규칙한 형태의 윈도우이고, 상기 글로벌 히트 테스트 데이타 구조는 상기 불규칙한 형태의 윈도우를 디스플레이하는 복수의 스캔 라인들을 나타내는 복수의 압축 스캔 라인 데이타 세트들을 갖는, 윈도우 환경에서의 윈도우의 강화된 영역 클립핑을 위한 데이타 처리 시스템.
KR1019960052777A 1996-02-20 1996-11-08 그래픽 사용자 인터페이스에서 윈도우의 스캔 라인 압축을 사용하여 글로벌 히트 테스트 데이타 구조를 생성하기 위한 방법 및 시스템 KR100247720B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US8/602,561 1996-02-20
US08/602,561 1996-02-20
US08/602,561 US5764215A (en) 1996-02-20 1996-02-20 Method and system for generating a global hit test data structure using scan line compression of windows in a graphical user interface

Publications (2)

Publication Number Publication Date
KR970062964A KR970062964A (ko) 1997-09-12
KR100247720B1 true KR100247720B1 (ko) 2000-03-15

Family

ID=24411849

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960052777A KR100247720B1 (ko) 1996-02-20 1996-11-08 그래픽 사용자 인터페이스에서 윈도우의 스캔 라인 압축을 사용하여 글로벌 히트 테스트 데이타 구조를 생성하기 위한 방법 및 시스템

Country Status (4)

Country Link
US (1) US5764215A (ko)
JP (1) JP3417451B2 (ko)
KR (1) KR100247720B1 (ko)
CN (1) CN1151429C (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049325A (en) * 1997-05-27 2000-04-11 Hewlett-Packard Company System and method for efficient hit-testing in a computer-based system
US6839892B2 (en) * 2001-07-12 2005-01-04 International Business Machines Corporation Operating system debugger extensions for hypervisor debugging
US7165225B2 (en) * 2001-08-15 2007-01-16 Microsoft Corporation Cursor tracking in a multi-level GUI
US7412662B2 (en) * 2004-04-12 2008-08-12 Microsoft Corporation Method and system for redirection of transformed windows
US8279204B1 (en) * 2005-12-22 2012-10-02 The Mathworks, Inc. Viewer for multi-dimensional data from a test environment
US8108785B2 (en) * 2006-01-09 2012-01-31 Microsoft Corporation Supporting user multi-tasking with clipping lists
WO2016197247A1 (en) * 2015-06-12 2016-12-15 Nureva, Inc. Method and apparatus for managing and organizing objects in a virtual repository
US11886685B1 (en) 2022-10-20 2024-01-30 Stardock Corporation Desktop container peek interface

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4586035A (en) * 1984-02-29 1986-04-29 International Business Machines Corporation Display terminal with a cursor responsive virtual distributed menu
JPH0778823B2 (ja) * 1985-12-09 1995-08-23 株式会社応用計測研究所 画像処理方法
US5050105A (en) * 1988-01-26 1991-09-17 International Business Machines Corporation Direct cursor-controlled access to multiple application programs and data
US5001469A (en) * 1988-06-29 1991-03-19 Digital Equipment Corporation Window-dependent buffer selection
US5185597A (en) * 1988-06-29 1993-02-09 Digital Equipment Corporation Sprite cursor with edge extension and clipping
US5046001A (en) * 1988-06-30 1991-09-03 Ibm Corporation Method for accessing selected windows in a multi-tasking system
US5241656A (en) * 1989-02-06 1993-08-31 International Business Machines Corporation Depth buffer clipping for window management
US5195177A (en) * 1989-09-08 1993-03-16 Matsushita Electric Industrial Co., Ltd. Clipping processor
JPH03292524A (ja) * 1990-04-11 1991-12-24 Oki Electric Ind Co Ltd カーソル移動方式
US5226117A (en) * 1990-05-15 1993-07-06 International Business Machines Corporation Method for simultaneous update and change in parent and child windows
US5377317A (en) * 1991-12-20 1994-12-27 International Business Machines Corporation Method and apparatus for distinctively displaying windows on a computer display screen
US5390295A (en) * 1991-12-20 1995-02-14 International Business Machines Corporation Method and apparatus for proportionally displaying windows on a computer display screen
US5276437A (en) * 1992-04-22 1994-01-04 International Business Machines Corporation Multi-media window manager

Also Published As

Publication number Publication date
JP3417451B2 (ja) 2003-06-16
CN1177136A (zh) 1998-03-25
KR970062964A (ko) 1997-09-12
US5764215A (en) 1998-06-09
CN1151429C (zh) 2004-05-26
JPH09269884A (ja) 1997-10-14

Similar Documents

Publication Publication Date Title
US5917492A (en) Method and system for displaying an expandable tree structure in a data processing system graphical user interface
KR100267426B1 (ko) 디스플레이 객체의 제시방법 및 디스플레이 객체를 제시하기 위한 데이터프로세싱 시스템
US5777616A (en) Data processing system and method for invoking a function of a multifunction icon in a graphical user interface
US6166736A (en) Method and apparatus for simultaneously resizing and relocating windows within a graphical display
US5710574A (en) Method and system for positioning a graphical pointer within a widget of a data processing system graphical user interface
US5671378A (en) Method and system for sizing of graphical user interface objects for localization
US5835088A (en) Method and apparatus for providing programmable window-to-window focus change within a data processing system using a graphical user interface
KR100214911B1 (ko) 지시장치를 이용한 대량 데이타의 탐색 방법
US5412776A (en) Method of generating a hierarchical window list in a graphical user interface
CA2012795C (en) Image editor zoom function
US5963191A (en) Method and system for denying graphical pointer access to a widget of a data processing system graphical user interface
US5559948A (en) Apparatus and method for manipulating an object in a computer system graphical user interface
JP3667877B2 (ja) 情報表示方法及びデータ処理システム
US6356281B1 (en) Method and apparatus for displaying translucent overlapping graphical objects on a computer monitor
US5710897A (en) Manager for selecting a pointer graphics folder and customizing pointers
CA2799190C (en) Displaying a user interface in a dedicated display area
EP1015961A1 (en) Method and apparatus for simultaneously resizing and relocating windows within a graphical display
US6141008A (en) Method and system for providing size adjustment for a maximized window in a computer system graphical user interface
US6075532A (en) Efficient redrawing of animated windows
US6337702B1 (en) Method and system for graphically indicating a valid input within a graphical user interface
US5732228A (en) Method and system for per widget graphical pointer control within a data processing system graphical user interface
US7009600B2 (en) Data processing system display screen including an image alteration area
US5731814A (en) Method and apparatus for identifying an object selected on a computer output display
KR100247720B1 (ko) 그래픽 사용자 인터페이스에서 윈도우의 스캔 라인 압축을 사용하여 글로벌 히트 테스트 데이타 구조를 생성하기 위한 방법 및 시스템
US6281897B1 (en) Method and apparatus for moving and retrieving objects in a graphical user environment

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: 20021009

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee