All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
IAndroidGlDisplayService.h
1 // Copyright eeGeo Ltd (2017), All Rights Reserved
2 
3 #pragma once
4 
5 #include "Types.h"
6 #include "AndroidDeclarations.h"
7 #include "Graphics.h"
8 #include "CallbackCollection.h"
9 #include "NativeState.h"
10 #include "AndroidSharedGlContextUsageGuard.h"
11 
12 #include <string>
13 
14 
15 namespace Eegeo
16 {
17  namespace Android
18  {
19  namespace Sdk
20  {
22  {
23  public:
25 
26  virtual ~IAndroidGlDisplayService() { }
27 
28  virtual bool TryBindDisplay() = 0;
29  virtual void ReleaseDisplay(bool destroyEGL) = 0;
30  virtual bool IsDisplayAvailable() const = 0;
31  virtual int GetDisplayWidth() const = 0;
32  virtual int GetDisplayHeight() const = 0;
33  virtual EGLDisplay GetDisplay() const = 0;
34  virtual EGLSurface GetSurface() const = 0;
35  virtual EGLSurface GetSharedSurface() const = 0;
36  virtual EGLContext GetContext() const = 0;
37  virtual EGLContext GetResourceBuildSharedContext() const = 0;
38  virtual float GetDeviceDpi() const = 0;
39  virtual float GetDevicePixelScale() const = 0;
40  virtual std::string GetImageResolutionSuffix() const = 0;
41  virtual GlDisplayServiceChangedEvent& ChangedEvent() const = 0;
42  virtual IAndroidSharedGlContextUsageGuard& GetSharedGlContextUsageGuard() const = 0;
43  };
44  }
45  }
46 }