GrVkFramebuffer.h 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. /*
  2. * Copyright 2016 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. #ifndef GrVkFramebuffer_DEFINED
  8. #define GrVkFramebuffer_DEFINED
  9. #include "include/gpu/GrTypes.h"
  10. #include "include/gpu/vk/GrVkTypes.h"
  11. #include "src/gpu/vk/GrVkResource.h"
  12. class GrVkGpu;
  13. class GrVkImageView;
  14. class GrVkRenderPass;
  15. class GrVkFramebuffer : public GrVkResource {
  16. public:
  17. static GrVkFramebuffer* Create(GrVkGpu* gpu,
  18. int width, int height,
  19. const GrVkRenderPass* renderPass,
  20. const GrVkImageView* colorAttachment,
  21. const GrVkImageView* stencilAttachment);
  22. VkFramebuffer framebuffer() const { return fFramebuffer; }
  23. #ifdef SK_TRACE_VK_RESOURCES
  24. void dumpInfo() const override {
  25. SkDebugf("GrVkFramebuffer: %d (%d refs)\n", fFramebuffer, this->getRefCnt());
  26. }
  27. #endif
  28. private:
  29. GrVkFramebuffer(VkFramebuffer framebuffer) : INHERITED(), fFramebuffer(framebuffer) {}
  30. GrVkFramebuffer(const GrVkFramebuffer&);
  31. GrVkFramebuffer& operator=(const GrVkFramebuffer&);
  32. void freeGPUData(GrVkGpu* gpu) const override;
  33. VkFramebuffer fFramebuffer;
  34. typedef GrVkResource INHERITED;
  35. };
  36. #endif