Home | History | Annotate | Download | only in vk
      1 /*
      2  * Copyright 2015 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 GrVkVertexBuffer_DEFINED
      9 #define GrVkVertexBuffer_DEFINED
     10 
     11 #include "GrVertexBuffer.h"
     12 #include "GrVkBuffer.h"
     13 #include "vk/GrVkInterface.h"
     14 
     15 class GrVkGpu;
     16 
     17 class GrVkVertexBuffer : public GrVertexBuffer, public GrVkBuffer {
     18 public:
     19     static GrVkVertexBuffer* Create(GrVkGpu* gpu, size_t size, bool dynamic);
     20 
     21 protected:
     22     void onAbandon() override;
     23     void onRelease() override;
     24 
     25 private:
     26     GrVkVertexBuffer(GrVkGpu* gpu, const GrVkBuffer::Desc& desc,
     27                      const GrVkBuffer::Resource* resource);
     28 
     29     void* onMap() override;
     30     void onUnmap() override;
     31     bool onUpdateData(const void* src, size_t srcSizeInBytes) override;
     32 
     33     GrVkGpu* getVkGpu() const;
     34 
     35     typedef GrVertexBuffer INHERITED;
     36 };
     37 
     38 #endif
     39