OLD | NEW |
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 GrVkRenderTarget_DEFINED | 9 #ifndef GrVkRenderTarget_DEFINED |
10 #define GrVkRenderTarget_DEFINED | 10 #define GrVkRenderTarget_DEFINED |
(...skipping 85 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 | 96 |
97 // This accounts for the texture's memory and any MSAA renderbuffer's memory
. | 97 // This accounts for the texture's memory and any MSAA renderbuffer's memory
. |
98 size_t onGpuMemorySize() const override { | 98 size_t onGpuMemorySize() const override { |
99 SkASSERT(kUnknown_GrPixelConfig != fDesc.fConfig); | 99 SkASSERT(kUnknown_GrPixelConfig != fDesc.fConfig); |
100 SkASSERT(!GrPixelConfigIsCompressed(fDesc.fConfig)); | 100 SkASSERT(!GrPixelConfigIsCompressed(fDesc.fConfig)); |
101 size_t colorBytes = GrBytesPerPixel(fDesc.fConfig); | 101 size_t colorBytes = GrBytesPerPixel(fDesc.fConfig); |
102 SkASSERT(colorBytes > 0); | 102 SkASSERT(colorBytes > 0); |
103 return fColorValuesPerPixel * fDesc.fWidth * fDesc.fHeight * colorBytes; | 103 return fColorValuesPerPixel * fDesc.fWidth * fDesc.fHeight * colorBytes; |
104 } | 104 } |
105 | 105 |
| 106 void createFramebuffer(GrVkGpu* gpu); |
| 107 |
| 108 const GrVkImageView* fColorAttachmentView; |
| 109 GrVkImage* fMSAAImage; |
| 110 const GrVkImageView* fResolveAttachmentView; |
| 111 |
106 private: | 112 private: |
107 GrVkRenderTarget(GrVkGpu* gpu, | 113 GrVkRenderTarget(GrVkGpu* gpu, |
108 SkBudgeted, | 114 SkBudgeted, |
109 const GrSurfaceDesc& desc, | 115 const GrSurfaceDesc& desc, |
110 const GrVkImageInfo& info, | 116 const GrVkImageInfo& info, |
111 const GrVkImageInfo& msaaInfo, | 117 const GrVkImageInfo& msaaInfo, |
112 const GrVkImageView* colorAttachmentView, | 118 const GrVkImageView* colorAttachmentView, |
113 const GrVkImageView* resolveAttachmentView, | 119 const GrVkImageView* resolveAttachmentView, |
114 GrVkImage::Wrapped wrapped); | 120 GrVkImage::Wrapped wrapped); |
115 | 121 |
116 GrVkRenderTarget(GrVkGpu* gpu, | 122 GrVkRenderTarget(GrVkGpu* gpu, |
117 SkBudgeted, | 123 SkBudgeted, |
118 const GrSurfaceDesc& desc, | 124 const GrSurfaceDesc& desc, |
119 const GrVkImageInfo& info, | 125 const GrVkImageInfo& info, |
120 const GrVkImageView* colorAttachmentView, | 126 const GrVkImageView* colorAttachmentView, |
121 GrVkImage::Wrapped wrapped); | 127 GrVkImage::Wrapped wrapped); |
122 | 128 |
123 static GrVkRenderTarget* Create(GrVkGpu*, SkBudgeted, const GrSurfaceDesc&, | 129 static GrVkRenderTarget* Create(GrVkGpu*, SkBudgeted, const GrSurfaceDesc&, |
124 const GrVkImageInfo&, GrVkImage::Wrapped wra
pped); | 130 const GrVkImageInfo&, GrVkImage::Wrapped wra
pped); |
125 | 131 |
126 bool completeStencilAttachment() override; | 132 bool completeStencilAttachment() override; |
127 | 133 |
128 void createFramebuffer(GrVkGpu* gpu); | |
129 | |
130 void releaseInternalObjects(); | 134 void releaseInternalObjects(); |
131 void abandonInternalObjects(); | 135 void abandonInternalObjects(); |
132 | 136 |
133 const GrVkFramebuffer* fFramebuffer; | 137 const GrVkFramebuffer* fFramebuffer; |
134 const GrVkImageView* fColorAttachmentView; | |
135 GrVkImage* fMSAAImage; | |
136 const GrVkImageView* fResolveAttachmentView; | |
137 int fColorValuesPerPixel; | 138 int fColorValuesPerPixel; |
138 | 139 |
139 // This is a cached pointer to a simple render pass. The render target shoul
d unref it | 140 // This is a cached pointer to a simple render pass. The render target shoul
d unref it |
140 // once it is done with it. | 141 // once it is done with it. |
141 const GrVkRenderPass* fCachedSimpleRenderPass; | 142 const GrVkRenderPass* fCachedSimpleRenderPass; |
142 // This is a handle to be used to quickly get compatible GrVkRenderPasses fo
r this render target | 143 // This is a handle to be used to quickly get compatible GrVkRenderPasses fo
r this render target |
143 GrVkResourceProvider::CompatibleRPHandle fCompatibleRPHandle; | 144 GrVkResourceProvider::CompatibleRPHandle fCompatibleRPHandle; |
144 }; | 145 }; |
145 | 146 |
146 #endif | 147 #endif |
OLD | NEW |