KR20080042835A - 사용자 인터페이스의 액티브 콘텐트에서의 확장가능한시각적 이펙트 - Google Patents

사용자 인터페이스의 액티브 콘텐트에서의 확장가능한시각적 이펙트 Download PDF

Info

Publication number
KR20080042835A
KR20080042835A KR1020087003938A KR20087003938A KR20080042835A KR 20080042835 A KR20080042835 A KR 20080042835A KR 1020087003938 A KR1020087003938 A KR 1020087003938A KR 20087003938 A KR20087003938 A KR 20087003938A KR 20080042835 A KR20080042835 A KR 20080042835A
Authority
KR
South Korea
Prior art keywords
effect
visual element
input
output
dag
Prior art date
Application number
KR1020087003938A
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 KR20080042835A publication Critical patent/KR20080042835A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Materials For Medical Uses (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Studio Circuits (AREA)

Abstract

버튼, 콤보박스, 비디오, 에디트 필드 등과 같은 액티브 콘텐트에 시각적 이펙트를 적용하기 위한 방법 및 시스템이 제공되며, 여기서 액티브 콘텐트의 상호작용은 그 후에도 유지된다. 또한, 본 명세서는 개발업자가 새로운 시각적 이펙트들을 구축하고 이들을 액티브 콘텐트에 적용시키는 메커니즘을 제공한다.
Figure P1020087003938
시각적 요소, 액티브 콘텐트, 시각적 이펙트, DAG, 히트 이벤트, 히트 테스팅

Description

사용자 인터페이스의 액티브 콘텐트에서의 확장가능한 시각적 이펙트{EXTENSIBLE VISUAL EFFECTS ON ACTIVE CONTENT IN USER INTERFACES}
때때로, 애플리케이션 개발업자들은, 해당 사용자 인터페이스를 다른 사용자 인터페이스들에 대하여 구별하는 고유의 요소를 포함하는 사용자 인터페이스를 구축하고/하거나, 사용자가 그 사용자 인터페이스를 통해 애플리케이션을 이용하여 작업 중일 때 사용자의 경험을 강화시키기를 원한다. 개발업자가 사용자 인터페이스를 커스터마이즈하고 싶어하는 한가지 방식은 사용자 인터페이스 변화를 알리거나 사용자 인터페이스의 요소를 변경하기 위하여 발생되는 시각적 이펙트(effect)를 생성하는 것이다. 그러나, 현재 플랫폼은 사용자 인터페이스의 일부로서 사용되는 콘텐트에 시각적 이펙트를 적용시키는 것을 지원하지 않는다.
이하에는, 독자에게 기본적인 이해를 제공하기 위하여 본 명세서의 간략화된 개요를 나타낸다. 본 발명의 상세한 설명은 명세서의 광범위한 개요가 아니고, 본 발명의 핵심/결정적인 요소를 식별하거나 본 발명의 범위를 설명하는 것도 아니다. 단지, 후술되는 보다 상세한 실시예의 도입부로서, 여기서 개시된 일부 개념들을 간략화된 형태로 나타내기 위한 것이다.
본 명세서는 버튼, 콤보박스(combobox), 비디오, 에디트 필드 등과 같은 액티브 콘텐트(active content)에 시각적 이펙트를 적용하기 위한 방법 및 시스템을 설명하는 것이며, 여기서 액티브 콘텐트의 상호작용은 그 후에도 계속 유지된다. 또한, 본 명세서는 개발업자가 새로운 시각적 이펙트를 구축하고 이러한 새로운 시각적 이펙트를 액티브 콘텐트에 적용시키는 메커니즘을 제공한다. 예를 들어, 이러한 시각적 이펙트는 블러(blur), 글로우(glow), 플래시(flash), 분해(explode), 확대(expand), 축소(shrink), 페이드(fade), 그레이(gray), 스월(swirl), 웨이브(wave), 조합(combine), 스파클(sparkle) 또는 액티브 콘텐트에 적용될 수 있는 임의의 다른 시각적 이펙트를 포함한다.
첨부 도면과 관련하여 고려되는 이하의 실시예를 참조함으로써 본 발명의 특징이 보다 잘 이해됨에 따라 여러 부수적인 특징들도 보다 용이하게 이해될 것이다.
본 명세서는 첨부 도면의 관점에서 읽혀지는 이하의 실시예로부터 보다 잘 이해될 것이다.
도 1은 예시적인 Effect 객체를 도시하는 블록도.
도 2는 다양한 입출력 핀들을 포함하는 예시적인 이펙트 객체를 도시하는 블록도.
도 3은 각각이 다양한 입출력 포맷들을 지원하는 2개의 EffectPrimitive들을 포함하는 예시적인 이펙트 객체를 도시하는 블록도.
도 4는 예시적인 이펙트 객체를 도시하는 블록도.
도 5는 분해 이펙트가 적용되기 전후의 예시적인 버튼을 도시하는 블록도.
도 6은 시각적 요소에 하나 이상의 이펙트를 제공하기 위한 예시적인 방법을 도시하는 블록도.
도 7은 적용된 이펙트(들)를 갖는 시각적 요소에 대한 정확한 히트 테스팅(hit testing)을 위하여 히트 좌표(hit coordinate)를 변형하기 위한 예시적인 방법을 도시하는 블록도.
도 8은 본 명세서에 따른 하나 이상의 구현에서 사용될 수 있는 범용의 컴퓨팅 환경을 도시하는 블록도.
첨부 도면의 유사 부분들에는 유사 참조 부호를 사용하여 명시하였다.
첨부 도면과 관련하여 이하 제공되는 실시예는 본 발명의 예를 설명하기 위한 것이며, 본 발명의 예가 구성되거나 사용될 수 있는 유일한 형태를 나타내기 위하여 사용된 것이 아니다. 본 명세서는 예의 기능, 및 예를 구성하고 동작시키기 위한 단계들의 시퀀스를 설명한다. 그러나, 동일하거나 등가의 기능 및 시퀀스는 다른 예에 의해서도 수행될 수 있다.
비록 본 발명의 예가 여기서는 컴퓨터 시스템에서 구현되는 것으로 설명되고 도시되어 있지만, 설명되는 시스템은 일례로서 제공되는 것이지, 제한하기 위하여 제공되는 것이 아니다. 당업자에 의해 이해되는 바와 같이, 본 발명의 예는 여러 상이한 유형의 컴퓨팅 및 그래픽 시스템의 애플리케이션에 적절하다.
본 명세서를 통해 사용되는 여러 용어들은 이하에서 명백하게 정의된다. 이 하의 정의는 당업자에게 알려진 임의의 다른 정의들을 대체하기 위한 것이다.
액티브 콘텐트 - 소정 형태의 사용자 상호작용을 지원할 수 있거나 소정의 형태로 애니메이션(animated)되는 버튼, 콤보박스, 에디트 필드, 체크박스, 이미지, 비디오 등과 같은 시각적 요소. 액티브 콘텐트는 스크린에 표시되지 않으면서 메모리에 렌더링(rendering)될 수 있다.
Effect - Effect는 EffectGraph(즉, DAG(Direct Acyclic Graph))를 포함하는 객체이다.
EffectPrimitive - 이는 기본 이펙트이다. 이는 어떠한 하위 이펙트(children)도 포함하지 않는다. 이는 이펙트 개발업자가 일반적으로 생성하는 것이다. 이는 이펙트에 대하여 실제 화소 처리를 행하는 객체이다.
이펙트 - 이 용어는 Effect 또는 EffectPrimitive 중 어느 것이든지 사용되거나 특정될 수 있는 경우에 통상적으로 사용된다.
EffectGraph - 이는 전체 이펙트 그래프(즉, DAG들 중 하나의 DAG에서 가장 최상의 Effect인 어떤 Effect)를 말한다.
핀 - 이는 이펙트들을 함께 접속시키기 위하여 또는 다른 목적들을 위하여 이펙트가 노출시키는 접속 점(IMILBitmapEffectInputConnector를 통함)을 설명하는 데에 사용된다.
래스터 그래픽(Raster graphics) - 이는 일반적으로 직사각형 그리드 또는 비트맵의 형태인, 화소들의 집합과 같은 이미지들의 표현이다. 이 용어는 통상적 으로 "벡터 그래픽"과 반대되는 용어로 사용된다.
벡터 그래픽 - 기하학적 모델링으로도 알려진 바와 같이, 이는 컴퓨터 그래픽에서 이미지를 표현하기 위하여 점들, 선들, 곡선들 및 다각형들과 같은 기하학적 프리미티브들을 사용하는 것이다. 이 용어는 통상적으로 "래스터 그래픽"과 반대되는 용어로 사용된다.
시각적 요소 - 이는 메모리 또는 표시 장치, 전자 캔버스, 사용자 인터페이스 등에서 렌더링되는 버튼, 에디트 필드, 이미지, 메뉴, 아이콘 또는 임의의 기타 상호작용하는 그래픽 생성물 또는 애니메이션 그래픽 생성물과 같은 그래픽 생성물이다. 시각적 요소는 래스터 그래픽 요소, 벡터 그래픽 요소 또는 임의의 다른 유형의 그래픽 생성물일 수 있다.
도 1은 예시적인 Effect 객체(100)를 도시하는 블록도이다. Effect는 DAG를 형성하는 EffectPrimitive(104a - 104d)와 같은 하나 이상의 EffectPrimitive의 집합이다. 이 이펙트 DAG는 IMILBitmapEffect(106)를 노출시키는 단일 객체(100) 내부에서 통상적으로 캡슐화된다. Effect(100) 내부의 각 요소는 다른 Effect(즉, IMILBitmapEffect를 노출시킴) 또는 EffectPrimitive(즉, IMILBitmapEffectPrimitive(107)를 노출시킴) 중 어느 하나이다. 각 Effect는 입력(108)과 같은 0 이상의 입력 및 출력(109)과 같은 0 이상의 출력을 가질 수 있다. 각 입출력 핀은 예(101 및 102)와 같은 IMILBitmapEffectConnector로 설명된다. 이들은 이펙트 DAG를 통해 데이터 흐름 경로를 형성하기 위하여 예시적인 접 속(110)에 의하는 것과 같이 함께 접속되어 있다.
Effect(100)는 표시 장치, 캔버스, 사용자 인터페이스 등의 버튼, 에디트 필드, 비디오 그래픽 또는 임의의 기타 상호작용하는 시각적 요소(들) 또는 애니메이션 시각적 요소(들)와 같은 시각적 요소를 포함한, 비트맵 형태의 액티브 콘텐트를 위한 시각적 이펙트를 제공하는 데에 사용될 수 있다. 또한, Effect(100)는 비트맵이 표시된 적 없는 메모리의 비트맵에 시각적 이펙트를 적용시키는 데에 사용될 수 있다. 또한, Effect(100)는 그 입력의 어트리뷰트를 설명하는 다른 속성을 표면화(surface)할 수 있다. 예컨대, BitmapEffect는 컬러 히스토그램 정보 또는 페이스(face) 검출 정보를 방출할 수 있다. 제공되는 구체적인 이펙트는 예시적인 Effect(100)와 같은 Effect에 포함된 Effect 및 EffectPrimitive에 의해 일반적으로 결정된다.
통상적으로, 시각적 요소의 비트맵은 입력(101)과 같이 예시적인 Effect(100)의 입력에 제공된다. 입력 비트맵은 이펙트(또는 만약 Effect가 EffectPrimitive(104a - 104d)와 같은 복수의 EffectPrimitive 또는 다른 Effect들을 포함하면, 이펙트들의 집합)를 제공하기 위하여 Effect(100)에 의해 처리되고, 이펙트(들)를 포함한 비트맵은 출력(102)과 같은 Effect(100) 출력에 제공된다.
도 2는 여러 입출력 핀들을 포함하는 예시적인 이펙트 객체(200)를 도시하는 블록도이다. 출력 이미지를 그냥 노출시키는 대신에 핀(210)과 같은 입출력 핀의 세트를 노출시키는 것의 이점은, 이러한 핀이 실제로는 이펙트를 실행시키지 않으면서, 이펙트의 입출력 포맷 및 다른 정보에 대한 쿼리를 가능하게 한다는 점이다. 각 핀은 복수의 포맷의 이미지를 수락/생성할 수 있다. 핀이 수락/생성하는 포맷들은 IMILBitmapEffectInputConnector 또는 IMILBitmapEffectOutputConnector 인터페이스의 GetFormat() 및 GetNumberFormats() 메소드를 통해 열거될 수 있다. 또한, 각 핀은 최적의 포맷 - 이펙트가 그 입력/출력에서 수락/생성하기를 선호하는 포맷 - 을 가질 수 있다. 만약 2개의 접속된 핀이 동일한 최적의 포맷을 가지면, 그 포맷이 통상적으로 사용된다. 그렇지 않으면, 이펙트 그래프의 끝 부분에서 요청된 초기 출력 포맷에 통상적으로 기초하여, 소정의 다른 일치하는 포맷이 결정된다. 만약 서로 일치하는 포맷이 없으면, 도 3과 관련하여 도시된 바와 같이, 데이터가 하나의 이펙트의 출력으로부터 다음 이펙트의 입력으로 흐를 때 변환이 발생할 것이다.
도 3은 각각이 다양한 입출력 포맷을 지원하는 2개의 EffectPrimitive들을 포함하는 예시적인 이펙트 객체(300)를 도시하는 블록도이다. 2개의 출력 포맷들, 즉, 별표 모양으로 표시된 최적 출력인 MILPixelFormat24bppBGR 및 제2 출력 포맷인 MILPixelFormat32bppARGB를 지원하는 EffectPrimitive 1이 도시되어 있고, 최적 입력 포맷이 EffectPrimitive 1의 최적 출력 포맷의 최적 출력 포맷과 동일한 2개의 입력 포맷들을 지원하는 EffectPrimitive 2가 도시되어 있다. EffectPrimitive 1과 EffectPrimitive 2 사이의 접속(310)은 이들 모두가 MILPixelFormat24bbpBGR의 최적 포맷 유형을 공유하기 때문에 포맷 변환을 일으키지 않는다. EffectPrimitive 1은 그 최적 포맷으로의 출력을 요청받고, 그 결과물이 EffectPrimitive 2에 전달될 것이다.
단일 출력 포맷인 MILPixelFormat32bppGray(별표 모양으로 표시되어 있는 그 최적 포맷)를 지원하는 EffectPrimitive 2가 도시되어 있고, EffectPrimitive 2는 이펙트(300)의 단일 출력(330)에 접속되어 있다. 그러나, 이펙트(300)의 단독 출력 포맷은 PrimitiveEffect 2의 단독 출력 포맷과 다른 MILPixelFormat32bppARGB이다. 따라서, EffectPrimitive 2와 전체 이펙트(300) 그래프의 출력 사이에 변환이 발생한다.
포맷 불일치(miss-match)가 다뤄지는 방법의 일례에서, 만약 최적 포맷이 그래프와 그 그래프 출력에 접속된 이펙트 사이에서 일치하지 않으면, 최종 요청 포맷(즉, 도 3에 도시된 바와 같은 MILPixelFormat32bppGray)이 요청될 것이다. 만약 최종 요청 출력 포맷이 그래프의 출력으로서 존재하지 않으면, 랜덤 포맷이 선택될 것이다.
각 출력 핀(IMILBitmapEffectOutputConnector)은 그래프의 비순환(acyclic) 속성을 유지하는 한, DAG에서의 다른 이펙트의 입력 핀에 링크될 수 있다. 이 링크는 1 대 다수일 수 있다(즉, 단일 출력 접속이 복수의 입력 접속들에 링크될 수는 있지만, 그 역은 안됨).
도 4는 예시적인 이펙트 객체(400)를 도시하는 블록도이다. 이 예에서, 이펙트 객체(400)는 C++ 등과 같은 코드로 구현되는 실제 이펙트 코드(410)의 비관리(unmanaged) 구현을 포함하는, C#(C 샤프)와 같은 관리 코드를 사용하여 구축되는 래퍼(wrapper : 420)로 이루어진다. 예시적인 객체(400)는 단일 입력(401) 및 단일 출력(490)을 포함한다. 다른 예에서는, 복수의 입력들 및/또는 출력들이 제 공될 수 있다. 포맷 변환이 요청되거나 제공되는 경우, 이러한 변환 코드는 통상적으로 래퍼(420)에 포함된다. 다르게는, 변환 코드가 비관리 코드 부분(410)에 포함될 수도 있고, 또는 소정의 다른 모듈에 의해 제공될 수도 있다.
또한, 이펙트 객체(400)의 일부로서 포함되는 변형 함수(F(p) : 430)가 있다. 일례에서, 변형 함수(430)는 비관리 코드(410)의 일부로서 포함된다. 변형 함수(430)는 시각적 요소에 소정의 새로운 시각적 이펙트를 제공하기 위하여, 통상적으로 비트맵 형태인 입력 시각적 요소를 변형시키는 함수이다. 일반적으로, 이러한 변형 함수(430)는 래스터 그래픽 생성물, 벡터 그래픽 생성물 등인 시각적 요소에 적용될 수 있다.
예컨대, 사용자 인터페이스에 버튼을 제공하고, 마우스가 그 버튼 상에 위치한 경우에 버튼을 "글로우"시키는 것이 바람직하다고 가정한다. 이러한 경우, 글로우 이펙트 객체가 버튼과 연관되어 생성될 수 있고, 글로우 이펙트의 변형 함수가 버튼이 글로우되어 보이도록 버튼 비트맵에 대해 동작을 행할 수 있다. 단, 버튼의 기능은 불변인 채로 유지되며, 즉 버튼의 시각적 양태만이 이펙트에 의해 변경된다. 즉, 사용자는 여전히 버튼 상에서 마우스 커서를 호버링(hovering)하고, 버튼을 클릭하는 등도 할 수 있으며, 버튼은 예상되는 대로 행동한다.
전형적인 사용자 인터페이스에서는, 만약 마우스 클릭 또는 키 스트로크(key stroke)와 같은 소정의 사용자 입력이 시각적 요소 또는 액티브 콘텐트에 적용되어야 하는지 여부를 판정하기 위하여 통상적으로 "히트 테스팅"이 사용된다. 즉, 예컨대 사용자가 버튼을 클릭하는 경우, 히트 테스팅 코드는 마우스 클릭의 좌표를 테스트하여 버튼에 클릭이 행해졌는지 여부를 판정한다. 만약 그렇다면, 이에 따라 버튼은 자신을 눌려진 상태로 재드로잉(redrawing)하고 버튼과 연관된 기능을 런칭하는 등과 같이 응답한다.
버튼과 연관된 시각적 이펙트의 경우, 히트 테스팅이 예상되는 대로 계속하여 동작하는 것이 중요하다. 글로우 이펙트 객체의 예를 들면, 버튼 상에서 마우스 커서를 호버링하는 경우에, 연관된 글로우 이펙트 객체는 버튼이 글로우 외양을 갖도록 할 수 있다. 글로우 이펙트에 더하여, 버튼은 통상적인 바와 같이 마우스 오버 이벤트(mouse-over event)에 의해 하이라이트(highlight)시킬 수 있다. 그리고, 버튼을 클릭해도 마찬가지로 예상되는 결과를 얻을 수 있다. 일례에서, 이펙트 객체는 요소의 속성으로서 시각적 요소와 연관될 수 있다.
도 5는 분해 이펙트가 적용되기 전후의 예시적인 버튼을 도시하는 블록도이다. 생성되는 이펙트 객체, 및 연관된 시각적 요소를 여러 조각으로 분해하고 이 조각들을 시간의 경과에 따라 사용자 인터페이스를 통해 스프레드시키는 분해 이펙트를 고려한다. 도 5는 이러한 예시적인 이펙트의 전후를 제공한다.
프레임(501) - "이전" 프레임에서, 아마도 마우스 오버 이벤트 또는 버튼 상의 클릭 이벤트의 결과물로서, 분해 이펙트가 적용되기 이전의 종래의 버튼(502)을 갖는 사용자 인터페이스(UI : 500)가 도시되어 있다. 프레임(502) - "이후" 프레임은 분해 이펙트가 적용된 이후의 버튼(504)을 갖는 동일한 사용자 인터페이스(500)를 도시한다. 버튼(504)은, UI(500) 상에서 각각 서로 분리되어 있는 3개의 조각들(504a-504c)로 분해되어 도시되어 있다.
분해 이펙트는 입력 버튼 비트맵의 각 비트를 여러 조각들과 같은 새로운 위치로 매핑하는 분해 변형 함수에 의해 부분적으로 구현된다. 이러한 매핑은 조각들이 UI 상의 어딘가에 "고정(settele)"될 수 있을 때까지, 분해의 "이동(moving away)" 양태에서 등과 같이 시간에 따라 변화될 수 있다.
변형에도 불구하고, 버튼은 예상되는 대로 계속하여 동작한다. 즉, 사용자는 분해된 버튼(504)의 어떤 조각을 클릭할 수 있고, 버튼은 마치 분해되지 않은 것처럼 행동할 것이다. 이는 히트 테스팅 코드가 예상되는 대로 계속하여 동작됨을 의미한다. 이는 Effect 객체를 통과하는 사용자 이벤트, 및 버튼이 "히트"되었는지 여부를 판정하는 변형 함수에 의해 용이해진다. 통상적으로, 이는 변형 함수를 역으로 해석함으로써, 또는 양방향 변형 함수를 사용함으로써 행해진다.
변형 함수는 아핀(affine) 변형 또는 비 아핀(non-affine) 변형을 행할 수 있다. 예컨대, 아핀 변형은 비트맵의 확대(magnifying), 축소, 연장(stretching) 또는 회전을 포함할 수 있다. 비 아핀 변형은 블러, 글로우, 변형(deform), 그레이, 흐릿함(dim), 페이드, 스파클, 미광(gleam), 플래시, 모프(morph) 또는 임의의 다른 유사한 효과를 포함할 수 있으며, 여기서 비트맵의 요소들은 소정의 방식으로 추가, 제거 및/또는 변경된다. 또한, 변형 함수는, 사라짐(disappearing), 축소, 중도 사라짐(dropping-out), 선 또는 점으로의 변화 등을 제공하는 경우 등과 같이, 입력 비트맵의 원본 비트 전부를 변환하지 못할 수도 있다. 다른 가능한 변형은 스월, 웨이브, 분해, 복사, 복수의 비트맵을 하나로 통합하기 등을 포함한다. 일부의 경우, 이펙트는 입력 비트맵으로부터의 한 비트가 복수의 위치, 임의의 위 치(들)로 매핑되거나 완전히 제거되게 할 수 있다. 이전의 모든 예에서, 변형 함수는 히트 테스팅 기능이 예상되는 대로 계속하여 동작하는 것을 보장하기 위하여, 변경된 비트맵이 소정의 사용자 입력에 의해 "히트"되었는지 여부를 나타내는 능력도 제공한다.
도 6은 시각적 요소에 하나 이상의 이펙트를 제공하기 위한 예시적인 방법(600)을 도시하는 블록도이다. 도 1에 도시되고 이하의 방법(600) 설명에서 사용되는 Effect 객체(100)와 같은 Effect 객체는 이러한 방법(600)을 사용할 수 있다.
블록(610)에서, 방법(600)은 Effect 객체(100)의 입력에 제공되는 시각적 요소 비트맵을 이용하여 시작한다. 이는 임의의 수의 통상적인 소프트웨어 프로세스 및/또는 기술을 통해 일어날 수 있다.
블록(620)에서, 테스트는, 비트맵을 처리하기 위하여 Effect 객체(100) DAG에 포함된 다음 EffectPrimitive의 존재 여부를 판정한다. 도 1에 도시된 바와 같이, Effect 객체는 EffectPrimitive 및/또는 다른 Effect 객체를 포함할 수 있으며, 그들의 입력 중 하나 이상은 Effect 객체의 입력에 접속되고, 각각의 출력은 하나 이상의 추가적인 EffectPrimitive 및/또는 Effect 입력 또는 Effect 객체(100)의 출력에 접속된다. 만약 다음 EffectPrimitive가 존재하면, 방법(600)은 블록(650)으로 계속된다. 그렇지 않으면, 방법(600)은 블록(630)으로 계속된다.
블록(630)에서, 테스트는, Effect 객체(100) DAG에 포함된 다음 Effect 객체의 존재 여부를 판정한다. 만약 다음 Effect 객체, 말하자면 "Effect B"가 존재하 면, 방법은 Effect B를 위하여 블록(610)으로 계속된다. 그렇지 않으면, 방법(600)은 블록(640)으로 계속된다.
블록(640)에서는, 입력 비트맵이 Effect 객체(100)에 의한 프로세싱을 완료하고, 이 처리된 비트맵이 출력에 제공된다. 이는 임의의 수의 통상적인 소프트웨어 프로세스 및/또는 기술을 통해 일어날 수 있다.
블록(650)에서는, 임의의 이전 EffectPrimitive 및/또는 Effect에 의해 처리되었던 비트맵이 다음 EffectPrimitive의 입력에 제공된다. 이는 임의의 수의 통상적인 소프트웨어 프로세스 및/또는 기술을 통해 일어날 수 있다.
블록(660)에서, 테스트는, 비트맵이 EffectPrimitive에 의한 프로세싱을 위하여 수락가능한 포맷인지 여부를 판정한다. 만약 그렇다면, 방법(600)은 블록(680)으로 계속된다. 그렇지 않으면, 방법(600)은 블록(670)으로 계속된다.
블록(670)에서, 비트맵은 다음 EffectPrimitive에 의한 프로세싱을 위하여 수락가능한 포맷으로 재포맷되어 변환된다. 일례에서, 비트맵은 최적의 포맷으로 재포맷될 수 있다.
블록(680)에서는, 도 4에 도시된 변형 함수 F(p)(430)와 같은 변형 함수가 입력 비트맵에 적용되어, 통상적으로 입력 비트맵으로부터 생성되는 새로운 비트맵 또는 비트맵에 이펙트(들)이 적용되게 되며, 여기서 새로운 비트맵은 이펙트(들)를 포함하고 있다. 방법(600)은 블록(620)으로 계속된다.
도 7은 적용된 이펙트(들)를 갖는 시각적 요소에 대한 정확한 히트 테스팅을 위하여 히트 좌표를 변형시키기 위한 예시적인 방법(700)을 도시하는 블록도이다. 이펙트(들)를 갖는 시각적 요소는 이펙트(들)가 없을 때 배치되는 것과는 다르게 사용자 인터페이스에 배치되기 때문에, 마우스 클릭 또는 호버 오버 이벤트(hover-over event)와 같은 히트 좌표의 변형은 통상적으로 적절한 히트 테스팅을 보장하기 위하여 필요하다. 도 1에 도시되고 이하의 방법(700) 설명에서 사용되는 Effect 객체(100)와 같은 Effect 객체는 이러한 방법(700)을 사용할 수 있다.
블록(710)에서, 방법은 Effect 객체(100)의 입력에 제공되는, 마우스 클릭 또는 마우스 오버 이벤트와 같은 사용자 이벤트의 좌표를 이용하여 시작한다. 이는 임의의 수의 통상적인 소프트웨어 프로세스 및/또는 기술을 통해 일어날 수 있다.
블록(720)에서, 테스트는, 좌표를 변형하기 위하여 Effect 객체(100) DAG에 포함된 이전 EffectPrimitive의 존재 여부를 판정한다. 도 1에 도시된 바와 같이, 예시적인 Effect 객체(100)와 같은 Effect 객체는 EffectPrimitive 및/또는 다른 Effect 객체를 포함할 수 있으며, 그들의 입력 중 하나 이상은 Effect 객체(100)의 입력에 접속되고, 각각의 출력은 하나 이상의 추가적인 EffectPrimitive 및/또는 Effect 입력 또는 Effect 객체(100)의 출력에 접속된다. 방법(700)은 DAG의 이와 같은 최종적인 이펙트 객체를 이용하여 시작하고, 좌표 변형을 실현하기 위하여 순행 작업한다. "이전" 이펙트 객체는 Effect 객체의 출력에서 시작하고 Effect 객체의 입력을 향하여 DAG의 임의의 이펙트 객체를 통해 역행 작업하는 DAG의 이펙트 객체이다. 예컨대, EffectPrimitive(104d)는 Effect 객체(100)의 출력(102)보다 앞서고, EffectPrimitive(104a, 104b 및 104c)는 EffectPrimitive(104d)보다 앞서 며, EffectPrimitive(104b)도 EffectPrimitive(104c)보다 앞선다. 만약 이전 EffectPrimitive가 존재하면, 방법(700)은 블록(730)으로 계속된다. 그렇지 않으면, 방법(700)은 블록(740)으로 계속된다.
블록(730)에서는, 도 4에 도시된 변형 함수 F(p)(430)와 같은 변형 함수가 사용자 비트맵의 좌표에 적용된다. 통상적으로 변형 함수는 역으로 적용된다. 방법(700)은 블록(720)으로 계속된다.
블록(740)에서, 테스트는, Effect 객체(100) DAG에 포함된 이전 Effect 객체의 존재 여부를 판정한다. 만약 이전 Effect 객체, 말하자면 "Effect A"가 존재하면, 방법은 Effect A를 위하여 블록(710)으로 계속된다. 그렇지 않으면, 방법(700)은 블록(750)으로 계속된다.
블록(750)에서, 방법(700)은 히트 테스팅 코드 등에 사용자 이벤트의 변형된 좌표를 제공한다.
도 8은 본 명세서에 따른 하나 이상의 구현에서 사용될 수 있는 범용의 컴퓨팅 환경(800)을 도시하는 블록도이다. 컴퓨팅 시스템 환경(800)은 적합한 컴퓨팅 환경의 일례에 불과하며, 청구 대상의 용도 또는 기능성의 범위에 관해 어떤 제한을 암시하고자 하는 것이 아니다. 컴퓨팅 환경(800)이 예시적인 운영 환경(800)에 도시된 컴포넌트들 중 임의의 하나 또는 그 컴포넌트들의 임의의 조합과 관련하여 어떤 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다.
설명되는 기술 및 객체는 많은 기타 범용 또는 특수 목적의 컴퓨팅 시스템 환경 또는 구성에서 동작할 수 있다. 사용하는 데 적합할 수 있는 잘 알려진 컴퓨 팅 시스템, 환경 및/또는 구성의 예로는 퍼스널 컴퓨터, 서버 컴퓨터, 핸드-헬드 또는 랩톱 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 프로그램가능한 가전제품, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 상기 시스템들이나 장치들 중 임의의 것을 포함하는 분산 컴퓨팅 환경, 기타 등등이 있지만 이에 제한되는 것은 아니다.
이하의 설명은 일반적으로 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터 실행가능 명령어와 관련하여 기술될 것이다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하거나 특정 추상 데이터 유형을 구현하는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조 등을 포함한다. 설명되는 구현은 또한 통신 네트워크를 통해 연결되어 있는 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서 실시될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 비롯한 로컬 및 원격 컴퓨터 저장 매체 둘다에 위치할 수 있다.
도 8과 관련하여, 본 발명을 구현하는 예시적인 시스템은 컴퓨터(810) 형태의 범용 컴퓨팅 장치를 포함한다. 컴퓨터(810)의 컴포넌트들은 처리 장치(820), 시스템 메모리(830), 및 시스템 메모리를 비롯한 각종 시스템 컴포넌트들을 처리 장치(820)에 연결시키는 시스템 버스(821)를 포함하지만 이에 제한되는 것은 아니다. 시스템 버스(821)는 메모리 버스 또는 메모리 컨트롤러, 주변 장치 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 비롯한 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예로서, 이러한 아키텍처는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standard Association) 로컬 버스, 그리고 메자닌 버스(Mezzanine Bus)로도 알려진 PCI(Peripheral Component Interconnect) 버스 등을 포함하지만 이에 제한되는 것은 아니다.
컴퓨터(810)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함한다. 컴퓨터(810)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예로서, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함하지만 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보를 저장하는 임의의 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(810)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 컴퓨터 판독가능 명령어, 데이터 구조 및/또는 프로그램을 구현한다. 상술된 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함되는 것으로 한다.
시스템 메모리(830)는 판독 전용 메모리(ROM)(831) 및 랜덤 액세스 메모리(RAM)(832)와 같은 휘발성 및/또는 비휘발성 메모리 형태의 컴퓨터 저장 매체를 포함한다. 시동 중과 같은 때에, 컴퓨터(810) 내의 구성요소들 사이의 정보 전송 을 돕는 기본 루틴을 포함하는 기본 입/출력 시스템(BIOS)(833)은 통상적으로 ROM(831)에 저장되어 있다. RAM(832)은 통상적으로 처리 장치(820)가 즉시 액세스 할 수 있고 및/또는 현재 동작시키고 있는 데이터 및/또는 프로그램 모듈을 포함한다. 예로서, 도 8은 운영 체제(834), 애플리케이션 프로그램(835), 기타 프로그램 모듈(836) 및 프로그램 데이터(837)를 도시하고 있지만 이에 제한되는 것은 아니다.
컴퓨터(810)는 또한 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장매체를 포함한다. 단지 예로서, 도 8은 비이동식·비휘발성 자기 매체에 기록을 하거나 그로부터 판독을 하는 하드 디스크 드라이브(841), 이동식·비휘발성 자기 디스크(852)에 기록을 하거나 그로부터 판독을 하는 자기 디스크 드라이브(851), CD-ROM 또는 기타 광 매체 등의 이동식·비휘발성 광 디스크(856)에 기록을 하거나 그로부터 판독을 하는 광 디스크 드라이브(855)를 포함한다. 예시적인 운영 환경에서 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 기억 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, 고상(solid state) RAM, 고상 ROM 등이 있지만 이에 제한되는 것은 아니다. 하드 디스크 드라이브(841)는 통상적으로 인터페이스(840)와 같은 비이동식 메모리 인터페이스를 통해 시스템 버스(821)에 접속되고, 자기 디스크 드라이브(851) 및 광 디스크 드라이브(855)는 통상적으로 인터페이스(850)와 같은 이동식 메모리 인터페이스에 의해 시스템 버스(821)에 접속된다.
위에서 설명되고 도 8에 도시된 드라이브들 및 이들과 관련된 컴퓨터 저장 매체는, 컴퓨터(810)를 위해, 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터를 저장한다. 도 8에서, 예를 들어, 하드 디스크 드라이브(841)는 운영 체제(844), 애플리케이션 프로그램(845), 기타 프로그램 모듈(846), 및 프로그램 데이터(847)를 저장하는 것으로 도시되어 있다. 여기서 주의할 점은 이들 컴포넌트가 운영 체제(834), 애플리케이션 프로그램(835), 기타 프로그램 모듈(836), 및 프로그램 데이터(837)와 동일하거나 그와 다를 수 있다는 것이다. 이에 관해, 운영 체제(844), 애플리케이션 프로그램(845), 기타 프로그램 모듈(846) 및 프로그램 데이터(847)에 다른 번호가 부여되어 있다는 것은 적어도 이들이 다른 사본(copy)이라는 것을 나타내기 위한 것이다. 사용자는 키보드(862), 및 마우스, 트랙볼(trackball) 또는 터치 패드와 같은 포인팅 장치(861) 등의 입력 장치를 통해 명령 및 정보를 컴퓨터(810)에 입력할 수 있다. 다른 입력 장치(도시 생략)로는 마이크, 조이스틱, 게임 패드, 위성 안테나, 스캐너 등을 포함할 수 있다. 이들 및 기타 입력 장치는 종종 시스템 버스(821)에 결합된 사용자 입력 인터페이스(860)를 통해 처리 장치(820)에 접속되지만, 병렬 포트, 게임 포트 또는 USB(universal serial bus) 등의 다른 인터페이스 및 버스 구조에 의해 접속될 수도 있다. 모니터(891) 또는 다른 유형의 디스플레이 장치도 비디오 인터페이스(890) 등의 인터페이스를 통해 시스템 버스(821)에 접속될 수 있다. 모니터 외에, 컴퓨터는 스피커(897) 및 프린터(896) 등의 기타 주변 출력 장치를 포함할 수 있고, 이들은 출력 주변장치 인터페이스(895)를 통해 접속될 수 있다. 또한, 이미지들(864)의 시퀀스를 캡처할 수 있는 (디지털/전자 스틸 또는 비디오 카메라 또는 필름/사진 스캐너와 같은) 카메라(863)가 퍼스널 컴퓨터(810)로의 입력 장치로서 포함될 수 있다. 또한, 단지 1대의 카메라만이 도시되어 있지만, 복수의 카메라가 퍼스널 컴퓨터(810)로의 입력 장치로서 포함될 수 있다. 1대 이상의 카메라로부터의 이미지들(864)은 적절한 카메라 인터페이스(865)를 통해 컴퓨터(810)로 입력된다. 이 인터페이스(865)는 시스템 버스(821)에 접속됨으로써, 이미지들이 RAM(832), 또는 컴퓨터(810)와 연관된 기타 데이터 저장 장치들 중 하나에 라우팅되고 저장되게 할 수 있다. 그러나, 이미지 데이터는 카메라(863)를 사용할 필요 없이, 상술한 컴퓨터 판독가능 매체 중 어느 것으로부터도 컴퓨터(810)로 입력될 수 있음을 주의한다.
컴퓨터(810)는 원격 컴퓨터(880)와 같은 하나 이상의 원격 컴퓨터로의 논리적 접속을 사용하여 네트워크화된 환경에서 동작할 수 있다. 원격 컴퓨터(880)는 또 하나의 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 통상의 네트워크 노드일 수 있고, 통상적으로 컴퓨터(810)와 관련하여 상술된 구성요소들의 대부분 또는 그 전부를 포함하지만, 도 8에는 하나의 메모리 저장 장치(881)만이 도시되어 있다. 도 8에 도시된 논리적 접속으로는 LAN(local area network)(871) 및 WAN(wide area network)(873)이 있지만, 기타 네트워크를 포함할 수도 있다. 이러한 네트워킹 환경은 사무실, 전사적 컴퓨터 네트워크(enterprise-wide computer network), 인트라넷, 및 인터넷에서 일반적인 것이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(810)는 네트워크 인터페이스 또는 어댑터(870)를 통해 LAN(871)에 접속된다. WAN 네트워킹 환경에서 사용될 때, 컴 퓨터(810)는 통상적으로 인터넷과 같은 WAN(873)을 통해 통신을 설정하기 위한 모뎀(872) 또는 기타 수단을 포함한다. 내장형 또는 외장형일 수 있는 모뎀(872)은 사용자 입력 인터페이스(860) 또는 기타 적절한 메커니즘을 통해 시스템 버스(821)에 접속된다. 네트워크화된 환경에서, 컴퓨터(810) 또는 그의 일부와 관련하여 기술된 프로그램 모듈은 원격 메모리 저장 장치에 저장될 수 있다. 예로서, 도 8은 원격 애플리케이션 프로그램(885)이 메모리 장치(881)에 있는 것으로 도시하고 있지만 이에 제한되는 것은 아니다. 도시된 네트워크 접속은 예시적인 것이며 이 컴퓨터들 사이에 통신 링크를 설정하는 기타 수단이 사용될 수 있다는 것을 이해할 것이다.
본 명세서에서는 하나 이상의 예시적인 구현이 도시되고 설명되었지만, 첨부되는 청구항의 사상 및 범주를 벗어나지 않고도 다양한 변화가 행해질 수 있음을 이해할 것이다.

