GlRenderTarget.cs 938 B

123456789101112131415161718192021222324252627282930
  1. using System;
  2. using Avalonia.OpenGL.Egl;
  3. using Avalonia.OpenGL.Surfaces;
  4. namespace Avalonia.Android.OpenGL
  5. {
  6. internal sealed class GlRenderTarget : EglPlatformSurfaceRenderTargetBase, IGlPlatformSurfaceRenderTargetWithCorruptionInfo
  7. {
  8. private readonly EglGlPlatformSurfaceBase.IEglWindowGlPlatformSurfaceInfo _info;
  9. private readonly EglSurface _surface;
  10. private readonly IntPtr _handle;
  11. public GlRenderTarget(
  12. EglPlatformOpenGlInterface egl,
  13. EglGlPlatformSurfaceBase.IEglWindowGlPlatformSurfaceInfo info,
  14. EglSurface surface,
  15. IntPtr handle)
  16. : base(egl)
  17. {
  18. _info = info;
  19. _surface = surface;
  20. _handle = handle;
  21. }
  22. public bool IsCorrupted => _handle != _info.Handle;
  23. public override IGlPlatformSurfaceRenderingSession BeginDraw() => BeginDraw(_surface, _info);
  24. }
  25. }