Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(257)

Side by Side Diff: src/gpu/vk/GrVkTextureRenderTarget.h

Issue 1974983002: Refactor Vulkan image, texture, RTs so that create and getter handles match. (Closed) Base URL: https://skia.googlesource.com/skia.git@fixLayerVersion
Patch Set: clean up Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2015 Google Inc. 2 * Copyright 2015 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 8
9 #ifndef GrVkTextureRenderTarget_DEFINED 9 #ifndef GrVkTextureRenderTarget_DEFINED
10 #define GrVkTextureRenderTarget_DEFINED 10 #define GrVkTextureRenderTarget_DEFINED
11 11
12 #include "GrVkTexture.h" 12 #include "GrVkTexture.h"
13 #include "GrVkRenderTarget.h" 13 #include "GrVkRenderTarget.h"
14 #include "GrVkGpu.h" 14 #include "GrVkGpu.h"
15 15
16 #ifdef SK_BUILD_FOR_WIN 16 #ifdef SK_BUILD_FOR_WIN
17 // Windows gives bogus warnings about inheriting asTexture/asRenderTarget via do minance. 17 // Windows gives bogus warnings about inheriting asTexture/asRenderTarget via do minance.
18 #pragma warning(push) 18 #pragma warning(push)
19 #pragma warning(disable: 4250) 19 #pragma warning(disable: 4250)
20 #endif 20 #endif
21 21
22 class GrVkImageView; 22 class GrVkImageView;
23 struct GrVkTextureInfo; 23 struct GrVkImageInfo;
24 24
25 class GrVkTextureRenderTarget: public GrVkTexture, public GrVkRenderTarget { 25 class GrVkTextureRenderTarget: public GrVkTexture, public GrVkRenderTarget {
26 public: 26 public:
27 static GrVkTextureRenderTarget* CreateNewTextureRenderTarget(GrVkGpu*, SkBud geted, 27 static GrVkTextureRenderTarget* CreateNewTextureRenderTarget(GrVkGpu*, SkBud geted,
28 const GrSurface Desc&, 28 const GrSurface Desc&,
29 const GrVkImage ::ImageDesc&); 29 const GrVkImage ::ImageDesc&);
30 30
31 static GrVkTextureRenderTarget* CreateWrappedTextureRenderTarget(GrVkGpu*, 31 static GrVkTextureRenderTarget* CreateWrappedTextureRenderTarget(GrVkGpu*,
32 const GrSur faceDesc&, 32 const GrSur faceDesc&,
33 GrWrapOwner ship, 33 GrWrapOwner ship,
34 VkFormat, 34 const GrVkI mageInfo*);
35 const GrVkT extureInfo*);
36 35
37 protected: 36 protected:
38 void onAbandon() override { 37 void onAbandon() override {
39 GrVkRenderTarget::onAbandon(); 38 GrVkRenderTarget::onAbandon();
40 GrVkTexture::onAbandon(); 39 GrVkTexture::onAbandon();
41 } 40 }
42 41
43 void onRelease() override { 42 void onRelease() override {
44 GrVkRenderTarget::onRelease(); 43 GrVkRenderTarget::onRelease();
45 GrVkTexture::onRelease(); 44 GrVkTexture::onRelease();
46 } 45 }
47 46
48 private: 47 private:
49 GrVkTextureRenderTarget(GrVkGpu* gpu, 48 GrVkTextureRenderTarget(GrVkGpu* gpu,
50 SkBudgeted budgeted, 49 SkBudgeted budgeted,
51 const GrSurfaceDesc& desc, 50 const GrSurfaceDesc& desc,
52 const GrVkImage::Resource* imageResource, 51 const GrVkImageInfo& info,
53 const GrVkImageView* texView, 52 const GrVkImageView* texView,
54 const GrVkImage::Resource* msaaResource, 53 const GrVkImageInfo& msaaInfo,
55 const GrVkImageView* colorAttachmentView, 54 const GrVkImageView* colorAttachmentView,
56 const GrVkImageView* resolveAttachmentView) 55 const GrVkImageView* resolveAttachmentView,
56 bool /*isBorrowed*/)
57 : GrSurface(gpu, desc) 57 : GrSurface(gpu, desc)
58 , GrVkImage(imageResource) 58 , GrVkImage(info, false)
59 , GrVkTexture(gpu, desc, imageResource, texView) 59 , GrVkTexture(gpu, desc, info, texView, false)
60 , GrVkRenderTarget(gpu, desc, imageResource, msaaResource, colorAttachme ntView, 60 , GrVkRenderTarget(gpu, desc, info, msaaInfo, colorAttachmentView,
61 resolveAttachmentView) { 61 resolveAttachmentView, false) {
62 this->registerWithCache(budgeted); 62 this->registerWithCache(budgeted);
63 } 63 }
64 64
65 GrVkTextureRenderTarget(GrVkGpu* gpu, 65 GrVkTextureRenderTarget(GrVkGpu* gpu,
66 SkBudgeted budgeted, 66 SkBudgeted budgeted,
67 const GrSurfaceDesc& desc, 67 const GrSurfaceDesc& desc,
68 const GrVkImage::Resource* imageResource, 68 const GrVkImageInfo& info,
69 const GrVkImageView* texView, 69 const GrVkImageView* texView,
70 const GrVkImageView* colorAttachmentView) 70 const GrVkImageView* colorAttachmentView,
71 bool /*isBorrowed*/)
71 : GrSurface(gpu, desc) 72 : GrSurface(gpu, desc)
72 , GrVkImage(imageResource) 73 , GrVkImage(info, false)
73 , GrVkTexture(gpu, desc, imageResource, texView) 74 , GrVkTexture(gpu, desc, info, texView, false)
74 , GrVkRenderTarget(gpu, desc, imageResource, colorAttachmentView) { 75 , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, false) {
75 this->registerWithCache(budgeted); 76 this->registerWithCache(budgeted);
76 } 77 }
77 enum Wrapped { kWrapped }; 78 enum Wrapped { kWrapped };
78 GrVkTextureRenderTarget(GrVkGpu* gpu, 79 GrVkTextureRenderTarget(GrVkGpu* gpu,
79 Wrapped, 80 Wrapped,
80 const GrSurfaceDesc& desc, 81 const GrSurfaceDesc& desc,
81 const GrVkImage::Resource* imageResource, 82 const GrVkImageInfo& info,
82 const GrVkImageView* texView, 83 const GrVkImageView* texView,
83 const GrVkImage::Resource* msaaResource, 84 const GrVkImageInfo& msaaInfo,
84 const GrVkImageView* colorAttachmentView, 85 const GrVkImageView* colorAttachmentView,
85 const GrVkImageView* resolveAttachmentView) 86 const GrVkImageView* resolveAttachmentView,
87 bool isBorrowed)
86 : GrSurface(gpu, desc) 88 : GrSurface(gpu, desc)
87 , GrVkImage(imageResource) 89 , GrVkImage(info, isBorrowed)
88 , GrVkTexture(gpu, desc, imageResource, texView) 90 , GrVkTexture(gpu, desc, info, texView, isBorrowed)
89 , GrVkRenderTarget(gpu, desc, imageResource, msaaResource, colorAttachme ntView, 91 , GrVkRenderTarget(gpu, desc, info, msaaInfo, colorAttachmentView,
90 resolveAttachmentView) { 92 resolveAttachmentView, isBorrowed) {
91 this->registerWithCacheWrapped(); 93 this->registerWithCacheWrapped();
92 } 94 }
93 95
94 GrVkTextureRenderTarget(GrVkGpu* gpu, 96 GrVkTextureRenderTarget(GrVkGpu* gpu,
95 Wrapped, 97 Wrapped,
96 const GrSurfaceDesc& desc, 98 const GrSurfaceDesc& desc,
97 const GrVkImage::Resource* imageResource, 99 const GrVkImageInfo& info,
98 const GrVkImageView* texView, 100 const GrVkImageView* texView,
99 const GrVkImageView* colorAttachmentView) 101 const GrVkImageView* colorAttachmentView,
102 bool isBorrowed)
100 : GrSurface(gpu, desc) 103 : GrSurface(gpu, desc)
101 , GrVkImage(imageResource) 104 , GrVkImage(info, isBorrowed)
102 , GrVkTexture(gpu, desc, imageResource, texView) 105 , GrVkTexture(gpu, desc, info, texView, isBorrowed)
103 , GrVkRenderTarget(gpu, desc, imageResource, colorAttachmentView) { 106 , GrVkRenderTarget(gpu, desc, info, colorAttachmentView, isBorrowed) {
104 this->registerWithCacheWrapped(); 107 this->registerWithCacheWrapped();
105 } 108 }
106 109
107 template <typename ResourceType> 110 template <typename ResourceType>
108 static GrVkTextureRenderTarget* Create(GrVkGpu*, 111 static GrVkTextureRenderTarget* Create(GrVkGpu*,
109 ResourceType, 112 ResourceType,
110 const GrSurfaceDesc&, 113 const GrSurfaceDesc&,
111 VkFormat, 114 const GrVkImageInfo&,
112 const GrVkImage::Resource* imageResou rce); 115 bool isBorrowed);
113 116
114 // GrGLRenderTarget accounts for the texture's memory and any MSAA renderbuf fer's memory. 117 // GrGLRenderTarget accounts for the texture's memory and any MSAA renderbuf fer's memory.
115 size_t onGpuMemorySize() const override { 118 size_t onGpuMemorySize() const override {
116 return GrVkRenderTarget::onGpuMemorySize(); 119 return GrVkRenderTarget::onGpuMemorySize();
117 } 120 }
118 }; 121 };
119 122
120 #endif 123 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698