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
contextCaps.h
Go to the documentation of this file.
1
//
2
// Copyright 2018 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_GLF_CONTEXT_CAPS_H
25
#define PXR_IMAGING_GLF_CONTEXT_CAPS_H
26
27
#include "
pxr/pxr.h
"
28
#include "
pxr/imaging/glf/api.h
"
29
#include "
pxr/base/tf/singleton.h
"
30
31
32
PXR_NAMESPACE_OPEN_SCOPE
33
34
35
/// \class GlfContextCaps
36
///
37
/// This class is intended to be a cache of the capabilites
38
/// (resource limits and features) of the underlying
39
/// GL context.
40
///
41
/// It serves two purposes. Firstly to reduce driver
42
/// transition overhead of querying these values.
43
/// Secondly to provide access to these values from other
44
/// threads that don't have the context bound.
45
///
46
/// In the event of failure (InitInstance() wasn't called
47
/// or an issue accessing the GL context), a reasonable
48
/// set of defaults, based on GL minimums, is provided.
49
///
50
///
51
/// TO DO (bug #124971):
52
/// - LoadCaps() should be called whenever the context
53
/// changes.
54
/// - Provide a mechanism where other Hd systems can
55
/// subscribe to when the caps changes, so they can
56
/// update and invalidate.
57
///
58
class
GlfContextCaps
59
{
60
public
:
61
62
/// InitInstance queries the GL context for its capabilities.
63
/// It should be called by the application before using systems
64
/// that depend on the caps, such as Hydra. A good example would be
65
/// to pair the call to initialize after a call to initialize GL
66
GLF_API
67
static
void
InitInstance
();
68
69
/// GetInstance() returns the filled capabilities structure.
70
/// This function will not populate the caps and will issue a
71
/// coding error if it hasn't been filled.
72
GLF_API
73
static
const
GlfContextCaps
&
GetInstance
();
74
75
// GL version
76
int
glVersion
;
// 400 (4.0), 410 (4.1), ...
77
78
// Whether or not we are running with core profile
79
bool
coreProfile
;
80
81
// Max constants
82
int
maxArrayTextureLayers
;
83
84
private
:
85
void
_LoadCaps();
86
GlfContextCaps
();
87
~
GlfContextCaps
() =
default
;
88
89
// Disallow copies
90
GlfContextCaps
(
const
GlfContextCaps
&) =
delete
;
91
GlfContextCaps
& operator=(
const
GlfContextCaps
&) =
delete
;
92
93
friend
class
TfSingleton
<
GlfContextCaps
>;
94
};
95
96
GLF_API_TEMPLATE_CLASS
(
TfSingleton<GlfContextCaps>
);
97
98
PXR_NAMESPACE_CLOSE_SCOPE
99
100
#endif // PXR_IMAGING_GLF_CONTEXT_CAPS_H
101
api.h
singleton.h
TfSingleton
Definition:
singleton.h:122
GlfContextCaps::GetInstance
static GLF_API const GlfContextCaps & GetInstance()
GLF_API
#define GLF_API
Definition:
api.h:40
GlfContextCaps::InitInstance
static GLF_API void InitInstance()
GlfContextCaps::glVersion
int glVersion
Definition:
contextCaps.h:76
pxr.h
GLF_API_TEMPLATE_CLASS
GLF_API_TEMPLATE_CLASS(TfSingleton< GlfContextCaps >)
GlfContextCaps
Definition:
contextCaps.h:58
PXR_NAMESPACE_OPEN_SCOPE
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
Definition:
path.h:1432
GlfContextCaps::coreProfile
bool coreProfile
Definition:
contextCaps.h:79
PXR_NAMESPACE_CLOSE_SCOPE
#define PXR_NAMESPACE_CLOSE_SCOPE
Definition:
pxr.h:91
GlfContextCaps::maxArrayTextureLayers
int maxArrayTextureLayers
Definition:
contextCaps.h:82
pxr
imaging
glf
contextCaps.h
Generated on Tue Apr 1 2025 02:51:17 for HDK by
1.8.6