KR20170072281A - 사용자 액션에 응답하여 직접 조작의 가능화를 결정하는 히트-테스트 - Google Patents

사용자 액션에 응답하여 직접 조작의 가능화를 결정하는 히트-테스트 Download PDF

Info

Publication number
KR20170072281A
KR20170072281A KR1020177013481A KR20177013481A KR20170072281A KR 20170072281 A KR20170072281 A KR 20170072281A KR 1020177013481 A KR1020177013481 A KR 1020177013481A KR 20177013481 A KR20177013481 A KR 20177013481A KR 20170072281 A KR20170072281 A KR 20170072281A
Authority
KR
South Korea
Prior art keywords
application
scl
hit
direct manipulation
entity
Prior art date
Application number
KR1020177013481A
Other languages
English (en)
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 KR20170072281A publication Critical patent/KR20170072281A/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/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
    • 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/0482Interaction with lists of selectable items, e.g. menus
    • 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/0485Scrolling or panning
    • 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2203/00Indexing scheme relating to G06F3/00 - G06F3/048
    • G06F2203/048Indexing scheme relating to G06F3/048
    • G06F2203/04806Zoom, i.e. interaction techniques or interactors for controlling the zooming operation

Abstract

애플리케이션과 관련된 사용자 인터페이스를 통해 검출된 사용자 액션이 애플리케이션의 정해진 개체와 교차하는지를 결정하기 위해 히트-테스트가 수행될 수 있다. 애플리케이션은 하나 이상의 특수 콘텐츠 계층(SCL)을 포함할 수 있다. 사용자 액션에 응답하여 애플리케이션을 통한 개체의 직접 조작의 가능화에 관한 결정이 각각의 SCL에서 이루어질 수 있다. 애플리케이션의 SCL 처리 모듈은 SCL의 전후 처리 동안에 사용자 액션과 적어도 하나의 SCL의 하나 이상의 불투명 픽셀의 교차를 검출하는 것에 응답하여 히트를 식별할 수 있으며, 여기서 픽셀은 개체에 대응한다. 그 후 애플리케이션은, 애플리케이션을 통한 개체의 직접 조작이 SCL에 의해 가능화되는지 가능화되지 않는지와, 따라서 직접 조작이 자동으로 개시되어야 하는지 불능화되어야 하는지를 각각 결정할 수 있다.

Description

