Moz2D

Makoto Kato
Makoto KatoPlatform Engineer
Moz2D
@makoto_kato
About
• Working

at Mozilla Japan

• 最近やってるもの
• ECMA-402等のためのlibicuインテグレーション

• string

compare by locale

• Electrolysis

• OS

Integration
今日の話
Why is gfx important?
• 各プラットフォーム間の差異
• パフォーマンス
• ハードウェア利用
Gfx on Rendering Engine
• Firefox

• cairo

/ Gecko

/ Moz2D (a.k.a. Azure)

• Chromium

/ Blink

• skia
• WebKit

• cairo

/ chromium/skia / Core Graphics / Qt / etc
Terminology for gfx
• Core

Graphics

• OSX
• Direct

API (and iTunues for Windows?)
2D

• Windows

(Vista + Update / 7+)以降で使える2D API

• OpenGL

• クロノスグループで定義している3D

API
Terminology for gfx
• Cairo

(by RedHat, Intel and etc)

• GTK等で利用されている2D

API

• 様々なバックエンドを持つ

• Skia

(by Google)

• AndroidやChromiumで利用されている2D

API

• オプションとしてOpenGLバックエンドを利用可能
Terminology for Gecko’s gfx
• Thebes

• 現在も使われているグラフィック

API (Gecko 1.9 /

Firefox 3から採用)
• Moz2D

(Azure)

• 新しい2D

API (Gecko 7から採用)

• Layers

• “Compositor”

(animation / color conversion and etc)
Terminology for Gecko’s gfx
• OMTC

• Off

Main Thread Compositing

• APZC

• Async

Pan/Zoom Controller
History of Gecko’s gfx
• Gecko

-1.8 (Firefox -2)

• 各プラットフォームごとネイティブAPIを利用
• Gecko

1.9 (Firefox 3)

• Thebes

(cairo) を利用してプラットフォームの差異を吸

収
• Gecko

2.0+ (Frefox 4)

• cairoにDirect2Dバックエンドを追加して高速化
History of Gecko’s gfx
• Gecko

7+

• Canvas用にMoz2D/Azure
• Gecko

APIを追加

15+

• Content用にThebesとAzureのラッパーを追加
Moz2D
• New

2D API set by Mozilla

• Hardware

Accelerationに対応した様々なバックエンド
Layout - Canvas
• CanvasではThebes

APIを基本使わない

• gfx.canvas.azure.backends

/
gfx.canvas.azure.accelerated prefs
• GonkだとSkiaGLを利用

• Direct

call to Moz2D API
Layout - Content
• gfx.content.azure.backends

gfx.content.azure.accelerated prefs
• SkiaGL

support for Gonk
(https://bugzilla.mozilla.org/show_bugs.cgi?id88344
2)

• Thebesラッパー経由でMoz2Dが使われる
• 最終的には、Thebes

APIで書かれている部分をMoz2D
APIで書き直す(In Progress)
Moz2D
• Draw

/ Composition

• Path
• Gradient

• Glyph
• Filter

Rendering

(new!)
Draw / Composition
• mozilla::gfx::SourceSurface
• 描画元
• mozilla::gfx::DrawTarget

• 描画先
Path
• mozilla::gfx::PathBuilder
• Pathを生成するためのもの
• mozilla::gfx::Path

• 生成されたPathの情報
Glyph
• mozilla::gfx::ScaledFont
• フォント管理とフォントの描画パス・パターンを管理
Backend
• Direct

2D

• CoreGraphics
• Skia

/ Skia GL

• Cairo
• (nvpr)

/ Quartz
Recording Backend
• Output

recoding

firefox -P <profile> -recording <URL> –recording-output output.aer

• Reading

• Use
• To

recording file

Player2D in Moz2D repository

build player2D,

QMAKE_BIN=<qmake path> make player2d
Player2D
Hardware Blacklist
• No

list on B2G/gonk

• Gonkの場合、複数のデバイスで動くシングルバイナ

リってことはない
• クラッシュデータからブラックリスト行きかどうかは決める
• 動かないも含む

(Androidによくある事例)
Performance
• Ex.
•

Direct2D backend (Gecko 7)

http://www.basschouten.com/blog1.php/comparing-performance-azure-vs-cairo
Layers
• “The

Compositor”

• Backend
• Direct

3D 9 / 10 / 11

• OpenGL
Compositor
• Reflowの軽減
• 今どきのブラウザではだいたい同じコンセプトのものを

採用
• Concept
• https://wiki.mozilla.org/Gecko:Compositor
References
• Graphics

in Mozilla – Part 1

• http://blog.vlad1.com/2007/12/11/graphics-in-

mozilla/
• Introducing

the Azure project

• https://blog.mozilla.org/joe/2011/04/26/introducing-

the-azure-project/
References
• Cairo

• http://cairographics.org/
• Skia

• http://code.google.com/p/skia/
• Vega

• http://my.opera.com/core/blog/2009/02/04/vega
References
• Progress

on Moz2D

• http://www.basschouten.com/blog1.php/progress-

