123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- #ifndef PLAYEROPENGLWIDGET_H
- #define PLAYEROPENGLWIDGET_H
- #include <QOpenGLWidget>
- #include <QOpenGLFunctions> // 添加此行
- #include <QOpenGLFunctions_3_3_Core> // 添加此行
- #include <QOpenGLTexture>
- #include "PlayerGlobalInfo.h"
- /**
- * @brief
- *
- */
- class PlayerGLWidget : public QOpenGLWidget, protected QOpenGLFunctions_3_3_Core // 修改此行
- {
- Q_OBJECT
- enum
- {
- Left_Bottom_X,
- Left_Bottom_Y,
- Right_Bottom_X,
- Right_Bottom_Y,
- Right_Top_X,
- Right_Top_Y,
- Left_Top_X,
- Left_Top_Y,
- Pos_Max
- };
- public:
- explicit PlayerGLWidget(QWidget *parent = nullptr);
- ~PlayerGLWidget();
- /* 刷新一帧 */
- void updateFrame(Image_YUV420& image);
- /* 刷新一帧QImage */
- void updateFrame(Image_QImage& image);
- private:
- /* 转换成YUV420 */
- void convertQImageToYUV420(const QImage& image, Image_YUV420& yuv420);
- protected:
- void initializeGL() override;
- void resizeGL(int w, int h) override;
- void paintGL() override;
- // void setImage(const QImage &image);
- private:
- Image_QImage m_image;
- Image_YUV420 m_YUV420;
- QByteArray yData;
- QByteArray uData;
- QByteArray vData;
- QOpenGLTexture* textureY_;
- QOpenGLTexture* textureU_;
- QOpenGLTexture* textureV_;
- GLuint textureIdY_;
- GLuint textureIdU_;
- GLuint textureIdV_;
- QSize Ortho2DSize_;
- QSize imageSize_; // 添加此行
- GLuint shaderProgram; // 添加此行
- GLuint VAO, VBO, EBO; // 添加此行
- };
- #endif /* PLAYEROPENGLWIDGET_H */
|