Commit Graph

100 Commits

Author SHA1 Message Date
hendrikw
b1ac52fb0f Skia: Add Command Buffer support to Linux/Mac
Code added to load libcommand_buffer_gles2.so on linux or
mac.

Review URL: https://codereview.chromium.org/1346423002
2015-10-01 18:29:34 -07:00
herb
7f0a3d7523 Make mutex semaphore based.
This implementation improves performance of SkMutex acquire / release pair from 42ns -> 13 ns.

SkSharedMutex and SkSpinlock have the same performance.

It also removes specialized windows and linux/mac code.

BUG=skia:

Review URL: https://codereview.chromium.org/1359733002
2015-09-24 07:34:49 -07:00
mtklein
cd1f2daf44 add -Iinclude/private anywhere we have -Isrc/core
I'll be moving headers from src/core to include/private, so this guarantees
that anyone who was finding them via -Isrc/core can now find them via
-Iinclude/private.

This is purely mechanical, mostly to preserve my sanity, so it's likely
(harmless) overkill.

Chromium's GYP and GN builds already set -Iinclude/private for Skia builds.

BUG=skia:4126

Review URL: https://codereview.chromium.org/1265443002
2015-07-28 08:55:14 -07:00
bungeman
786ece17c3 Allow Android font manager on *nix.
There is nothing left in the SkFontMgr_android.cpp which is specific
to Android, so allow it to be built and used on *nix platforms. This
allows for easier development and testing.

The only reason to limit to *nix platforms are the dependencies on
Expat and FreeType. This should be buildable and runnable on other
platforms when these dependencies are also available.

Review URL: https://codereview.chromium.org/1228833003
2015-07-15 10:58:47 -07:00
Mike Klein
478c9e4851 Revert "Move headers used by headers in include/ to include/private."
This reverts commit 928e16565f.

BUG=skia:

Review URL: https://codereview.chromium.org/1213093004.
2015-07-01 16:35:59 -04:00
mtklein
928e16565f Move headers used by headers in include/ to include/private.
Some of this is transitive, like SkRecords.h used by SkMiniRecorder.h
used by (public) SkPictureRecorder.h.

BUG=skia:

Committed: https://skia.googlesource.com/skia/+/a89f55198bdc58f0b6f6196907ab25a6afc1a661

Review URL: https://codereview.chromium.org/1217293004
2015-07-01 11:55:42 -07:00
jvanverth
4417c7f8bb Revert "Move headers used by headers in include/ to include/private."
This reverts commit a89f55198b.

Reason: breaking the roll.

TBR=mtklein@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1216033008
2015-07-01 09:45:46 -07:00
mtklein
a89f55198b Move headers used by headers in include/ to include/private.
Some of this is transitive, like SkRecords.h used by SkMiniRecorder.h
used by (public) SkPictureRecorder.h.

BUG=skia:

Review URL: https://codereview.chromium.org/1217293004
2015-07-01 08:41:15 -07:00
bungeman
c53085413e Rename SkFontConfigParser_android SkFontMgr_android_parser.
There are a number of files with 'FontConfig' in their names which
just have to do with font configuration, but nothing to do with
the FontConfig project or even with each other. This clarifies
that these files deal with parsing for the Android font manager.

Review URL: https://codereview.chromium.org/1200103008
2015-06-23 13:25:46 -07:00
bungeman
77f85adadb Move Android SkFontMgr::Factory to its own file.
Review URL: https://codereview.chromium.org/1190993002
2015-06-17 12:07:10 -07:00
bungeman
0b1de2626a Move FontConfig factory into separate file.
This moves the SkFontMgr::Factory implementation which creates a
FontMgr around FontConfig into its own file, and allows the user
to create one manually.

Review URL: https://codereview.chromium.org/1189753007
2015-06-17 07:56:00 -07:00
bungeman
5cf19498f9 Refactor SkFontHost_linux into SkFontMgr_custom.
Review URL: https://codereview.chromium.org/1184923002
2015-06-15 15:17:21 -07:00
bungeman
3ffa126066 Move resource fonts to common location.
Move resource fonts to resources/fonts, add a destortable font for
testing, and clean up how the tests create fonts from resources.

