VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
DtIndirectLimitTextureStrategy.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 #include <vrvOsg/vrvOsg.h>
12 
13 #include <vrvMath/DtVector2.h>
14 
16 
17 #include <osg/ref_ptr>
18 
19 #include <unordered_set>
20 
21 namespace osg
22 {
23  class Image;
24 }
25 
26 namespace makVrv
27 {
28  class DtDe;
29  class DtIndirectImagePrototype;
30 
33 
36 
38  template <>
39  inline const char* creatorTypeName<DtIndirectLimitTextureStrategy>(void) { return "DtIndirectLimitTextureStrategyCreator"; }
40 
45  {
46  public:
48  DtIndirectTextureLimitAdjustedMipMap(int start, int width, int height);
49 
52  public:
56  };
57 
66  {
67  public:
70 
73 
77  DtIndirectLimitTextureStrategy& operator=(const DtIndirectLimitTextureStrategy& rhs) = delete;
80 
81  enum Type
82  {
83  TERRAIN = 1001, NO_STRATEGY = -1001
84  };
85  protected:
87  DtIndirectLimitTextureStrategy(DtDe& de, const DtVector2<int>& limitTexturesResolution);
88  public:
93  virtual DtIndirectTextureLimitAdjustedMipMap adjustStartMipMapLevel(const DtIndirectImagePrototype* vrvImage) const;
94 
96  virtual void excludeTexture(const std::string& textureFileAbsolutePath);
97 
99  virtual bool isExcluded(const std::string& textureFileAbsolutePath) const;
100 
103  virtual bool needsMaxTextureResolutionComputation(void) const;
104 
106  virtual int type(void) const;
107 
108  protected:
109  virtual DtIndirectTextureLimitAdjustedMipMap adjustStartMipMapLevel(const DtIndirectImagePrototype* vrvImage, const DtVector2<int>& limit) const;
110  protected:
113 
114  std::unordered_set<std::string> myExcludedTextureFiles;
115  };
116 }
int myMipLevelStart
Definition: DtIndirectLimitTextureStrategy.h:53
int myStartMipMapHeight
Definition: DtIndirectLimitTextureStrategy.h:55
DtVirtualBaseClassCreator< DtIndirectLimitTextureStrategy, const DtVector2< int > & > DtIndirectLimitTextureStrategyCreator
creator
Definition: DtIndirectLimitTextureStrategy.h:32
int myStartMipMapWidth
Definition: DtIndirectLimitTextureStrategy.h:54
const DtVector2< int > myLimitTexturesResolution
Definition: DtIndirectLimitTextureStrategy.h:112
2 dimensional vector
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
std::unordered_set< std::string > myExcludedTextureFiles
Definition: DtIndirectLimitTextureStrategy.h:114
DtDe & myDe
Definition: DtIndirectLimitTextureStrategy.h:111
Type
Definition: DtIndirectLimitTextureStrategy.h:81
structure that holds the adjusted mip level to start reading the image from, for the given limiting s...
Definition: DtIndirectLimitTextureStrategy.h:44
Variadic templated creator class for defining a DtVirtualBaseClass creator that is automatically regi...
Definition: DtVirtualBaseClassCreator.h:22
friend DtIndirectLimitTextureStrategyCreator
only creator can create
Definition: DtIndirectLimitTextureStrategy.h:69
IMGUI_API void Image(ImTextureID user_texture_id, const ImVec2 &size, const ImVec2 &uv0=ImVec2(0, 0), const ImVec2 &uv1=ImVec2(1, 1), const ImVec4 &tint_col=ImVec4(1, 1, 1, 1), const ImVec4 &border_col=ImVec4(0, 0, 0, 0))
The indirect system uses this in conjunction with the system wide limits (for entity/terrain) to clam...
Definition: DtIndirectLimitTextureStrategy.h:65
Contains DLL export macros.
const char * creatorTypeName< DtIndirectLimitTextureStrategy >(void)
template specialization for the creator (pass the class being created to the creatorTypeName template...
Definition: DtIndirectLimitTextureStrategy.h:39
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:72
DtIndirectImagePrototype represents an image template.
Definition: DtIndirectImagePrototype.h:36

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)