#ifndef _OPENGLWIDGETAPI_H_ #define _OPENGLWIDGETAPI_H_ #include #include /** * @brief YUV420图片格式 * */ struct Image_YUV420 { int width; /* 宽度 */ int height; /* 高度 */ QByteArray yData; /* Y分量数据 */ QByteArray uData; /* U分量数据 */ QByteArray vData; /* V分量数据 */ Image_YUV420() : width(0), height(0) {} Image_YUV420(Image_YUV420&& other); Image_YUV420(const Image_YUV420& other); Image_YUV420& operator=(Image_YUV420&& other); Image_YUV420& operator=(const Image_YUV420& other); bool isValid() const; void clear(); }; /* 加载动态库 */ bool loadOpenGLWidgetLibrary(); /* 创建OpenGL窗口,返回QWidget指针 */ QWidget* createOpenGLWidget(QWidget* parent = nullptr); /* 销毁OpenGL窗口 */ void destroyOpenGLWidget(QWidget* widget); /* 刷新一帧RGBA图片 */ void refreshRGBAImage(QWidget* widget, QImage& image); /* 刷新一帧YUV420图片 */ void refreshYUV420Image(QWidget* widget, Image_YUV420& yuvData); #endif // _OPENGLWIDGETAPI_H_