ImageProvider.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef IMAGEPROVIDER_H
  2. #define IMAGEPROVIDER_H
  3. #include "EgoInterface.h"
  4. #include <QImage>
  5. #include <QPainter>
  6. #include <QQuickImageProvider>
  7. #include <mutex>
  8. class ImageProvider : public QQuickImageProvider {
  9. public:
  10. ImageProvider();
  11. QImage requestImage(const QString &id, QSize *size,
  12. const QSize &requestedSize);
  13. QPixmap requestPixmap(const QString &id, QSize *size,
  14. const QSize &requestedSize);
  15. QImage img;
  16. };
  17. class ShowImage : public QObject, public IRender {
  18. Q_OBJECT
  19. public:
  20. explicit ShowImage(QObject *parent = 0);
  21. ImageProvider *m_pImgProvider;
  22. void OnRender(std::unique_ptr<uint8_t> &pBuffer, int32_t width,
  23. int32_t height) override;
  24. RenderPosition campos;
  25. public slots:
  26. void sendImage(QImage);
  27. void sendBackImage(QImage);
  28. void sendLeftImage(QImage);
  29. void sendRightImage(QImage);
  30. void sendPanelImage(QImage);
  31. signals:
  32. void callQmlRefeshImg();
  33. void callQmlRefeshBackImg();
  34. void callQmlRefeshRightImg();
  35. void callQmlRefeshLeftImg();
  36. void callQmlRefeshPanelImg();
  37. void sendPic(QImage image);
  38. private:
  39. QImage m_image;
  40. std::mutex lock_;
  41. };
  42. #endif // IMAGEPROVIDER_H