VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtProgramUniformLocationMap.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2023 MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
14 #include <unordered_map>
15 
16 namespace osg
17 {
18  class StateSet;
19  class Uniform;
20 }
21 
22 namespace makVrv
23 {
24  class DtDe;
25 
27  {
28  public:
30  virtual ~DtProgramUniformLocationMap();
31 
33  DtProgramUniformLocationMap() = delete;
37  DtProgramUniformLocationMap& operator=(const DtProgramUniformLocationMap& rhs) = delete;
38  public:
41  virtual void applyUniforms(const osg::StateSet* ss, int program);
42 
45  virtual void clear(void);
46  protected:
48  virtual void apply(unsigned int program, const osg::Uniform* uniform, unsigned int location) const;
49  protected:
51 
52  struct UniformInfo
53  {
54  int location = -1;
55  int triedToGetLocation = false;
56  const void* uniform = nullptr;
57  };
58  typedef std::unordered_map<unsigned int, UniformInfo > MapUniformIdToUniformInfo;
59  typedef std::unordered_map<int, MapUniformIdToUniformInfo> MapProgramToMapUniformIdToUniformInfo;
60 
65  };
66 }
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::unordered_map< unsigned int, UniformInfo > MapUniformIdToUniformInfo
Definition: DtProgramUniformLocationMap.h:58
DtDe & myDe
Definition: DtProgramUniformLocationMap.h:50
std::unordered_map< int, MapUniformIdToUniformInfo > MapProgramToMapUniformIdToUniformInfo
Definition: DtProgramUniformLocationMap.h:59
MapProgramToMapUniformIdToUniformInfo myMap
used to cache the shader uniform locations to avoid glGetUniformLocation calls Saves somewhere betwee...
Definition: DtProgramUniformLocationMap.h:64
Contains DLL export macros.
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
Definition: DtProgramUniformLocationMap.h:52
Definition: DtProgramUniformLocationMap.h:26

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)