六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 69|回复: 0

Webkit 3

[复制链接]

升级  12%

16

主题

16

主题

16

主题

秀才

Rank: 2

积分
68
 楼主| 发表于 2013-1-15 02:20:06 | 显示全部楼层 |阅读模式
1. Skia developed for Android:
     * Windows : Skia + "Chromium Win"
     * Linux : Skia + "Chromium Linux"
     * Mac : mostly matches Safari,doesn't use Skia

2. GraphicsContext represents a generic drawing surface.
   Implementation split into two parts:
     * GraphicsContext.cpp : Cross-platform code
     * GraphicsContext[Skia|Mac].cpp : Platform-specific
   Shared header with #ifdefs,only one object

3. Fonts
     * Font.cpp
     * FontChromiumWin.cpp
     * FontLinux.cpp
     * FontMac.mm
   Fast path for simple text
     * GlyphPageTreeNode : Font,Character -> Font,Glyph
     * GlyphWidthMap : Glyph -> Width
   Complex path (Arabic,Indic)
     * Uniscribe,ATSUI,Harfbuzz

4. Images
     * Image.cpp
     * ImageSkia.cpp
     * ImageMac.cpp
   Hooks in all image decoders
   2 level memory cache
     * Decoded (uncompressed) data
     * Encoded (compressed) data

5. Painting in Test Shell(Win/Linux)
     * Get an "invalid rect" from the OS
     * Make a skia::PlatformCanvas,setup transform
       (wraps a SkCanvas to integrate with the OS)
     * Create a GraphicsContextSkia with the bitmap
     * WebKit paints into the canvas
     * Copy canvas to invalid area on screen

6. Painting in Chrome
   Browser and renderer must run asynchronously
     * Browser maintains a "backing store" of the tab
     * renderer paints get copied into this backing store
   RenderWidget,RenderWindgetHost handle paint & input
   RenderView inherits from RenderWidget to represent a "web page"
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表