R=joshualitt@google.com

Review URL: https://codereview.chromium.org/1120823002
2015-04-30 17:12:58 -04:00
borenet
4808757d7a Remove all code related to NaCl
BUG=skia:3600
DOCS_PREVIEW= https://skia.org/?cl=1036283002

Review URL: https://codereview.chromium.org/1036283002
2015-04-02 12:16:36 -07:00
bungeman
5c9fa2844c Add option to embed font data into executable.
Some tools would like to be built with all resources embedded.
This change makes it possible to build a font manager which
uses font data embedded into the executable.

Review URL: https://codereview.chromium.org/1015723004
2015-03-30 12:53:48 -07:00
scroggo
3e5622764a Add copyright headers to remaining gyp files.
Prevents some PRESUBMIT errors.

TBR=mtklein@google.com

Review URL: https://codereview.chromium.org/1035523003
2015-03-25 10:22:41 -07:00
mtklein
a64c48f4f9 Move sync code to include/, switch from using platform define to a proxy header in core/
This fixes two problems:
  1)  #include SK_SOME_DEFINE doesn't work well for all our clients.
  2)  Things in include/ are #including things in src/, which we don't like.

TBR=reed@google.com

BUG=skia:

Review URL: https://codereview.chromium.org/862983002
2015-01-21 13:13:31 -08:00
djsollen
5ae776504f Cleanup the XML directory in public includes.
Review URL: https://codereview.chromium.org/722343002
2014-11-14 05:52:50 -08:00
bungeman
a4c4a2d8cd Replace SkTypeface::Style with SkFontStyle.
Committed: https://skia.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20

