VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectGeometryTextures.h
Go to the documentation of this file.
1 /******************************************************************************
2 ** Copyright (c) 2022 VT-MAK Technologies, Inc.
3 ** All rights reserved.
4 ******************************************************************************/
5 
9 
10 #pragma once
11 
12 #include <vrvOsg/vrvOsg.h>
13 
14 #include <vector>
15 
16 namespace makVrv
17 {
18  class DtIndirectEffectTexturesTemplate;
19  class DtIndirectTexturePrototype;
20 
39  {
40  public:
41  typedef std::vector<unsigned int> VectorTextureUnits;
42 
43  //Also defined in the indirect pixel shader. Needs to stay in sync if new modes are added.
45  {
46  Blend = 0,
47  Decal = 1
48  };
49 
50  public:
54 
55 
58  , int textureLimitStrategy);
59 
61  virtual ~DtIndirectGeometryTextures();
62 
63  public:
65  virtual bool hasDiffuseTexture(void) const;
66 
68  virtual bool hasEffectTexture(int type) const;
69 
71  virtual int getNumEffectTextures() const;
72 
74  virtual const DtIndirectTexturePrototype* diffuseTexture(void) const;
75 
79  virtual unsigned int diffuseTextureUnit() const;
80 
82  virtual unsigned int diffuseTextureBlendMode() const;
83 
85  virtual const DtIndirectTexturePrototype* effectTextureForType(int type) const;
86 
88  virtual int effectTextureUnitForType(int type) const;
89 
91  virtual const DtIndirectEffectTexturesTemplate* effectTexturesTemplate(void) const;
92 
94  virtual void setDiffuseTexture(const DtIndirectTexturePrototype* texture);
95 
97  virtual void setDiffuseTextureUnit(unsigned int unit);
98 
100  virtual void setDiffuseTextureBlendMode(unsigned int mode);
101 
103  virtual void setEffectTexture(int type, DtIndirectTexturePrototype* texture);
104 
106  virtual void setEffectTextureUnit(int type, unsigned int unit);
107 
109  virtual void setConfigurableEffectSuffixes(const std::vector<std::string>& suffixes);
110 
112  virtual const std::vector<std::string> configurableEffectSuffixes(void) const;
113 
115  virtual void getEffectTextureUnits(VectorTextureUnits& textureUnits) const;
116 
118  virtual int textureLimitStrategy(void) const;
119 
120  protected:
122  virtual const DtIndirectTexturePrototype* textureForIndex(int index) const;
123 
127  virtual int textureUnitForIndex(int index) const;
128 
129  protected:
130  const DtIndirectEffectTexturesTemplate* myEffectTexturesTemplate = nullptr;
131  const DtIndirectTexturePrototype* myDiffuseTexture = nullptr;
132 
133  int myDiffuseTextureUnit = 0;
134  unsigned int myDiffuseTextureBlendMode = 0;
135 
136  std::vector<const DtIndirectTexturePrototype*> myEffectTextures;
137 
139 
140  std::vector<std::string> myConfigurableEffectSuffixes;
141 
142  int myTextureLimitStrategy = 0;
143  };
144 
145 }
std::vector< const DtIndirectTexturePrototype * > myEffectTextures
Definition: DtIndirectGeometryTextures.h:136
VectorTextureUnits myEffectTextureUnits
Definition: DtIndirectGeometryTextures.h:138
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::vector< unsigned int > VectorTextureUnits
Definition: DtIndirectGeometryTextures.h:41
This class represents the list of DtIndirectTexturePrototypes belonging to a particular sub-geometry...
Definition: DtIndirectGeometryTextures.h:38
IndirectTextureBlendModesSupported
Definition: DtIndirectGeometryTextures.h:44
const char int mode
Definition: ioapi.h:38
Contains DLL export macros.
VRV/Indirect uses its own texture paradigm: DtIndirectTexturePrototype, which is a &#39;template&#39; for mak...
Definition: DtIndirectTexturePrototype.h:53
std::vector< std::string > myConfigurableEffectSuffixes
Definition: DtIndirectGeometryTextures.h:140
Class that allows you to abstractly register effect texture types the effect texture types are client...
Definition: DtIndirectEffectTexturesTemplate.h:40

Document ID: Generated on Tue Sep 24 19:28:17 EDT 2024 from SVN revision 269799
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)