blob: d4f4a6ae3f1fff1c216914c9c429d8685078a700 [file] [log] [blame]
// Copyright 2021 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef UI_GFX_IMAGE_BUFFER_W_STREAM_H_
#define UI_GFX_IMAGE_BUFFER_W_STREAM_H_
#include <stdint.h>
#include <vector>
#include "base/component_export.h"
#include "third_party/skia/include/core/SkStream.h"
namespace gfx {
// Writes bytes to a std::vector that can be fetched. This is used to record the
// output of skia image encoding.
class COMPONENT_EXPORT(GFX) BufferWStream : public SkWStream {
public:
BufferWStream();
BufferWStream(const BufferWStream&) = delete;
BufferWStream& operator=(const BufferWStream&) = delete;
~BufferWStream() override;
// Returns the output buffer by moving.
std::vector<uint8_t> TakeBuffer();
// SkWStream:
bool write(const void* buffer, size_t size) override;
size_t bytesWritten() const override;
private:
std::vector<uint8_t> result_;
};
} // namespace gfx
#endif // UI_GFX_IMAGE_BUFFER_W_STREAM_H_