Geen omschrijving
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

DisplayManager.h 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #pragma once
  2. #include "UnityRendering.h"
  3. #include <UIKit/UIKit.h>
  4. @class UnityView;
  5. @interface DisplayConnection : NSObject
  6. #if !PLATFORM_VISIONOS
  7. - (id)init:(UIScreen*)targetScreen;
  8. #else
  9. - (id)init;
  10. #endif
  11. - (void)dealloc;
  12. - (void)createView:(BOOL)useForRendering showRightAway:(BOOL)showRightAway;
  13. - (void)createView:(BOOL)useForRendering;
  14. - (void)createWithWindow:(UIWindow*)window andView:(UIView*)view;
  15. - (UnityDisplaySurfaceBase*)initRendering;
  16. - (void)recreateSurface:(RenderingSurfaceParams)params;
  17. - (void)destroySurface;
  18. - (void)shouldShowWindow:(BOOL)show;
  19. - (void)requestRenderingResolution:(CGSize)res;
  20. - (void)present;
  21. #if !PLATFORM_VISIONOS
  22. @property (readonly, copy, nonatomic) UIScreen* screen;
  23. #endif
  24. @property (readonly, copy, nonatomic) UIWindow* window;
  25. @property (readonly, copy, nonatomic) UIView* view;
  26. @property (readonly, nonatomic) CGSize screenSize;
  27. @property (readonly, nonatomic) UnityDisplaySurfaceBase* surface;
  28. @end
  29. @interface DisplayManager : NSObject
  30. #if !PLATFORM_VISIONOS
  31. - (id)objectForKeyedSubscript:(id)key;
  32. - (BOOL)displayAvailable:(UIScreen*)targetScreen;
  33. - (void)updateDisplayListCacheInUnity;
  34. - (void)enumerateDisplaysWithBlock:(void (^)(DisplayConnection* conn))block;
  35. - (void)enumerateNonMainDisplaysWithBlock:(void (^)(DisplayConnection* conn))block;
  36. #endif
  37. - (void)startFrameRendering;
  38. - (void)present;
  39. - (void)endFrameRendering;
  40. + (void)Initialize;
  41. + (DisplayManager*)Instance;
  42. + (void)Destroy;
  43. @property (readonly, nonatomic) DisplayConnection* mainDisplay;
  44. @property (readonly, nonatomic) NSUInteger displayCount;
  45. @end
  46. inline DisplayConnection* GetMainDisplay()
  47. {
  48. return [DisplayManager Instance].mainDisplay;
  49. }
  50. inline UnityDisplaySurfaceBase* GetMainDisplaySurface()
  51. {
  52. return GetMainDisplay().surface;
  53. }