Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(61)

Side by Side Diff: tools/debugger/SkJsonWriteBuffer.h

Issue 1920423002: Prototype code that turns any/every flattenable into JSON (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Fix compile errors Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #ifndef SkJsonWriteBuffer_DEFINED
9 #define SkJsonWriteBuffer_DEFINED
10
11 #include "SkWriteBuffer.h"
12
13 #include "SkCanvas.h"
14 #include "SkTLazy.h"
15 #include "SkPath.h"
16 #include "SkRRect.h"
17 #include "SkString.h"
18 #include "SkTDArray.h"
19 #include "SkJSONCPP.h"
20 #include "UrlDataManager.h"
21
22 class SkJsonWriteBuffer : public SkWriteBuffer {
mtklein 2016/04/29 17:55:42 final?
23 public:
24 SkJsonWriteBuffer(UrlDataManager* urlDataManager)
25 : fUrlDataManager(urlDataManager)
26 , fFieldCount(0)
27 , fReserveDataSize(0) {}
28
29 bool isCrossProcess() const override { return false; }
30
31 uint32_t* reserve(size_t size) override;
32
33 void writeByteArray(const void* data, size_t size) override;
34 void writeDataAsByteArray(SkData* data) override;
35 void writeBool(bool value) override;
36 void writeScalar(SkScalar value) override;
37 void writeScalarArray(const SkScalar* value, uint32_t count) override;
38 void writeInt(int32_t value) override;
39 void writeIntArray(const int32_t* value, uint32_t count) override;
40 void writeUInt(uint32_t value) override;
41 void write32(int32_t value) override;
42 void writeString(const char* value) override;
43 void writeEncodedString(const void* value, size_t byteLength,
44 SkPaint::TextEncoding encoding) override;
45 void writeFunctionPtr(void* ptr) override;
46
47 void writeFlattenable(const SkFlattenable* flattenable) override;
48 void writeColor(const SkColor& color) override;
49 void writeColorArray(const SkColor* color, uint32_t count) override;
50 void writePoint(const SkPoint& point) override;
51 void writePointArray(const SkPoint* point, uint32_t count) override;
52 void writeMatrix(const SkMatrix& matrix) override;
53 void writeIRect(const SkIRect& rect) override;
54 void writeRect(const SkRect& rect) override;
55 void writeRegion(const SkRegion& region) override;
56 void writePath(const SkPath& path) override;
57 size_t writeStream(SkStream* stream, size_t length) override;
58 void writeBitmap(const SkBitmap& bitmap) override;
59 void writeImage(const SkImage*) override;
60 void writeTypeface(SkTypeface* typeface) override;
61 void writePaint(const SkPaint& paint) override;
62
63 const Json::Value& getValue() const { return fJson; }
64
65 private:
66 void append(const char* type, const Json::Value& value);
67
68 UrlDataManager* fUrlDataManager;
69 Json::Value fJson;
70 uint32_t fFieldCount;
71 SkAutoTMalloc<uint32_t> fReserveData;
72 size_t fReserveDataSize;
73 };
74
75 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698