blitCmdsOps.h
1 //
2 // Copyright 2019 Pixar
3 //
4 // Licensed under the Apache License, Version 2.0 (the "Apache License")
5 // with the following modification; you may not use this file except in
6 // compliance with the Apache License and the following modification to it:
7 // Section 6. Trademarks. is deleted and replaced with:
8 //
9 // 6. Trademarks. This License does not grant permission to use the trade
10 // names, trademarks, service marks, or product names of the Licensor
11 // and its affiliates, except as required to comply with Section 4(c) of
12 // the License and to reproduce the content of the NOTICE file.
13 //
14 // You may obtain a copy of the Apache License at
15 //
16 // http://www.apache.org/licenses/LICENSE-2.0
17 //
18 // Unless required by applicable law or agreed to in writing, software
19 // distributed under the Apache License with the above modification is
20 // distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
21 // KIND, either express or implied. See the Apache License for the specific
22 // language governing permissions and limitations under the Apache License.
23 //
24 #ifndef PXR_IMAGING_HGI_BLIT_CMDS_OPS_H
25 #define PXR_IMAGING_HGI_BLIT_CMDS_OPS_H
26 
27 #include "pxr/pxr.h"
28 #include "pxr/base/gf/vec3i.h"
29 #include "pxr/imaging/hgi/api.h"
30 #include "pxr/imaging/hgi/buffer.h"
31 #include "pxr/imaging/hgi/enums.h"
32 #include "pxr/imaging/hgi/texture.h"
33 #include "pxr/imaging/hgi/types.h"
34 
35 #include <stddef.h>
36 
37 PXR_NAMESPACE_OPEN_SCOPE
38 
39 
68 {
70  : gpuSourceTexture()
71  , sourceTexelOffset(GfVec3i(0))
72  , mipLevel(0)
73  , cpuDestinationBuffer(nullptr)
74  , destinationByteOffset(0)
75  , destinationBufferByteSize(0)
76  {}
77 
78  HgiTextureHandle gpuSourceTexture;
79  GfVec3i sourceTexelOffset;
80  uint32_t mipLevel;
81  void* cpuDestinationBuffer;
82  size_t destinationByteOffset;
83  size_t destinationBufferByteSize;
84 };
85 
111 {
113  : cpuSourceBuffer(nullptr)
114  , bufferByteSize(0)
115  , destinationTexelOffset(GfVec3i(0))
116  , mipLevel(0)
117  , gpuDestinationTexture()
118  {}
119 
120  void const* cpuSourceBuffer;
121  size_t bufferByteSize;
122  GfVec3i destinationTexelOffset;
123  uint32_t mipLevel;
124  HgiTextureHandle gpuDestinationTexture;
125 };
126 
151 {
153  : gpuSourceBuffer()
154  , sourceByteOffset(0)
155  , byteSize(0)
156  , gpuDestinationBuffer()
157  , destinationByteOffset(0)
158  {}
159 
160  HgiBufferHandle gpuSourceBuffer;
161  size_t sourceByteOffset;
162  size_t byteSize;
163  HgiBufferHandle gpuDestinationBuffer;
164  size_t destinationByteOffset;
165 };
166 
167 
191 {
193  : cpuSourceBuffer(nullptr)
194  , sourceByteOffset(0)
195  , gpuDestinationBuffer()
196  , destinationByteOffset(0)
197  , byteSize(0)
198  {}
199 
200  void const* cpuSourceBuffer;
201  size_t sourceByteOffset;
202  HgiBufferHandle gpuDestinationBuffer;
203  size_t destinationByteOffset;
204  size_t byteSize;
205 };
206 
231 {
233  : gpuSourceBuffer()
234  , sourceByteOffset(0)
235  , byteSize(0)
236  , cpuDestinationBuffer()
237  , destinationByteOffset(0)
238  {}
239 
240  HgiBufferHandle gpuSourceBuffer;
241  size_t sourceByteOffset;
242  size_t byteSize;
243  void* cpuDestinationBuffer;
244  size_t destinationByteOffset;
245 };
246 
271 {
273  : gpuSourceTexture()
274  , sourceTexelOffset(GfVec3i(0))
275  , mipLevel(0)
276  , gpuDestinationBuffer()
277  , destinationByteOffset(0)
278  , byteSize(0)
279  {}
280 
281  HgiTextureHandle gpuSourceTexture;
282  GfVec3i sourceTexelOffset;
283  uint32_t mipLevel;
284  HgiBufferHandle gpuDestinationBuffer;
285  size_t destinationByteOffset;
286  size_t byteSize;
287 };
288 
315 {
317  : gpuSourceBuffer()
318  , sourceByteOffset(0)
319  , gpuDestinationTexture()
320  , destinationTexelOffset(GfVec3i(0))
321  , mipLevel(0)
322  , byteSize(0)
323  {}
324 
325  HgiBufferHandle gpuSourceBuffer;
326  size_t sourceByteOffset;
327  HgiTextureHandle gpuDestinationTexture;
328  GfVec3i destinationTexelOffset;
329  uint32_t mipLevel;
330  size_t byteSize;
331 
332 };
333 
334 PXR_NAMESPACE_CLOSE_SCOPE
335 
336 #endif
Describes the properties needed to copy buffer data from CPU to GPU.
Definition: blitCmdsOps.h:190
Describes the properties needed to copy GPU buffer data into a GPU texture.
Definition: blitCmdsOps.h:314
Describes the properties needed to copy texture data from GPU to CPU.
Definition: blitCmdsOps.h:67
Basic type for a vector of 3 int components.
Definition: vec3i.h:61
Describes the properties needed to copy buffer data from GPU to CPU.
Definition: blitCmdsOps.h:230
Describes the properties needed to copy texture data from CPU to GPU.
Definition: blitCmdsOps.h:110
Describes the properties needed to copy buffer data from GPU to GPU.
Definition: blitCmdsOps.h:150
Describes the properties needed to copy GPU texture data into a GPU buffer.
Definition: blitCmdsOps.h:270