blob: 17fa1c8d6e8beec71353342436eb4e9b416444b5 [file] [log] [blame]
Stephen White5048a6a2019-07-29 17:07:44 -04001/*
2 * Copyright 2019 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8#ifndef GrDawnBuffer_DEFINED
9#define GrDawnBuffer_DEFINED
10
11#include "src/gpu/GrGpuBuffer.h"
12#include "dawn/dawncpp.h"
13
14class GrDawnGpu;
Stephen White7fba36b2019-09-10 13:05:22 -040015struct GrDawnStagingBuffer;
Stephen White5048a6a2019-07-29 17:07:44 -040016
17class GrDawnBuffer : public GrGpuBuffer {
18public:
19 GrDawnBuffer(GrDawnGpu* gpu, size_t sizeInBytes, GrGpuBufferType tpye, GrAccessPattern pattern);
20 ~GrDawnBuffer() override;
21
22 void onMap() override;
23 void onUnmap() override;
24 bool onUpdateData(const void* src, size_t srcSizeInBytes) override;
25
26 GrDawnGpu* getDawnGpu() const;
27 dawn::Buffer get() const { return fBuffer; }
28
29private:
30 dawn::Buffer fBuffer;
Stephen White7fba36b2019-09-10 13:05:22 -040031 GrDawnStagingBuffer* fStagingBuffer;
Stephen White5048a6a2019-07-29 17:07:44 -040032 typedef GrGpuBuffer INHERITED;
33};
34
35#endif