on-moz2d
• Moz2D

repository

• http://hg.mozilla.org/users/bschouten_mozilla.com/

moz2d/
1 of 28

Recommended

日本と世界のDockerコミュニティ by
日本と世界のDockerコミュニティ日本と世界のDockerコミュニティ
日本と世界のDockerコミュニティAkihiro Suda
1.6K views24 slides
Cocos2d-xによる最新ゲーム開発 by
Cocos2d-xによる最新ゲーム開発Cocos2d-xによる最新ゲーム開発
Cocos2d-xによる最新ゲーム開発Chukong Technologies Japan
1.2K views33 slides
QML上にOpenGLのカスタムエレメントを表示する by
QML上にOpenGLのカスタムエレメントを表示するQML上にOpenGLのカスタムエレメントを表示する
QML上にOpenGLのカスタムエレメントを表示するnobo66
3.3K views14 slides
K8sjp11 KubeCon-Recap Multi-Cluster Operations by
K8sjp11 KubeCon-Recap Multi-Cluster OperationsK8sjp11 KubeCon-Recap Multi-Cluster Operations
K8sjp11 KubeCon-Recap Multi-Cluster OperationsJUNICHI YOSHISE
1.1K views29 slides
Firefox OS 日本語 IME 開発状況 by
Firefox OS 日本語 IME 開発状況Firefox OS 日本語 IME 開発状況
Firefox OS 日本語 IME 開発状況Honma Masashi
6.6K views24 slides
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった by
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだったバッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだった
バッテリー監視の為にバックグラウンドタスクについて調べたらなくなってたから作ってみた話のはずだったMasami Yabushita
6.1K views28 slides

More Related Content

Similar to Moz2D

Gcs2014 0225 cocos2d-xjsb by
Gcs2014 0225 cocos2d-xjsbGcs2014 0225 cocos2d-xjsb
Gcs2014 0225 cocos2d-xjsbKeisuke Hata
4.5K views27 slides
Monthly Lightning Talk Playback 2014-12 by
Monthly Lightning Talk Playback 2014-12Monthly Lightning Talk Playback 2014-12
Monthly Lightning Talk Playback 2014-12Seiya Konno
653 views16 slides
Firefox mobile for android internals by
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internalsMakoto Kato
1.4K views49 slides
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料) by
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)NTT DATA Technology & Innovation
3.4K views84 slides
Firefox Mobile by
Firefox MobileFirefox Mobile
Firefox MobileMakoto Kato
925 views48 slides
分散バージョン管理システムって何なん 20101218 by
分散バージョン管理システムって何なん 20101218分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218Takashi Okamoto
2.8K views22 slides

Similar to Moz2D(20)

Gcs2014 0225 cocos2d-xjsb by Keisuke Hata
Gcs2014 0225 cocos2d-xjsbGcs2014 0225 cocos2d-xjsb
Gcs2014 0225 cocos2d-xjsb
Keisuke Hata4.5K views
Monthly Lightning Talk Playback 2014-12 by Seiya Konno
Monthly Lightning Talk Playback 2014-12Monthly Lightning Talk Playback 2014-12
Monthly Lightning Talk Playback 2014-12
Seiya Konno653 views
Firefox mobile for android internals by Makoto Kato
Firefox mobile for android internalsFirefox mobile for android internals
Firefox mobile for android internals
Makoto Kato1.4K views
分散バージョン管理システムって何なん 20101218 by Takashi Okamoto
分散バージョン管理システムって何なん 20101218分散バージョン管理システムって何なん 20101218
分散バージョン管理システムって何なん 20101218
Takashi Okamoto2.8K views
Cocos2d platforms by Keisuke Hata
Cocos2d platformsCocos2d platforms
Cocos2d platforms
Keisuke Hata1.9K views
Play framework 2.0のおすすめと1.2からのアップグレード by Kazuhiro Hara
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara8.6K views
改めて C# でできることを振り返る by Yuta Matsumura
改めて C# でできることを振り返る改めて C# でできることを振り返る
改めて C# でできることを振り返る
Yuta Matsumura2.2K views
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料) by NTT DATA Technology & Innovation
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料) by NTT DATA Technology & Innovation
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
より速く より運用しやすく 進化し続けるJVM(Java Developers Summit Online 2023 発表資料)
C#メタプログラミング概略 in 2021 by Atsushi Nakamura
C#メタプログラミング概略 in 2021C#メタプログラミング概略 in 2021
C#メタプログラミング概略 in 2021
Atsushi Nakamura1.1K views
SORACOM Conference Discovery 2017 | E3. デバイスからのクラウド連携パターン by SORACOM,INC
SORACOM Conference Discovery 2017 | E3. デバイスからのクラウド連携パターンSORACOM Conference Discovery 2017 | E3. デバイスからのクラウド連携パターン
SORACOM Conference Discovery 2017 | E3. デバイスからのクラウド連携パターン
SORACOM,INC1.6K views
KubeFlow MeetUp #1 Katibよもやま話 by Yuji Oshima
KubeFlow MeetUp #1 Katibよもやま話KubeFlow MeetUp #1 Katibよもやま話
KubeFlow MeetUp #1 Katibよもやま話
Yuji Oshima6.6K views
アカツキはどのようにAWSを活用しているか #jawsug by aktsk
アカツキはどのようにAWSを活用しているか #jawsugアカツキはどのようにAWSを活用しているか #jawsug
アカツキはどのようにAWSを活用しているか #jawsug
aktsk10.2K views
CUDAプログラミング入門 by NVIDIA Japan
CUDAプログラミング入門CUDAプログラミング入門
CUDAプログラミング入門
NVIDIA Japan29.1K views

