All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
blitEncoderOps.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 HGI_BLIT_ENCODER_OPS_H
25 #define HGI_BLIT_ENCODER_OPS_H
26 
27 #include "pxr/pxr.h"
28 #include "pxr/base/gf/vec3i.h"
29 #include "pxr/base/gf/vec4i.h"
30 #include "pxr/imaging/hgi/api.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 
46 // (keep in mind the destinationByteOffset).
48 // command is executed.
77  : format(HgiFormatInvalid)
78  , usage(HgiTextureUsageBitsColorTarget)
79  , dimensions(0)
80  , sourceByteOffset(0)
81  , cpuSourceBuffer(nullptr)
82  , destinationByteOffset(0)
83  , destinationBufferByteSize(0)
84  , cpuDestinationBuffer(nullptr)
85  {}
86 
87  // Source
88  HgiFormat format;
89  HgiTextureUsageBits usage;
90  GfVec3i dimensions;
91  GfVec3i sourceByteOffset;
92 
93  union {
94  // XXX HgiBufferHandle gpuSourceBuffer;
95  HgiTextureHandle gpuSourceTexture;
96  void* cpuSourceBuffer;
97  };
98 
99  // Destination
100  GfVec3i destinationByteOffset;
101  size_t destinationBufferByteSize;
102 
103  union {
104  // XXX HgiBufferHandle gpuDistinationBuffer;
105  HgiTextureHandle gpuDestinationTexture;
106  void* cpuDestinationBuffer;
107  };
108 };
109 
110 
131  : usage(HgiTextureUsageBitsColorTarget)
132  , sourceRegion(0)
133  , source(nullptr)
134  , destinationRegion(0)
135  , destination(nullptr)
136  {}
137 
138  HgiTextureUsageBits usage;
139  GfVec4i sourceRegion;
140  HgiTextureHandle source;
141  GfVec4i destinationRegion;
142  HgiTextureHandle destination;
143 };
144 
145 
146 PXR_NAMESPACE_CLOSE_SCOPE
147 
148 #endif
Basic type for a vector of 4 int components.
Definition: vec4i.h:61
Describes the properties needed to copy resource data to/from GPU/CPU.
Basic type for a vector of 3 int components.
Definition: vec3i.h:61
Represents a graphics platform independent GPU texture resource.
Definition: texture.h:48
Properties needed to resolve a multi-sample texture into a regular texture.