2,新增“Apps”; 3,新增“Common”; 4,新增“FileList”; 5,新增“MediaX”; 6,新增“OpenSource”; 7,新增“Samples”; 8,新增“SoftwareBusinessLines”.
62 lines
1.6 KiB
C++
62 lines
1.6 KiB
C++
#ifndef GLWIDGET_H
|
|
#define GLWIDGET_H
|
|
|
|
#include "../Common/GCycleQueue.h"
|
|
#include <QOpenGLWidget>
|
|
#include <QOpenGLFunctions>
|
|
#include <QOpenGLTexture>
|
|
#include<QTimer>
|
|
|
|
|
|
typedef unsigned char BYTE, Byte, byte;
|
|
|
|
enum GLBackgorundImgType
|
|
{
|
|
Normal, //普通高德背景
|
|
// ConnectionNotEstablished, //光纤物理链路不通 (读CAPTURE_PORT_STATUS寄存器)
|
|
WrongImgSize, //FPGA收到的图像数据大小与设置的图像大小不一致 (读CAPTURE_PORT_STATUS寄存器)
|
|
NoInterEvent, //读中断事件一直为0 中断线程状态 无数据
|
|
ChannelFailLink,//通道link失败
|
|
ChannelFailEncode, //8B / 10B编码错误
|
|
FailLinkAndFailEncode, //通道link失败 + 8B / 10B编码错误
|
|
|
|
};
|
|
|
|
|
|
class GLWidget : public QOpenGLWidget, protected QOpenGLFunctions
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit GLWidget(QWidget* parent = nullptr);
|
|
~GLWidget();
|
|
void SetStatusBackImg(GLBackgorundImgType type);
|
|
void Init(int iWidth, int iHeight);
|
|
bool UpdateImageData(byte* pFrameData);
|
|
|
|
protected:
|
|
void initializeGL() override;
|
|
void paintGL() override;
|
|
void resizeGL(int width, int height) override;
|
|
// void mousePressEvent(QMouseEvent* event) override;
|
|
|
|
public slots:
|
|
void setTextureImage(const QImage& image);
|
|
|
|
public slots:
|
|
void OnTimer_UpdataVideoView();
|
|
|
|
private:
|
|
QOpenGLTexture* texture;
|
|
QImage m_varBackImg;
|
|
QImage m_varImage;
|
|
QTimer m_varTimer;
|
|
bool m_bStartNewImg;
|
|
bool m_bIsOpenGLInit;
|
|
GCycleQueue m_varDataQueue;
|
|
int m_iWidth;
|
|
int m_iHeight;
|
|
};
|
|
|
|
#endif // GLWidget_H
|