Platform/GFX/AzureConversion

From MozillaWiki
< Platform‎ | GFX
Jump to: navigation, search

Introduction

Since bug 715768, Windows 7 and Vista have been rendering through a Thebes wrapper to the Direct2D backend of our new 2D API. Unfortunately, that means most of the benefit from our better API is lost to the wrapper.

Therefore, we should start writing code that uses the API directly, conditioned on a gfxContext actually wrapping a DrawTarget.

Relevant code:

Of special note: backend-specific types (e.g. DrawTargetCairo) are not exposed to consumer code. You can query a backend for its type, but you cannot downcast it.

Overview of what is involved

See Looking for a good first place to contribute to Gecko gfx? for a good summary of the kind of changes involved and tips on how to get started.

Conversion opportunities

Borders bug 767135 nsCSSRendering.cpp Drawing borders accurately is very complex, and often involves gradients and other things to be correct. We need to rewrite our border rendering code to use DrawTargets and retain the appropriate objects so we can get greater performance.