fmalita
582a6564f3
Simplify the gradient color stop optimizer
...
We're just discarding the leftmost/rightmost stops -- this can be
achieved by simply adjusting the start offset and count.
R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2265803002
Review-Url: https://codereview.chromium.org/2265803002
2016-08-22 06:28:57 -07:00
fmalita
5122967e60
Add a gradient edge optimization test
...
R=reed@google.com
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2267593002
Review-Url: https://codereview.chromium.org/2267593002
2016-08-22 06:22:28 -07:00
reed
5755cd98a7
make zoomer text clearer
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2267623002
TBR=
Review-Url: https://codereview.chromium.org/2267623002
2016-08-21 19:30:13 -07:00
reed
577e012e40
add translate to exercise non-identity ctm performance
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2261063002
TBR=
Review-Url: https://codereview.chromium.org/2261063002
2016-08-21 15:03:47 -07:00
update-skps
ce25041865
Update SKP version
...
Automatic commit by the RecreateSKPs bot.
TBR=
NO_MERGE_BUILDS
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2261983002
Review-Url: https://codereview.chromium.org/2261983002
2016-08-21 01:51:30 -07:00
reed
deb8136c9c
remove unused field from SkDrawIter
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2267553002
TBR=
Review-Url: https://codereview.chromium.org/2267553002
2016-08-20 11:32:48 -07:00
reed
589a39eb81
store info in basedevice, change getter to non-virtual const&
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2261003003
Review-Url: https://codereview.chromium.org/2261003003
2016-08-20 07:59:19 -07:00
halcanary
e2348ccb47
src/utils/SkBitSet: simplify
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2265623002
Review-Url: https://codereview.chromium.org/2265623002
2016-08-19 16:23:23 -07:00
bsalomon
4c54788e92
Rename circular_arcs_circular_arcs_fill to circular_arcs_fill.
...
Also fix issue with second paint's alpha getting overwritten.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2265643002
Review-Url: https://codereview.chromium.org/2265643002
2016-08-19 13:41:29 -07:00
csmartdalton
02fa32c6d1
Move GrFixedClip into src directory
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2254343003
Review-Url: https://codereview.chromium.org/2254343003
2016-08-19 13:29:27 -07:00
dvonbeck
3688bfa710
Added a small widget framework to the interactive bevel SampleApp
...
I made a small framework to add slider and radial controls more easily.
The Sample now has controls for light direction and color.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259183003
Review-Url: https://codereview.chromium.org/2259183003
2016-08-19 12:41:48 -07:00
bsalomon
ac3aa245ac
Plumb drawArc to SkDevice.
...
Plumbs the drawArc canvas method down to SkDevice without converting to a path. Plumbs through the various recording canvas classes.
BUG=skia:5227
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2257023003
Review-Url: https://codereview.chromium.org/2257023003
2016-08-19 11:25:20 -07:00
dvonbeck
af0f6efa35
Added SkColor4f::FromColor3f(SkColor3f, float a)
...
Planning to use this for the ColorDisplay widget in https://codereview.chromium.org/2259183003/
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2264643002
Review-Url: https://codereview.chromium.org/2264643002
2016-08-19 11:23:15 -07:00
bsalomon
71c5eee9d5
Add GMs for testing drawArc.
...
This is in preparation for virtualizing this on SkCanvas/SkDevice.
Tests the following variations:
aa and non-aa
stroke/hairline/fill
cap types
using center point and not
BUG=skia:5227
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2264593002
Review-Url: https://codereview.chromium.org/2264593002
2016-08-19 10:53:14 -07:00
mtklein
cbdf007bc2
Fast path translate() in SkCanvas and SkLiteDL.
...
This adds didTranslate() so that SkLiteDL (and other canvas recorders)
can record the translate rather than the full concat.
It also adds a case to SkMatrix::preTranslate() to fast path
translate x translate -> translate (i.e. +=).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255283002
Committed: https://skia.googlesource.com/skia/+/5fa47f4fd13b3158de4599414c86d17649c2dd1c
Misc bots failing in pictureimagefilter replay modes.
https://luci-milo.appspot.com/swarming/task/30b8e53f3a1f4f10/steps/dm/0/stdout
Problem is FMA vs. not.
CQ_INCLUDE_TRYBOTS=master.client.skia:
Test-Ubuntu-GCC-GCE-CPU-AVX2-x86_64-Release-Fast-Trybot
Review-Url: https://codereview.chromium.org/2255283002
2016-08-19 09:05:27 -07:00
fmenozzi
68d952cf40
Implement gradient simplification for 0,0,1 and 0,1,1 gradients
...
Depends on https://codereview.chromium.org/2259823005/
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2256843004
Review-Url: https://codereview.chromium.org/2256843004
2016-08-19 08:56:56 -07:00
bungeman
01a16992cc
Simplify embeddability test.
...
There is no reason to read the whole OS/2 table, and no need to spell
out the full names of all the types over and over.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2256783002
Review-Url: https://codereview.chromium.org/2256783002
2016-08-19 08:45:37 -07:00
msarett
9da5a5a198
Fix bug, always keep fIsScaleTranslate in correct state
...
BUG:639179
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2263513003
Review-Url: https://codereview.chromium.org/2263513003
2016-08-19 08:38:36 -07:00
mtklein
9c3887c975
Step 1 of opts_crc32 rollout.
...
- This adds an crc32_sources variable to opts.gypi and hooks it into
our GYP build with a dummy source file.
Step 2 will hook crc32_sources into Chrome's GN build.
Step 3 will actually land some code using CRC32 instructions.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259233002
Review-Url: https://codereview.chromium.org/2259233002
2016-08-19 08:07:51 -07:00
senorblanco
b6a40b83f3
Some assert fixes for running the Fuzzer sample in GPU mode.
...
quadraticPointCount, cubicPointCount: passing NaN to GrNextPow2 causes
it to assert, so detect that and return the max points per curve
instead.
Passing a zero scale to GrStyle::applyToPath() makes it assert, so
draw nothing (likely what drawing with a zero scale is going to do
anyway).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2257423002
Review-Url: https://codereview.chromium.org/2257423002
2016-08-19 08:07:22 -07:00
fmenozzi
e9fd0f8eaf
Return color shader instead of 2-color gradient when color count is 1
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259823005
Committed: https://skia.googlesource.com/skia/+/da082a5767d7edfd3abe74fc683392422565a606
Review-Url: https://codereview.chromium.org/2259823005
2016-08-19 07:50:57 -07:00
caryclark
429428660b
fix fuzzes
...
TBR=reed@google.com
BUG=639157, 638783
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255243003
Review-Url: https://codereview.chromium.org/2255243003
2016-08-19 07:01:33 -07:00
bungeman
83b24ff082
SkFontMgr_android clean up.
...
This removes the never used defaultTypeface, uses 'StyleSet' in field
names consistently, fixes potential leaks of names, and moves fields to
sk_sp.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2256253003
Review-Url: https://codereview.chromium.org/2256253003
2016-08-19 05:03:26 -07:00
mtklein
15d71ff537
include extra_cflags* in the step description
...
This keeps them visible on the bots.
E.g. https://luci-milo.appspot.com/swarming/task/30b9147a09f2ac10/steps/ninja/0/stdout
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2254733008
Review-Url: https://codereview.chromium.org/2254733008
2016-08-19 04:27:34 -07:00
reed
c1fb8e8b59
must call rand in reliable order for bots
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2254403002
TBR=
Review-Url: https://codereview.chromium.org/2254403002
2016-08-18 19:35:52 -07:00
hcm
d4d8b39441
Expand Issue Tracking docs to include triage, Chrome instructions
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255133003
NOTRY=true
DOCS_PREVIEW= https://skia.org/?cl=2255133003
Review-Url: https://codereview.chromium.org/2255133003
2016-08-18 18:32:17 -07:00
mtklein
954df2fe9f
Revert of Fast path translate() in SkCanvas and SkLiteDL. (patchset #5 id:80001 of https://codereview.chromium.org/2255283002/ )
...
Reason for revert:
speculative
Original issue's description:
> Fast path translate() in SkCanvas and SkLiteDL.
>
> This adds didTranslate() so that SkLiteDL (and other canvas recorders)
> can record the translate rather than the full concat.
>
> It also adds a case to SkMatrix::preTranslate() to fast path
> translate x translate -> translate (i.e. +=).
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255283002
>
> Committed: https://skia.googlesource.com/skia/+/5fa47f4fd13b3158de4599414c86d17649c2dd1c
TBR=herb@google.com ,reed@google.com,mtklein@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2264433002
2016-08-18 17:43:59 -07:00
reed
4a16717bc7
quick check to not use AutoDrawLooper
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2248373004
Review-Url: https://codereview.chromium.org/2248373004
2016-08-18 17:15:25 -07:00
reed
6b7a6c74dc
Revert of Return color shader instead of 2-color gradient when color count is 1 (patchset #3 id:40001 of https://codereview.chromium.org/2259823005/ )
...
Reason for revert:
breaks 2-pt-conical, which can sometimes not draw anything
Original issue's description:
> Return color shader instead of 2-color gradient when color count is 1
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259823005
>
> Committed: https://skia.googlesource.com/skia/+/da082a5767d7edfd3abe74fc683392422565a606
TBR=fmenozzi@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2257993002
2016-08-18 16:13:50 -07:00
mtklein
f1b6030b44
Detect CRC32 instructions on ARMv8.
...
I have successfully detected CRC32 instruction support on my Nexus 5x.
Use of these instructions to follow... I am not yet sure which compilers if any will give me instrinsics or let me write them in asm.
defined(__ARM_FEATURE_CRC32) should cover users like Android Framework who build with the best settings possible. cpu-features.h covers use cases like Clank and our bots.
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259133002
Review-Url: https://codereview.chromium.org/2259133002
2016-08-18 15:59:08 -07:00
msarett
10e3d9bf59
Batched implementation of drawLattice() for GPU
...
Bechmarks (Nexus 6P):
Src=100x100, Dst=250x250, NumRects=9
Android 77.7us
Skia (without patch) 57.2us
Skia (with patch) 30.9us
Src=100x100, Dst=500x500, NumRects=9
Android 77.0us
Skia (without patch) 56.9us
Skia (with patch) 31.8us
Src=100x100, Dst=1000x1000, NumRects=9
Android 180us
Skia (without patch) 96.8us
Skia (with patch) 70.5us
Src=100x100, Dst=250x250, NumRects=15
Android 208us
Skia (without patch) 155us
Skia (with patch) 38.2us
Src=100x100, Dst=500x500, NumRects=15
Android 207us
Skia (without patch) 152us
Skia (with patch) 38.4us
Src=100x100, Dst=1000x1000, NumRects=15
Android 233us
Skia (without patch) 156us
Skia (with patch) 99.9us
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255963002
Committed: https://skia.googlesource.com/skia/+/93242c4ae50dfcc0d922cdb3ba80bbc7b4bbe93d
Review-Url: https://codereview.chromium.org/2255963002
2016-08-18 15:46:03 -07:00
mtklein
5fa47f4fd1
Fast path translate() in SkCanvas and SkLiteDL.
...
This adds didTranslate() so that SkLiteDL (and other canvas recorders)
can record the translate rather than the full concat.
It also adds a case to SkMatrix::preTranslate() to fast path
translate x translate -> translate (i.e. +=).
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255283002
Review-Url: https://codereview.chromium.org/2255283002
2016-08-18 15:42:32 -07:00
egdaniel
abe795e4db
Relax check for gpu use of static src-over XP
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259113002
Review-Url: https://codereview.chromium.org/2259113002
2016-08-18 15:21:56 -07:00
reed
5e0d927694
add simplerect gm
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2257263002
TBR=bsalomon
NOTRY=True
Review-Url: https://codereview.chromium.org/2257263002
2016-08-18 15:01:11 -07:00
fmenozzi
da082a5767
Return color shader instead of 2-color gradient when color count is 1
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259823005
Review-Url: https://codereview.chromium.org/2259823005
2016-08-18 14:50:56 -07:00
bungeman
0367568d4a
Use CSS3 style matching on Android.
...
Android framework doesn't really use this, the largest user is Chromium.
At the moment this doesn't resolve oblique requests in a nice way, but
the existing code is somewhat close to CSS3 rules already. Instead of
adding oblique handling manually, just use the existing CSS3 style
matching.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2256843003
Review-Url: https://codereview.chromium.org/2256843003
2016-08-18 14:36:02 -07:00
msarett
7fc08585d0
Revert of Batched implementation of drawLattice() for GPU (patchset #7 id:180001 of https://codereview.chromium.org/2255963002/ )
...
Reason for revert:
Things drawing weird.
Original issue's description:
> Batched implementation of drawLattice() for GPU
>
> Bechmarks (Nexus 6P):
>
> Src=100x100, Dst=250x250, NumRects=9
> Android 77.7us
> Skia (without patch) 57.2us
> Skia (with patch) 34.7us
>
> Src=100x100, Dst=500x500, NumRects=9
> Android 77.0us
> Skia (without patch) 56.9us
> Skia (with patch) 44.5us
>
> Src=100x100, Dst=1000x1000, NumRects=9
> Android 180us
> Skia (without patch) 96.8us
> Skia (with patch) 70.5us
>
> Src=100x100, Dst=250x250, NumRects=15
> Android 208us
> Skia (without patch) 155us
> Skia (with patch) 55.9us
>
> Src=100x100, Dst=500x500, NumRects=15
> Android 207us
> Skia (without patch) 152us
> Skia (with patch) 63.0us
>
> Src=100x100, Dst=1000x1000, NumRects=15
> Android 233us
> Skia (without patch) 156us
> Skia (with patch) 99.9us
>
> BUG=skia:
> GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255963002
>
> Committed: https://skia.googlesource.com/skia/+/93242c4ae50dfcc0d922cdb3ba80bbc7b4bbe93d
TBR=bsalomon@google.com ,reed@google.com,djsollen@google.com
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review-Url: https://codereview.chromium.org/2255683004
2016-08-18 14:29:22 -07:00
halcanary
530032a18e
SkPDF: in-place font subsetting
...
Motivation: gross code simplification, also no bitset lookups at draw time.
SkPDFFont owns its glyph useage bitset.
SkPDFSubstituteMap goes away.
SkPDFObject interface is simplified.
SkPDFDocument tracks font usage (as hash set), not glyph usage.
SkPDFFont gets a simpler constructor.
SkPDFFont has first and last glyph set in constructor, not adjusted later.
SkPDFFont implementations are simplified.
SkPDFGlyphSet is replaced with simple SkBitSet.
SkPDFFont sizes its SkBitSets based on glyph count.
SkPDFGlyphSetMap goes away.
SkBitSet is now non-copyable.
SkBitSet now how utility methods to match old SkPDFGlyphSet.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2253283004
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-GCE-CPU-AVX2-x86_64-Release-GDI-Trybot,Test-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug-GDI-Trybot
Review-Url: https://codereview.chromium.org/2253283004
2016-08-18 14:22:52 -07:00
msarett
9637ea91b8
Fix initialization bug for fConservativeIsScaleTranslate
...
Also don't mark it as conservative, we expect it to be correct all
the time.
TBR=reed@google.com
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2261573002
Review-Url: https://codereview.chromium.org/2261573002
2016-08-18 14:03:30 -07:00
robertphillips
48d91b52e4
Delay creation of cpu-side buffer memory until actually needed
...
IIUC what is going on, this won't really do anything bad but will defer allocation of the cpu-side buffer until it is actually needed.
BUG=635015
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2248283007
Review-Url: https://codereview.chromium.org/2248283007
2016-08-18 14:01:14 -07:00
msarett
93242c4ae5
Batched implementation of drawLattice() for GPU
...
Bechmarks (Nexus 6P):
Src=100x100, Dst=250x250, NumRects=9
Android 77.7us
Skia (without patch) 57.2us
Skia (with patch) 34.7us
Src=100x100, Dst=500x500, NumRects=9
Android 77.0us
Skia (without patch) 56.9us
Skia (with patch) 44.5us
Src=100x100, Dst=1000x1000, NumRects=9
Android 180us
Skia (without patch) 96.8us
Skia (with patch) 70.5us
Src=100x100, Dst=250x250, NumRects=15
Android 208us
Skia (without patch) 155us
Skia (with patch) 55.9us
Src=100x100, Dst=500x500, NumRects=15
Android 207us
Skia (without patch) 152us
Skia (with patch) 63.0us
Src=100x100, Dst=1000x1000, NumRects=15
Android 233us
Skia (without patch) 156us
Skia (with patch) 99.9us
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2255963002
Review-Url: https://codereview.chromium.org/2255963002
2016-08-18 13:11:48 -07:00
reed
3aafe111b6
make LayerIter private, and remove skipClip option
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2257203002
Review-Url: https://codereview.chromium.org/2257203002
2016-08-18 12:45:34 -07:00
mtklein
3896effcad
GN: make libjpeg_turbo target Chrome-compatible
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2257903002
Review-Url: https://codereview.chromium.org/2257903002
2016-08-18 12:04:13 -07:00
senorblanco
212c7c389e
Tessellator: better fix for reused-edges issue.
...
The GrTessellator fix for doubly-added edges in
https://codereview.chromium.org/2259493002/ could leave
a MonotonePoly with zero edges. This is a problem for
Poly::addEdge(), which assumes that MonotonePolys always have
at least one edge. The fix is to move the check and early-out up to
Poly::addEdge(). This should also tighten up the vertex count.
(Unfortunately, the only repro I have for this issue is very
convoluted, and requires non-landed code.)
BUG=skia:5636
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2251643008
Review-Url: https://codereview.chromium.org/2251643008
2016-08-18 10:20:47 -07:00
halcanary
cee13425b5
SkPDF: cache metrics once.
...
Motivation: drawText can look up unicode mapping at draw time to see
if ActualText should be used after crrev.com/2084533004 lands.
For each SkTypeface, only call getAdvancedTypefaceMetrics() once per
document. Cache the result in the SkPDFCanon, indexed by SkFontID.
Also cache PDF FontDescriptors in the canon, also indexed by SkFontID
(Type1 fonts only).
Simplify PDF font lookup, map SkFontID+SkGlyphID into a uint64_t. Map
that uint64_t to SkPDFFonts. Remove SkPDFCanon::findFont(),
SkPDFCanon::addFont(), SkPDFFont::IsMatch(), and enum SkPDFFont::Match.
SkPDFFont no longer holds on to ref of SkAdvancedTypefaceMetrics.
Instead, SkPDFFont::GetFontResource() and SkPDFFont::getFontSubset()
get metrics from canon.
SkPDFFont multybite bool is now a function of type.
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2253993002
CQ_INCLUDE_TRYBOTS=master.client.skia:Test-Win-MSVC-GCE-CPU-AVX2-x86_64-Release-GDI-Trybot,Test-Win-MSVC-GCE-CPU-AVX2-x86_64-Debug-GDI-Trybot
Review-Url: https://codereview.chromium.org/2253993002
2016-08-18 09:52:48 -07:00
reed
7c1235457f
remove disable aa/dither flags from Props -- never used
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2257643003
TBR=bsalomon
Review-Url: https://codereview.chromium.org/2257643003
2016-08-18 09:30:44 -07:00
dvonbeck
6d391b6c37
Interactive Bevel Sample App
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2246243002
Review-Url: https://codereview.chromium.org/2246243002
2016-08-18 08:55:48 -07:00
bsalomon
adf4edc4d6
Don't emit dead code in circle shader when not using distance vectors.
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2254103004
Review-Url: https://codereview.chromium.org/2254103004
2016-08-18 08:32:28 -07:00
robertphillips
f1c6cd7603
Rename WorseCaseSize to WorstCasSize
...
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2259863002
Review-Url: https://codereview.chromium.org/2259863002
2016-08-18 07:11:13 -07:00
brianosman
5814b8a1dd
Add alpha type to texture producer
...
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2250403003
Review-Url: https://codereview.chromium.org/2250403003
2016-08-18 06:43:03 -07:00