HDK
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
contextArena.h
Go to the documentation of this file.
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_HGIGL_CONTEXT_ARENA_H
25
#define PXR_IMAGING_HGIGL_CONTEXT_ARENA_H
26
27
#include "
pxr/pxr.h
"
28
#include "
pxr/imaging/hgi/handle.h
"
29
#include "
pxr/imaging/hgiGL/api.h
"
30
31
#include <ostream>
32
#include <memory>
33
34
PXR_NAMESPACE_OPEN_SCOPE
35
36
struct
HgiGraphicsCmdsDesc
;
37
38
/// \class HgiGLContextArena
39
///
40
/// Represents an arena for the HgiGL instance to manage container object
41
/// resources that are tied to the current GL context (and can't be shared).
42
/// (e.g. framebuffer objects)
43
///
44
/// See notes and relevant API in hgiGL/hgi.h
45
///
46
class
HgiGLContextArena
final
47
{
48
public
:
49
HGIGL_API
50
~HgiGLContextArena
();
51
52
private
:
53
friend
class
HgiGL
;
54
friend
class
HgiGLDevice
;
55
56
HGIGL_API
57
HgiGLContextArena
();
58
59
/// Returns a framebuffer id that matches the descriptor.
60
uint32_t _AcquireFramebuffer(
61
HgiGraphicsCmdsDesc
const
& desc,
62
bool
resolved =
false
);
63
64
void
_GarbageCollect();
65
66
HgiGLContextArena
& operator=(
const
HgiGLContextArena
&) =
delete
;
67
HgiGLContextArena
(
const
HgiGLContextArena
&) =
delete
;
68
69
friend
std::ostream&
operator<<
(
70
std::ostream& out,
71
const
HgiGLContextArena
& arena);
72
73
// Implementation detail.
74
class
_FramebufferCache;
75
std::unique_ptr<_FramebufferCache> _framebufferCache;
76
};
77
78
using
HgiGLContextArenaHandle
=
HgiHandle<HgiGLContextArena>
;
79
80
PXR_NAMESPACE_CLOSE_SCOPE
81
82
#endif
HgiGLContextArena
Definition:
contextArena.h:46
api.h
HgiGLDevice
Definition:
device.h:46
handle.h
HgiGLContextArena::~HgiGLContextArena
HGIGL_API ~HgiGLContextArena()
HgiGL
Definition:
hgi.h:71
pxr.h
HGIGL_API
#define HGIGL_API
Definition:
api.h:40
HgiGraphicsCmdsDesc
Definition:
graphicsCmdsDesc.h:61
PXR_NAMESPACE_OPEN_SCOPE
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition:
path.h:1432
HgiGLContextArena::operator<<
friend std::ostream & operator<<(std::ostream &out, const HgiGLContextArena &arena)
PXR_NAMESPACE_CLOSE_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition:
pxr.h:91
HgiHandle
Definition:
handle.h:49
pxr
imaging
hgiGL
contextArena.h
Generated on Sat May 10 2025 02:48:52 for HDK by
1.8.6