123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- #ifndef PLAYEROPENGLWIDGET_H
- #define PLAYEROPENGLWIDGET_H
- #include <QOpenGLWidget>
- #include <QOpenGLFunctions>
- #include <QOpenGLShaderProgram>
- #include <QOpenGLTexture>
- #include "PlayerGlobalInfo.h"
- /**
- * @brief
- *
- */
- class PlayerGLWidget : public QOpenGLWidget , public QOpenGLFunctions
- {
- 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:
- protected:
- void initializeGL() override;
- void resizeGL(int w, int h) override;
- void paintGL() override;
- // void setImage(const QImage &image);
- private:
- uchar* imageData_; //纹理显示的数据源
- QSize imageSize_; //图片尺寸
- QSize Ortho2DSize_; //窗口尺寸
- QOpenGLTexture* texture_;
- GLuint textureId_; //纹理对象ID
- int vertexPos_[Pos_Max]; //窗口坐标
- float texturePos_[Pos_Max]; //纹理坐标
- Image_QImage m_image;
- };
- #endif /* PLAYEROPENGLWIDGET_H */
|