Commit Graph

203 Commits

Author SHA1 Message Date
Hal Canary
db6830162e SkImageEncoder: simplify API
(re-land 248ff02 & 2cb6cb7, with changes)

  - Hide SkImageEncoder class in private header.
  - SkImageEncoder::Type becomes SkEncodedImageFormat
  - SkEncodedFormat becomes SkEncodedImageFormat
  - SkImageEncoder static functions replaced with
    single function EncodeImage()
  - utility wrappers for EncodeImage() are in
    sk_tool_utils.h

TODO: remove link-time registration mechanism.
TODO: clean up clients use of API and flip the flag.
TODO: implement EncodeImage() in chromeium/skia/ext

Change-Id: I47d451e50be4d5c6c130869c7fa7c2857243d9f0
Reviewed-on: https://skia-review.googlesource.com/4909
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Reviewed-on: https://skia-review.googlesource.com/5186
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2016-11-23 16:40:32 +00:00
Hal Canary
a2b4bdce8c Revert 248ff023 & 2cb6cb72
Revert "SkImageEncoder: simplify API"
This reverts commit 248ff02331.
Revert "Fix bug: can't convert nullptr -> bool"
This reverts commit 2cb6cb7218.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=5151
NOTRY=true

Change-Id: I5f6414392d6545f74db0b5bb50608d04f053a8ec
Reviewed-on: https://skia-review.googlesource.com/5151
Commit-Queue: Hal Canary <halcanary@google.com>
Reviewed-by: Hal Canary <halcanary@google.com>
2016-11-22 21:23:51 +00:00
Hal Canary
248ff02331 SkImageEncoder: simplify API
- Hide SkImageEncoder class in private header.
  - SkImageEncoder::Type becomes SkEncodedImageFormat
  - SkEncodedFormat becomes SkEncodedImageFormat
  - SkImageEncoder static functions replaced with
    single function EncodeImage()
  - utility wrappers for EncodeImage() are in
    sk_tool_utils.h

TODO: remove link-time registration mechanism.
TODO: clean up clients use of API and flip the flag.
TODO: implement EncodeImage() in chromeium/skia/ext

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4909

Change-Id: Ib48b31fdc05cf23cda7f56ebfd67c841c149ce70
Reviewed-on: https://skia-review.googlesource.com/4909
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Leon Scroggins <scroggo@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2016-11-22 18:25:55 +00:00
Florin Malita
f530586c41 Resurrect SkDebugger
Can't let go <sniffle>.

R=robertphillips@google.com

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4793

Change-Id: Ida5936d17af2ef60c3f50e27b4f4987a79165fa5
Reviewed-on: https://skia-review.googlesource.com/4793
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
2016-11-15 15:41:09 +00:00
Hal Canary
2db8361257 bench, samples, etc: s/SkAutoTUnref/sk_sp/
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=4437

Change-Id: Ice071684ac8a99e4bb405b4b9be8e8f42c7bac42
Reviewed-on: https://skia-review.googlesource.com/4437
Reviewed-by: Ben Wagner <bungeman@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
2016-11-07 15:17:32 +00:00
Ben Wagner
145dbcd165 Remove SkAutoTDelete.
Replace with std::unique_ptr.

Change-Id: I5806cfbb30515fcb20e5e66ce13fb5f3b8728176
Reviewed-on: https://skia-review.googlesource.com/4381
Commit-Queue: Ben Wagner <bungeman@google.com>
Reviewed-by: Mike Klein <mtklein@chromium.org>
2016-11-03 19:03:40 +00:00
robertphillips
12e9662cf7 Remove some ancillary users of SkSurface::MakeRenderTargetDirect
calved off of: https://codereview.chromium.org/2176333002/ (Remove SkSurface::MakeRenderTargetDirect)

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2198433003

Review-Url: https://codereview.chromium.org/2198433003
2016-08-01 05:53:23 -07:00
chrishtr
20a272d024 Fix debugger build by specifying nullptr for color space.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2181733002

