aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/sksl/SkSLStringStream.h
diff options
context:
space:
mode:
authorGravatar Ethan Nicholas <ethannicholas@google.com>2017-06-27 11:20:22 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-06-27 18:27:57 +0000
commitc070939fd1a954b7a492bc30f0cf64a664b90181 (patch)
tree6b1167726bc9ac4d2073f893c699b40c70f63ba1 /src/sksl/SkSLStringStream.h
parent26249e0e1d1b18a1e67195a2998b49958426f8ba (diff)
Re-land sksl fragment processor support
This reverts commit ed50200682e0de72c3abecaa4d5324ebcd1ed9f9. Bug: skia: Change-Id: I9caa7454b391450620d6989dc472abb3cf7a2cab Reviewed-on: https://skia-review.googlesource.com/20965 Reviewed-by: Ben Wagner <benjaminwagner@google.com> Commit-Queue: Ethan Nicholas <ethannicholas@google.com>
Diffstat (limited to 'src/sksl/SkSLStringStream.h')
-rw-r--r--src/sksl/SkSLStringStream.h31
1 files changed, 9 insertions, 22 deletions
diff --git a/src/sksl/SkSLStringStream.h b/src/sksl/SkSLStringStream.h
index 9061432018..a8690668d2 100644
--- a/src/sksl/SkSLStringStream.h
+++ b/src/sksl/SkSLStringStream.h
@@ -28,12 +28,8 @@ public:
fBuffer.append((const char*) s, size);
}
- const char* data() const {
- return fBuffer.c_str();
- }
-
- size_t size() const {
- return fBuffer.size();
+ const String& str() const {
+ return fBuffer;
}
void reset() {
@@ -54,42 +50,33 @@ namespace SkSL {
class StringStream : public OutputStream {
public:
void write8(uint8_t b) override {
- SkASSERT(!fData);
fStream.write8(b);
}
void writeText(const char* s) override {
- SkASSERT(!fData);
fStream.writeText(s);
}
void write(const void* s, size_t size) override {
- SkASSERT(!fData);
fStream.write(s, size);
}
- const char* data() const {
- if (!fData) {
- fData = fStream.detachAsData();
- }
- return (const char*) fData->data();
- }
-
- size_t size() const {
- if (!fData) {
- fData = fStream.detachAsData();
+ const String& str() const {
+ if (!fString.size()) {
+ sk_sp<SkData> data = fStream.detachAsData();
+ fString = String((const char*) data->data(), data->size());
}
- return fData->size();
+ return fString;
}
void reset() {
fStream.reset();
- fData = nullptr;
+ fString = "";
}
private:
mutable SkDynamicMemoryWStream fStream;
- mutable sk_sp<SkData> fData;
+ mutable String fString;
};
#endif // SKSL_STANDALONE