사용자 액션에 응답하여 직접 조작의 가능화를 결정하는 히트-테스트{HIT-TEST TO DETERMINE ENABLEMENT OF DIRECT MANIPULATIONS IN RESPONSE TO USER ACTIONS}
히트 검출(hit detection), 선택(picking) 및/또는 선택 상관 관계(pick correlation)라고도 알려진 히트-테스트(hit-testing)는, 마우스 커서 또는 애플리케이션과 관련된 사용자 인터페이스상의 터치 포인트와 같은 사용자 제어 커서가, 사용자 인터페이스상에 디스플레이된 애플리케이션의 형상, 선, 또는 곡선과 같은 정해진 개체와 교차(intersect)하는지를 결정하기 위해 사용되는 프로세스이다. 또한, 히트-테스트는 애플리케이션 내의 메뉴 항목이나 대상의 선택과 같은 사용자 액션에 대해, 사용자 인터페이스상의 그것의 시각적 위치에 기초하여 응답하기 위해 사용된다.
현재, 애플리케이션 내의 콘텐츠가 사용자로부터 터치 입력을 통해 히트되었는지, 제스처 입력을 통해 히트되었는지, 및/또는 전통적인 입력을 통해 히트되었는지를 결정하는 신속하고 효율적인 기술은 없다. 히트-테스트는 매우 비용이 많이 들 수 있으며, 그래픽 개체와 같은, 애플리케이션과 관련된 특정 유형의 콘텐츠는, 히트-테스트를 계산하는 데 걸리는 시간이 콘텐츠의 복잡성에 얽매이기 때문에, 분석하는(resolve) 데 제일 긴 시간이 걸릴 수 있다.
이 개요는 아래에 상세한 설명에서 더 설명되는 선택된 개념들을 단순화된 형태로 소개하기 위해 제공된다. 이 개요는 청구된 주제의 주요 특징들 또는 필수적인 특징들을 배타적으로 식별하기 위해 의도된 것도 아니고, 청구된 주제의 범위를 결정하는 데 도움이 되는 것으로 의도된 것도 아니다.
실시예들은 사용자 액션에 응답하여 직접 조작의 가능화(enablement)를 결정하기 위한 히트-테스트(hit-test)의 수행에 관한 것이다. 컴퓨팅 장치의 프로세서는 하나 이상의 특수 콘텐츠 계층(special content layer; SCL)을 포함하는 애플리케이션을 실행하고, 상기 애플리케이션 실행시에 클라이언트 장치를 통해 상기 애플리케이션에 관련된 사용자 인터페이스가 사용자에게 제시되게 하도록 구성될 수 있다. 상기 애플리케이션은 상기 사용자 인터페이스를 통해 사용자 액션을 검출할 수 있고, 상기 사용자 액션과 상기 애플리케이션의 적어도 하나의 SCL 중 하나 이상의 픽셀의 교차를 검출하는 것에 응답하여, 히트가 식별될 수 있다. 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되는지가 상기 히트에 응답하여 상기 애플리케이션에 의해 결정될 수 있고, 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되면, 상기 애플리케이션을 통한 개체의 직접 조작이 자동으로 개시될 수 있다.
이들 및 다른 특징들 및 이점들은 다음의 상세한 설명을 읽고 관련 도면들을 검토함으로써 명백해질 것이다. 전술한 일반적인 설명과 다음의 상세한 설명 둘 다는 모두 설명을 위한 것이며 청구된 양태들을 제한하지 않는다는 것을 이해해야 한다.
도 1은 히트-테스트가 수행될 수 있는 예시적인 네트워크 환경을 포함한다.
도 2는 히트-테스트를 수행하도록 구성된 애플리케이션과 관련된 예시적인 사용자 인터페이스를 예시한다.
도 3은 사용자 액션에 응답하여 하나 이상의 직접 조작의 가능화를 결정하기 위한 히트-테스트를 수행하는 예시적인 프로세스를 예시한다.
도 4는 사용자 액션에 응답하여 하나 이상의 직접 조작의 가능화를 결정하기 위한 히트-테스트를 수행하는 데 사용될 수 있는 예시적인 범용 컴퓨팅 장치의 블록도이다.
도 5는 실시예들에 따른, 사용자 액션에 응답하여 하나 이상의 직접 조작의 가능화를 결정하기 위한 히트-테스트를 수행하는 방법의 논리 흐름도를 예시한다.
전술한 바와 같이, 애플리케이션과 관련된 사용자 인터페이스를 통해 검출된 사용자 액션이 애플리케이션의 정해진 개체와 교차하는지를 결정하기 위한 히트-테스트가 수행될 수 있다. 애플리케이션은 워드 프로세싱, 스프레드시트, 및/또는 프레젠테이션 애플리케이션일 수 있으며, 예를 들어, 하나 이상의 특수 콘텐츠 계층(SCL)을 포함할 수 있다. 본 명세서에서 기술되는 바와 같이, SCL은 애플리케이션을 통한 개체의 직접 조작의 가능화에 관한 즉시 결정이 사용자 액션에 응답하여 이루어질 수 있는 애플리케이션 계층이다. 애플리케이션의 SCL 처리 모듈은, SCL의 전후 처리(front to back processing) 동안에 사용자 액션과, SCL들 중 적어도 하나의 SCL의 하나 이상의 불투명 픽셀의 교차를 검출하는 것에 응답하여 히트를 식별할 수 있으며, 여기서 픽셀은 애플리케이션의 개체에 대응할 수 있다. 그 후 애플리케이션은 애플리케이션을 통한 개체의 직접 조작이 SCL에 의해 가능화되는지를 결정하도록 구성될 수 있다. 애플리케이션을 통한 개체의 직접 조작이 SCL에 의해 가능화되면, 직접 조작이 자동으로 개시될 수 있다. 이와 달리, 애플리케이션을 통한 개체의 직접 조작이 SCL에 의해 가능화되지 않으면, 직접 조작이 불능화될 수 있다.
다음의 상세한 설명에서는, 본 명세서의 일부를 형성하고 특정 실시예들 또는 예들이 예시로서 도시되어 있는 첨부 도면들을 참조한다. 이러한 양태들은 결합될 수 있고, 다른 양태들이 이용될 수 있고, 본 개시의 사상 또는 범위를 벗어나지 않고 구조적 변경이 이루어질 수 있다. 따라서, 다음의 상세한 설명은 제한적인 의미로 해석되어서는 안 되며, 본 발명의 범위는 첨부된 청구항들 및 그의 등가물들에 의해 한정된다.
일부 실시예들은 개인용 컴퓨터상의 운영 체제상에서 실행되는 애플리케이션 프로그램과 관련하여 실행되는 프로그램 모듈의 일반적인 컨텍스트에서 설명될 것이지만, 숙련된 당업자들은 양태들이 다른 프로그램 모듈들과 결합하여 구현될 수도 있다는 것을 인식할 것이다.
일반적으로, 프로그램 모듈은 루틴, 프로그램, 구성 요소, 데이터 구조, 및 특정 작업들을 수행하거나 특정 추상 데이터 유형들을 구현하는 다른 유형의 구조를 포함한다. 또한, 숙련된 당업자들은 실시예들이 핸드헬드 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 또는 프로그램 가능한 소비자 전자 장치, 미니컴퓨터, 메인프레임 컴퓨터, 및 유사한(comparable) 컴퓨팅 장치를 포함하는, 다른 컴퓨터 시스템 구성들과 함께 실시될 수 있다는 것을 이해할 것이다. 실시예들은 또한 통신 네트워크를 통해 링크되는 원격 처리 장치들에 의해 작업이 수행되는 분산 컴퓨팅 환경에서 실시될 수도 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 로컬 메모리 저장 장치와 원격 메모리 저장 장치 둘 다에 위치할 수 있다.
일부 실시예들은 컴퓨터 구현 프로세스(방법), 컴퓨팅 시스템, 또는 컴퓨터 프로그램 제품 또는 컴퓨터 판독 가능 매체와 같은 제조 물품으로서 구현될 수 있다. 컴퓨터 프로그램 제품은 컴퓨터 시스템에 의해 판독 가능하고 컴퓨터 또는 컴퓨팅 시스템으로 하여금 예시적인 프로세스(들)를 수행하게 하는 명령어들을 포함하는 컴퓨터 프로그램을 인코딩하는 컴퓨터 저장 매체일 수 있다. 컴퓨터 판독 가능 저장 매체는 컴퓨터 판독 가능 메모리 장치이다. 컴퓨터 판독 가능 저장 매체는 예를 들어 휘발성 컴퓨터 메모리, 비휘발성 메모리, 하드 드라이브, 플래시 드라이브, 플로피 디스크, 또는 컴팩트 디스크, 및 유사한 하드웨어 매체 중 하나 이상을 통해 구현될 수 있다.
본 명세서의 전체에 걸쳐, "플랫폼"이라는 용어는 히트-테스트 수행을 위한 소프트웨어 및 하드웨어 구성 요소들의 조합일 수 있다. 플랫폼의 예는 복수의 서버에 걸쳐 실행되는 호스팅된 서비스, 단일 컴퓨팅 장치상에서 실행되는 애플리케이션, 및 유사한 시스템을 포함하지만 이에 제한되는 것은 아니다. "서버"라는 용어는, 전형적으로 네트워킹된 환경에서 하나 이상의 소프트웨어 프로그램을 실행하는 컴퓨팅 장치에 일반적으로 관련된다. 그러나, 서버는 네트워크상의 서버로서 간주되는 하나 이상의 컴퓨팅 장치상에서 실행되는 가상 서버(소프트웨어 프로그램)로서 구현될 수도 있다. 이러한 기술들 및 예시적인 동작들에 대한 더 상세한 내용은 아래에 제공된다.
도 1은 히트-테스트가 수행될 수 있는 예시적인 네트워크 환경을 포함한다. 도면(100)에 나타낸 바와 같이, 하나 이상의 사용자(108, 114 및 120)가 클라우드 기반 네트워크(130)를 통해, 워드 프로세싱, 스프레드시트, 및/또는 프레젠테이션 애플리케이션과 같은, 애플리케이션(102)에 액세스할 수 있다. 일부 예들에서, 애플리케이션(102)은 하나 이상의 SCL(104)을 포함할 수 있으며, 여기서 SCL(104)은, 사용자 액션이 SCL(104) 내의 하나 이상의 픽셀과 교차하는 것에 응답하여 애플리케이션(102)을 통한 개체의 직접 조작의 가능화에 관한 결정이 즉시 이루어질 수 있는 애플리케이션 계층이다. 각각의 SCL(104)에 대해, 직접 조작의 하나 이상의 유형이 정의될 수 있고, 직접 조작의 각각의 유형에 대해 직접 조작이 SCL에 의해 가능화되는지가 추가로 정의될 수 있다. 애플리케이션(102)이 포함하는 SCL(104)의 수는 애플리케이션(102)의 유형에 의존할 수 있다. 예를 들어, 프레젠테이션 애플리케이션은 워드 프로세싱 애플리케이션보다 적은 수의 SCL(104)을 포함할 수 있다.
애플리케이션(102)은 원격 서버에서 호스팅될 수 있고, 클라우드 기반 네트워크(130)를 통해 사용자의 클라이언트 장치를 통해 액세스될 수 있다. 예를 들어, 서버는 애플리케이션(102)을 실행하고 애플리케이션(102)과 관련된 사용자 인터페이스(106)가 사용자의 클라이언트 장치를 통해 제시되게 하도록 구성될 수 있다. 애플리케이션(102)의 로컬 버전이 사용자의 클라이언트 장치에서 국부적으로 호스팅될 수도 있고, 로컬 애플리케이션(102)과 관련된 데이터가 클라우드 기반 네트워크(130)를 통해 검색(retrieve)될 수 있다. 일부 예시적인 클라이언트 장치들은 데스크톱 컴퓨터(122), 랩톱 컴퓨터(110), 스마트폰, 카폰, 휴대폰, 태블릿(116), 및/또는 홈 오토메이션 장치를 포함할 수 있다. 예를 들어, 제1 사용자(108)는 클라우드 기반 네트워크(130)를 통해 랩톱 컴퓨터(110)를 통해 애플리케이션(102)에 액세스하고, 터치 입력(112)을 사용하여 사용자 인터페이스(106)와 상호 작용할 수 있다. 제2 사용자(114)는 클라우드 기반 네트워크(130)를 통해 태블릿(116)을 통해 애플리케이션(102)에 액세스하고, 스타일러스 입력(118)을 사용하여 사용자 인터페이스(106)와 상호 작용할 수 있다. 제3 사용자(120)는 클라우드 기반 네트워크(130)를 통해 데스크톱 컴퓨터(122)를 통해 애플리케이션(102)에 액세스하고, 마우스(124)와 같은 전통적인 입력을 사용하여 사용자 인터페이스(106)와 상호 작용할 수 있다. 다른 입력 방법들은, 예를 들어, 제스처 입력, 및/또는 키보드 입력을 포함할 수 있다.
예시적인 애플리케이션(102)은 사용자 인터페이스(106)를 통해 사용자 액션을 검출하도록 구성될 수 있다. 사용자 액션은 터치 입력(112), 스타일러스 입력(118), 마우스(124) 입력, 및/또는 자이로스코픽 입력, 시선 추적, 및 유사한 것들과 같은 다른 입력들을 포함할 수 있다. 예를 들어, 제1 사용자(108)의 터치 입력(112)은 사용자 인터페이스(106)상에 디스플레이된 애플리케이션(102)의, 제어 요소, 텍스트 요소, 또는 그래픽 요소와 같은, 개체와 관련된 탭 액션 또는 스와이프(swipe) 액션을 포함할 수 있다.
애플리케이션(102)이 적어도 하나의 SCL(104)을 포함하는 경우, 애플리케이션(102)의 SCL 처리 모듈은 검출된 사용자 액션에 응답하여 SCL(104)의 전후 처리를 수행하도록 구성될 수 있다. 애플리케이션(102)의 SCL 처리 모듈은 사용자 액션에 근접한 사용자 인터페이스상의 영역의 텍스처 콘텐츠에 기초하여 전후 처리를 수행할지를 결정하도록 구성될 수 있다. 예를 들어, 사용자 액션에 근접한 사용자 인터페이스상의 영역에 애플리케이션의 하나 이상의 개체(사용자 액션과 관련된 개체, 및 하나 이상의 다른 개체를 포함할 수 있음)가 디스플레이되면, 개체들에 대응하는 텍스처 콘텐츠는 SCL 처리 모듈에게 전후 처리를 수행하도록 지시할 수 있다. 대조적으로, 사용자 액션에 근접한 사용자 인터페이스상의 영역에 어떤 개체도 디스플레이되지 않으면, 텍스처 콘텐츠의 부재는, 사용자 액션이 의도되지 않았을 가능성이 있고 응답이 필요하지 않으므로, SCL 처리 모듈에게 전후 처리를 수행하지 않도록 나타낼 수 있다. 전후 처리 동안에 사용자 액션과 SCL(104)의 하나 이상의 픽셀의 교차를 검출하는 것에 응답하여, 히트가 식별될 수 있다. 픽셀은 사용자 액션과 관련된 개체에 대응하는 불투명 픽셀일 수 있으며, 여기서 개체의 적어도 일부는 사용자 액션에 근접한 사용자 인터페이스(106)상의 영역에 위치한다.
그 후 애플리케이션(102)은, 애플리케이션(102)을 통한 개체의 직접 조작이 히트에 응답하여 SCL(104)에 의해 가능화되는지를 결정하도록 구성될 수 있다. 애플리케이션(102)을 통한 개체의 직접 조작이 SCL(104)에 의해 가능화되면, 애플리케이션(102)을 통한 개체의 직접 조작이 자동으로 개시될 수 있다. 애플리케이션(102)을 통한 개체의 직접 조작이 SCL(104)에 의해 가능화되지 않으면, 애플리케이션(102)을 통한 개체의 직접 조작이 불능화될 수 있다. 전술한 바와 같이, SCL(104)은 애플리케이션(102)을 통한 개체의 직접 조작의 가능화에 관한 결정이 즉시 이루어질 수 있는 애플리케이션(102)의 계층이다. 각각의 SCL(104)에 대해, 직접 조작의 하나 이상의 유형이 정의될 수 있으며, 직접 조작의 각각의 유형에 대해 직접 조작이 SCL(104)에 의해 가능화되는지 불능화되는지가 추가로 정의될 수 있다. 직접 조작의 유형은 사용자 액션에 대한 개체의 거동에 기초하여 결정될 수 있고, 여러 예들 중에서, 개체의 패닝(panning), 주밍(zooming) 및 선택을 포함할 수 있다. 예를 들어, 제1 사용자(108)가 프레젠테이션 애플리케이션의 문서 슬라이드상의 화상에 대해 터치 입력(112)을 통해 탭 액션을 수행하는 경우, 직접 조작의 유형은 주밍에 의해 화상을 확대하는 것을 포함할 수 있다.
SCL(104)의 즉시 결정 능력과 히트-테스트 수행을 통합함으로써 현재의 히트-테스트 기술을 향상시키는 사용자 액션에 응답하여 가능화를 결정하는 신속하고 효율적인 방법을 제공할 수 있다. 예를 들어, 이 통합은 추가적인 처리 단계에 대한 현재의 필요성을 방지하고, 따라서 직접 조작의 가능화를 결정하기 위한 추가의 처리 소프트웨어 및/또는 하드웨어의 필요성을 방지하여, 전체 작업 시간 및 비용을 감소시킬 수 있다.
도 1의 예시적인 시스템은 특정 서버, 클라이언트 장치, 애플리케이션, 및 상호 작용으로 설명되었다. 실시예들은 이러한 예시적인 구성에 따른 시스템으로 제한되지 않는다. 직접 조작의 가능화를 결정하기 위한 히트-테스트 수행을 위한 플랫폼은 더 적은 또는 추가적인 구성 요소를 사용하고, 다른 작업을 수행하는 구성으로 구현될 수 있다. 또한, 직접 조작의 가능화를 결정하기 위한 히트-테스트 수행을 위한 플랫폼은 본 명세서에서 설명된 원리를 사용하여 유사한 방식으로 구현될 수 있다.
도 2는 히트-테스트를 수행하도록 구성된 애플리케이션과 관련된 예시적인 사용자 인터페이스를 예시한다. 도면(200)에 나타낸 바와 같이, 프레젠테이션 애플리케이션과 같은 애플리케이션이 태블릿(202)과 같은 클라이언트 장치를 통해 사용자에 의해 액세스될 수 있다. 애플리케이션은 하나 이상의 SCL을 포함할 수 있으며, 애플리케이션의 실행시에, 애플리케이션과 관련된 사용자 인터페이스(204)가 태블릿(202)을 통해 제시될 수 있다.
애플리케이션은 사용자 인터페이스(204)를 통해 사용자 액션을 검출할 수 있으며, 여기서 사용자 액션은 터치 입력(206)을 통해 수행될 수 있고, 그래프(208)와 같은, 사용자 인터페이스(204)상에 디스플레이된 애플리케이션의 개체와 관련된 탭 액션을 포함할 수 있다. 애플리케이션의 SCL 처리 모듈은 사용자 액션의 검출에 응답하여 적어도 하나의 SCL의 전후 처리를 수행하도록 구성될 수 있다. SCL 처리 모듈은 사용자 액션에 근접한 사용자 인터페이스(204)상의 영역의 텍스처 콘텐츠에 기초하여 전후 처리를 수행할지를 결정할 수 있다. 예를 들어, 탭 액션에 근접한 사용자 인터페이스(204)상의 영역의 텍스처 콘텐츠는 그래프(208) 또는 텍스트 콘텐츠(210)와 같은 애플리케이션의 하나 이상의 개체가 근접해 있고, 따라서 전후 처리가 수행되어야 함을 나타낼 수 있다. 다른 예에서, 사용자 액션이 어떤 유형의 콘텐츠도 디스플레이하지 않는 사용자 인터페이스(204)상의 영역에서 터치 입력을 통해 수행된 스와이프 액션이면, 텍스처 콘텐츠는, 어떤 개체도 근접해 있지 않으며, 따라서 사용자 액션이 의도되지 않았을 가능성이 있고 따라서 응답이 필요하지 않으므로 전후 처리가 수행되어서는 안 된다는 것을 나타낼 수 있다.
사용자 액션과 SCL의 하나 이상의 픽셀의 교차를 검출하는 것에 응답하여, 히트가 식별될 수 있다. 픽셀은 사용자가 탭한 그래프(208)에 대응하는 불투명 픽셀일 수 있다. 그 후 애플리케이션은 히트에 응답하여 애플리케이션을 통한 개체의 직접 조작이 SCL에 의해 가능화되는지를 결정하도록 구성될 수 있으며, 여기서 직접 조작은 예를 들어 복사 및 붙여 넣기 기능을 수행하기 위해 그래프(208)를 선택하는 것을 포함할 수 있다. 애플리케이션을 통한 개체의 직접 조작이 SCL에 의해 가능화되면, 애플리케이션을 통한 개체의 직접 조작이 자동으로 개시될 수 있다. 애플리케이션을 통한 개체의 직접 조작이 SCL에 의해 가능화되지 않으면, 애플리케이션을 통한 개체의 직접 조작이 불능화될 수 있다.
도 3은 사용자 액션에 응답하여 하나 이상의 직접 조작의 가능화를 결정하기 위한 히트-테스트를 수행하는 예시적인 프로세스를 예시한다. 워드 프로세싱, 스프레드시트, 및/또는 프레젠테이션 애플리케이션과 같은 애플리케이션이 클라이언트 장치를 통해 사용자에 의해 액세스될 수 있고, 애플리케이션의 실행시에, 애플리케이션과의 사용자 상호 작용을 가능하게 하기 위해 애플리케이션과 관련된 사용자 인터페이스가 클라이언트 장치의 디스플레이를 통해 제시될 수 있다. 일부 예들에서, 애플리케이션은 하나 이상의 SCL을 포함할 수 있으며, 여기서 SCL의 수는 애플리케이션의 유형에 의존한다. 각각의 SCL은 사용자 액션에 응답하여 애플리케이션을 통한 개체의 직접 조작의 가능화에 관한 결정이 즉시 이루어질 수 있는 애플리케이션 계층이다.
도면(300)에 나타낸 바와 같이, 애플리케이션과 관련된 사용자 인터페이스를 통해 사용자 액션을 검출하는 것에 응답하여, 애플리케이션의 SCL 처리 모듈은 애플리케이션이 적어도 하나의 SCL을 포함하는지를 결정할 수 있다(302). 애플리케이션이 적어도 하나의 SCL을 포함하지 않는다면(304), 식별되는 히트가 없을 수 있다(306). 애플리케이션이 적어도 하나의 SCL을 포함한다면(308), 애플리케이션의 SCL 처리 모듈은 사용자 액션의 검출에 응답하여 각각의 SCL의 전후 처리를 수행하도록(310) 구성될 수 있다. SCL 처리 모듈은 사용자 액션에 근접한 사용자 인터페이스상의 영역의 텍스처 콘텐츠에 기초하여 전후 처리를 수행할지를 결정할 수 있다. SCL 처리 모듈은, 전후 처리 동안에 검출된 사용자 액션과 적어도 하나의 SCL의 하나 이상의 픽셀의 교차가 있는지를 결정함으로써 임의의 히트가 있는지를 식별할 수 있다(312). 식별되는 히트가 없으면(314), SCL 처리 모듈은 다른 SCL의 처리를 계속할 수 있고(즉, 애플리케이션이 둘 이상의 SCL을 포함하는 경우) 각각의 SCL이 처리되고 식별되는 히트가 없으면(306) SCL의 처리를 완료할 수 있다(316).
식별되는 히트가 있으면(318), 애플리케이션은 SCL이 애플리케이션을 통한 개체의 직접 조작을 가능화하는지를 결정할 수 있다(320). 예를 들어, 직접 조작의 하나 이상의 유형이 각각의 SCL에 대해 정의될 수 있고, 직접 조작의 각각의 유형에 대해 직접 조작이 SCL에 의해 가능화되는지 불능화되는지가 추가로 정의될 수 있다. SCL이 애플리케이션을 통한 개체의 직접 조작을 가능화하면(322), 직접 조작이 자동으로 개시될 수 있고(324) 프로세스는 종료될 수 있다(330). SCL이 애플리케이션을 통한 개체의 직접 조작을 가능화하지 않으면(326), 직접 조작은 불능화될 수 있고(328) 프로세스는 종료될 수 있다(330).
도 1 내지 도 3의 예들은 하나 이상의 직접 조작의 가능화를 결정하기 위한 히트-테스트를 수행하기 위해 특정 네트워크 환경, 구성, 장치, 및 프로세스를 사용하여 설명되었다. 히트-테스트를 수행하기 위한 실시예들은 이 예들에 따른 특정 네트워크 환경, 구성, 장치, 및 프로세스로 제한되지 않는다.
사용자 액션에 응답하여 개체의 직접 조작의 가능화 또는 불능화에 관한 즉시 결정을 하는 애플리케이션의 하나 이상의 SCL의 능력은 프로세서의 부하를 유리하게 감소시키면서, 동시에 사용자 액션에 대한 더 신속한 응답에 관하여 사용자 편의성을 개선할 수 있다.
도 4 및 관련 논의는 사용자 액션에 응답하여 하나 이상의 직접 조작의 가능화를 결정하기 위한 히트-테스트를 수행하는 데 사용될 수 있는, 범용 컴퓨팅 장치에 대한 간략하고 일반적인 설명을 제공하기 위해 의도된 것이다.
예를 들어, 컴퓨팅 장치(400)는 서버, 데스크톱 컴퓨터, 휴대용 컴퓨터, 스마트폰, 특수 목적 컴퓨터, 또는 유사한 장치로서 사용될 수 있다. 예시적인 기본 구성(402)에서, 컴퓨팅 장치(400)는 하나 이상의 프로세서(404) 및 시스템 메모리(406)를 포함할 수 있다. 메모리 버스(408)는 프로세서(404)와 시스템 메모리(406) 간의 통신을 위해 사용될 수 있다. 기본 구성(402)은 도 4에서 안쪽 파선 내의 구성 요소들에 의해 예시되어 있다.
원하는 구성에 따라, 프로세서(404)는 마이크로프로세서(μP), 마이크로컨트롤러(μC), 디지털 신호 프로세서(DSP), 또는 이들의 임의의 조합을 포함하는(그러나 이들로 제한되지 않는) 임의의 유형일 수 있다. 프로세서(404)는 레벨 캐시 메모리(412)와 같은 하나 이상의 캐싱 레벨, 하나 이상의 프로세서 코어(414), 및 레지스터(416)를 포함할 수 있다. 예시적인 프로세서 코어(414)는 (각각) 산술 논리 유닛(ALU), 부동 소수점 유닛(FPU), 디지털 신호 처리 코어(DSP 코어), 또는 이들의 임의의 조합을 포함할 수 있다. 예시적인 메모리 컨트롤러(418)는 또한 프로세서(404)와 함께 사용될 수 있거나, 일부 구현들에서 메모리 컨트롤러(418)는 프로세서(404)의 내부 부분일 수 있다.
원하는 구성에 따라, 시스템 메모리(406)는 휘발성 메모리(예를 들어 RAM), 비휘발성 메모리(예를 들어 ROM, 플래시 메모리 등) 또는 이들의 임의의 조합을 포함하는(그러나 이들로 제한되지 않는) 임의의 유형일 수 있다. 시스템 메모리(406)는 운영 체제(420), 애플리케이션(422), 및 프로그램 데이터(424)를 포함할 수 있다. 애플리케이션(422)은 하나 이상의 SCL 및 SCL 처리 모듈(426)을 포함할 수 있으며, 이는 애플리케이션의 필수적인 부분이거나 그 자체로 개별적인 애플리케이션일 수 있다. 애플리케이션(422)의 실행은 관련된 사용자 인터페이스가 제시되게 할 수 있다. 사용자 인터페이스를 통해 사용자 액션을 검출하는 것에 응답하여, 애플리케이션이 적어도 하나의 SCL을 포함하는지가 결정될 수 있다. SCL 처리 모듈(426)은, 히트를 식별할 수 있는, 사용자 액션과 적어도 하나의 SCL의 하나 이상의 픽셀의 교차를 검출하기 위해 애플리케이션의 적어도 하나의 SCL의 전후 처리를 수행할 수 있다. 애플리케이션을 통한 개체의 직접 조작이 적어도 하나의 SCL에 의해 가능화되는지는 히트에 응답하여 결정될 수 있고, 애플리케이션을 통한 개체의 직접 조작이 적어도 하나의 SCL에 의해 가능화되면, 애플리케이션을 통한 개체의 직접 조작이 자동으로 개시될 수 있다. 이와 달리, 애플리케이션을 통한 개체의 직접 조작이 적어도 하나의 SCL에 의해 가능화되지 않으면, 애플리케이션을 통한 개체의 직접 조작이 불능화될 수 있다. 프로그램 데이터(424)는, 여러 데이터 중에서, 본 명세서에서 설명된 바와 같은, SCL 및 직접 조작 유형 정의들에 기초한 직접 조작의 가능화에 관련된 프로세스 데이터(428)를 포함할 수 있다.
컴퓨팅 장치(400)는 기본 구성(402)과 임의의 원하는 장치 및 인터페이스 간의 통신을 용이하게 하는 추가적인 특징 또는 기능, 및 추가적인 인터페이스를 가질 수 있다. 예를 들어, 버스/인터페이스 컨트롤러(430)는 저장 인터페이스 버스(434)를 통해 기본 구성(402)과 하나 이상의 데이터 저장 장치(432) 간의 통신을 용이하게 하는 데 사용될 수 있다. 데이터 저장 장치들(432)은 하나 이상의 착탈식 저장 장치(436), 하나 이상의 비착탈식 저장 장치(438), 또는 이들의 조합일 수 있다. 착탈식 저장 장치 및 비착탈식 저장 장치의 예는 몇 가지만 예를 들면 플렉시블 디스크 드라이브 및 하드 디스크 드라이브(HDD)와 같은 자기 디스크 장치, 컴팩트 디스크(CD) 드라이브 또는 디지털 다용도 디스크(DVD) 드라이브와 같은 광 디스크 드라이브, 솔리드 스테이트 드라이브(SSD), 테이프 드라이브를 포함한다. 예시적인 컴퓨터 저장 매체는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 착탈식 및 비착탈식 매체를 포함할 수 있다.
시스템 메모리(406), 착탈식 저장 장치들(436) 및 비착탈식 저장 장치들(438)은 컴퓨터 저장 매체의 예들이다. 컴퓨터 저장 매체는, RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, 디지털 다용도 디스크(DVD), 솔리드 스테이트 드라이브, 또는 다른 광학 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 다른 자기 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있으며 컴퓨팅 장치(400)에 의해 액세스될 수 있는 임의의 다른 매체를 포함하지만 이에 제한되는 것은 아니다. 임의의 그러한 컴퓨터 저장 매체는 컴퓨팅 장치(400)의 일부일 수 있다.
컴퓨팅 장치(400)는 또한 다양한 인터페이스 장치(예를 들어, 하나 이상의 출력 장치(442), 하나 이상의 주변 장치 인터페이스(444), 및 하나 이상의 통신 장치(446))로부터 버스/인터페이스 컨트롤러(430)를 통해 기본 구성(402)으로의 통신을 용이하게 하기 위한 인터페이스 버스(440)를 포함할 수 있다. 예시적인 출력 장치들(442) 중 일부는 그래픽 처리 장치(448) 및 오디오 처리 장치(450)를 포함하며, 이들은 하나 이상의 AV 포트(452)를 통해 디스플레이 또는 스피커와 같은 다양한 외부 장치들과 통신하도록 구성될 수 있다. 하나 이상의 예시적인 주변 장치 인터페이스(444)는 직렬 인터페이스 컨트롤러(454) 또는 병렬 인터페이스 컨트롤러(456)를 포함할 수 있으며, 이들은 하나 이상의 I/O 포트(458)를 통해 입력 장치들(예를 들어, 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등) 또는 다른 주변 장치들(예를 들어, 프린터, 스캐너 등)과 같은 외부 장치들과 통신하도록 구성될 수 있다. 예시적인 통신 장치(446)는 네트워크 컨트롤러(460)를 포함하며, 이는 하나 이상의 통신 포트(464)를 통해 네트워크 통신 링크를 통해 하나 이상의 다른 컴퓨팅 장치(462)와의 통신을 용이하게 하도록 배열될 수 있다. 하나 이상의 다른 컴퓨팅 장치(462)는 서버, 클라이언트 장치, 및 유사한 장치를 포함할 수 있다.
네트워크 통신 링크는 통신 매체의 일례일 수 있다. 통신 매체는 전형적으로 반송파 또는 다른 전송 메커니즘과 같은, 변조된 데이터 신호 내에 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈, 또는 다른 데이터에 의해 구현될 수 있으며, 임의의 정보 전달 매체를 포함할 수 있다. "변조된 데이터 신호"는 그 특성들 중 하나 이상이 신호 내에 정보를 인코딩하는 방식으로 설정되거나 변경된 신호일 수 있다. 제한이 아니라 예로서, 통신 매체는 유선 네트워크 또는 직접 유선 연결과 같은 유선 매체, 및 음향, 무선 주파수(RF), 마이크로파, 적외선(IR) 및 다른 무선 매체와 같은 무선 매체를 포함할 수 있다. 본 명세서에서 사용된 컴퓨터 판독 가능 매체라는 용어는 저장 매체와 통신 매체 둘 다를 포함할 수 있다.
컴퓨팅 장치(400)는 상기 기능들 중 임의의 것을 포함하는 범용 또는 특수 서버, 메인프레임, 또는 유사한 컴퓨터의 일부로서 구현될 수 있다. 컴퓨팅 장치(400)는 랩톱 컴퓨터와 비-랩톱 컴퓨터 구성 둘 다를 포함하는 개인용 컴퓨터로서 구현될 수도 있다.
예시적인 실시예들은 또한 하나 이상의 직접 조작의 가능화를 결정하기 위한 히트-테스트를 수행하는 방법들을 포함할 수 있다. 이러한 방법들은 본 명세서에서 설명된 구조들을 포함하여, 임의의 수의 방식으로 구현할 수 있다. 하나의 이러한 방식은 본 개시에서 설명된 유형의 장치들의, 머신 작업들에 의한 것일 수 있다. 또 다른 옵션의 방식은, 방법들의 개개의 동작들 중 하나 이상의 동작이 그 동작들 중 일부는 하나 이상의 인간 조작자가 수행하는 반면 다른 조작들은 머신들에 의해 수행되는 것과 연대하여 수행되는 것일 수 있다. 이 인간 조작자들은 서로 함께 배치될 필요는 없고, 각각은 단지 프로그램의 일부를 수행하는 머신을 구비할 수 있다. 다른 실시예들에서, 인간 상호 작용은 예를 들어 머신 자동화될 수 있는 미리 선택된 기준들에 의해 자동화될 수 있다.
도 5는 실시예들에 따른, 사용자 액션에 응답하여 하나 이상의 직접 조작의 가능화를 결정하기 위한 히트-테스트를 수행하는 방법의 프로세스(500)에 대한 논리 흐름도를 예시한다. 프로세스(500)는 서버 또는 다른 시스템상에 구현될 수 있다.
프로세스(500)는 동작 510과 함께 시작되며, 여기서 애플리케이션이 그 애플리케이션과 관련된 사용자 인터페이스를 통해 사용자 액션을 검출하도록 구성될 수 있다. 사용자 액션은, 예를 들어, 탭 및 스와이프 액션을 포함하는 터치 입력, 제스처 입력, 펜 입력, 마우스 입력, 및/또는 키보드 입력을 포함할 수 있다. 애플리케이션이 적어도 하나의 SCL을 포함하는 경우, 애플리케이션의 SCL 처리 모듈이 각각의 SCL의 전후 처리를 수행하도록 구성될 수 있다.
동작 520에서, 전후 처리 동안에 사용자 액션과 SCL의 하나 이상의 픽셀의 교차를 검출하는 것에 응답하여 히트가 식별될 수 있다. 픽셀은 사용자 인터페이스상에 디스플레이된 애플리케이션의 제어 요소, 텍스트 요소, 및/또는 그래픽 요소와 같은, 사용자 액션과 관련된 개체에 대응하는 불투명 픽셀일 수 있다. 개체의, 전부는 아닐지라도, 적어도 일부가 사용자 액션에 근접한 사용자 인터페이스상의 영역에 위치할 수 있다.
그 후 동작 530에서, 애플리케이션은 히트에 응답하여 애플리케이션을 통한 개체의 직접 조작이 SCL에 의해 가능화되는지를 결정하도록 구성될 수 있다. SCL은 애플리케이션을 통한 개체의 직접 조작의 가능화에 관한 결정이 즉시 이루어질 수 있는 애플리케이션 계층이다. 각각의 SCL에 대해, 직접 조작의 하나 이상의 유형이 정의될 수 있으며, 직접 조작의 각각의 유형에 대해 직접 조작이 SCL에 의해 가능화 또는 불능화되는지가 추가로 정의될 수 있다. 직접 조작의 유형은 사용자 액션에 대한 개체의 거동에 기초하여 결정될 수 있고, 여러 예들 중에서, 개체의 패닝, 주밍, 및 선택을 포함할 수 있다.
동작 540에서, 애플리케이션을 통한 개체의 직접 조작이 SCL에 의해 가능화되면, 애플리케이션을 통한 개체의 직접 조작이 자동으로 개시될 수 있다. 이와 달리, 애플리케이션을 통한 개체의 직접 조작이 SCL에 의해 가능화되지 않으면, 애플리케이션을 통한 개체의 직접 조작이 불능화될 수 있다.
프로세스(500)에 포함된 동작들은 예시를 위한 것이다. 사용자 액션에 응답하여 직접 조작의 가능화를 결정하기 위한 히트-테스트의 수행은 본 명세서에서 설명된 원리를 사용하여 더 적은 수의 단계 또는 추가적인 단계를 갖는 유사한 프로세스들에 의해 구현될 수 있을 뿐만 아니라, 상이한 동작 순서로 구현될 수 있다.
일부 실시예들에 따르면, 히트-테스트를 수행하는 방법이 제공된다. 이 방법은 애플리케이션과 관련된 사용자 인터페이스를 통해 사용자 액션을 검출하는 수단, 및 상기 사용자 액션과 상기 애플리케이션의 적어도 하나의 SCL의 하나 이상의 픽셀의 교차를 검출하는 것에 응답하여 히트를 식별하는 수단, 상기 히트에 응답하여 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되는지를 결정하는 수단, 및 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되면 상기 애플리케이션을 통한 개체의 직접 조작을 자동으로 개시하는 수단을 포함할 수 있다.
일부 예들에 따르면, 히트-테스트를 수행하는 방법이 제공된다. 예시적인 방법은 애플리케이션과 관련된 사용자 인터페이스를 통해 사용자 액션을 검출하는 단계, 및 상기 사용자 액션과 상기 애플리케이션의 적어도 하나의 SCL의 하나 이상의 픽셀의 교차를 검출하는 것에 응답하여 히트를 식별하는 단계를 포함할 수 있다. 이 예시적인 방법은 또한, 상기 히트에 응답하여 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되는지를 결정하는 단계, 및 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되면 상기 애플리케이션을 통한 개체의 직접 조작을 자동으로 개시하는 단계를 포함할 수 있다.
다른 예들에서, 상기 애플리케이션을 통한 개체의 직접 조작이 적어도 하나의 SCL에 의해 가능화되지 않으면 상기 직접 조작은 불능화될 수 있다. 상기 애플리케이션과 관련된 상기 사용자 인터페이스를 통해 상기 사용자 액션을 검출하는 것에 응답하여, 상기 애플리케이션이 상기 적어도 하나의 SCL을 포함하는지가 결정될 수 있다. 상기 사용자 액션과 상기 적어도 하나의 SCL의 하나 이상의 픽셀의 교차를 검출하기 위해 상기 애플리케이션의 SCL 처리 모듈에서 상기 애플리케이션의 상기 적어도 하나의 SCL의 전후 처리가 수행될 수 있다. 상기 사용자 액션에 근접한 상기 사용자 인터페이스상의 영역의 텍스처 콘텐츠에 기초하여 상기 전후 처리를 수행할지가 결정될 수 있다.
추가의 예들에서, 각각의 SCL에 대해 직접 조작의 하나 이상의 유형이 정의될 수 있다. 직접 조작의 각각의 유형에 대해, 상기 히트에 응답하여 상기 직접 조작이 상기 SCL에 의해 가능화되는지 불능화되는지가 정의될 수 있다. 상기 사용자 액션은 터치 입력, 제스처 입력, 마우스 입력, 펜 입력, 시선 추적 입력, 음성 커맨드 입력, 자이로스코픽 입력, 및/또는 키보드 입력을 포함할 수 있다.
다른 예들에 따르면, 히트-테스트를 수행하는 컴퓨팅 장치가 설명될 수 있다. 예시적인 컴퓨팅 장치는 명령어들을 저장하도록 구성된 메모리, 및 상기 메모리에 결합된 프로세서를 포함할 수 있으며, 상기 프로세서는 하나 이상의 SCL을 포함하는 애플리케이션을 실행하고 상기 애플리케이션과 관련된 사용자 인터페이스가 제시되게 한다. 상기 애플리케이션은, 상기 애플리케이션과 관련된 상기 사용자 인터페이스를 통해 사용자 액션을 검출하고, 상기 사용자 액션과 상기 SCL들 중 적어도 하나의 SCL의 하나 이상의 픽셀의 교차를 검출하는 것에 응답하여 히트를 식별하도록 구성될 수 있다. 상기 애플리케이션은 또한 상기 히트에 응답하여 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되는지를 결정하고, 상기 적어도 하나의 SCL이 상기 애플리케이션을 통한 상기 개체의 직접 조작을 가능화하면 상기 애플리케이션을 통한 상기 개체의 직접 조작을 자동으로 개시하도록 구성될 수 있다.
다른 실시예들에서, 상기 적어도 하나의 SCL의 상기 하나 이상의 픽셀은 불투명할 수 있다. 상기 적어도 하나의 SCL의 상기 하나 이상의 픽셀은 상기 애플리케이션과 관련된 상기 사용자 인터페이스상에 디스플레이된 개체에 대응할 수 있다. 상기 개체의 적어도 일부는 상기 사용자 액션에 근접한 상기 사용자 인터페이스상의 영역에 위치할 수 있다. 상기 직접 조작의 유형은 상기 사용자 액션에 대한 상기 개체의 거동에 기초하여 결정될 수 있으며, 여기서 상기 직접 조작의 유형은 패닝, 주밍, 및/또는 선택을 포함한다.
추가의 실시예들에서, 상기 SCL의 수는 상기 애플리케이션의 유형에 의존할 수 있으며, 여기서 상기 애플리케이션은 워드 프로세싱 애플리케이션, 스프레드시트 애플리케이션, 및 프레젠테이션 애플리케이션 중 하나 이상이다. 상기 애플리케이션과 관련된 상기 사용자 인터페이스는, 클라이언트 장치에서 상기 애플리케이션의 실행시에 상기 클라이언트 장치의 디스플레이를 통해 사용자에게 제시될 수 있다.
일부 예들에 따르면, 히트-테스트를 수행하기 위한 명령어들이 저장된 컴퓨터 판독 가능 메모리 장치들이 설명될 수 있다. 예시적인 명령어들은 애플리케이션의 사용자 인터페이스를 통해 사용자 액션을 검출하는 단계, 및 상기 사용자 액션과 적어도 하나의 SCL의 하나 이상의 픽셀의 교차를 검출하는 것에 응답하여 히트를 식별하는 단계를 포함할 수 있다. 예시적인 명령어들은 또한, 상기 히트에 응답하여 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되는지를 결정하는 단계, 및 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되면 상기 애플리케이션을 통한 개체의 직접 조작을 자동으로 개시하는 단계, 또는 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되지 않으면 상기 직접 조작을 불능화하는 단계를 포함할 수 있다.
다른 예들에서, 각각의 SCL에 대해 직접 조작의 하나 이상의 유형이 정의될 수 있다. 직접 조작의 각각의 유형에 대해, 상기 히트에 응답하여 상기 직접 조작이 상기 SCL에 의해 가능화되는지 불능화되는지가 정의될 수 있다.
상기 명세서, 예들 및 데이터는 실시예들의 구성의 제조 및 사용에 대한 완전한 설명을 제공한다. 본 주제가 구조적 특징들 및/또는 방법론적 동작들에 특정한 언어로 설명되었지만, 첨부된 청구항들에서 정의된 주제는 전술한 특정한 특징들 또는 동작들로 반드시 제한되는 것은 아니라는 것을 이해해야 한다. 오히려, 전술한 특정한 특징들 및 동작들은 청구항들 및 실시예들을 구현하는 예시적인 형태들로서 개시된다.