Review-Url: https://codereview.chromium.org/2181733002
2016-07-25 11:21:34 -07:00
robertphillips
221196dac9 Fix old debugger
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1935623002

Review-Url: https://codereview.chromium.org/1935623002
2016-04-29 14:02:18 -07:00
robertphillips
5e3815b4d0 Rein in the use of SkDevice.h
Nothing interesting.

TBR=reed@google.com

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1904673003

Review URL: https://codereview.chromium.org/1904673003
2016-04-20 05:29:51 -07:00
robertphillips
587ea71a52 Fix old debugger for sk_sp changes
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1827403002

Review URL: https://codereview.chromium.org/1827403002
2016-03-25 07:04:35 -07:00
robertphillips
d98120e447 Fix debugger w.r.t. sk_sp changes
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1828273002

Review URL: https://codereview.chromium.org/1828273002
2016-03-24 08:29:41 -07:00
reed
ca2622ba05 return pictures as sk_sp
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1811703002

Review URL: https://codereview.chromium.org/1811703002
2016-03-18 07:25:55 -07:00
robertphillips
f1d746c188 Update debugger to use SkPixmap
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1782673003

Review URL: https://codereview.chromium.org/1782673003
2016-03-10 06:56:21 -08:00
robertphillips
9ea8acdf3f Unbust the old debugger
AFAICT the recent STL changes have introduced some QT conflicts.

GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1753813002

Review URL: https://codereview.chromium.org/1753813002
2016-03-01 09:34:38 -08:00
robertphillips
f42fca4027 Add gpu implementation of OverdrawXfermode
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1607253002

Committed: https://skia.googlesource.com/skia/+/8bc3cf88bbf5e5d5724356f076931bb70a6117ba