Review URL: https://codereview.chromium.org/488143002
2014-10-20 13:33:19 -07:00
mtklein
802ad83dca Revert of Replace SkTypeface::Style with SkFontStyle. (patchset #9 id:160001 of https://codereview.chromium.org/488143002/)
Reason for revert:
CrOS GM failures:

[*] 2 ExpectationsMismatch: fontmgr_iter_565.png fontmgr_iter_8888.png

Original issue's description:
> Replace SkTypeface::Style with SkFontStyle.
>
> Committed: https://skia.googlesource.com/skia/+/43b8b36b20ae00e2d78421c4cda1f3f922983a20

TBR=reed@google.com,bungeman@google.com
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/667023002
2014-10-20 12:54:31 -07:00
bungeman
43b8b36b20 Replace SkTypeface::Style with SkFontStyle.
Review URL: https://codereview.chromium.org/488143002
2014-10-20 12:33:59 -07:00
bungeman
a6785ccb54 Add a working SkFontMgr_fontconfig.
R=tomhudson@google.com, reed@google.com, mtklein@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/396143004
2014-08-25 12:00:49 -07:00
tomhudson
c773390eef Delete the old font management implementation based on SkFontConfigInterface, now that SkFontMgr_Android is live.
BUG=chromium:400801
R=djsollen@google.com, bungeman@google.com

Author: tomhudson@chromium.org

Review URL: https://codereview.chromium.org/445143002
2014-08-13 10:41:25 -07:00
bungeman
8d84c99531 SkFontMgr for Android.
Committed: https://skia.googlesource.com/skia/+/4f9a01e03ef3bbe7dd8f9bebdcb3555226087e06

R=djsollen@google.com, tomhudson@google.com, robertphillips@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/414483002
2014-07-24 08:05:10 -07:00
robertphillips
7b82d0f8e6 Revert of SkFontMgr for Android. (https://codereview.chromium.org/414483002/)
Reason for revert:
Reverting to unblock DEPS roll.

Original issue's description:
> SkFontMgr for Android.
>
> Committed: https://skia.googlesource.com/skia/+/4f9a01e03ef3bbe7dd8f9bebdcb3555226087e06

R=djsollen@google.com, tomhudson@google.com, bungeman@google.com
TBR=bungeman@google.com, djsollen@google.com, tomhudson@google.com
NOTREECHECKS=true
NOTRY=true

Author: robertphillips@google.com

Review URL: https://codereview.chromium.org/408143010
2014-07-22 16:36:13 -07:00
bungeman
4f9a01e03e SkFontMgr for Android.
R=djsollen@google.com, tomhudson@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/414483002
2014-07-22 12:07:14 -07:00
Mike Klein
9358706750 skia_directwrite -> skia_gdi
This will require lots of rebaselines and a bot CL to swap our lone direct write bot to a lone GDI bot.

BUG=skia:
R=bungeman@google.com

Review URL: https://codereview.chromium.org/394223003
2014-07-16 13:06:04 -04:00
Ben Wagner
98875e1abd Rename SkFontHost_win_dw.cpp SkScalerContext.
This is a continuation of https://codereview.chromium.org/314193002/ .

TBR=reed@google.com

Review URL: https://codereview.chromium.org/315173004
2014-06-05 16:55:58 -04:00
bungeman
51daa25a2b Split SkFontHost_win_dw.
Split SkFontHost_win_dw into FontMgr, Typeface, and ScalerContext.
This makes working on these files easier, and moves away from the legacy
FontHost naming.

R=reed@google.com

Author: bungeman@google.com

Review URL: https://codereview.chromium.org/314193002
2014-06-05 13:38:45 -07:00
halcanary
5ec3d21714 remove ashmem from skia
R=scroggo@google.com, djsollen@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/319533004
2014-06-05 08:16:34 -07:00
commit-bot@chromium.org
64f6d15451 Use SkAtomics_sync on Android
Every doc I've found about using Android's atomics says, "stop".

"* A handful of basic atomic operations.  The appropriate pthread
 * functions should be used instead of these whenever possible."

"... we recommend stopping from using these functions entirely. Very fortunately, GCC provides handy intrinsics functions that work with very reasonable performance and always provide a full barrier."

As far as I can tell, there's no code generation change here: both the __sync atomics and the android_ atomics use full memory barriers.  (And now with this all unified, it'll be easier to get the real wins by switching everything to __atomic atomics, which are like __sync atomics but allow control over memory barriers.)

BUG=skia:
R=bungeman@google.com, djsollen@google.com, mtklein@google.com, reed@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/305593002

git-svn-id: http://skia.googlecode.com/svn/trunk@14896 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 15:55:35 +00:00
commit-bot@chromium.org
abf4189f34 Drop support for non-atomic non-mutex platforms.
(Clients can still provide these themselves if they really want.)

BUG=skia:
R=reed@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/295373005

git-svn-id: http://skia.googlecode.com/svn/trunk@14894 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-05-27 15:16:37 +00:00
commit-bot@chromium.org
37eb4e4ed1 Purge SkPurgeableMemoryBlock.
It was an experiment that is no longer used.

R=mtklein@google.com

Author: scroggo@google.com

Review URL: https://codereview.chromium.org/219133004

git-svn-id: http://skia.googlecode.com/svn/trunk@14020 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-04-01 23:50:53 +00:00
bungeman@google.com
04c32a857e Fix r13897.
git-svn-id: http://skia.googlecode.com/svn/trunk@13900 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 23:19:10 +00:00
bungeman@google.com
72cf4fcafa A remotable font management interface and DirectWrite implementation.
The introduced SkRemotableFontMgr is a font management interface designed for simple and fast proxy support. SkFontMgr_Indirect bridges a SkRemotableFontMgr and a local SkFontMgr to present a SkFontMgr interface.

This change is to be followed by https://codereview.chromium.org/132113015/ and  https://codereview.chromium.org/206693003 .

R=reed@google.com

Review URL: https://codereview.chromium.org/206683002

git-svn-id: http://skia.googlecode.com/svn/trunk@13897 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-03-21 22:48:32 +00:00
commit-bot@chromium.org
f84722e477 Build Skia for a bare-bones embedded Linux system.
Motivation:

    I have downloaded a barebones Linux system built for 64-bit ARM
    from linaro.org and a ARMv8 Foundation Model from arm.com to run
    it on.  This will let us build and test Skia on ARM64 before we
    aquire hardware to allow that.  This CL introduces the changes to
    the build files necessary to build Skia on a barebones embedded
    Linux system.  I tested it with the aarch64 GCC compiler provided
    by linaro.org.

Changes:

    Add a "barelinux" target_os for the DEPS file.  Add an optional
    git download of zlib.

    Changes to gyp files: these changes abstract out libpng, libz, and
    giflib so that images.gyp doesn't know whether they are static or
    dynamically linked.  I also add the variables skia_giflib_static,
    skia_libpng_static, skia_zlib_static, and skia_freetype_static,
    all of which default to false but when set to true will override
    the behavior of the giflib, libpng, zlib, and freetype build
    targets to require them to build statically.  Also, the
    skia_no_fontconfig variable turns off use of the fontconfig service.

	Scripts in platform_tools/barelinux/bin:

    arm64_download - this script downloads the Linaro's ARMv8 Aarch64
	toolchain and minimal embedded Linux system as well as ARM's
	foundation model.  The required files are mirrored on Google
	Cloud.  The script then starts a emulated Arm64 Linux system in
	the background.  After the boot is complete, you can SSH into the
	system at port 8022 via user@localhost.  The SSH key will be
	downloaded into the working directery as well.

	download_deps - Uses gclient to download Skia's dependencies for a
    bare Linux system (the normal dependecies plus giflib, libpng, and
    zlib.)

	barelinux_make - this script builds a version of skia that does
    not depend on external libraries, perfect for putting in an
    embedded system running Linux.  Assumes you have run download_deps
    first.

To test:
    To build a barelinux target, use the barelinux_make script.

    To build for a armv8 system: skia_arch_type=arm arm_neon=0 armv7=1
    armv8=1 arm_thumb=0 skia_arch_width=64 and set the CC and CXX
    variables to point at the cross-compiler downloaded by
    arm64_download.

R=djsollen@google.com, scroggo@google.com, borenet@google.com

Author: halcanary@google.com

Review URL: https://codereview.chromium.org/152513007

git-svn-id: http://skia.googlecode.com/svn/trunk@13570 2bbb7eff-a529-9590-31e7-b0007b416f81
2014-02-24 20:22:34 +00:00
bungeman@google.com
d9947f605a Split atomic and mutex implementations and make inlinable.
Skia cannot use Chromium's implementation of mutex (Lock) due to static
initializers. However, we would like to be able to use Chromium's
implementation of atomics. This motivates the split of implementation.

Skia's atomic and mutex calls should be inlinable, especially the atomics.
These calls often compile down to very few instructions, and we currently have
the overhead of a function call. This motivates the header implementation.

There is still a desire for the build system to select the implementation, so
the SK_XXX_PLATFORM_H pattern for header files is introduced. This allows the
build system to control which platform specific header files are chosen.

The Chromium side changes (most of which will need to go in before this change
can be found at https://codereview.chromium.org/19477005/ .
The Chromium side changes after this lands can be seen at 
https://codereview.chromium.org/98073013 .

Review URL: https://codereview.chromium.org/19808007

git-svn-id: http://skia.googlecode.com/svn/trunk@12738 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-18 15:27:39 +00:00
halcanary@google.com
bc55eec80e Implement SkAshmemDiscardableMemory
-   Implement ashmem-backed SkDiscardableMemory subclass:
    This class in only accesible via the SkDiscardableMemory::Create()
    function, which replaces the mock implementation in
    SkDiscardableMemory_none.cpp

-   Added SkDiscardableMemory_ashmem.cpp to the Android port of Skia
    Removed SkDiscardableMemory_none.cpp from the Android port.

-   Added DiscardableMemoryTest.
    Still needs work.

-   SkDiscardablePixelRef Bugfix:
    onLockPixels() now calls SkDELETE on the SkDiscardableMemory pointer
    when it fails to unlock.

-   Improved documentation inside ashmem.h

BUG=
R=scroggo@google.com

Review URL: https://codereview.chromium.org/83563002

git-svn-id: http://skia.googlecode.com/svn/trunk@12608 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-10 18:33:07 +00:00
commit-bot@chromium.org
611fde182a Remove the comments settings for vim tab width and expansion variables.
These add unnecessary bloat for everyone to carry around, so we just
remove them now.

The same change was made in chromium by Tony in
http://codereview.chromium.org/7310019 - crrev.com/92046

BUG=None
TEST=./gyp_skia
R=mtklein@google.com

Author: tfarina@chromium.org

Review URL: https://codereview.chromium.org/92673003

git-svn-id: http://skia.googlecode.com/svn/trunk@12443 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-12-02 22:23:03 +00:00
bungeman@google.com
bfc6cc4b6c allow both GDI and DW fontmgrs at the same time
BUG=
R=bungeman@google.com

Committed: https://code.google.com/p/skia/source/detail?r=10718

Committed: https://code.google.com/p/skia/source/detail?r=10788

Review URL: https://codereview.chromium.org/23058002

git-svn-id: http://skia.googlecode.com/svn/trunk@10851 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-21 15:20:43 +00:00
robertphillips@google.com
bcb88e51cd Revert r10788 (allow both GDI and DW fontmgrs at the same time) due to Chromium XP bot failures
git-svn-id: http://skia.googlecode.com/svn/trunk@10813 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-20 14:36:59 +00:00
scroggo@google.com
8b71ef16ec skia: Added SkDiscardableMemory interface.
Chrome's implementation of SkDiscardableMemory is provided here:
https://codereview.chromium.org/23206002. SkDiscardableMemory is
intended to be used for image caching.

R=reed@google.com, scroggo@google.com, hclam@chromium.org, jamesr@chromium.org
BUG=229120

Author=ernstm@chromium.org

Submitted on behalf of ernstm@chromium.org due to commit queue bug.

Review URL: https://codereview.chromium.org/22950012

git-svn-id: http://skia.googlecode.com/svn/trunk@10797 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-19 18:38:08 +00:00
skia.committer@gmail.com
7475811143 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@10790 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-17 07:01:54 +00:00
bungeman@google.com
069975678a allow both GDI and DW fontmgrs at the same time
BUG=
R=bungeman@google.com

Committed: https://code.google.com/p/skia/source/detail?r=10718

Review URL: https://codereview.chromium.org/23058002

git-svn-id: http://skia.googlecode.com/svn/trunk@10788 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-16 20:31:11 +00:00
robertphillips@google.com
968863f818 Revert r10718 to unblock roll
git-svn-id: http://skia.googlecode.com/svn/trunk@10759 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-15 22:42:54 +00:00
skia.committer@gmail.com
936be472b5 Sanitizing source files in Housekeeper-Nightly
git-svn-id: http://skia.googlecode.com/svn/trunk@10727 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-15 07:01:06 +00:00
reed@google.com
7d65dee189 allow both GDI and DW fontmgrs at the same time
BUG=
R=bungeman@google.com

Review URL: https://codereview.chromium.org/23058002

git-svn-id: http://skia.googlecode.com/svn/trunk@10718 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-08-14 18:59:28 +00:00
reed@google.com
e027a6ed9b adapt FontConfig to use SK_FONTHOST_USES_FONTMGR
BUG=

Review URL: https://codereview.chromium.org/21331003

git-svn-id: http://skia.googlecode.com/svn/trunk@10463 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-31 17:37:31 +00:00
bungeman@google.com
b8f3655d49 Update obvious deps.
This is a step toward targets declaring their deps in a sane fashion.
This change resolves cycles by forcing core to the root, then everything
in skia_lib pointing toward core as best possible, then everything
outside skia_lib depending on skia_lib for things in skia_lib. This
prevents double definitions where a symbol is provided by both the
skia_lib shared object and and a statically linked component of skia_lib.

R=djsollen@google.com

Review URL: https://codereview.chromium.org/19823003

git-svn-id: http://skia.googlecode.com/svn/trunk@10231 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-22 14:39:45 +00:00
djsollen@google.com
2679ff8b8d refactor gyp to isolate freetype usage
R=bungeman@google.com

Review URL: https://codereview.chromium.org/19835002

git-svn-id: http://skia.googlecode.com/svn/trunk@10229 2bbb7eff-a529-9590-31e7-b0007b416f81
2013-07-22 14:12:56 +00:00