media_view_overlay_renderer.h 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. /*
  2. This file is part of Telegram Desktop,
  3. the official desktop application for the Telegram messaging service.
  4. For license and copyright information please follow this link:
  5. https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
  6. */
  7. #pragma once
  8. #include "media/view/media_view_overlay_widget.h"
  9. namespace Media::Stories {
  10. struct SiblingView;
  11. } // namespace Media::Stories
  12. namespace Media::View {
  13. class OverlayWidget::Renderer : public Ui::GL::Renderer {
  14. public:
  15. virtual void paintBackground() = 0;
  16. virtual void paintTransformedVideoFrame(ContentGeometry geometry) = 0;
  17. virtual void paintTransformedStaticContent(
  18. const QImage &image,
  19. ContentGeometry geometry,
  20. bool semiTransparent,
  21. bool fillTransparentBackground,
  22. int index = 0) = 0; // image, left sibling, right sibling
  23. virtual void paintRadialLoading(
  24. QRect inner,
  25. bool radial,
  26. float64 radialOpacity) = 0;
  27. virtual void paintThemePreview(QRect outer) = 0;
  28. virtual void paintDocumentBubble(QRect outer, QRect icon) = 0;
  29. virtual void paintSaveMsg(QRect outer) = 0;
  30. virtual void paintControlsStart() = 0;
  31. virtual void paintControl(
  32. Over control,
  33. QRect over,
  34. float64 overOpacity,
  35. QRect inner,
  36. float64 innerOpacity,
  37. const style::icon &icon) = 0;
  38. virtual void paintFooter(QRect outer, float64 opacity) = 0;
  39. virtual void paintCaption(QRect outer, float64 opacity) = 0;
  40. virtual void paintGroupThumbs(QRect outer, float64 opacity) = 0;
  41. virtual void paintRoundedCorners(int radius) = 0;
  42. virtual void paintStoriesSiblingPart(
  43. int index,
  44. const QImage &image,
  45. QRect rect,
  46. float64 opacity = 1.) = 0;
  47. };
  48. } // namespace Media::View