VR-Forces 4.6.1 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
vrvOsg
DtIndirectTextureCollectionPolicy.h
Go to the documentation of this file.
1
/******************************************************************************
2
** Copyright (c) 2018 VT-MAK Technologies, Inc.
3
** All rights reserved.
4
******************************************************************************/
5
9
10
#pragma once
11
12
#include <
vrvOsg/vrvOsg.h
>
13
14
#include <
vrvOsg/DtVirtualProgramExecutionPriority.h
>
15
#include <
vrvOsg/DtIndirectEffectTextureShader.h
>
16
#include <
vrvOsg/DtIndirectEffectTexturesTemplate.h
>
17
18
#include <
vrvGraphicsUtils/DtCommonTypes.h
>
19
20
#include <
vrvUtil/DtVirtualBaseClass.h
>
21
22
#include <osg/Texture>
23
24
#include <boost/unordered_map.hpp>
25
26
namespace
makVrv
27
{
28
class
DtIndirectGeometryTexturesPointers;
29
35
class
DT_DLL_VRVOSG
DtIndirectTextureCollectionPolicy
36
{
37
public
:
39
friend
class
DtIndirectTextureCollectionPolicyCreator
;
40
42
virtual
~
DtIndirectTextureCollectionPolicy
();
43
47
virtual
void
collectTextures(
DtIndirectGeometryTexturesPointers
& texturePointers,
const
osg::StateSet* stateSet,
const
std::string &modelName)
const
= 0;
48
50
virtual
const
DtIndirectEffectTexturesTemplate
& effectTexturesTemplate(
void
)
const
;
51
59
virtual
const
std::string& glslTextureDeclarationHashDefine(
void
)
const
;
60
65
virtual
int
numFxShaders(
void
)
const
;
66
68
virtual
const
DtIndirectEffectTextureShader
& fxShader(
int
index)
const
;
69
protected
:
71
DtIndirectTextureCollectionPolicy
();
72
73
DtIndirectEffectTexturesTemplate
myEffectTexturesTemplate
;
74
75
std::vector<DtIndirectEffectTextureShader>
myFXTextureShaders
;
76
};
77
78
80
class
DT_DLL_VRVOSG
DtIndirectTextureCollectionPolicyCreator
81
{
82
public
:
84
DtIndirectTextureCollectionPolicyCreator
();
85
87
virtual
~
DtIndirectTextureCollectionPolicyCreator
();
88
89
// pure abstract creation function
90
virtual
DtIndirectTextureCollectionPolicy
* create() = 0;
91
};
92
94
class
DT_DLL_VRVOSG
DtIndirectTextureCollectionPolicyFactory
:
public
DtVirtualBaseClass
95
{
96
public
:
98
DtIndirectTextureCollectionPolicyFactory
(
DtDe
&de);
99
101
virtual
~
DtIndirectTextureCollectionPolicyFactory
();
102
105
static
DtIndirectTextureCollectionPolicyFactory
& instance(
DtDe
& de);
106
108
static
const
std::string& theClassName();
109
111
virtual
void
registerCreator(
const
std::string& name,
DtIndirectTextureCollectionPolicyCreator
* creator);
112
114
virtual
DtIndirectTextureCollectionPolicy
* create(
const
std::string& name)
const
;
115
protected
:
116
DtDe
&
myDe
;
117
118
typedef
boost::unordered_map<std::string, DtIndirectTextureCollectionPolicyCreator*>
RegistrationMap
;
119
120
RegistrationMap
myCreators
;
121
};
122
123
}
Document ID: Generated on Wed Jul 25 16:57:45 EDT 2018 from SVN revision 190790
Copyright © 2005-2018 VT MÄK. All Rights Reserved (
www.mak.com
)