blob: 43b555f6481637daf446ec6c168c0ec32279e4de [file] [log] [blame]
// Copyright 2021 The Chromium Authors. All rights reserved.
// 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 "third_party/skia/include/core/SkStream.h"
#include "ui/gfx/gfx_export.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 GFX_EXPORT 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_