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 Tue Dec 17 2024 03:41:22 for HDK by
1.8.6