More from Makoto Kato

Active scripting by
Active scriptingActive scripting
Active scriptingMakoto Kato
1.3K views13 slides
e10sとアプリ間通信 by
e10sとアプリ間通信e10sとアプリ間通信
e10sとアプリ間通信Makoto Kato
1.5K views39 slides
Emoji by
EmojiEmoji
EmojiMakoto Kato
5.1K views21 slides
Firefox OSのアーキテクチャと構成技術 by
Firefox OSのアーキテクチャと構成技術Firefox OSのアーキテクチャと構成技術
Firefox OSのアーキテクチャと構成技術Makoto Kato
3.9K views31 slides
Openness, Innovation and Opptunity by
Openness, Innovation and OpptunityOpenness, Innovation and Opptunity
Openness, Innovation and OpptunityMakoto Kato
8.4K views30 slides
Mobile Web by
Mobile WebMobile Web
Mobile WebMakoto Kato
1.2K views46 slides

More from Makoto Kato(20)

Active scripting by Makoto Kato
Active scriptingActive scripting
Active scripting
Makoto Kato1.3K views
e10sとアプリ間通信 by Makoto Kato
e10sとアプリ間通信e10sとアプリ間通信
e10sとアプリ間通信
Makoto Kato1.5K views
Firefox OSのアーキテクチャと構成技術 by Makoto Kato
Firefox OSのアーキテクチャと構成技術Firefox OSのアーキテクチャと構成技術
Firefox OSのアーキテクチャと構成技術
Makoto Kato3.9K views
Openness, Innovation and Opptunity by Makoto Kato
Openness, Innovation and OpptunityOpenness, Innovation and Opptunity
Openness, Innovation and Opptunity
Makoto Kato8.4K views
Firefox 4 and Mobile by Makoto Kato
Firefox 4 and MobileFirefox 4 and Mobile
Firefox 4 and Mobile
Makoto Kato1.3K views
Firefox 4 with SVG by Makoto Kato
Firefox 4 with SVGFirefox 4 with SVG
Firefox 4 with SVG
Makoto Kato867 views
Firefox for mobile by Makoto Kato
Firefox for mobileFirefox for mobile
Firefox for mobile
Makoto Kato659 views
Firefoxの開発プロセス by Makoto Kato
Firefoxの開発プロセスFirefoxの開発プロセス
Firefoxの開発プロセス
Makoto Kato1.2K views
ブラウザの歴史 by Makoto Kato
ブラウザの歴史ブラウザの歴史
ブラウザの歴史
Makoto Kato5.2K views
CSS3の最新事情 by Makoto Kato
CSS3の最新事情CSS3の最新事情
CSS3の最新事情
Makoto Kato1.4K views
FirefoxとMozillaでのSVGの取り組み by Makoto Kato
FirefoxとMozillaでのSVGの取り組みFirefoxとMozillaでのSVGの取り組み
FirefoxとMozillaでのSVGの取り組み
Makoto Kato1.3K views
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and later by Makoto Kato
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and laterWeb Technology features with Firefox 3.6 / Gecko 1.9.2 and later
Web Technology features with Firefox 3.6 / Gecko 1.9.2 and later
Makoto Kato1.7K views
Thunderbird 3のご紹介と企業に求められるカスタマイズ by Makoto Kato
Thunderbird 3のご紹介と企業に求められるカスタマイズThunderbird 3のご紹介と企業に求められるカスタマイズ
Thunderbird 3のご紹介と企業に求められるカスタマイズ
Makoto Kato2.8K views

Recently uploaded

Web3 Career_クレデン資料 .pdf by
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdfnanamatsuo
14 views9 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
13 views38 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
73 views42 slides
Windows 11 information that can be used at the development site by
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development siteAtomu Hidaka
71 views41 slides
さくらのひやおろし2023 by
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023法林浩之
91 views58 slides
01Booster Studio ご紹介資料 by
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料ssusere7a2172
300 views19 slides

Recently uploaded(11)

Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdf
nanamatsuo14 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka71 views
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之91 views
01Booster Studio ご紹介資料 by ssusere7a2172
01Booster Studio ご紹介資料01Booster Studio ご紹介資料
01Booster Studio ご紹介資料
ssusere7a2172300 views
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化 by Knowledge & Experience
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
「概念モデリング自動化に向けた第一歩」 ~ ChatGPT・Open AI 活用による開発対象のモデル化
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4172 views
SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda175 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.41 views

Moz2D