Claims (15)

  1. 히트-테스트를 수행하는 방법으로서,
    애플리케이션과 관련된 사용자 인터페이스를 통해 사용자 액션을 검출하는 단계;
    상기 사용자 액션과, 상기 애플리케이션의 적어도 하나의 특수 콘텐츠 계층(special content layer; SCL)의 하나 이상의 픽셀의 교차(intersection)를 검출하는 것에 응답하여, 히트를 식별하는 단계;
    상기 히트에 응답하여 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화(enable)되는지를 결정하는 단계; 및
    상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되면, 상기 애플리케이션을 통한 개체의 직접 조작을 자동으로 개시하는 단계
    를 포함하는, 히트-테스트를 수행하는 방법.
  2. 제1항에 있어서, 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되지 않으면, 상기 직접 조작을 불능화(disable)하는 단계를 더 포함하는, 히트-테스트를 수행하는 방법.
  3. 제1항에 있어서, 상기 애플리케이션과 관련된 사용자 인터페이스를 통해 사용자 액션을 검출하는 단계에 응답하여, 상기 애플리케이션이 상기 적어도 하나의 SCL을 포함하는지를 결정하는 단계를 더 포함하는, 히트-테스트를 수행하는 방법.
  4. 제1항에 있어서, 상기 사용자 액션과 상기 적어도 하나의 SCL의 하나 이상의 픽셀의 교차를 검출하기 위해, 상기 애플리케이션의 SCL 처리 모듈에서 상기 애플리케이션의 상기 적어도 하나의 SCL의 전후 처리(front to back processing)를 수행하는 단계를 더 포함하는, 히트-테스트를 수행하는 방법.
  5. 제4항에 있어서, 상기 사용자 액션에 근접한 상기 사용자 인터페이스 상의 영역의 텍스처 콘텐츠에 기초하여 상기 전후 처리를 수행할지를 결정하는 단계를 더 포함하는, 히트-테스트를 수행하는 방법.
  6. 제1항에 있어서, 상기 사용자 액션은, 터치 입력, 제스처 입력, 마우스 입력, 펜 입력, 시선 추적 입력, 음성 커맨드 입력, 자이로스코픽 입력, 및/또는 키보드 입력 중 하나 이상을 포함하는 것인, 히트-테스트를 수행하는 방법.
  7. 히트-테스트를 수행하는 컴퓨팅 장치로서,
    명령어들을 저장하도록 구성된 메모리; 및
    상기 메모리에 결합된 프로세서
    를 포함하고, 상기 프로세서는, 하나 이상의 특수 콘텐츠 계층(SCL)을 포함하는 애플리케이션을 실행하고, 상기 애플리케이션과 관련된 사용자 인터페이스가 제시되게 하고, 상기 애플리케이션은,
    상기 애플리케이션과 관련된 상기 사용자 인터페이스를 통해 사용자 액션을 검출하고;
    상기 사용자 액션과, 상기 SCL들 중 적어도 하나의 SCL의 하나 이상의 픽셀의 교차를 검출하는 것에 응답하여, 히트를 식별하고;
    상기 히트에 응답하여 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되는지를 결정하고;
    상기 적어도 하나의 SCL이 상기 애플리케이션을 통한 상기 개체의 직접 조작을 가능화하면, 상기 애플리케이션을 통한 상기 개체의 직접 조작을 자동으로 개시하도록
    구성되는 것인, 히트-테스트를 수행하는 컴퓨팅 장치.
  8. 제7항에 있어서, 상기 적어도 하나의 SCL의 상기 하나 이상의 픽셀은, 상기 애플리케이션과 관련된 상기 사용자 인터페이스 상에 디스플레이된 상기 개체에 대응하는 것인, 히트-테스트를 수행하는 컴퓨팅 장치.
  9. 제8항에 있어서, 상기 개체의 적어도 일부는, 상기 사용자 액션에 근접한 상기 사용자 인터페이스 상의 영역에 위치되는 것인, 히트-테스트를 수행하는 컴퓨팅 장치.
  10. 제8항에 있어서, 상기 직접 조작의 유형은, 상기 사용자 액션에 대한 상기 개체의 거동에 기초하여 결정되며, 패닝(panning), 주밍(zooming), 및 선택하기 중 하나를 포함하는 것인, 히트-테스트를 수행하는 컴퓨팅 장치.
  11. 제7항에 있어서, 상기 SCL의 수는 상기 애플리케이션의 유형에 의존하는 것인, 히트-테스트를 수행하는 컴퓨팅 장치.
  12. 제7항에 있어서, 상기 애플리케이션과 관련된 상기 사용자 인터페이스는, 클라이언트 장치에서 상기 애플리케이션의 실행시에 상기 클라이언트 장치의 디스플레이를 통해 사용자에게 제시되는 것인, 히트-테스트를 수행하는 컴퓨팅 장치.
  13. 히트-테스트를 수행하기 위한 명령어들이 저장된 컴퓨터 판독 가능 메모리 장치로서, 상기 명령어들은,
    애플리케이션의 사용자 인터페이스를 통해 사용자 액션을 검출하는 것;
    상기 사용자 액션과, 적어도 하나의 특수 콘텐츠 계층(SCL)의 하나 이상의 픽셀의 교차를 검출하는 것에 응답하여, 히트를 식별하는 것;
    상기 히트에 응답하여 상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되는지를 결정하는 것; 및
    상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되면, 상기 애플리케이션을 통한 개체의 직접 조작을 자동으로 개시하는 것, 또는
    상기 애플리케이션을 통한 개체의 직접 조작이 상기 적어도 하나의 SCL에 의해 가능화되지 않으면, 상기 직접 조작을 불능화하는 것
    을 포함하는 것인, 히트-테스트를 수행하기 위한 명령어들이 저장된 컴퓨터 판독 가능 메모리 장치.
  14. 제13항에 있어서, 상기 명령어들은,
    각각의 SCL에 대해, 직접 조작의 하나 이상의 유형을 정의하는 것을 더 포함하는 것인, 히트-테스트를 수행하기 위한 명령어들이 저장된 컴퓨터 판독 가능 메모리 장치.
  15. 제14항에 있어서, 상기 명령어들은,
    직접 조작의 각각의 유형에 대해, 상기 히트에 응답하여 상기 직접 조작이 상기 SCL에 의해 가능화되는지 불능화되는지를 정의하는 것을 더 포함하는 것인, 히트-테스트를 수행하기 위한 명령어들이 저장된 컴퓨터 판독 가능 메모리 장치.
