diff options
Diffstat (limited to 'gfx/skia/skia/src/sksl/SkSLOutputStream.h')
-rw-r--r-- | gfx/skia/skia/src/sksl/SkSLOutputStream.h | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/gfx/skia/skia/src/sksl/SkSLOutputStream.h b/gfx/skia/skia/src/sksl/SkSLOutputStream.h new file mode 100644 index 0000000000..542ffd6f90 --- /dev/null +++ b/gfx/skia/skia/src/sksl/SkSLOutputStream.h @@ -0,0 +1,58 @@ +/* + * Copyright 2017 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SKSL_OUTPUTSTREAM +#define SKSL_OUTPUTSTREAM + +#include "include/core/SkTypes.h" + +#include <cstdarg> +#include <cstddef> +#include <cstdint> +#include <string> + +namespace SkSL { + +class OutputStream { +public: + virtual bool isValid() const { + return true; + } + + virtual void write8(uint8_t b) = 0; + + void write16(uint16_t i) { + this->write8((uint8_t) i); + this->write8((uint8_t) (i >> 8)); + } + + void write32(uint32_t i) { + this->write8((uint8_t) i); + this->write8((uint8_t) (i >> 8)); + this->write8((uint8_t) (i >> 16)); + this->write8((uint8_t) (i >> 24)); + } + + virtual void writeText(const char* s) = 0; + + virtual void write(const void* s, size_t size) = 0; + + void writeString(const std::string& s); + + void printf(const char format[], ...) SK_PRINTF_LIKE(2, 3); + + void appendVAList(const char format[], va_list args) SK_PRINTF_LIKE(2, 0); + + virtual ~OutputStream() {} + +private: + static const int kBufferSize = 1024; +}; + +} // namespace SkSL + +#endif |