All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
RasterTerrainTexture.h
1 // Copyright eeGeo Ltd (2012-2016), All Rights Reserved
2 
3 #pragma once
4 
5 #include "LocalAsyncTextureBase.h"
6 #include "AsyncTexturing.h"
7 #include "Rendering.h"
8 #include "Texture.h"
9 #include "Helpers.h"
10 #include <string>
11 #include <vector>
12 
13 namespace Eegeo
14 {
15  namespace Resources
16  {
17  namespace Terrain
18  {
19  namespace Raster
20  {
21  namespace RasterTerrainTextureMipmapsMode
22  {
23  enum Values
24  {
25  None = 0,
26  AutomaticGeneration,
27  Manual565Generation
28  };
29  }
30 
32  {
33  public:
35  std::vector<Byte>& buffer,
36  const std::string& textureName,
37  Helpers::ITextureFileLoader& textureLoader,
38  bool generateMipMaps);
39 
40  virtual ~RasterTerrainTexture();
41 
42  virtual const std::string GetUrl() const;
43  virtual const Helpers::GLHelpers::TextureInfo& GetTextureInfo() const;
44  virtual void Release() { DecrementReferenceCount(); }
45  virtual bool IsLoaded() const;
46  virtual bool IsComplete() const;
47  virtual bool HasMipMaps() const { return true; }
48  virtual void DestroyTexture();
49 
50  private:
51  const std::string m_textureName;
52  Helpers::GLHelpers::TextureInfo m_textureInfo;
53  };
54  }
55  }
56  }
57 }