KR102115057B1 - 그래픽 렌더링 - Google Patents

그래픽 렌더링 Download PDF

Info

Publication number
KR102115057B1
KR102115057B1 KR1020157008416A KR20157008416A KR102115057B1 KR 102115057 B1 KR102115057 B1 KR 102115057B1 KR 1020157008416 A KR1020157008416 A KR 1020157008416A KR 20157008416 A KR20157008416 A KR 20157008416A KR 102115057 B1 KR102115057 B1 KR 102115057B1
Authority
KR
South Korea
Prior art keywords
rendering
api
function
opengl
rendering function
Prior art date
Application number
KR1020157008416A
Other languages
English (en)
Other versions
KR20150067165A (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 KR20150067165A publication Critical patent/KR20150067165A/ko
Application granted granted Critical
Publication of KR102115057B1 publication Critical patent/KR102115057B1/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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45529Embedded in an application, e.g. JavaScript in a Web browser
    • 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
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)
  • Image Generation (AREA)
  • Information Transfer Between Computers (AREA)
  • Devices For Executing Special Programs (AREA)
  • Human Computer Interaction (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

본 개시는 그래픽 렌더링을 수행하는 예시적인 방법 및 장치를 제공한다. 그래픽 애플리케이션의 자바스크립트 코드가 획득된다. 자바스크립트 코드는 OPENGL에 기초한 렌더링 함수에 대응하는 API를 포함한다. API는 HTML5 캔버스의 표준에 따른 형식을 갖는다. 자바스크립트 코드는 파싱 엔진에서 실행된다. 자바스크립트 코드의 API가 실행되는 경우에, 파싱 엔진은 OPENGL에 기초한 대응하는 렌더링 함수를 획득하기 위해서 API를 파싱한다. 렌더링 함수는 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 호출된다. 본 기술은 모바일 디바이스에서 그래픽 렌더링의 속도를 향상시킨다.

Description

그래픽 렌더링{GRAPHIC RENDERING}
본원 발명은, 출원 번호가 CN201210379921.4이고, 출원일자가 2012년 10월 9일인, "모바일 디바이스에서의 그래픽 렌더링 방법 및 장치"라는 제목의 중국 특허 출원을 기초로 하여 우선권을 주장하는 바, 해당 중국 특허 출원의 모든 내용은 본원 발명에 원용된다.
본 개시는 그래픽 렌더링 분야에 관한 것으로서, 보다 상세하게 모바일 디바이스에서 그래픽 렌더링을 수행하는 방법 및 장치에 관한 것이다.
모바일 디바이스 상에 더욱더 많은 애플리케이션이 존재하고 있으며, 이러한 애플리케이션은 더욱더 복잡해지고 있다. 애플리케이션은 그래픽을 디스플레이하는 경우에 그래픽 렌더링을 사용한다. 예컨대, 모바일 디바이스에 웹 게임을 디스플레이하는 그래픽은 그래픽 렌더링을 필요로 한다. 그래픽 렌더링은 객체의 고급 기술(a high level description of an object)을 디스플레이 디바이스에 디스플레이되는 그래픽으로 변환한다. 예를 들어, 그래픽 렌더링은 예컨대 3D 객체 또는 장면(scene)과 같은 삼차원 객체의 수학적 모델을 비트맵 그래픽으로 변환하는 프로세스에서 발생한다. 그래픽 렌더링의 다른 예시는 HTML(a Hypertext Markup Language) 파일을 모니터 화면에 디스플레이되는 그래픽으로 변환하는 것이다.
그래픽 렌더링의 두 개의 주요 애플리케이션이 존재한다.
첫 번째 애플리케이션은 웹 브라우저에 존재한다. 인터넷 기술 중에서, HTML5는 새롭고도 대중적인 기술이다. 웹 브라우저에서 그래픽 렌더링을 처리하기 위해서 HTML5의 캔버스 표준을 사용하는 것이 대중적이 되고 있다. 그러나, 대부분의 모바일 디바이스에서 웹브라우저는 HTML의 노드 제어 요소로서 HTML 캔버스 표준을 사용함으로써, 레이아웃 로직, 이벤트 또는 리드로잉(redrawing)과 같은 동작은 HTML 노드 트리를 사용하는 것이 필요하다. CPU는 그러한 복잡한 로직 때문에 많은 동작을 처리하도록 강요된다. 상기 기술을 사용하는 그래픽 애플리케이션 또는 게임은 종종 그래픽 렌더링을 느리게 하는 위험(pitfall)을 갖는다.
두 번째 애플리케이션은 게임 클라이언트에 존재한다. 종래의 기술에서, 게임 애플리케이션의 클라이언트는 C++ 또는 자바를 사용하여 개발되었고 그래픽 렌더링의 프로세스는 CPU에 의해 실행되었다. 그러나, 게임 애플리케이션의 클라이언트는 다운로드와 설치가 필요하다. 아울러, 그 업데이트 또한 번거롭다. 결과적으로, 당업자는 종종 모바일 디바이스에서 그래픽 렌더링의 속도를 향상하려고 시도한다.
본 요약서는 아래 상세한 설명에서 더 설명되는 컨셉의 선택을 간략화된 형태로 소개하도록 제공된다. 본 요약서는 청구된 대상의 모든 주요 요소와 필수적 요소를 식별하도록 의도되거나, 청구된 대상의 범위를 결정하도록 돕는데 단독으로 사용되도록 의도되지 않는다. 예를 들어, "기술"이라는 용어는 본 개시에 걸쳐 상기의 맥락에 의해 허용된 바와 같이 장치(들), 시스템(들), 방법(들) 및/또는 컴퓨터-판독가능 명령어를 지칭할 수 있다.
본 개시는 모바일 디바이스에서 그래픽 렌더링의 속도를 향상시키는 모바일 디바이스에서의 그래픽 렌더링 장치 및 방법을 제공한다.
본 개시는 모바일 디바이스에서의 그래픽 렌더링의 예시적인 방법을 제공한다.
그래픽 애플리케이션의 자바스크립트 코드가 획득된다. 자바스크립트 코드는 OPENGL에 기초한 렌더링 함수에 대응하는 API를 포함한다. API는 HTML5 캔버스의 표준에 따른 형식을 갖는다.
자바스크립트 코드는 파싱 엔진에서 실행된다. 자바스크립트 코드의 API가 실행되는 경우에, 파싱 엔진은 대응하는 OPENGL에 기초한 렌더링 함수를 획득하기 위해서 API를 파싱한다.
렌더링 함수가 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 호출된다.
예를 들어, 예시적인 방법은 또한 OPENGL에 기초한 렌더링 함수를 API에 또는 API와 캡슐화하는 동작을 포함할 수 있다. 예를 들어, OPENGL에 기초한 렌더링 함수는 파싱 엔진의 확장성에 따라 대응하는 API에 또는 대응하는 API와 캡슐화된다. API는 자바스크립트 개발자에 노출되고, API는 HTML5 캔버스의 표준에 따른 형식을 갖는다.
예를 들어, 렌더링 함수는 OPENGL 형식에 기초한 함수의 캡슐화에 기초하여 획득된 인터페이스 함수이다.
예를 들어, 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 렌더링 함수를 호출하는 동작은 하기를 포함할 수 있다. 파싱된 렌더링 함수는 대응하는 OPENGL 형식을 갖는 함수를 획득하기 위해서 제 2 파싱을 수행한다. 대응하는 OPENGL 형식을 갖는 파싱된 함수는 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 호출된다.
예를 들어, 렌더링 함수는 저급 렌더링 환경을 초기화하는 초기화 렌더링 함수를 포함한다.
예를 들어, 예시적인 방법은 하기를 더 포함할 수 있다. 모바일 디바이스의 플랫폼 속성에 기초하여, 초기화 렌더링 함수는 대응하는 렌더링 데이터를 획득하도록 호출된다. 렌더링 데이터는 디바이스 하드웨어 정보를 포함할 수 있다.
모바일 디바이스의 하드웨어 능력은 디바이스 하드웨어 정보에 따라 평가된다. 렌더링 프로세스의 최적화 전략은 모바일 디바이스의 하드웨어 능력에 따라 조정된다. 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 렌더링 함수를 호출하는 동작은 하기를 더 포함할 수 있다. 렌더링 프로세스의 조정된 최적화 전략에 기초하여, 렌더링 함수는 그래픽 렌더링을 수행하도록 호출된다.
본 개시는 또한 모바일 디바이스에서 그래픽 렌더링의 예시적인 장치를 제공한다. 예시적인 장치는 코드 검색 모듈, 코드 실행 모듈 및 함수 호출 모듈을 포함할 수 있다.
코드 검색 모듈은 그래픽 애플리케이션의 자바스크립트 코드를 획득한다. 자바스크립트 코드는 OPENGL에 기초한 렌더링 함수에 대응하는 API를 포함한다. API는 HTML5 캔버스의 표준에 따른 형식을 갖는다.
코드 실행 모듈은 파싱 엔진에서 자바스크립트 코드를 실행한다. 자바스크립트 코드의 API가 실행되는 경우에, 파싱 엔진은 OPENGL에 기초한 대응하는 렌더링 함수를 획득하기 위해서 API를 파싱한다.
함수 호출 모듈은 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 파싱된 렌더링 함수를 호출한다.
예를 들어, 예시적인 장치는 OPENGL에 기초한 렌더링 함수를 API에 또는 API와 캡슐화하는 캡슐화 모듈을 더 포함할 수 있다. 예를 들어, 캡슐화 모듈은 파싱 엔진의 확장성에 따라 OPENGL에 기초한 렌더링 함수를 대응하는 API에 또는 대응하는 API와 캡슐화한다. API는 자바스크립트 개발자에 노출되고, API는 HTML5 캔버스의 표준에 따른 형식을 갖는다.
예를 들어, 렌더링 함수는 OPENGL 형식에 기초한 함수의 캡슐화에 기초하여 획득된 인터페이스 함수이다.
예를 들어, 함수 호출 모듈은 제 2 파싱 서브-모듈 및 호출 서브-모듈을 더 포함할 수 있다. 제 2 파싱 서브-모듈은 대응하는 OPENGL 형식을 갖는 함수를 획득하기 위해서 파싱된 렌더링 함수에 제 2 파싱을 수핸한다. 호출 서브-모듈은 렌더링 타겟에 대한 그래픽 렌더링을 호출하도록 OPENGL 형식을 갖는 파싱된 함수를 호출한다.
예를 들어, 렌더링 함수는 저급 렌더링 환경을 초기화하는 초기화 렌더링 함수를 포함한다.
예를 들어, 예시적인 장치는 환경 초기화 모듈, 평가 모듈 및 렌더링 프로세스 최적화 전략 조정 모듈을 더 포함할 수 있다. 환경 초기화 모듈은 모바일 디바이스의 플랫폼 속성에 기초하여, 대응하는 렌더링 데이터를 획득하기 위해서 초기화 렌더링 함수를 호출한다. 렌더링 데이터는 디바이스 하드웨어 정보를 포함할 수 있다.
평가 모듈은 디바이스 하드웨어 정보에 따라 모바일 디바이스의 하드웨어 능력을 평가한다. 렌더링 프로세스 최적화 전략 조정 모듈은 모바일 디바이스의 하드웨어 능력에 따라 렌더링 프로세스의 최적화 전략을 조정한다. 호출 모듈은 렌더링 프로세스의 조정된 최적화 전략에 기초하여, 그래픽 렌더링을 수행하도록 렌더링 함수를 호출한다.
종래의 기술과 비교하여, 본 기술은 적어도 하기의 장점을 갖는다.
종래의 웹 브라우저는 기본적으로 HTML5 캔버스 표준의 API를 지원한다. 그러나, 웹 브라우저는 HTML5 캔버스 표준을 HTML의 노드 제어 요소로서 사용하여, 레이아웃 로직, 이벤트 또는 리드로잉 요구와 같은 동작이 HTML의 노드 트리를 사용한다. CPU는 그러한 복잡한 로직 때문에 많은 동작을 처리하도록 강요되고, 그에 의해 느린 그래픽 렌더링 속도를 초래한다.
본 기술은 또한 HTML5의 HTML5 캔버스 표준의 API를 구현한다. 그러나, 본 기술에 따라, 실행 프로세스의 파싱 엔진은 대응하는 OPENGL에 기초한 렌더링 함수를 획득하기 위해서 파싱한다. OPENGL에 기초한 렌더링 함수는 모바일 디바이스에서 GPU의 그래픽 렌더링 인터페이스를 완전히 사용할 수 있고, 렌더링을 위한 비디오 카드를 더욱 합리적으로 사용할 수 있다. 따라서, 본 기술은 호환가능한 브라우저와 운영 체제를 갖는 모바일 디바이스에서 그래픽 렌더링 성능을 더욱 향상시킬 수 있다.
부가적으로, 개발자는 HTML5와 HTML5 캔버스 API에 친숙하다. 따라서, 개발자가 친숙한 API를 사용하여 그래픽 애플리케이션을 개발하는 데 드는 훈련 비용이 들지 않는다. 많은 학습 비용이 필요한 종래의 WebGL 기술과 비교하여, 본 기술은 그래픽 애플리케이션의 학습 비용을 감소시키고, 그에 따라 그래픽 애플리케이션의 효과적인 개발을 달성한다.
더욱이, 종래의 기술 하의 게임 애플리케이션의 클라이언트는 그래픽 애플리케이션을 위해 C++ 또는 자바 코드를 사용하여 개발되고 GPU에 의한 그래픽 렌더링을 필요로 한다. 그러나, C++ 또는 자바 코드는 실행 전에 컴파일링 및 설치가 필요한 코드이다. 따라서, 종래의 기술 하의 게임 애플리케이션은 다운로드된 후 설치가 필요하다. 부가적으로, 그 업데이트 또한 번거롭다. 그러나, 본 기술에 사용되는 자바스크립트 코드는 직접 다운로드 가능하고 파싱되는 동안에 실행될 수 있다. 따라서, 자바스크립트 코드는 C++ 및 자바 코드에서 찾을 수 없는 설치될 필요가 없으며 어느 때나 업데이트 가능한 장점을 갖는다. 따라서, 본 기술에 의해 개발된 그래픽 애플리케이션은 설치될 필요가 없고 용이하게 업데이트하고 동작할 수 있다.
본 발명의 실시예를 보다 효과적으로 도시하기 위해서, 하기에서 실시예의 설명에서 사용되는 도면의 간략한 소개가 제시된다. 하기 도면은 본 개시의 몇몇 실시예에 관련될 뿐임이 명백하다. 당업자는 창조적 노력 없이도 본 개시의 도면에 따라 다른 도면을 획득할 수 있다.
도 1은 본 개시의 예시적인 실시예에 따른 모바일 디바이스에서의 그래픽 렌더링의 예시적인 방법의 흐름도이다.
도 2는 본 개시의 예시적인 실시예에 따른 모바일 디바이스의 브라우저에서의 그래픽 렌더링의 예시적인 방법의 흐름도이다.
도 3은 본 개시의 예시적인 실시예에 따른 모바일 디바이스에서 게임 애플리케이션을 실행하는 예시적인 방법의 흐름도이다.
도 4는 본 개시의 다른 예시적인 실시예에 따라 모바일 디바이스에서의 그래픽 렌더링을 위한 예시적인 장치의 블럭도이다.
본 기술의 목적, 특징 및 장점을 용이하게 제시하기 위해서, 하기 설명이 도면 및 예시적인 실시예를 참조하여 설명된다.
본 기술은 자바스크립트 코드의 API를 설계하고, 자바스크립트 코드의 API가 실행되는 경우에 렌더링 타겟에 대한 그래픽 렌더링을 수행하도록 OPENGL에 기초한 저급 렌더링 함수를 호출한다. 본 기술은 브라우저에서 HTML5 캔버스 표준을 HTML 노드 제어 요소로서 다루는 종래의 기술하에서 발생하는 많은 논리 동작을 피하기 때문에, 본 기술은 렌더링 타겟에 직접적으로 렌더링 동작을 수행할 수 있고 그에 따라 많은 불필요한 동작을 피함으로써 렌더링 속도를 향상시킬 수 있다.
아울러, 본 기술이 그래픽 렌더링을 렌더링 타겟에 수행하는 경우에, 본 기술은 OPENGL에 기초한 렌더링 함수를 호출한다. OPENGL에 기초한 렌더링 함수를 호출하는 것은 모바일 디바이스에서 그래픽 렌더링 인터페이스를 효과적으로 사용할 수 있기 때문에, 본 기술은 렌더링을 위한 비디오 카드를 보다 합리적으로 사용할 수 있다. 따라서, 본 기술은 호환가능한 브라우저와 운영 체제를 갖는 모바일 디바이스에서 그래픽 렌더링 성능을 강화할 수 있다. 표 1은 몇몇 기술 용어의 설명을 하기와 같이 나열한다.
Figure 112015032112515-pct00001
도 1은 본 개시의 예시적인 실시예에 따른 모바일 디바이스에서의 그래픽 렌더링의 예시적인 방법을 도시하는 흐름도이다.
102에서, 그래픽 애플리케이션의 자바스크립트 코드가 검색된다. 자바스크립트 코드는 OPENGL에 기초한 렌더링 함수에 대응하는 API를 포함한다. API는 HTML5 캔버스 표준을 따른 형식을 갖는다.
104에서, 자바스크립트 코드는 파싱 엔진(a parsing engine)에서 실행된다. 자바스크립트 코드의 API가 실행되는 경우, 파싱 엔진은 대응하는 OPENGL에 기초한 렌더링 함수를 획득하기 위해서 API를 파싱한다.
106에서, 렌더링 함수는 그래픽 렌더링을 렌더링 타겟에 수행하기 위해서 호출된다.
예를 들어, OPENGL ES 2.0과 같은 OPENGL에 기초한 렌더링 함수는 모바일 디바이스에서 GPU의 그래픽 렌더링 인터페이스를 완전히 레버리지(leverage)할 수 있다. 파싱 엔진은 자바스크립트 코드의 가변성을 강화하고 자바스크립트 코드에 저급 C++에서 OPENGL 라이브러리를 호출할 수 있는 능력을 제공하기 위해서 가변 확장 함수 인터페이스를 제공한다. 자바스크립트와 OPENGL의 상기 장점에 기초한 본 개시는 모바일 디바이스에서 HTML5 캔버스의 API에 따른 그래픽 렌더링의 솔루션을 제공하고, 그에 따라 본 기술은 모바일 디바이스에서 렌더링 속도를 향상시키며 모바일 디바이스에서의 그래픽 렌더링 효과를 강화한다.
본 개시의 예시적인 실시예에서, 파싱 엔진은 자바스크립트 코드를 위한 확장가능 동작 환경을 제공한다. 특히, 파싱 엔진은 자바스크립트 코드를 파싱하고 실행한다. 아울러, 파싱 엔진은 가변성을 가지며, 확장 함수에 다양한 가변 인터페이스를 제공할 수 있다.
예를 들어, 파싱 엔진은 AppleTM Safari의 Nitro, GoogleTM Chrome의 V8, MozillaTM Firefox 3.5의 TraceMonkey 및 MozillaTM의 SpiderMonkey 등을 포함할 수 있다.
예를 들어, 본 개시의 자바스크립트 코드는 다양한 시나리오에 적용될 수 있는 자바스크립트 개발자에 의해 개발된 HTML5의 캔버스 프로그램을 포함할 수 있다.
예를 들어, 본 기술의 예시적인 장치 또는 시스템은 브라우저에 임베딩 되거나 브라우저의 플러그로서 동작할 수 있다. 본 예시에서, 자바스크립트 코드는 브라우저의 자바스크립트 코드이다.
다른 예시로서, 본 개시는 그래픽 애플리케이션에서 그래픽 렌더링 부분의 개발에 적용될 수 있다. 그래픽 애플리케이션은 예컨대 브라우저, 게임 애플리케이션, 채팅 프로그램 또는 그래픽 표현을 필요로 하는 임의의 다른 프로그램을 포함할 수 있다. 모바일 디바이스에서 그래픽 인터페이스와 게임 화면 표현 기술과 관련하여, OPENGL ES 2.0이 그래픽 렌더링을 효과적으로 실행하기 위해서 활용될 수 있으며, OPENGL ES 2.0은 GPU 장비를 합리적으로 사용하므로 게임 애플리케이션에 대한 양호한 성능 경험을 제공한다.
그러나, OPENGL ES 2.0은 개발자에게 어렵고, 개발을 위한 OPENGLLes 2.0의 인터페이스를 직접 호출하는데 오랜 개발 기간이 걸린다. 본 기술에 따라, 자바스크립트 개발자는 OPENGL의 파워풀한 그래픽 능력을 구현하기 위해 HTML5의 API를 직접 호출할 수 있다. 개발자가 자바스크립트 언어와 2D/3D HTML5 캔버스의 개발 방법을 학습한 경우에, 개발자는 OPENGLE와 유사한 그래픽 렌더링 성능을 갖는 다양한 그래픽 애플리케이션을 용이하게 개발할 수 있다.
아울러, 본 기술은 그래픽 애플리케이션의 그래픽 렌더링 부분을 실행하는데 적용가능할 수 있다. 그래픽 애플리케이션의 프로세스를 동작하는 데 있어, 본 기술은 높은 속도에서 높은 성능으로 그래픽 렌더링을 구현할 수 있다. 부가적으로, 본 기술에서 사용되는 자바스크립트 코드는 직접 다운로드될 수 있어서, 코드는 실행되는 동안 파싱된다. 따라서, 자바스크립트 코드의 사용은 C++ 및 자바 코드에서는 찾을 수 없는 설치가 필요 없고 어느 때에나 업데이트하고 동작할 수 있는 장점을 가진다. 따라서, 종래 기술과 비교하여 본 기술에 의해 개발된 그래픽 애플리케이션은 설치될 필요가 없고, 용이하게 업데이트할 수 있으며, 편리하게 동작할 수 있다.
다른 예시에서, 예시적인 방법은 또한 OPENGL에 기초한 렌더링 함수를 API에 또는 API와 캡슐화(encapsulating) 하는 동작을 포함할 수 있다. OPENGL에 기초한 렌더링 함수는 파싱 엔진의 확장성에 따라 대응하는 API에 캡슐화될 수 있다. API는 자바스크립트 개발자에 노출되고, API는 HTML5 캔버스 표준에 따른 형식을 갖는다.
상세한 구현에서, 예컨대, 본 기술은 API가 캡슐화되는 동안 파싱 엔진의 인터페이스를 보존할 수 있다. 따라서, 자바스크립트 코드의 API가 실행되는 경우, API는 파싱 엔진의 보존된 인터페이스에 따라 파싱된다. 캡슐화의 결과인 캡슐화된 API는 OPENGL에 기초한 렌더링 함수와 맵핑 관계(mapping relationship)를 가질 수 있다. 맵핑 관계는 일대일, 일대다, 다대다 맵핑 관계일 수 있다. 본 기술은 파싱 엔진의 확장성에 따라 대응하는 API에 OPENGL에 기초한 렌더링 함수를 캡슐화하고 API를 자바스크립트 개발자에 제공한다. 본 개시는 상세한 확장성과 대응하는 맵핑 관계 상에 어떤 제한을 두지 않는다.
예시적인 캡슐화된 API ctx.drawImage의 코드는 하기와 같이 제시된다:
Figure 112015032112515-pct00002
예시에서, class_ proto 객체는 API 호출된 drawImage로 캡슐화된다. API가 대응하고 최종적으로 구현하는 렌더링 함수는 C++의
Figure 112015032112515-pct00003
함수이다. class_ protoctx 객체에 대응하는 저급 객체 탬플릿이다. 따라서, ctx.drawImage() 인터페이스는 자바스크립트 코드에 확장되고 노출된다. 자바스크립트의 API가 실행되는 경우, 파싱 동작이 최종 실행될
Figure 112015032112515-pct00004
함수를 찾도록 처리되며,
Figure 112015032112515-pct00005
함수는 렌더링을 위한 비디오 카드를 합리적으로 사용하도록 모바일 디바이스에서 GPU의 그래픽 렌더링 인터페이스를 효과적으로 사용하는 OPENGL에 기초한 렌더링 함수이다.
ctx.drawImage, ctx.fillRect, ctx.fillText 및 ctx.strokeText와 같은 많은 다른 API는 자바스크립트 코드에 확장되고 노출될 수 있다. 일부 코드 예시가 하기에서 제시된다.
Figure 112015032112515-pct00006
예시적인 실시예에서, OPENGL ES 2.0에 기초한 그래픽 엔진의 세트는 OPENGL에 기초한 렌더링 함수를 구현하도록 통합될 수 있으며, OPENGL에 기초한 렌더링 함수는 C++ 언어에 속하고 OPENGL ES 2.0 클래스 라이브러리와 같은 OPENGL에 의존할 수 있다. 따라서, 본 개시의 그래픽 엔진은 파싱 엔진에 의해 호출될 C++ 내의 많은 렌더링 함수를 저장한다. OPENGL ES 2.0가 종래의 기술이기 때문에, 본 개시는 그래픽 엔진의 상세 통합 방법에 어떠한 제한을 두지 않는다.
실제적인 구현에서, 그래픽 렌더링은 그래픽 엔진이 성공적으로 동작하는 조건에 기초하여 처리되어야 한다. OPENGL 그래픽 표준 라이브러리가 성공적으로 동작되는 경우에, 또한 그래픽 엔진의 성공적인 시작을 보장할 수 있다.
더욱이, OPENGL 그래픽 표준 라이브러리는 또한 AndroidTM, SymbianTM, LinuxTM 및 WindowsTM와 같은 다양한 운영 체제에서 동작될 수 있다. 따라서, 그래픽 엔진은 또한 다양한 운영 체제 환경에서 성공적으로 시작될 수 있다. 결과적으로, 본 개시의 실시예는 AndroidTM, SymbianTM, LinuxTM 및 WindowsTM와 같은 다양한 운영 체제에 적용될 수 있다.
전체로서, 본 기술은 주요하게 OPENGL에 기초한 렌더링 함수를 HTML5 캔버스 2D/3D 표준에 따른 API에 또는 API와 캡슐화하도록 파싱 엔진을 사용하는 자바스크립트 및 OPENGL 양자의 장점을 결합한다. 따라서, 본 기술은 모바일 디바이스에서의 그래픽 렌더링의 속도를 증가시킬 뿐만 아니라 모바일 디바이스에서의 그래픽 렌더링의 효과를 향상시킨다.
예를 들어, 렌더링 함수는 OPENGL 형식에 기초한 함수를 캡슐화함으로써 획득되는 인터페이스 함수일 수 있다. 그래픽 렌더링을 렌더링 타겟에 수행하는 렌더링 함수를 호출하는 동작은 하기의 동작을 포함할 수 있다. 파싱된 렌더링 함수는 대응하는 OPENGL 형식의 함수를 획득하기 위해서 두 번째 파싱을 수행한다. 대응하는 OPENGL 형식의 파싱된 함수는 렌더링 타겟에 대한 그래픽 렌더링을 수행하도록 호출될 수 있다.
예시적인 구현에서, OPENGL 형식의 함수는 API와 파싱 엔진의 구현의 편이성을 향상시키도록 HTML5 캔버스 표준 형식과 유사한 형식의 인터페이스 함수를 획득하도록 캡슐화될 수 있다. 예를 들어, 상기 C++ 내의
Figure 112015032112515-pct00007
함수는 캡슐화된 인터페이스 함수이다. 실제로, 캡슐화 전의 OPENGL 형식의 함수는 glDrawElements이다.
다른 예시에 대해서, 렌더링 함수는 저급 렌더링 환경을 초기화하는 초기화 렌더링 함수를 포함할 수 있다. 예를 들어, 저급 렌더링 환경은 브러시(brush), 캔버스 등을 포함할 수 있다. 브러시는 그림 명령(drawing command)의 개시자(initiator)이고, 캔버스는 메모리의 맵핑이다.
예시적인 구현에서, 렌더링 타켓은 자바스크립트 코드의 API가 처음 실행되는 경우에 획득된다. 대응하는 확장 인터페이스는 저급 렌더링 환경을 초기화하기 위해서 캔버스와 브러시 같은 그림 도구를 획득하도록 파싱될 수 있다. 렌더링 타겟은 비디오 카드 내의 버퍼와 같은 시스템에 의해 제공되는 OPENGL 표면일 수 있다. 예를 들어, AndroidTM 시스템에서, 렌더링 타겟은 안드로이드 표면뷰(surfaceview)(게임 개발 프레임워크) 또는 브라우저의 캔버스에 대응하는 저급 구조일 수 있다.
예시적인 구현에서, 캔버스와 브러시는 하기와 같은 자바스크립트 코드를 사용하여 획득될 수 있다:
Figure 112015032112515-pct00008
다른 예시에서, 예시적인 방법은 하기의 단계를 더 포함할 수 있다. 모바일 디바이스의 플랫폼 속성에 기초하여, 초기화 렌더링 함수는 대응하는 렌더링 데이터를 획득하기 위해서 호출된다. 렌더링 데이터는 디바이스 하드웨어 정보를 포함할 수 있다.
모바일 디바이스의 하드웨어 능력은 디바이스 하드웨어 정보에 따라 평가된다. 렌더링 프로세스의 최적화 전략은 모바일 디바이스의 하드웨어 능력에 따라 조정된다. 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 렌더링 함수를 호출하는 동작은 하기의 단계를 더 포함할 수 있다. 렌더링 프로세스의 조정된 최적화 전략에 기초하여, 렌더링 함수는 그래픽 렌더링을 수행하기 위해서 호출된다.
렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 파싱된 렌더링 함수를 호출하는 동작은 하기의 단계를 더 포함한다. 파싱된 렌더링 함수는 렌더링 프로세스의 조정된 최적화 전략에 따라 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 호출된다.
예시적인 실시예에서, 본 기술은 모바일 디바이스의 하드웨어 능력에 따라 렌더링 프로세스의 최적화 전략을 조정하고 그래픽 렌더링의 성능을 강화하도록 렌더링 프로세스의 조정된 최적화 전략에 따라 렌더링 프로세스를 최적화할 수 있다.
예시적인 구현에서, 렌더링 프로세스의 최적화된 전략은 다양한 전략 파라미터와 관계될 수 있다. 예시적인 파라미터로서 (화면에 렌더링된 픽셀 지점의 수인) 정점수(vertices number)를 사용하는 것에서, 하나의 렌더링의 정점의 수는 초기에 설정된다. 디폴트로, 하나의 렌더링에 최대 2000 개의 정점이 존재할 수 있다. 렌더링 프로세스에서, 하드웨어 능력에 따라, 정점 수의 파라미터는 변경가능하다. 예를 들어, 고 품질의 비디오 카드는 하나의 렌더링에서 2000 개의 정점을 처리할 수 있는 반면에, 저 품질의 비디오 카드는 하나의 렌더링에서 600 개의 정점만을 처리한다. 상기 2000 및 600은 하드웨어 능력에 따른 전략 파라미터이다.
따라서, 일반적인 렌더링 프로세스는 하기와 같을 수 있다.
Figure 112015032112515-pct00009
와 같은 호출 명령이 수신되는 경우에, 렌더링은 렌더링 타겟에 즉각 적용되지 않는다. 대신에, 데이터는 정점 큐 및 인덱싱 큐와 같은 가변 데이터 큐로 푸싱될(pushed into) 수 있다. 데이터 큐의 길이가 2000과 같은 전략 파라미터에 도달하면, 그래픽 렌더링이 시작한다.
전략 파라미터와 더불어, 렌더링 프로세스의 최적화 전략은 비디오 카드의 색상 형식, 안티앨리어싱(antialiasing) 능력, 오프닝 z 버퍼 존의 능력, 탬플릿 버퍼 존을 지원하는 능력 등과 같은 다른 전략을 더 포함할 수 있다. 당업자는 실제 요구에 따라 렌더링 프로세스의 다양한 최적화 전략을 사용할 수 있다. 본 개시는 여기에 어떠한 제한을 두지 않는다.
당업자가 화면 적응 파라미터, 픽셀 형식 파라미터(ARGB_8888 등) 및 다른 비디오 카드 관련 파라미터와 같은 현재 하드웨어 환경에 가장 적합한 구성 파라미터의 세트를 선택할 수 있음을 주목해야한다.
당업자로 하여금 본 개시에 대한 더 나은 이해를 가능하게 하기 위해서, 하기에서 실제 구현을 참조하여 설명된다.
하기에서 제 1 예시적인 시나리오가 설명된다.
도 2는 본 개시의 예시적인 실시예에 따른 모바일 디바이스의 브라우저에서 그래픽 렌더링의 예시적인 방법을 도시하는 흐름도를 제시한다.
202에서, 브라우저는 URL(a uniform resource locator) 또는 UUID(a universally unique identifier)를 로딩한다. 그 후, HTML 및 자바스크립트 코드가 획득된다. 자바스크립트 코드는 본 개시에 따라 캡슐화된 API를 포함한다.
브라우저의 커널(kernel)은 코드를 요청하는 HTTP(hypertext transport protocol)에 따른 요청 모듈을 갖는다. 예를 들어, 브라우저가 URL을 사용하여 웹사이트에 방문하는 경우에, 브라우저는 URL을 통해 index.html과 같은 홈페이지를 획득하고, 웹페이지를 실행하고, 필요한 리소스와 자바스크립트 코드를 로딩한다. 예를 들어, 본 기술은 브라우저에 의해 획득된 자바스크립트 코드를 직접 실행할 수 있다.
204에서, 브라우저는 메모리 내의 사진을 초기화하기 위해서 자바스크립트 코드의 var img = new cloudapp.Image()와 같은 코드를 실행하고, 사진을 비동기적으로 로딩하기 위해서 img.src = "http://somewhere/url.png"와 같은 코드를 실행하고, 사진 로딩이 끝난 후에 img.onload = function(){}와 같은 콜백(callback) 함수를 실행한다.
206에서, 본 기술에 따라 캡슐화된 API가 처음 실행되는 경우, 렌더링 타겟은 캔버스 윈도우, 임베디드 서페이스(Surface) 또는 임의의 다른 형식의 형식으로 표현될 수 있다. 본 기술에 따라 캡슐화된 API는 렌더링 타겟으로 렌더링된다.
208에서, 자바스크립트 코드의 API가 처음 실행되는 경우에, 파싱 엔진은 API를 OPENGL에 기초한 대응하는 초기화 렌더링 함수로 파싱하는데 사용되고, 파싱된 초기화 렌더링 함수는 저급 렌더링 환경을 초기화하기 위해서 호출된다. 저급 렌더링 환경은 브러시, 캔버스 등을 포함할 수 있다.
210에서, 자바스크립트 코드의 API가 실행된 이후의 경우에, 파싱 엔진은 다른 대응하는 OPENGL에 기초한 렌더링 함수를 획득하기 위해서 API를 파싱한다. 다른 렌더링 함수는 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 호출된다.
하기는 자바스크립트 코드의 예시적인 API이다.
Figure 112015032112515-pct00010
웹키트(webkit) 커널과 같은 종래의 브라우저는 기본적으로 HTML5 캔버스 표준에 따른 API를 지원한다. 그러나, 웹 브라우저는 HTML의 노드 제어 요소로서 HTML5 캔버스 표준을 사용함으로써, 레이아웃 로직, 이벤트 또는 리드로잉(redrawing)과 같은 동작은 HTML 노드 트리를 사용하는 것이 필요하다. CPU는 그러한 복잡한 로직 때문에 많은 동작을 처리하는 것이 필요하고, 그에 의해 느린 그래픽 렌더링 속도를 초래한다.
본 기술은 또한 HTML5에서 HTML5 캔버스 표준의 API를 구현한다. 그러나, 본 기술은 OPENGL에 기초한 대응하는 렌더링 함수를 획득하기 위해서 API를 파싱하고, 렌더링 타겟에 렌더링 동작을 수행하기 위해서 렌더링 함수를 직접 호출한다. 따라서, 본 기술은 레이아웃 로직, 이벤트 또는 리드로잉과 같은 동작을 피할 수 있으며, 그에 의해 렌더링 속도를 향상할 수 있다.
아울러, 렌더링 타겟에 대한 그래픽 렌더링을 수행하는 동작 중에, 본 기술은 OPENGL에 기초한 렌더링 함수를 호출한다. OPENGL에 기초한 렌더링 함수는 모바일 디바이스에서 GPU의 그래픽 렌더링 인터페이스를 완전히 사용할 수 있고, 렌더링을 위한 비디오 카드를 더욱 합리적으로 사용할 수 있다. 따라서, 본 기술은 호환가능한 브라우저와 운영 체제를 갖는 모바일 디바이스에서 그래픽 렌더링 성능을 더욱 향상시킬 수 있다.
부가적으로, 개발자는 HTML5와 HTML5 캔버스 API에 친숙하다. 따라서, 개발자가 친숙한 API를 사용하여 그래픽 애플리케이션을 개발하는 데 드는 훈련 비용이 없거나 아주 적게 든다. 많은 학습 비용이 필요한 종래의 WebGL 기술과 비교하여, 본 기술은 그래픽 애플리케이션의 학습 비용을 감소시키고, 그에 따라 그래픽 애플리케이션의 효과적인 개발을 달성한다.
더욱이, 종래의 기술 하의 게임 애플리케이션의 클라이언트는 그래픽 애플리케이션을 위해 C++ 또는 자바 코드를 사용하여 개발되고 GPU에 의한 그래픽 렌더링을 필요로 한다. 그러나, C++ 또는 자바 코드는 실행 전에 컴파일링 및 설치가 필요한 코드이다. 따라서, 종래의 기술 하의 게임 애플리케이션은 다운로드된 후 설치가 필요하다. 부가적으로, 그 업데이트 또한 번거롭다. 그러나, 본 기술에 사용되는 자바스크립트 코드는 직접 다운로드 가능하고 파싱되는 동안에 실행될 수 있다. 따라서, 자바스크립트 코드는 C++ 및 자바 코드에서 찾을 수 없는 설치될 필요가 없으며 어느 때나 업데이트 가능한 장점을 갖는다. 따라서, 본 기술에 의해 개발된 그래픽 애플리케이션은 설치될 필요가 없고 용이하게 업데이트하고 동작할 수 있다.
하기는 제 2 예시적인 시나리오가 설명된다.
도 3은 본 개시의 예시적인 실시예에 따른 모바일 디바이스에서 게임 애플리케이션을 실행하는 예시적인 방법의 흐름도를 도시한다.
302에서, 사용자는 모바일 디바이스에서 게임 애플리케이션 마켓을 연다. 즉, 모바일 디바이스는 독립 애플리케이션을 시작한다.
304에서, 사용자는 흥미로운 애플리케이션을 찾기 위해 게임 애플리케이션 마켓을 살펴보고 대응하는 아이콘을 클릭한다.
306에서, 게임 애플리케이션 마켓은 사용자에 의해 클릭된 아이콘에 대응하는 게임 ID를 찾는다.
308에서, 게임 애플리케이션 마켓은 HTTP 또는 다른 요청을 통해 대응하는 게임 애플리케이션 제조사의 서버로부터 게임 애플리케이션 ID에 대응하는 엔트리 코드 또는 main.js와 같은 엔트리 파일을 찾는다.
main.js와 같은 엔트리 파일은 게임 애플리케이션 제조사 또는 게임 애플리케이션 제조사와 협력하는 프리랜스 게임 애플리케이션 개발자에 의해 개발된 게임 애플리케이션의 엔트리 코드 부분이다. main.js의 파일은 저급 렌더링 환경을 초기화하는 createCanvas, getContext 등과 같은 초기화 렌더링 함수의 API를 포함한다. main.js의 파일은 또한 임포트(import) 호출 동작을 포함할 수 있다. 임포트 호출 동작은 자동 실행을 위해 다른 JS 파일을 로딩하도록 사용될 수 있다. 그 후, 게임 애플리케이션이 시작된다. 사용자는 게임의 컨텐츠를 동작할 수 있다. 즉, 사용자는 게임의 플레이를 시작한다. 게임 애플리케이션의 로직은 게임 애플리케이션의 JS 코드에 의해 제어된다. 그러나, 저급 렌더링은 여전히 본 기술에 의해 지원된다.
310에서, main.js 코드와 같은 엔트리 파일이 실행된다. 실행 프로세스는 하기의 단계를 포함할 수 있다. main.js 코드 내의 초기화 렌더링 함수의 API가 처음 실행되면, 렌더링 타겟은 캔버스 윈도우, 임베디드 서페이스 또는 임의의 다른 형식으로 표현될 수 있다. 파싱 엔진은 API를 OPENGL에 기초한 대응하는 초기화 렌더링 함수로 파싱하고, 파싱된 초기화 렌더링 함수는 저급 렌더링 환경을 초기화하기 위해서 호출된다.
312에서, main.js 코드와 같은 엔트리 파일이 실행된다. 실행 프로세스는 하기의 단계를 포함할 수 있다. 게임 애플리케이션 ID에 대응하는 다른 JS 파일이 임포트 호출에 따라 로딩된다.
예를 들어, 다른 JS 파일은 main.js 코드와 같은 엔트리 파일에 의존하는 파일일 수 있다. 예시적인 구현에서, 다른 JS 파일은 다른 JS 파일을 로딩하는 목적을 달성하기 위해서 명령 요구(xxx.js) 또는 명령 임포트(xxx.js) 등과 같은 방법을 통해 요구 메커니즘에 의해 획득될 수 있다.
314에서, 다른 JS 파일이 실행된다. 실행 프로세스는 하기의 단계를 포함할 수 있다. 다른 JS 파일의 API가 실행되는 경우에, 파싱 엔진은 API를 OPENGL에 기초한 다른 대응하는 초기화 렌더링 함수로 파싱하는데 사용된다. 다른 렌더링 함수는 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해 호출된다.
종래의 기술에서, 게임 애플리케이션 클라이언트의 개발자는 그래픽 렌더링 애플리케이션을 개발하기 위해서 C++ 또는 자바 코드를 사용하고, GPU가 그래픽 렌더링을 위해 사용된다. 그러나, C++ 또는 자바 코드는 실행 전에 컴파일링되고 설치될 필요가 있다. 따라서, 종래 기술 하에서의 그래픽 애플리케이션은 다운로드 후에 설치될 필요가 있으며, 그 업데이트 또한 번거롭다.
본 기술은 직접 다운로드 가능하고 실행 중에 파싱될 수 있는 자바스크립트 코드를 사용할 수 있다. 따라서, 자바스크립트 코드는 C++ 또는 자바 코드에서 찾아볼 수 없는 설치될 필요가 없고 어느 때나 업데이트 및 실행될 수 있는 장점을 갖는다. 따라서, 본 기술에 의해 개발된 그래픽 애플리케이션은 설치 및 업데이트될 필요가 없고 용이하게 동작할 수 있다.
상기 예시적인 방법 또는 시스템 실시예에 대응하여, 본 개시는 또한 모바일 디바이스에서 그래픽 렌더링을 위한 예시적인 장치를 제공한다. 도 4는 본 개시의 다른 예시적인 실시예에 따라 모바일 디바이스에서의 그래픽 렌더링을 위한 예시적인 장치(400)의 블럭도이다.
장치(400)는 하나 이상의 프로세서(들)(402)와 메모리(404)를 포함할 수 있다. 메모리(404)는 컴퓨터-판독가능 매체의 예시이다. 본 명세서에서 사용되는 바와 같이, "컴퓨터-판독가능 매체"는 컴퓨터 저장 매체와 통신 매체를 포함한다.
컴퓨터 저장 매체는 컴퓨터-실행가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 탈착가능 및 비-탈착가능 매체를 포함한다. 이에 반해, 통신 매체는 반송파(a carrier wave)와 같은 변조된 데이터 신호 내의 컴퓨터-판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 탑재(embody)할 수 있다. 본 명세서에서 정의되는 바와 같이, 컴퓨터 저장 매체는 통신 매체를 포함하지 않는다. 메모리(404)는 그 안에 프로그램 유닛 또는 모듈 및 프로그램 데이터를 저장할 수 있다.
도 4의 예시에서, 메모리(404)는 그 안에 코드 검색 모듈(406), 코드 실행 모듈(408) 및 함수 호출 모듈(410)을 저장할 수 있다.
코드 검색 모듈(406)은 그래픽 애플리케이션의 자바스크립트 코드를 검색한다. 자바스크립트 코드는 OPENGL에 기초한 렌더링 함수에 대응하는 API를 포함한다. API는 HTML5 캔버스 표준에 따른 형식을 갖는다.
코드 실행 모듈(408)은 파싱 엔진에서 자바스크립트 코드를 실행한다. 자바스크립트 코드의 API가 실행되는 경우에, 파싱 엔진은 OPENGL에 기초한 대응하는 렌더링 함수를 획득하기 위해서 API를 파싱한다.
함수 호출 모듈(410)은 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 파싱된 렌더링 함수를 호출한다.
예를 들어, 장치(400)는 OPENGL에 기초한 렌더링 함수를 API에 또는 API와 캡슐화하는 캡슐화 모듈을 더 포함할 수 있다. 예를 들어, 캡슐화 모듈은 파싱 엔진의 확장성에 따라 OPENGL에 기초한 렌더링 함수를 대응하는 API와 캡슐화한다. API는 자바스크립트 개발자에 노출되고, API는 HTML5 캔버스 표준에 따른 형식을 갖는다.
예를 들어, 렌더링 함수는 OPENGL 형식에 기초한 함수의 캡슐화에 기초하여 획득된 인터페이스 함수이다.
예를 들어, 함수 호출 모듈(410)은 제 2 파싱 서브-모듈 및 호출 서브-모듈을 더 포함할 수 있다. 제 2 파싱 서브-모듈은 대응하는 OPENGL 형식의 함수를 획득하기 위해 파싱된 렌더링 함수에 제 2 파싱을 수행한다. 호출 서브-모듈은 렌더링 타겟에 대한 그래픽 렌더링을 수행하기 위해서 OPENGL 형식의 파싱된 함수를 호출한다.
다른 예시로서, 렌더링 함수는 저급 렌더링 환경을 초기화하는 초기화 렌더링 함수를 포함할 수 있다.
다른 예시로서, 장치(400)는 환경 초기화 모듈, 평가 모듈 및 렌더링 프로세스 최적화 전략 조정 모듈을 더 포함할 수 있다. 환경 초기화 모듈은 모바일 디바이스의 플랫폼 속성에 기초하여 대응하는 렌더링 데이터를 획득하기 위해서 초기화 렌더링 함수를 호출한다. 렌더링 데이터는 디바이스 하드웨어 정보를 포함할 수 있다.
평가 모듈은 디바이스 하드웨어 정보에 따라 모바일 디바이스의 하드웨어 능력을 평가한다. 렌더링 프로세스 최적화 전략 조정 모듈은 모바일 디바이스의 하드웨어 트ㅇ력에 따라 렌더링 프로세스의 최적화 전략을 조정한다. 호출 모듈은 렌더링 프로세스의 조정된 최적화 전략에 기초하여 그래픽 렌더링을 수행하기 위해서 렌더링 함수를 호출한다.
본 개시의 예시적인 장치 실시예의 설명은 예시적인 장치 실시예의 기술이 예시적인 방법 실시예의 그것과 유사하므로 상대적으로 간략히 제시된다. 예시적인 장치 실시예와 관련된 기술은 본 개시의 예시적인 방법 실시예의 기술을 참조할 수 있다.
당업자는 본 개시의 실시예가 방법, 시스템, 장치(디바이스) 또는 컴퓨터의 프로그램 제품일 수 있음을 이해해야 한다. 따라서, 본 개시는 하드웨어, 소프트웨어 또는 양자의 조합으로 구현될 수 있다. 아울러, 본 개시는 컴퓨터-실행가능 코드 또는 컴퓨터 저장 매체(디스크, CD_ROM, 광학 디스크 등을 포함하나 이에 제한되는 것은 아닌)에 포함되거나 저장될 수 있는 명령어를 포함하는 하나 이상의 컴퓨터 프로그램의 형태일 수 있다.
본 개시는 본 개시의 실시예의 방법, 디바이스(시스템) 및 컴퓨터 프로그램의 흐름도 및/또는 블럭도를 참조함으로써 설명된다. 각각의 흐름 및/또는 블럭과 흐름도 및/또는 블럭도의 흐름 및/또는 블럭의 조합이 컴퓨터-실행가능 명령어에 의해 구현될 수 있다. 이러한 컴퓨터-실행가능 명령어는 일반적인 컴퓨터, 특정 컴퓨터, 임베디드 프로세서 또는 머신을 생성하는 하나 이상의 프로세서를 포함하는 임의의 다른 프로그램 가능한 데이터 디바이스에 제공될 수 있어서, 흐름도의 하나 이상의 흐름 및/도는 블럭도의 하나 이상의 블럭을 구현하는 디바이스가 컴퓨터 또는 다른 프로그램 가능 데이터 프로세서를 통해 생성될 수 있다.
컴퓨터-실행가능 명령어는 또한 하나 이상의 컴퓨터 또는 임의의 다른 프로그램 가능 데이터 프로세싱 디바이스에 저장될 수 있어서, 컴퓨터 또는 임의의 다른 프로그램 가능 데이터 프로세싱 디바이스로 하여금 특정한 방식으로 동작하도록 하여, 컴퓨터 저장 매체에 저장된 컴퓨터-실행가능 명령어는 흐름도 및/또는 블럭도의 하나 이상의 흐름 및/또는 블럭에 의해 지정된 기능을 구현할 수 있다.
컴퓨터-실행가능 명령어는 또한 컴퓨터 또는 임의의 다른 프로그램 가능 데이터 프로세싱 디바이스로 하여금 컴퓨터 프로세싱을 구현하기 위한 일련의 동작을 수행하도록 컴퓨터 또는 임의의 다른 프로그램 가능 데이터 프로세싱 디바이스에 로딩될 수 있다. 따라서, 컴퓨터 또는 임의의 다른 프로그램 가능 데이터 프로세싱 디바이스에서 수행되는 컴퓨터-실행가능 명령어는 흐름도 및/또는 블럭도의 하나 이상의 흐름 및/또는 블럭에 의해 지정된 구현 기능을 구현한다.
비록 본 개시는 일부 예시적인 실시예를 설명하지만, 당업자는 본 개시의 기본적인 창조적 컨셉을 획득한 후 다양한 변형 또는 수정을 만들 수 있다. 따라서, 청구항은 예시적인 실시예 및 본 개시의 범주에 속하는 다른 변형 또는 수정을 보호하도록 해석되어야 한다.
본 개시의 예시적인 실시예는 점진적으로(progressively) 설명된다. 각각의 예시적인 실시예는 다른 예시적인 실시예와의 차이에 집중한다. 다양한 예시적인 실시예 간의 동일하고 유사한 부분은 서로 간에 참조될 수 있다.
본 개시는 모바일 디바이스에서 그래픽 렌더링을 수행하는 예시적인 방법 및 장치를 제공한다. 본 개시는 본 기술의 원리 및 구현을 제시하기 위해서 예시적인 실시예를 사용한다. 예시적인 실시예는 본 개시의 방법 및 컨셉의 이해를 돕기 위해서 사용될 뿐이다. 다양한 수정, 변경 또는 등가적 교체가 본 개시의 원리에 따라 당업자에 의해 수행될 수 있음이 이해되어야 한다. 따라서, 명세서는 본 개시를 제한하도록 사용되어서는 안 될 것이다.

Claims (20)

  1. 모바일 디바이스의 하나 이상의 프로세서에 의해 수행되는 방법으로서,
    그래픽 애플리케이션의 자바스크립트 코드를 획득하는 단계 - 상기 자바스크립트 코드는 OPENGL(open graphic library)에 기초한 렌더링 함수에 대응하는 API(application programming interface)를 포함함 - 와,
    대응하는 OPENGL 형식을 갖는 제 1 렌더링 함수로 상기 API의 제 1 파싱을 수행하기 위해 파싱 엔진(parsing engine)에서 상기 자바스크립트 코드의 상기 API를 실행하는 단계 - 상기 제 1 렌더링 함수는 저급 렌더링 환경을 초기화하고 상기 모바일 디바이스의 디바이스 하드웨어 정보를 획득하기 위해 호출됨 - 와,
    상기 디바이스 하드웨어 정보의 획득에 기초하여 렌더링 프로세스의 최적화 전략을 조정하는 단계와,
    대응하는 OPENGL 형식을 갖는 제 2 렌더링 함수로 상기 API의 후속하는 제 2 파싱을 수행하기 위해 상기 파싱 엔진에서 상기 자바스크립트 코드의 상기 API를 실행하는 단계와,
    상기 렌더링 프로세스의 상기 최적화 전략의 조정에 기초하여, 렌더링 타겟에 상기 렌더링 프로세스를 수행하기 위해 상기 제 2 렌더링 함수를 호출하는 단계를 포함하는
    방법.
  2. 제 1 항에 있어서,
    상기 API의 형식은 HTML5 캔버스의 표준에 따르는
    방법.
  3. 제 1 항에 있어서,
    상기 제 1 파싱을 수행하기 위해 상기 API를 실행하는 단계 및 상기 제 2 파싱을 수행하기 위해 상기 API를 실행하는 단계는 상기 자바스크립트 코드의 상기 API가 실행되는 경우, 상기 제 1 렌더링 함수 및 상기 제 2 렌더링 함수를 획득하기 위해 상기 API를 파싱하는 상기 파싱 엔진을 사용하는 단계를 포함하는
    방법.
  4. 제 1 항에 있어서,
    상기 제 1 렌더링 함수 및 상기 제 2 렌더링 함수를 각각 상기 API에 캡슐화(encapsulating)하는 단계를 더 포함하는
    방법.
  5. 제 4 항에 있어서,
    상기 캡슐화 하는 단계는 상기 파싱 엔진의 확장성(extensibility)에 기초하여 상기 제 1 렌더링 함수 및 상기 제 2 렌더링 함수를 각각 상기 API에 캡슐화하는 단계를 포함하는
    방법.
  6. 제 1 항에 있어서,
    상기 제 1 렌더링 함수 및 상기 제 2 렌더링 함수는 OPENGL 형식에 기초한 함수의 캡슐화에 기초하여 획득된 인터페이스 함수인
    방법.
  7. 삭제
  8. 삭제
  9. 제 1 항에 있어서,
    상기 디바이스 하드웨어 정보에 따라 상기 모바일 디바이스의 하드웨어 능력을 평가하는 단계를 더 포함하고,
    상기 조정하는 단계는 상기 모바일 디바이스의 하드웨어 능력에 따라 상기 렌더링 프로세스의 상기 최적화 전략을 조정하는 단계를 포함하는
    방법.
  10. 제 9 항에 있어서,
    상기 제 2 렌더링 함수를 호출하는 단계는 상기 렌더링 프로세스의 상기 조정된 최적화 전략에 기초하여 상기 렌더링 타겟에 그래픽 렌더링을 수행하기 위해 상기 제 2 렌더링 함수를 호출하는 단계를 포함하는
    방법.
  11. 그래픽 애플리케이션의 자바스크립트 코드를 획득하는 코드 검색 모듈 - 상기 자바스크립트 코드는 OPENGL에 기초한 렌더링 함수에 대응하는 API를 포함하고, 상기 API의 형식은 HTML5 캔버스의 표준에 따름 - 과,
    대응하는 OPENGL 형식을 갖는 제 1 렌더링 함수로 상기 API의 제 1 파싱을 수행하기 위해 파싱 엔진(parsing engine)에서 상기 자바스크립트 코드의 상기 API를 실행하고, 대응하는 OPENGL 형식을 갖는 제 2 렌더링 함수로 상기 API의 후속하는 제 2 파싱을 수행하기 위해 상기 파싱 엔진에서 상기 자바스크립트 코드의 상기 API를 실행하는 코드 실행 모듈 - 상기 제 1 렌더링 함수는 저급 렌더링 환경을 초기화하고 모바일 디바이스의 디바이스 하드웨어 정보를 획득하기 위해 호출됨 - 과,
    상기 디바이스 하드웨어 정보의 획득에 기초하여 렌더링 프로세스의 최적화 전략을 조정하는 렌더링 프로세스 최적화 전략 조정 모듈과,
    상기 렌더링 프로세스의 상기 최적화 전략의 조정에 기초하여, 렌더링 타겟에 상기 렌더링 프로세스를 수행하기 위해 상기 제 2 렌더링 함수를 호출하는 함수 호출 모듈을 포함하는
    장치.
  12. 제 11 항에 있어서,
    상기 제 1 렌더링 함수 및 상기 제 2 렌더링 함수를 각각 상기 API에 캡슐화(encapsulating)하는 캡슐화 모듈을 더 포함하는
    장치.
  13. 제 12 항에 있어서,
    상기 캡슐화 모듈은 상기 파싱 엔진의 확장성에 기초하여 상기 제 1 렌더링 함수 및 상기 제 2 렌더링 함수를 각각 상기 API에 캡슐화하는
    장치.
  14. 제 11 항에 있어서,
    상기 제 1 렌더링 함수 및 상기 제 2 렌더링 함수는 OPENGL 형식에 기초한 함수의 캡슐화에 기초하여 획득되는 인터페이스 함수인
    장치.
  15. 삭제
  16. 삭제
  17. 제 11 항에 있어서,
    상기 디바이스 하드웨어 정보에 따라 상기 모바일 디바이스의 하드웨어 능력을 평가하는 평가 모듈을 더 포함하고,
    상기 렌더링 프로세스 최적화 전략 조정 모듈은 상기 모바일 디바이스의 하드웨어 능력에 따라 상기 렌더링 프로세스의 상기 최적화 전략을 조정하는
    장치.
  18. 컴퓨터-실행가능 명령어를 저장한 하나 이상의 컴퓨터 저장 매체로서,
    상기 컴퓨터-실행가능 명령어는 하나 이상의 프로세서에 의해 실행되어,
    그래픽 애플리케이션의 자바스크립트 코드 - 상기 자바스크립트 코드는 OPENGL에 기초한 렌더링 함수에 대응하는 API를 포함하고, 상기 API의 형식은 HTML5 캔버스의 표준에 따름 - 를 획득하는 것과,
    상기 API가 처음 실행되는 경우, OPENGL에 기초한 초기화 렌더링 함수를 획득하기 위해 상기 API를 파싱하는 파싱 엔진을 사용하는 것과,
    저급 렌더링 환경을 초기화하고 모바일 디바이스의 디바이스 하드웨어 정보를 획득하기 위해 상기 초기화 렌더링 함수를 호출하는 것과,
    상기 디바이스 하드웨어 정보의 획득에 기초하여 렌더링 프로세스의 최적화 전략을 조정하는 것과,
    상기 API가 실행된 이후의 경우에, OPENGL에 기초한 다른 렌더링 함수를 획득하기 위해 상기 API를 파싱하는 상기 파싱 엔진을 사용하는 것과,
    상기 렌더링 프로세스의 상기 최적화 전략의 조정에 기초하여, 렌더링 타겟에 상기 렌더링 프로세스를 수행하기 위해 상기 다른 렌더링 함수를 호출하는 것을 포함하는 동작을 수행하도록 실행가능한
    하나 이상의 컴퓨터 저장 매체.
  19. 제 18 항에 있어서,
    상기 조정하는 것은,
    상기 디바이스 하드웨어 정보에 따라 상기 모바일 디바이스의 하드웨어 능력을 평가하는 것과,
    상기 모바일 디바이스의 하드웨어 능력에 따라 상기 렌더링 프로세스의 상기 최적화 전략을 조정하는 것을 포함하는
    하나 이상의 컴퓨터 저장 매체.
  20. 삭제
KR1020157008416A 2012-10-09 2013-10-08 그래픽 렌더링 KR102115057B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201210379921.4A CN103713891B (zh) 2012-10-09 2012-10-09 一种在移动设备上进行图形渲染的方法和装置
CN201210379921.4 2012-10-09
PCT/US2013/063916 WO2014058902A1 (en) 2012-10-09 2013-10-08 Graphic rendering

Publications (2)

Publication Number Publication Date
KR20150067165A KR20150067165A (ko) 2015-06-17
KR102115057B1 true KR102115057B1 (ko) 2020-05-26

Family

ID=49510515

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157008416A KR102115057B1 (ko) 2012-10-09 2013-10-08 그래픽 렌더링

Country Status (6)

Country Link
US (1) US9646357B2 (ko)
KR (1) KR102115057B1 (ko)
CN (1) CN103713891B (ko)
IN (1) IN2015DN02756A (ko)
TW (1) TWI595442B (ko)
WO (1) WO2014058902A1 (ko)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9360339B2 (en) 2013-01-14 2016-06-07 Sap Se Rendering maps with canvas elements
US9508133B2 (en) 2014-11-18 2016-11-29 Duelight Llc System and method for generating an image result based on availability of a network resource
US9448771B2 (en) 2014-10-17 2016-09-20 Duelight Llc System, computer program product, and method for generating a lightweight source code for implementing an image processing pipeline
US9361319B2 (en) 2013-09-30 2016-06-07 Duelight Llc Systems, methods, and computer program products for digital photography
US9460118B2 (en) 2014-09-30 2016-10-04 Duelight Llc System, method, and computer program product for exchanging images
US9804900B2 (en) * 2014-05-30 2017-10-31 Apple Inc. Manipulating shaders with object-oriented programming
KR101577012B1 (ko) * 2014-06-24 2015-12-11 (주)에듀필미디어 멀티미디어 데이터의 합성방법 및 동영상 재생기
US10068370B2 (en) * 2014-09-12 2018-09-04 Microsoft Technology Licensing, Llc Render-time linking of shaders
US10013735B2 (en) * 2015-01-28 2018-07-03 Qualcomm Incorporated Graphics processing unit with bayer mapping
CN104573110B (zh) * 2015-02-02 2018-08-21 北京恒华伟业科技股份有限公司 一种浏览器中图形的动态展示方法及装置
CN104866340A (zh) * 2015-04-29 2015-08-26 小米科技有限责任公司 终端设备软件更新方法及装置
CN105373427B (zh) * 2015-11-11 2019-12-03 麒麟合盛网络技术股份有限公司 一种显示应用和功能开关的方法及装置
CN107368291A (zh) * 2016-05-13 2017-11-21 北京搜狗科技发展有限公司 一种网页绘制装置、方法及电子设备
CN105930535A (zh) * 2016-06-20 2016-09-07 微景天下(北京)科技有限公司 自适应图像呈现系统和自适应图像呈现方法
CN106168869B (zh) * 2016-06-24 2019-06-21 北京奇虎科技有限公司 基于悬浮窗的桌面视图处理方法、装置及终端
US10416836B2 (en) * 2016-07-11 2019-09-17 The Boeing Company Viewpoint navigation control for three-dimensional visualization using two-dimensional layouts
CN106327563B (zh) * 2016-08-24 2019-04-05 武汉斗鱼网络科技有限公司 一种Directx纹理资源互操作系统及方法
CN107832108B (zh) * 2016-09-14 2021-05-07 阿里巴巴集团控股有限公司 3D canvas网页元素的渲染方法、装置及电子设备
CN106547845A (zh) * 2016-10-17 2017-03-29 搜游网络科技(北京)有限公司 用于模拟canvas接口的方法及其设备
CN106569816B (zh) * 2016-10-26 2020-03-31 搜游网络科技(北京)有限公司 一种渲染方法及装置
CN106886404A (zh) * 2017-01-17 2017-06-23 武汉卓尔云市集团有限公司 一种android的3D渲染装置
CN106897066B (zh) 2017-02-24 2019-10-29 百富计算机技术(深圳)有限公司 基于pos支付终端的网络应用运行方法及装置
CN108572818B (zh) * 2017-03-08 2021-07-23 斑马智行网络(香港)有限公司 一种用户界面渲染方法及装置
CN106990961B (zh) * 2017-03-28 2023-10-27 北京航天联智科技有限公司 一种WebGL图形渲染引擎的建立方法
CN107066430B (zh) * 2017-04-21 2021-02-26 阿里巴巴(中国)有限公司 图片处理方法、装置、服务端及客户端
US11062497B2 (en) 2017-07-17 2021-07-13 At&T Intellectual Property I, L.P. Structuralized creation and transmission of personalized audiovisual data
CN107562861A (zh) * 2017-08-29 2018-01-09 武汉智丽丰信息科技有限公司 一种基于WebGL的WebGIS三维模型系统
WO2019075702A1 (en) * 2017-10-19 2019-04-25 Tencent Technology (Shenzhen) Company Limited METHODS AND SYSTEMS FOR PROCESSING GRAPHICS
CN108021356B (zh) * 2017-11-06 2021-08-03 江苏省测绘研究所 一种跨屏跨平台的可量测实景地图组织方法
CN110262798B (zh) * 2018-03-12 2023-11-10 北京蓝亚盒子科技有限公司 基于WebGL的图形绘制方法、装置、运行器及可读存储介质
CN112930556A (zh) * 2018-09-10 2021-06-08 阿韦瓦软件有限责任公司 集成用于可视化大数据集的第三方几何结构的系统和方法
CN109271155A (zh) * 2018-09-11 2019-01-25 Oppo广东移动通信有限公司 游戏平台的能力调用方法及相关产品
CN109395384A (zh) * 2018-09-12 2019-03-01 Oppo广东移动通信有限公司 游戏渲染方法及相关产品
CN109316751B (zh) * 2018-09-20 2021-08-10 Oppo广东移动通信有限公司 游戏适配方法、相关设备以及计算机可读存储介质
CN109271156B (zh) * 2018-09-25 2022-02-18 Oppo广东移动通信有限公司 游戏平台的底层调用方法及相关产品
CN111210496B (zh) * 2018-11-19 2022-11-25 腾讯科技(深圳)有限公司 一种图片解码方法、装置以及设备
CN109542567A (zh) * 2018-11-20 2019-03-29 四川长虹电器股份有限公司 基于Linux平台的浏览器的渲染方法及浏览器
CN111400024B (zh) * 2019-01-03 2023-10-10 百度在线网络技术(北京)有限公司 渲染过程中的资源调用方法、装置和渲染引擎
CN111402349B (zh) * 2019-01-03 2023-09-08 百度在线网络技术(北京)有限公司 渲染方法、渲染装置和渲染引擎
CN111408138B (zh) * 2019-01-04 2023-07-07 厦门雅基软件有限公司 基于游戏引擎的渲染方法、装置及电子设备
CN109885302A (zh) * 2019-01-29 2019-06-14 维沃移动通信有限公司 一种快应用的展示方法及终端设备
CN109918598B (zh) * 2019-03-07 2022-10-18 四川长虹电器股份有限公司 一种基于Android电视浏览器的web页面渲染方法
CN110413914A (zh) * 2019-07-25 2019-11-05 中南民族大学 基于WebGL的渲染方法、装置、设备及存储介质
CN110727481A (zh) * 2019-09-06 2020-01-24 平安国际智慧城市科技股份有限公司 图片编辑方法、装置、计算机设备和存储介质
CN110764757B (zh) * 2019-10-22 2023-06-09 成都九洲电子信息系统股份有限公司 一种基于html5的交互式图形绘制引擎
CN111275782B (zh) * 2020-01-17 2023-09-08 广州图匠数据科技有限公司 一种图形绘制方法、装置、终端设备及存储介质
CN111381920B (zh) * 2020-02-17 2022-10-04 网易(杭州)网络有限公司 弹窗组件的显示方法、装置以及电子终端
CN113360200A (zh) * 2020-03-05 2021-09-07 北京沃东天骏信息技术有限公司 一种目标程序植入页面运行的方法和装置
CN111562962B (zh) * 2020-04-29 2023-07-04 百度在线网络技术(北京)有限公司 画面渲染方法、装置、电子设备和存储介质
CN111580809A (zh) * 2020-05-07 2020-08-25 讯飞幻境(北京)科技有限公司 一种可视化webgl框架构建方法、装置及计算机设备
CN112288840B (zh) * 2020-10-26 2021-08-24 北京优锘科技有限公司 一种三维渲染引擎结合JavaScript脚本引擎实现运行的方法
CN113313804B (zh) * 2021-06-23 2024-03-12 深圳Tcl新技术有限公司 一种图像渲染方法、装置、电子设备和存储介质
CN113515396B (zh) * 2021-07-09 2024-01-30 北京字节跳动网络技术有限公司 图形渲染方法、装置、电子设备与存储介质
CN113570733A (zh) * 2021-08-05 2021-10-29 稿定(厦门)科技有限公司 一种基于WebGL的图形渲染方法、装置及系统
CN113694523A (zh) * 2021-08-30 2021-11-26 上海哔哩哔哩科技有限公司 基于移动端app的h5游戏显示方法、装置及计算机设备
CN114090918A (zh) * 2021-10-25 2022-02-25 青岛海尔科技有限公司 参数调整方法、装置、存储介质及电子装置
CN114821001B (zh) * 2022-04-12 2024-04-19 支付宝(杭州)信息技术有限公司 基于ar的互动方法、装置及电子设备
CN114546578A (zh) * 2022-04-26 2022-05-27 阿里巴巴(中国)有限公司 一种地图可视化方法、装置、系统及计算机程序产品

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117145A1 (en) * 2010-11-08 2012-05-10 Sony Corporation Methods and systems for use in providing a remote user interface

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289299B1 (en) 1999-02-17 2001-09-11 Westinghouse Savannah River Company Systems and methods for interactive virtual reality process control and simulation
US6874150B2 (en) * 2001-03-01 2005-03-29 Microsoft Corporation Method and system for maintaining connections between surfaces and objects in a graphics display system
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
JP2006195979A (ja) * 2005-01-04 2006-07-27 Microsoft Corp ウェブアプリケーションアーキテクチャ
KR20060108069A (ko) * 2005-04-12 2006-10-17 한국문화콘텐츠진흥원 임베디드 시스템의 씨 기반 그래픽 렌더러가 이용된 자바플랫폼용 모바일 3차원 그래픽 엔진 및 그를 이용한 3차원그래픽 구현방법
US20070171222A1 (en) * 2006-01-23 2007-07-26 Autodesk, Inc. Application-independent method for capturing three-dimensional model data and structure for viewing and manipulation
US20080201695A1 (en) * 2007-02-16 2008-08-21 Qing Zhou Computer graphics rendering
KR20130043241A (ko) * 2008-07-25 2013-04-29 퀄컴 인코포레이티드 그래픽 이미지들의 시각적 창작 동안의 성능 분석
US8675000B2 (en) 2008-11-07 2014-03-18 Google, Inc. Command buffers for web-based graphics rendering
EP2519933B1 (en) 2009-12-30 2020-04-01 Telecom Italia S.p.A. Method for the calculation of the bounding box of vectorial graphic shapes
US8561038B1 (en) * 2009-12-31 2013-10-15 Google Inc. High performance execution environment
US20120166953A1 (en) * 2010-12-23 2012-06-28 Microsoft Corporation Techniques for electronic aggregation of information
US20120169754A1 (en) 2010-12-30 2012-07-05 Nokia Corporation Method and apparatus for providing synthesizable graphics for user terminals
CN102087598A (zh) * 2011-02-22 2011-06-08 深圳市同洲电子股份有限公司 一种3d界面展示方法、装置及浏览装置
US8872861B2 (en) * 2011-05-13 2014-10-28 Samsung Display Co., Ltd. Apparatus for selecting backlight color values
CN102323880A (zh) * 2011-06-30 2012-01-18 中兴通讯股份有限公司 基于浏览器解析方式的手机应用界面的开发方法和终端
US8400453B2 (en) 2011-06-30 2013-03-19 Google Inc. Rendering a text image following a line
US8760451B2 (en) 2011-06-30 2014-06-24 Google Inc. Rendering a text image using texture map character center encoding with character reference encoding
CN102323882B (zh) * 2011-08-31 2014-03-12 北京华电万通科技有限公司 一种应用于Web3D的数据处理装置和方法
CN102316161B (zh) * 2011-08-31 2014-05-14 北京华电万通科技有限公司 一种应用于Web3D的数据传输装置和方法
US9202309B2 (en) * 2011-09-01 2015-12-01 Adobe Systems Incorporated Methods and apparatus for digital stereo drawing
WO2013074568A1 (en) * 2011-11-15 2013-05-23 Trimble Navigation Limited Browser-based collaborative development of a 3d model
US9123084B2 (en) 2012-04-12 2015-09-01 Activevideo Networks, Inc. Graphical application integration with MPEG objects

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117145A1 (en) * 2010-11-08 2012-05-10 Sony Corporation Methods and systems for use in providing a remote user interface

Also Published As

Publication number Publication date
WO2014058902A1 (en) 2014-04-17
KR20150067165A (ko) 2015-06-17
TW201415411A (zh) 2014-04-16
IN2015DN02756A (ko) 2015-08-28
CN103713891B (zh) 2017-11-24
US9646357B2 (en) 2017-05-09
TWI595442B (zh) 2017-08-11
CN103713891A (zh) 2014-04-09
US20140098118A1 (en) 2014-04-10

Similar Documents

Publication Publication Date Title
KR102115057B1 (ko) 그래픽 렌더링
US10650166B1 (en) Application remoting using network vector rendering
CN109313661B (zh) 针对原生移动应用中托管的网络应用的网页加速
CN108563517B (zh) 系统接口的调用方法及装置
CN110032614B (zh) 基于wasm的地图矢量渲染方法和装置
US11811853B2 (en) Systems and methods for content delivery acceleration of virtual reality and augmented reality web pages
CN107943997B (zh) 一种基于谷歌浏览器的远程网站取证方法、终端设备及存储介质
CN112770188B (zh) 一种视频播放方法及装置
US11909812B2 (en) Application control method and apparatus, electronic device, and storage medium
CN107040584B (zh) 客户端下载图片的方法及装置
CN111722885B (zh) 程序运行方法、装置以及电子设备
US9679075B1 (en) Efficient delivery of animated image files
CN112307403A (zh) 页面渲染方法、装置、存储介质以及终端
CN107247544A (zh) 使用交互图像优化软件应用用户界面性能
US20170359434A1 (en) Web caching with image and local storage
CN110609677A (zh) 一种基于WebGL的图形绘制方法、装置及系统
CN113094612A (zh) 客户端加载网页的方法、装置、电子设备及介质
US11758016B2 (en) Hosted application as web widget toolkit
CN112330816A (zh) Ar识别的处理方法、装置和电子装置
CN110209973A (zh) 一种网页游戏加载方法及装置
US9507806B1 (en) Efficient delivery of image files
US20240137401A1 (en) Systems and Methods For Content Delivery Acceleration of Virtual Reality and Augmented Reality Web Pages
Andersson Tholin Evaluating remote and local web rendering of real-time interactive 2D graphics using Blazor
CN116205259A (zh) 一种数据处理方法、装置、计算机设备以及存储介质
CN117710554A (zh) 3d图形绘制方法、装置及电子设备

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