Loading...
Searching...
No Matches
attachmentDesc.h
1//
2// Copyright 2020 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_ATTACHMENT_DESC_H
25#define PXR_IMAGING_HGI_ATTACHMENT_DESC_H
26
27#include "pxr/pxr.h"
28#include "pxr/imaging/hgi/api.h"
29#include "pxr/imaging/hgi/enums.h"
30#include "pxr/imaging/hgi/types.h"
31#include "pxr/base/gf/vec4f.h"
32#include <vector>
33
34PXR_NAMESPACE_OPEN_SCOPE
35
36
66{
68 : format(HgiFormatInvalid)
69 , usage(0)
70 , loadOp(HgiAttachmentLoadOpLoad)
71 , storeOp(HgiAttachmentStoreOpStore)
72 , clearValue(0)
73 , colorMask(HgiColorMaskRed | HgiColorMaskGreen |
74 HgiColorMaskBlue | HgiColorMaskAlpha)
75 , blendEnabled(false)
76 , srcColorBlendFactor(HgiBlendFactorZero)
77 , dstColorBlendFactor(HgiBlendFactorZero)
78 , colorBlendOp(HgiBlendOpAdd)
79 , srcAlphaBlendFactor(HgiBlendFactorZero)
80 , dstAlphaBlendFactor(HgiBlendFactorZero)
81 , alphaBlendOp(HgiBlendOpAdd)
82 , blendConstantColor(0.0f, 0.0f, 0.0f, 0.0f)
83 {}
84
85 HgiFormat format;
86 HgiTextureUsage usage;
87 HgiAttachmentLoadOp loadOp;
88 HgiAttachmentStoreOp storeOp;
89 GfVec4f clearValue;
90 HgiColorMask colorMask;
91 bool blendEnabled;
92 HgiBlendFactor srcColorBlendFactor;
93 HgiBlendFactor dstColorBlendFactor;
94 HgiBlendOp colorBlendOp;
95 HgiBlendFactor srcAlphaBlendFactor;
96 HgiBlendFactor dstAlphaBlendFactor;
97 HgiBlendOp alphaBlendOp;
98 GfVec4f blendConstantColor;
99};
100
101using HgiAttachmentDescVector = std::vector<HgiAttachmentDesc>;
102
103HGI_API
104bool operator==(
105 const HgiAttachmentDesc& lhs,
106 const HgiAttachmentDesc& rhs);
107
108HGI_API
109bool operator!=(
110 const HgiAttachmentDesc& lhs,
111 const HgiAttachmentDesc& rhs);
112
113HGI_API
114std::ostream& operator<<(
115 std::ostream& out,
116 const HgiAttachmentDesc& attachment);
117
118
119PXR_NAMESPACE_CLOSE_SCOPE
120
121#endif
Basic type for a vector of 4 float components.
Definition: vec4f.h:63
GF_API std::ostream & operator<<(std::ostream &, const GfBBox3d &)
Output a GfBBox3d using the format [(range) matrix zeroArea].
Describes the properties of a framebuffer attachment.