Claims (20)

  1. 시각적 이펙트(effect)를 시각적 요소에 적용하기 위한 방법으로서,
    각각이 변형 함수를 포함하는 하나 이상의 이펙트들, 입력 및 출력을 포함하는 DAG(Directed Acyclic Graph)를 제공하는 단계;
    상기 입력에 시각적 요소를 제공하는 단계;
    상기 DAG에 상기 하나 이상의 이펙트들 중의 다음 이펙트가 존재하는지 여부를 판정하고, 만약 존재한다면,
    다음 이펙트의 입력에 상기 시각적 요소를 제공하고,
    상기 시각적 요소의 포맷이 상기 다음 이펙트와 호환가능한지 여부를 판정하고, 만약 호환가능하지 않다면, 상기 시각적 요소를 호환가능한 포맷으로 변환하고,
    상기 시각적 요소를 상기 다음 이펙트를 이용하여 변경하도록, 상기 다음 이펙트의 변형 함수를 상기 시각적 요소에 적용하고,
    상기 DAG에 상기 하나 이상의 이펙트들 중의 다른 다음 이펙트가 존재하지 않을 때까지 상기 판정 단계를 반복하는 단계; 및
    상기 출력에 상기 시각적 요소를 제공하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 변형 함수는 양방향 변형 함수인 방법.
  3. 제1항에 있어서,
    상기 시각적 요소는 비트맵인 방법.
  4. 제1항에 있어서,
    출력으로서의 상기 시각적 요소가 사용자 인터페이스에 표시되는 방법.
  5. 제1항에 있어서,
    입력으로서의 상기 시각적 요소는 저장 장치로부터 제공되고, 출력으로서의 상기 시각적 요소는 저장 장치에 저장되는 방법.
  6. 제1항에 있어서,
    상기 시각적 요소는 비디오를 포함하는 방법.
  7. 제1항에 있어서,
    상기 시각적 요소는 비트맵으로 변환되는 방법.
  8. 제7항에 있어서,
    출력으로서의 상기 시각적 요소는 그 상호작용 기능을 유지하는 방법.
  9. 제1항에 있어서,
    상기 시각적 요소는 애니매이션(animated)되는 방법.
  10. 제1항에 있어서,
    컴퓨터 판독가능한 매체의 컴퓨터 실행가능한 명령어로 구현되는 방법.
  11. 시각적 요소의 히트 이벤트(hit event)의 좌표를 변형하기 위한 방법으로서,
    각각이 양방향 변형 함수를 포함하는 하나 이상의 이펙트들, 입력 및 출력을 포함하는 DAG를 제공하는 단계;
    상기 하나 이상의 이펙트들을 상기 시각적 요소에 적용하는 단계;
    상기 입력에 히트 이벤트의 좌표를 제공하는 단계;
    상기 DAG에 상기 하나 이상의 이펙트들 중의 이전 이펙트가 존재하는지 여부를 판정하고, 만약 존재한다면,
    상기 이전 이펙트의 입력에 상기 좌표를 제공하고,
    상기 이전 이펙트에 기초하여 상기 좌표를 변경하도록, 그 좌표에 상기 이전 이펙트의 양방향 변형 함수를 적용하고,
    상기 DAG에 상기 하나 이상의 이펙트들 중의 다른 이전 이펙트가 존재하지 않을 때까지 상기 판정 단계를 반복하는 단계; 및
    상기 출력에 좌표를 제공하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    상기 시각적 요소는 비트맵인 방법.
  13. 제11항에 있어서,
    상기 시각적 요소는 비디오를 포함하는 방법.
  14. 제11항에 있어서,
    상기 히트 이벤트는 사용자 입력의 결과인 방법.
  15. 제11항에 있어서,
    컴퓨터 판독가능한 매체의 컴퓨터 실행가능한 명령어로 구현되는 방법.
  16. 시각적 요소를 액티브 콘텐트에 적용하기 위한 시스템으로서,
    입력 및 출력을 포함하는 이펙트 객체 - 상기 이펙트 객체는 하나 이상의 다른 이펙트 객체들 또는 하나 이상의 이펙트 프리미티브(effect primitive)들을 포함함 - ;
    DAG를 형성하도록, 상기 하나 이상의 다른 이펙트 객체들 중의 이펙트 객체들, 상기 하나 이상의 이펙트 프리미티브들 중의 이펙트 프리미티브들, 상기 입력 및 상기 출력 사이의 연결을 구축하는 수단;
    상기 액티브 콘텐트를 상기 입력에 제공하는 수단;
    상기 DAG를 포함하는 하나 이상의 다른 이펙트 객체들 중의 이펙트 객체들 또는 하나 이상의 이펙트 프리미티브들 중의 이펙트 프리미티브들 각각의 변형 함수를 상기 액티브 콘텐트에 적용하여, 변형된 액티브 콘텐트로 되게 하는 수단; 및
    상기 변형된 액티브 콘텐트를 상기 출력에 제공하는 수단
    을 포함하는 시스템.
  17. 제16항에 있어서,
    상기 변형 함수는 양방향 변형 함수인 시스템.
  18. 제17항에 있어서,
    상기 변형된 액티브 콘텐트의 히트 이벤트의 좌표를 상기 이펙트 객체에 제공하는 수단;
    상기 DAG를 포함하는 하나 이상의 다른 이펙트 객체들 중의 이펙트 객체들 또는 하나 이상의 이펙트 프리미티브들 중의 이펙트 프리미티브들 각각의 양방향 변형 함수를 상기 히트 이벤트의 좌표에 적용하여, 변형된 좌표로 되게 하는 수단; 및
    상기 변형된 좌표를 히트 테스팅 기능에 제공하는 수단
    을 포함하는 시스템.
  19. 제16항에 있어서,
    상기 액티브 콘텐트는 비디오를 포함하는 시스템.
  20. 제16항에 있어서,
    컴퓨터 판독가능한 매체의 컴퓨터 실행가능한 명령어로서 구현되는 시스템.