KR1020177013481A 2014-10-22 2015-10-15 사용자 액션에 응답하여 직접 조작의 가능화를 결정하는 히트-테스트 KR20170072281A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/521,368 US20160117080A1 (en) 2014-10-22 2014-10-22 Hit-test to determine enablement of direct manipulations in response to user actions
US14/521,368 2014-10-22
PCT/US2015/055618 WO2016064642A1 (en) 2014-10-22 2015-10-15 Hit-test to determine enablement of direct manipulations in response to user actions

Publications (1)

Publication Number Publication Date
KR20170072281A true KR20170072281A (ko) 2017-06-26

Family

ID=54365383

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177013481A KR20170072281A (ko) 2014-10-22 2015-10-15 사용자 액션에 응답하여 직접 조작의 가능화를 결정하는 히트-테스트

Country Status (11)

Country Link
US (1) US20160117080A1 (ko)
EP (1) EP3210101B1 (ko)
JP (1) JP6662861B2 (ko)
KR (1) KR20170072281A (ko)
CN (1) CN107077272B (ko)
AU (1) AU2015336277B2 (ko)
BR (1) BR112017005798A2 (ko)
CA (1) CA2964471A1 (ko)
MX (1) MX2017005193A (ko)
RU (1) RU2705437C2 (ko)
WO (1) WO2016064642A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3308288A4 (en) * 2015-06-12 2019-01-23 Nureva Inc. METHOD AND DEVICE FOR ADMINISTERING AND ORGANIZING OBJECTS IN A VIRTUAL MEMORY
US10163184B2 (en) 2016-08-17 2018-12-25 Adobe Systems Incorporated Graphics performance for complex user interfaces

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737554A (en) * 1995-10-31 1998-04-07 Apple Computer, Inc. System and method of using object sensitivity for selecting computer-generated objects
US6049325A (en) * 1997-05-27 2000-04-11 Hewlett-Packard Company System and method for efficient hit-testing in a computer-based system
US6369830B1 (en) * 1999-05-10 2002-04-09 Apple Computer, Inc. Rendering translucent layers in a display system
US6795089B2 (en) * 2000-12-20 2004-09-21 Microsoft Corporation Dynamic, live surface and model elements for visualization and modeling
US20030002729A1 (en) * 2001-06-14 2003-01-02 Wittenbrink Craig M. System for processing overlapping data
US7137077B2 (en) * 2002-07-30 2006-11-14 Microsoft Corporation Freeform encounter selection tool
US7262785B2 (en) * 2003-08-21 2007-08-28 Microsoft Corporation Ink editing architecture
GB0502891D0 (en) * 2005-02-12 2005-03-16 Next Device Ltd User interfaces
US20080011819A1 (en) * 2006-07-11 2008-01-17 Microsoft Corporation Microsoft Patent Group Verification of hit testing
US20090100383A1 (en) * 2007-10-16 2009-04-16 Microsoft Corporation Predictive gesturing in graphical user interface
US20090327965A1 (en) * 2008-06-27 2009-12-31 Microsoft Corporation Selection of items in a virtualized view
US9684521B2 (en) * 2010-01-26 2017-06-20 Apple Inc. Systems having discrete and continuous gesture recognizers
WO2011061603A1 (en) * 2009-11-20 2011-05-26 Nokia Corporation Methods and apparatuses for generating and utilizing haptic style sheets
US8589950B2 (en) * 2011-01-05 2013-11-19 Blackberry Limited Processing user input events in a web browser
US20120185787A1 (en) * 2011-01-13 2012-07-19 Microsoft Corporation User interface interaction behavior based on insertion point
US20130125066A1 (en) * 2011-11-14 2013-05-16 Microsoft Corporation Adaptive Area Cursor
CA2763328C (en) * 2012-01-06 2015-09-22 Microsoft Corporation Supporting different event models using a single input source
US9286081B2 (en) * 2012-06-12 2016-03-15 Apple Inc. Input device event processing
US9383885B2 (en) * 2012-06-13 2016-07-05 Microsoft Technology Licensing, Llc Hit testing curve-based shapes using polygons
US8874969B2 (en) * 2012-07-09 2014-10-28 Microsoft Corporation Independent hit testing
US9021437B2 (en) * 2012-07-13 2015-04-28 Microsoft Technology Licensing, Llc Declarative style rules for default touch behaviors
CN103577322B (zh) * 2012-08-08 2015-08-12 腾讯科技(深圳)有限公司 一种点击测试方法和装置
US9927959B2 (en) * 2012-10-05 2018-03-27 Tactual Labs Co. Hybrid systems and methods for low-latency user input processing and feedback

