New Theme Engine [3/6]

SUMMARY
This commit will allow fonts to be changed in SKIA at runtime for android. We provide
a new method "ClearCache()" in SkTypeface. Calling this method will clear any typeface
caches in the library and reload default fonts.

Furthermore when android is loading /system/etc/system_fonts.xml there is now
parsing of /data/theme/theme_fonts.xml (if it exists). Clearing the cache
will cause these xml files to be reloaded. By modifying the theme_fonts.xml
and clearing the cache one can change fonts at runtime. Skia clients
simply need to create the font again.

BACKGROUND
SkFontConfigInterface_android.cpp provides android specific implementations
for font resolution. It does this by providing a SkFontConfigInterface singleton.
When the singleton is created it parses /system/etc/system_fonts.xml which provides a mapping
between the font name and the ttf file. There is also a vendor and fallback xml parsed.

Example:
 <family>
        <nameset>
            <name>sans-serif</name>
            <name>arial</name>
            <name>helvetica</name>
            <name>tahoma</name>
            <name>verdana</name>
        </nameset>
        <fileset>
            <file>Roboto-Regular.ttf</file>
            <file>Roboto-Bold.ttf</file>
            <file>Roboto-Italic.ttf</file>
            <file>Roboto-BoldItalic.ttf</file>
        </fileset>
    </family>

So in order to change the font mapping we clear this singleton. When the singleton
is requested again it will reload the xml file. Our change will now also load a xml in
the data partition so that new fonts can be downloaded and configured.

Clearing the singleton however is not enough. There are additional layers between the singleton and
the calling client that cache typefaces. So we needed to modify these files and clear caches from top down.

APENDIX A: CREATING A TYPEFACE OVERVIEW
Client
  |
SkTypeFace::CreateFromName
  |
SkFontHost::CreateTypeFace
  |
FontConfigTypeface::LegacyCreateTypeface //Will check SkTypefaceCache in this method call
  |
SkFontConfigInterface::matchFamilyName()
  |
SkFontConfigInterfaceAndroid::matchFamilyName //Android impl, uses info from parsed xml to resolve name

CONTRIBUTORS
Andrew Mast <andy@cyngn.com>
Clark Scheff <clark@cyngn.com>

Change-Id: I3972adebe76438b710cfc8241f35efd71e90811f
Revert "New Theme Engine [3/6]"

This reverts commit c2807ac91187a30afe0e3e5755e2eabfdc9b9d1b.
Add memcpy optimization pass for Skia samplers.

Adds an optimization to skia samplers that is using memcpy to copy the
pixels when the source and destination is the same size, unscaled, and
unfiltered.

Change-Id: I014db353e880cf09f3f0b17bbe7bcd2cc2d43d80
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Modify sample buffer size for larger displays.

Modifies the intermediate buffer size for sample pixel indexes, used in the
sample proc function calls. If the buffer is not large enough, the job is split
into several calls. This would impact the performance of SIMD optimizations.

Change-Id: I86848d1c44fe338258b40f6ee6a576289cebd496
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Add optimized S32A_D565_Opaque_Dither blitter.

Adds optimization of Skia S32A_D565_Opaque_Dither blitter using
ARM NEON instruction set.
Improves performance in browser.

Change-Id: Ie20fb3cf3ad9a60f01b79e3ed2ddba7651bcf013
Signed-off-by: Henrik Smiding <henrik.smiding@stericsson.com>
Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>
Skia: Fix path to OpenGL Headers

PS2: make it depending on nothing
This patch will change the path to point to the correct location
of the OpenGL Headers. The path has changed to
frameworks/native/opengl/include/.

Change-Id: Ib85e3d9e6df530f12605306eb0bad7c7b5799dfe

Conflicts:
	Android.mk

Change-Id: I2f93727e023cfa009a1bb83f72185325da252bb0
Remove deprecated register

In c++11, register has been deprecated, and
all of skia is now built as gnu++11

From the documentation:
A register specifier is a hint to the implementation
that the variable so declared will be heavily used.
[ Note: The hint can be ignored and in most implementations
it will be ignored if the address of the variable is taken.
This use is deprecated (see D.2) ]

Change-Id: Ic7432b034037fea273c4a9c09f0ca4a728f7eb88
Signed-off-by: DHOMD <DHO@dho.im>
skia: Use -fno-strict-aliasing for now

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>
Android.mk #LOCAL_CFLAGS += -fno-strict-aliasing

Change-Id: I523a8e2fd214e6f4044b86b2383ab44752fd9c1c