KR1020087003938A 2005-09-13 2006-09-05 사용자 인터페이스의 액티브 콘텐트에서의 확장가능한시각적 이펙트 KR20080042835A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US71673505P 2005-09-13 2005-09-13
US60/716,735 2005-09-13
US11/457,711 2006-07-14
US11/457,711 US8026920B2 (en) 2005-09-13 2006-07-14 Extensible visual effects on active content in user interfaces

Publications (1)

Publication Number Publication Date
KR20080042835A true KR20080042835A (ko) 2008-05-15

Family

ID=37856794

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087003938A KR20080042835A (ko) 2005-09-13 2006-09-05 사용자 인터페이스의 액티브 콘텐트에서의 확장가능한시각적 이펙트

Country Status (11)

Country Link
US (1) US8026920B2 (ko)
EP (1) EP1949210A4 (ko)
JP (1) JP4927846B2 (ko)
KR (1) KR20080042835A (ko)
CN (1) CN101283328B (ko)
BR (1) BRPI0615776A2 (ko)
CA (1) CA2618862C (ko)
MX (1) MX2008003406A (ko)
NO (1) NO338043B1 (ko)
RU (1) RU2008109488A (ko)
WO (1) WO2007032972A1 (ko)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7509588B2 (en) 2005-12-30 2009-03-24 Apple Inc. Portable electronic device with interface reconfiguration mode
US10313505B2 (en) 2006-09-06 2019-06-04 Apple Inc. Portable multifunction device, method, and graphical user interface for configuring and displaying widgets
US8564544B2 (en) 2006-09-06 2013-10-22 Apple Inc. Touch screen device, method, and graphical user interface for customizing display of content category icons
US8519964B2 (en) 2007-01-07 2013-08-27 Apple Inc. Portable multifunction device, method, and graphical user interface supporting user navigations of graphical objects on a touch screen display
US8689132B2 (en) 2007-01-07 2014-04-01 Apple Inc. Portable electronic device, method, and graphical user interface for displaying electronic documents and lists
US9933937B2 (en) 2007-06-20 2018-04-03 Apple Inc. Portable multifunction device, method, and graphical user interface for playing online videos
US9772751B2 (en) 2007-06-29 2017-09-26 Apple Inc. Using gestures to slide between user interfaces
US8619038B2 (en) 2007-09-04 2013-12-31 Apple Inc. Editing interface
US11126321B2 (en) 2007-09-04 2021-09-21 Apple Inc. Application menu user interface
US9619143B2 (en) 2008-01-06 2017-04-11 Apple Inc. Device, method, and graphical user interface for viewing application launch icons
US8423883B1 (en) * 2009-09-11 2013-04-16 Adobe Systems Incorporated Systems and methods of creating and editing electronic content including multiple types of graphics
US8736561B2 (en) 2010-01-06 2014-05-27 Apple Inc. Device, method, and graphical user interface with content display modes and display rotation heuristics
US20130080953A1 (en) * 2011-09-27 2013-03-28 International Business Machines Corporation Multi-area widget minimizing
US8930810B2 (en) * 2012-02-13 2015-01-06 International Business Machines Corporation User interface (UI) color scheme generation and management according to visual consistency of visual attributes in the color scheme
US9892528B2 (en) * 2012-08-03 2018-02-13 Dreamworks Animation L.L.C. Temporal dependencies in dependency graphs
US10528214B2 (en) * 2016-12-28 2020-01-07 Microsoft Technology Licensing, Llc Positioning mechanism for bubble as a custom tooltip
US10877643B2 (en) * 2018-03-15 2020-12-29 Google Llc Systems and methods to increase discoverability in user interfaces

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2603982B2 (ja) * 1988-02-12 1997-04-23 日本放送協会 映像信号処理システムのマルチプロセッサ結合装置
EP0528631B1 (en) 1991-08-13 1998-05-20 Xerox Corporation Electronic image generation
GB2340360B (en) 1998-07-31 2002-11-06 Sony Uk Ltd Animation of video special effects
GB2340361B (en) 1998-07-31 2002-11-06 Sony Uk Ltd Digital video processing
GB2340362B (en) * 1998-07-31 2002-11-06 Sony Uk Ltd Digital video processing
US6522331B1 (en) 2000-02-01 2003-02-18 Stormfront Studios, Inc. Character animation using directed acyclic graphs
US7009626B2 (en) * 2000-04-14 2006-03-07 Picsel Technologies Limited Systems and methods for generating visual representations of graphical data and digital document processing
US7064766B2 (en) * 2001-10-18 2006-06-20 Microsoft Corporation Intelligent caching data structure for immediate mode graphics
US7412662B2 (en) 2004-04-12 2008-08-12 Microsoft Corporation Method and system for redirection of transformed windows
US7619628B2 (en) * 2005-06-24 2009-11-17 Microsoft Corporation Caching digital image data
US7519233B2 (en) * 2005-06-24 2009-04-14 Microsoft Corporation Accumulating transforms through an effect graph in digital image processing
US20060290705A1 (en) * 2005-06-24 2006-12-28 Microsoft Corporation Performing a pre-rendering pass in digital image processing
US7554550B2 (en) * 2005-06-24 2009-06-30 Microsoft Corporation Non-destructive processing of digital image data
US7295208B2 (en) * 2005-06-24 2007-11-13 Microsoft Corporation Translating layers into effect graphs in digital image processing