Also Published As

Publication number Publication date
EP3210101B1 (en) 2018-11-28
JP2017533501A (ja) 2017-11-09
MX2017005193A (es) 2017-07-27
CA2964471A1 (en) 2016-04-28
CN107077272B (zh) 2020-12-01
JP6662861B2 (ja) 2020-03-11
WO2016064642A1 (en) 2016-04-28
RU2017113771A (ru) 2018-10-23
US20160117080A1 (en) 2016-04-28
EP3210101A1 (en) 2017-08-30
CN107077272A (zh) 2017-08-18
RU2705437C2 (ru) 2019-11-07
AU2015336277B2 (en) 2020-06-18
RU2017113771A3 (ko) 2019-04-25
BR112017005798A2 (pt) 2017-12-12
AU2015336277A1 (en) 2017-04-13

Similar Documents

Publication Publication Date Title
US9448694B2 (en) Graphical user interface for navigating applications
KR101597844B1 (ko) 터치 스크린 상의 모호한 입력들의 해석
US9152321B2 (en) Touch sensitive UI technique for duplicating content
US20140344765A1 (en) Touch Sensitive UI Pinch and Flick Techniques for Managing Active Applications
US10419585B2 (en) Dynamically surfacing UI controls
US20140306898A1 (en) Key swipe gestures for touch sensitive ui virtual keyboard
US20150082242A1 (en) Providing Context Menu Based on Predicted Commands
US11334237B2 (en) Software defined icon interactions with multiple and expandable layers
KR20130108285A (ko) 드래그-가능한 탭
KR20170037957A (ko) 스프레드시트의 데이터세트를 폼 기반 뷰 내에 표현하는 기법
US20140215393A1 (en) Touch-based multiple selection
WO2022048513A1 (zh) 搜索展示方法、装置及电子设备
JP2017501479A (ja) ページ要素の表示
MX2014002955A (es) Entrada de formula para dispositivos de presentacion limitada.
US20130044061A1 (en) Method and apparatus for providing a no-tap zone for touch screen displays
RU2649945C2 (ru) Способ улучшения распознавания касаний и электронное устройство для его осуществления
KR101060175B1 (ko) 터치스크린 제어방법, 이를 위한 기록매체 및 이를 이용하는 클라우드 컴퓨팅 제어방법
EP3210101B1 (en) Hit-test to determine enablement of direct manipulations in response to user actions
US9323448B2 (en) Tracking user interactions with a mobile UI to facilitate UI optimizations
CN113268182A (zh) 应用图标的管理方法和电子设备
WO2017045277A1 (zh) 搜索方法、装置、设备及非易失性计算机存储介质
US9635170B2 (en) Apparatus and method for controlling terminal to expand available display region to a virtual display space
CN110764683A (zh) 一种处理操作方法及终端
CN108027673B (zh) 扩展用户触摸输入
US20160117000A1 (en) Touchscreen input method and apparatus

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application