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

Side by Side Diff: src/core/SkFlattenableBuffers.cpp

Issue 134163010: Refactor read and write buffers. (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: original write flags were fine Created 6 years, 10 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 /*
3 * Copyright 2012 Google Inc.
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8 #include "SkFlattenableBuffers.h"
9 #include "SkPaint.h"
10 #include "SkTypeface.h"
11
12 #include "SkColorFilter.h"
13 #include "SkDrawLooper.h"
14 #include "SkImageFilter.h"
15 #include "SkMaskFilter.h"
16 #include "SkPathEffect.h"
17 #include "SkPixelRef.h"
18 #include "SkRasterizer.h"
19 #include "SkShader.h"
20 #include "SkUnitMapper.h"
21 #include "SkXfermode.h"
22
23 SkFlattenableReadBuffer::SkFlattenableReadBuffer() {
24 // Set default values. These should be explicitly set by our client
25 // via setFlags() if the buffer came from serialization.
26 fFlags = 0;
27 // TODO: remove this flag, since we're always floats (now)
28 fFlags |= kScalarIsFloat_Flag;
29 if (8 == sizeof(void*)) {
30 fFlags |= kPtrIs64Bit_Flag;
31 }
32 }
33
34 SkFlattenableReadBuffer::~SkFlattenableReadBuffer() { }
35
36 void* SkFlattenableReadBuffer::readFunctionPtr() {
37 void* proc;
38 SkASSERT(sizeof(void*) == this->getArrayCount());
39 this->readByteArray(&proc, sizeof(void*));
40 return proc;
41 }
42
43 void SkFlattenableReadBuffer::readPaint(SkPaint* paint) {
44 paint->unflatten(*this);
45 }
46
47 template <typename T> T* SkFlattenableReadBuffer::readFlattenableT() {
48 return static_cast<T*>(this->readFlattenable(T::GetFlattenableType()));
49 }
50
51 SkColorFilter* SkFlattenableReadBuffer::readColorFilter() {
52 return this->readFlattenableT<SkColorFilter>();
53 }
54
55 SkDrawLooper* SkFlattenableReadBuffer::readDrawLooper() {
56 return this->readFlattenableT<SkDrawLooper>();
57 }
58
59 SkImageFilter* SkFlattenableReadBuffer::readImageFilter() {
60 return this->readFlattenableT<SkImageFilter>();
61 }
62
63 SkMaskFilter* SkFlattenableReadBuffer::readMaskFilter() {
64 return this->readFlattenableT<SkMaskFilter>();
65 }
66
67 SkPathEffect* SkFlattenableReadBuffer::readPathEffect() {
68 return this->readFlattenableT<SkPathEffect>();
69 }
70
71 SkPixelRef* SkFlattenableReadBuffer::readPixelRef() {
72 return this->readFlattenableT<SkPixelRef>();
73 }
74
75 SkRasterizer* SkFlattenableReadBuffer::readRasterizer() {
76 return this->readFlattenableT<SkRasterizer>();
77 }
78
79 SkShader* SkFlattenableReadBuffer::readShader() {
80 return this->readFlattenableT<SkShader>();
81 }
82
83 SkUnitMapper* SkFlattenableReadBuffer::readUnitMapper() {
84 return this->readFlattenableT<SkUnitMapper>();
85 }
86
87 SkXfermode* SkFlattenableReadBuffer::readXfermode() {
88 return this->readFlattenableT<SkXfermode>();
89 }
90
91 bool SkFlattenableReadBuffer::validate(bool isValid) {
92 return true;
93 }
94
95 ///////////////////////////////////////////////////////////////////////////////
96
97 SkFlattenableWriteBuffer::SkFlattenableWriteBuffer() {
98 fFlags = (Flags)0;
99 }
100
101 SkFlattenableWriteBuffer::~SkFlattenableWriteBuffer() { }
102
103 void SkFlattenableWriteBuffer::writeFunctionPtr(void* ptr) {
104 void* ptrStorage[] = { ptr };
105 this->writeByteArray(ptrStorage, sizeof(void*));
106 }
107
108 void SkFlattenableWriteBuffer::writePaint(const SkPaint& paint) {
109 paint.flatten(*this);
110 }
111
112 void SkFlattenableWriteBuffer::flattenObject(const SkFlattenable* obj,
113 SkFlattenableWriteBuffer& buffer) {
114 obj->flatten(buffer);
115 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698