OpenGLWidgetAPI.h 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. #ifndef _OPENGLWIDGETAPI_H_
  2. #define _OPENGLWIDGETAPI_H_
  3. #include <QWidget>
  4. #include <QString>
  5. /**
  6. * @brief YUV420图片格式
  7. *
  8. */
  9. struct Image_YUV420P
  10. {
  11. int width; /* 宽度 */
  12. int height; /* 高度 */
  13. QByteArray yData; /* Y分量数据 */
  14. QByteArray uData; /* U分量数据 */
  15. QByteArray vData; /* V分量数据 */
  16. Image_YUV420P() : width(0), height(0) {}
  17. Image_YUV420P(Image_YUV420P&& other);
  18. Image_YUV420P(const Image_YUV420P& other);
  19. Image_YUV420P& operator=(Image_YUV420P&& other);
  20. Image_YUV420P& operator=(const Image_YUV420P& other);
  21. bool isValid() const;
  22. void clear();
  23. };
  24. /* 加载动态库 */
  25. bool loadOpenGLWidgetLibrary();
  26. /* 创建OpenGL窗口,返回QWidget指针 */
  27. QWidget* createOpenGLWidget(QWidget* parent = nullptr);
  28. /* 销毁OpenGL窗口 */
  29. void destroyOpenGLWidget(QWidget* widget);
  30. /* 刷新一帧RGBA图片 */
  31. void refreshRGBAImage(QWidget* widget, QImage& image);
  32. /* 刷新一帧YUV420图片 */
  33. void refreshYUV420Image(QWidget* widget, Image_YUV420P& yuvData);
  34. #endif // _OPENGLWIDGETAPI_H_