Review URL: https://codereview.chromium.org/1607253002
2016-01-27 05:00:04 -08:00
robertphillips
e429c88a81 Revert of Add gpu implementation of OverdrawXfermode (patchset #6 id:100001 of https://codereview.chromium.org/1607253002/ )
Reason for revert:
Overdraw Xfer mode using new fangled glsl features

Original issue's description:
> Add gpu implementation of OverdrawXfermode
> GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1607253002
>
> Committed: https://skia.googlesource.com/skia/+/8bc3cf88bbf5e5d5724356f076931bb70a6117ba

TBR=egdaniel@google.com
# Not skipping CQ checks because original CL landed more than 1 days ago.

Review URL: https://codereview.chromium.org/1626443002
2016-01-22 06:53:57 -08:00
robertphillips
8bc3cf88bb Add gpu implementation of OverdrawXfermode
GOLD_TRYBOT_URL= https://gold.skia.org/search2?unt=true&query=source_type%3Dgm&master=false&issue=1607253002

Review URL: https://codereview.chromium.org/1607253002
2016-01-20 12:00:22 -08:00
halcanary
f2848b6035 default SkPixelSerializer
Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function.

Add SkImageEncoder::CreatePixelSerializer() to return a
PixelSerializer that calls into SkImageEncoder::EncodeData.

SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer.

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

Committed: https://skia.googlesource.com/skia/+/808ce2886d732b1055f89c8fb0f1b11b47fcb0ce

Review URL: https://codereview.chromium.org/1507123002
2015-12-10 12:40:23 -08:00
halcanary
a2e056773d Revert of default SkPixelSerializer (patchset #2 id:20001 of https://codereview.chromium.org/1507123002/ )
Reason for revert:
I was overconfident.

Original issue's description:
> default SkPixelSerializer
>
> Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function.
>
> Add SkImageEncoder::CreatePixelSerializer() to return a
> PixelSerializer that calls into SkImageEncoder::EncodeData.
>
> SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer.
>
> Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b
>
> Committed: https://skia.googlesource.com/skia/+/808ce2886d732b1055f89c8fb0f1b11b47fcb0ce

TBR=reed@google.com,scroggo@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1511183002
2015-12-09 03:56:02 -08:00
halcanary
808ce2886d default SkPixelSerializer
Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function.

Add SkImageEncoder::CreatePixelSerializer() to return a
PixelSerializer that calls into SkImageEncoder::EncodeData.

SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer.

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

Review URL: https://codereview.chromium.org/1507123002
2015-12-08 19:02:36 -08:00
reed
290f00cd75 Revert of default SkPixelSerializer (patchset #1 id:1 of https://codereview.chromium.org/1507123002/ )
Reason for revert:
Breaking DEPS roll (linker error)

Original issue's description:
> default SkPixelSerializer
>
> Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function.
>
> Add SkImageEncoder::CreatePixelSerializer() to return a
> PixelSerializer that calls into SkImageEncoder::EncodeData.
>
> SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer.
>
> Committed: https://skia.googlesource.com/skia/+/b0bd1516bff3f5afcbfd615e805867531657811b

TBR=scroggo@google.com,halcanary@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true

Review URL: https://codereview.chromium.org/1505203003
2015-12-08 10:59:13 -08:00
halcanary
b0bd1516bf default SkPixelSerializer
Add SkImageEncoder::EncodeData(const SkPixmap&, ...) function.

Add SkImageEncoder::CreatePixelSerializer() to return a
PixelSerializer that calls into SkImageEncoder::EncodeData.

SkImage::encode() make use of SkImageEncoder::CreatePixelSerializer.

Review URL: https://codereview.chromium.org/1507123002
2015-12-08 10:29:58 -08:00
djsollen
a745186c93 Update debugger UI to auto-refresh the directory listing
Review URL: https://codereview.chromium.org/1462633002
2015-11-18 13:00:21 -08:00
mtklein
835c1b69a2 Clean up dead code: PictureRenderer
Doesn't appear to actually be used by anything.

BUG=skia:

Review URL: https://codereview.chromium.org/1457753002
2015-11-18 09:41:06 -08:00
fmalita
3f0424ff57 [SkDebugger] Remove unneeded SkDebuggerGUI includes
R=robertphillips@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/1411963006
2015-11-02 09:32:54 -08:00
robertphillips
87ed6be0e4 Get debugger compiling again
Recent house cleaning has broken the debugger - mainly around the defunct profiling feature. This makes CL it even more defunct.

Review URL: https://codereview.chromium.org/1416723006
2015-10-26 09:28:12 -07:00
halcanary
96fcdcc219 Style Change: NULL->nullptr
DOCS_PREVIEW= https://skia.org/?cl=1316233002

Review URL: https://codereview.chromium.org/1316233002
2015-08-27 07:41:16 -07:00
halcanary
385fe4d4b6 Style Change: SkNEW->new; SkDELETE->delete
DOCS_PREVIEW= https://skia.org/?cl=1316123003

Review URL: https://codereview.chromium.org/1316123003
2015-08-26 13:07:49 -07:00
bungeman
76bb228106 Fix no-gpu debugger.
Review URL: https://codereview.chromium.org/1262723005
2015-07-31 15:46:03 -07:00
robertphillips
52d4deb128 Fix debugger compilation
TBR=bsalomon@google.com

Review URL: https://codereview.chromium.org/1205933002
2015-06-24 10:09:57 -07:00
fmalita
109a23d64f Remove the SkCanvas comment API
No longer used in Chromium/Blink.

R=reed@google.com,robertphillips@google.com,mtklein@google.com

Review URL: https://codereview.chromium.org/1153593003
2015-06-15 13:15:31 -07:00
robertphillips
4e11c0b54d Get debugger compiling again
Review URL: https://codereview.chromium.org/1125543003
2015-05-04 10:42:05 -07:00
fmalita
160ebb2bfa [SkDebugger] Flatten drawPicture ops
Add two drawPicture bracketing ops (BeginDrawPicture, EndDrawPicture) to
replace the current DrawPicture op, and flatten picture contents.

Review URL: https://codereview.chromium.org/1048383002
2015-04-01 20:58:37 -07:00
robertphillips
546db46a76 Debugger: remove dead feature (SkPicture offset display) & fix bug (unbalanced indents)
Displaying the offset into an SkPicture hasn't worked for a while so this CL deletes the feature.
When "Save Layer" was renamed to "SaveLayer" the code that computes the indent in the list view was broken. This CL patches the problem.

Review URL: https://codereview.chromium.org/1034733004
2015-03-26 10:08:04 -07:00
robertphillips
3e5c2b1041 Preserve texture compression when saving a revised skp from debugger
Without this CL, saving a revised skp out the debugger can greatly expand the memory it requires.

Review URL: https://codereview.chromium.org/1020103005
2015-03-23 05:46:51 -07:00
reed
e7903c7397 FilterLevel -> SkFilterQuality
BUG=skia:
TBR=
NOTREECHECKS=True
NOTRY=True

Review URL: https://codereview.chromium.org/1010023002
2015-03-16 10:26:13 -07:00
reed
93a1215fe0 SkPaint::FilterLevel -> SkFilterQuality
clone (+rebase) of https://codereview.chromium.org/1009183002/

BUG=skia:
TBR=scroggo@google.com

Review URL: https://codereview.chromium.org/1014533004
2015-03-16 10:08:34 -07:00
robertphillips
2de5939115 Revert of Fix Chromium build (patchset #2 id:20001 of https://codereview.chromium.org/916763003/)
Reason for revert:
Chrome

Original issue's description:
> Fix Chromium build
>
> TBR=jvanverth@google.com
>
> Committed: https://skia.googlesource.com/skia/+/f5e89c8f685ac8a5c4d117e087b4111d613106db

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

Review URL: https://codereview.chromium.org/916963002
2015-02-11 13:18:14 -08:00
robertphillips
f5e89c8f68 Fix Chromium build
TBR=jvanverth@google.com

Review URL: https://codereview.chromium.org/916763003
2015-02-11 11:38:44 -08:00
kkinnunen
9e33d1dbcc debugger: Abandon context when Qt changes it without notice
Qt changes the context on many conditions. Abandon GrContext
in these cases.

Also call GrContext::resetContext during Qt GL paint callback,
the GL state may be touched by Qt.

Fixes the bug where changing between gpu and msaa would start
erroring in framebuffer binds, if the .skp had many layers.

Review URL: https://codereview.chromium.org/915573002
2015-02-10 22:27:48 -08:00
scroggo
a1193e4b0e Make SkStream *not* ref counted.
SkStream is a stateful object, so it does not make sense for it to have
multiple owners. Make SkStream inherit directly from SkNoncopyable.

Update methods which previously called SkStream::ref() (e.g.
SkImageDecoder::buildTileIndex() and SkFrontBufferedStream::Create(),
which required the existing owners to call SkStream::unref()) to take
ownership of their SkStream parameters and delete when done (including
on failure).

Switch all SkAutoTUnref<SkStream>s to SkAutoTDelete<SkStream>s. In some
cases this means heap allocating streams that were previously stack
allocated.

Respect ownership rules of SkTypeface::CreateFromStream() and
SkImageDecoder::buildTileIndex().

Update the comments for exceptional methods which do not affect the
ownership of their SkStream parameters (e.g.
SkPicture::CreateFromStream() and SkTypeface::Deserialize()) to be
explicit about ownership.

Remove test_stream_life, which tested that buildTileIndex() behaved
correctly when SkStream was a ref counted object. The test does not
make sense now that it is not.

In SkPDFStream, remove the SkMemoryStream member. Instead of using it,
create a new SkMemoryStream to pass to fDataStream (which is now an
SkAutoTDelete).

Make other pdf rasterizers behave like SkPDFDocumentToBitmap.

SkPDFDocumentToBitmap delete the SkStream, so do the same in the
following pdf rasterizers:

SkPopplerRasterizePDF
SkNativeRasterizePDF
SkNoRasterizePDF

Requires a change to Android, which currently treats SkStreams as ref
counted objects.

Review URL: https://codereview.chromium.org/849103004
2015-01-21 12:09:53 -08:00
Brian Salomon
a2d9478e92 Fix debugger wrt to new SkGpuDevice factory signature'
Review URL: https://codereview.chromium.org/855083003
2015-01-16 14:01:44 -05:00
kkinnunen
cfdc0e3fee debugger: SW rasterize the picture only when it changes
Rasterize the picture only when it changes, not every time
raster widget paints itself.

Removes include SkForceLinking.h while organizing the SkDebuggerGUI.cpp
includes.

This is part of the work trying to remove bugs that come from
SkDebugCanvas stateful draw. Part of the state comes from some
optimization that this tries to reproduce in a different way.

Review URL: https://codereview.chromium.org/839743003
2015-01-13 22:49:02 -08:00
kkinnunen
0cfeaf3ac1 debugger: Update inspector view data consistently while paused
Make all fields of inspector view (details tab, clipstack tab, geometry
view) update the correct info when user selects a draw command. Also
update the info regardless if the painting is paused or not.

Current clip and matrix will not update consistently even after this
patch, as they depend on stateful debug canvas draw (may be fixed
later).

Review URL: https://codereview.chromium.org/835903002
2015-01-07 07:33:47 -08:00
kkinnunen
26e5400de4 Remove draw window size state from SkDebugCanvas
The SkDebugCanvas can be (or is currently) being used to draw to multiple
different canvases. If this use-case is intended, then storing draw
-related state in the canvas causes bugs.

Remove draw window size state form SkDebugCanvas. Instead, use the canvas
base layer size as the window size to clip to. This is consistent with
the current use in debugger.

This is part of work trying to remove bugs in debugger that result from
replaying one SkDrawCanvas to two different canvases. Currently the
SkDrawCanvas stores state that can only be valid if it is used for one
canvas.

Review URL: https://codereview.chromium.org/835113002
2015-01-05 12:58:56 -08:00
kkinnunen
f3a9e99339 debugger: Remove few redundant variables
Use the GUI widget states instead of instance variables
reflecting the widget state.

Fixes the case where pause state would be left on when
switching files, but the image would change to the last
frame of newly loaded image.

Review URL: https://codereview.chromium.org/810033004
2015-01-05 01:14:11 -08:00
kkinnunen
5caff917f5 debugger: Move Skia initialization out of the GUI widget class
Move Skia initialization out of the GUI widget class to the
main function.

Before, Skia may have been already called before the SkGraphics::Init
was run.

Review URL: https://codereview.chromium.org/822583003
2015-01-02 07:24:14 -08:00
kkinnunen
7c339ae1e3 debugger: Make inspector widget smaller
Make inspector widget a bit smaller by letting the Qt widget system
layout the widgets.

Let the inspector widget calculate its own smallest size. Use stretch
factor of 0 for inspector, 1 for picture canvas.

Group the matrix and clip widgets in groups. Put the text edits in a grid
layout instead of a handwritted column layout containing row layouts.

This commit is part of work that tries to make the debugger window to be
a bit more resizeable, so that it would fit 1900x1200 screen.

Review URL: https://codereview.chromium.org/830743002
2015-01-02 06:35:43 -08:00
kkinnunen
63a470227b debugger: Make draw command image widget resize
Make draw command image widget resize. The widget was not resizing,
effectively preventing the window from being resized smaller.

Make the rasterized draw command image be proportional to the widget
size. The draw rasterization canvas is still an equilateral rectangle
with dimensions of the smaller side of the widget.

Makes the widget re-rasterize the image only when the draw command
changes, not for each widget paint.

Renames the widget from "image widget" to "draw command geometry
widget".

Makes the background of the image black, similar to the raster widget
background.

Adds a tooltip saying "Command geometry" for the widget, so that user might
understand what the contents should be.

This commit is part of work that tries to make the debugger window to be
a bit more resizeable, so that it would fit 1900x1200 screen.

Review URL: https://codereview.chromium.org/787143004
2014-12-30 23:03:56 -08:00