Also Published As

Publication number Publication date
CN101283328B (zh) 2011-08-03
CA2618862A1 (en) 2007-03-22
US20070061744A1 (en) 2007-03-15
US8026920B2 (en) 2011-09-27
BRPI0615776A2 (pt) 2011-05-24
JP2009508256A (ja) 2009-02-26
RU2008109488A (ru) 2009-10-10
MX2008003406A (es) 2008-03-27
EP1949210A4 (en) 2009-01-07
EP1949210A1 (en) 2008-07-30
CA2618862C (en) 2013-12-24
JP4927846B2 (ja) 2012-05-09
NO338043B1 (no) 2016-07-25
CN101283328A (zh) 2008-10-08
NO20080709L (no) 2008-04-14
WO2007032972A1 (en) 2007-03-22

Similar Documents

Publication Publication Date Title
KR20080042835A (ko) 사용자 인터페이스의 액티브 콘텐트에서의 확장가능한시각적 이펙트
US10592238B2 (en) Application system that enables a plurality of runtime versions of an application
JP4700423B2 (ja) 形状を使用する共通チャーティング
US7428542B1 (en) Method and system for combining nodes into a mega-node
JP4796499B2 (ja) 映像およびシーングラフインターフェイス
RU2360275C2 (ru) Уровень интеграции сред
KR100962920B1 (ko) 비주얼 및 장면 그래프 인터페이스
RU2371758C2 (ru) Интерфейс программирования для компьютерной платформы
MXPA06012368A (es) Integracion de jerarquia de escena tridimensional en sistema de composicion bidimensional.
US9710950B2 (en) Extensible sprite sheet generation mechanism for declarative data formats and animation sequence formats
KR20010020250A (ko) 객체 지향의 프로그래밍 언어를 위한 하드웨어 가속기
Escrivá et al. Building Computer Vision Projects with OpenCV 4 and C++: Implement complex computer vision algorithms and explore deep learning and face detection
Kirby et al. An adaptive graphical browser for Napier88
CN117437342B (zh) 一种三维场景渲染方法和存储介质
Atella Rendering Hypercomplex Fractals
Eamnapha et al. The Graphics and Physics Engines for Rapid Development of 3D Web-based Applications
Sung et al. Build Your Own 2D Game Engine and Create Great Web Games.
Rahman et al. Game development with Unity
Syme et al. Building Graphical User Interfaces
Syme et al. Visualization and Graphical User Interfaces
Marfia et al. LAYING THE PATH TO CONSUMER-LEVEL IMMERSIVE SIMULATION ENVIRONMENT
Hurwicz Special Edition Using Macromedia Studio MX 2004
Kwon et al. Shadow 3D: A 3D GUI Middleware for Home Digital Media Devices

Legal Events

Date Code Title Description
A201 Request for examination
SUBM Surrender of laid-open application requested