/**
** This file is owned by VisualGear Technology Co., Ltd.
** Unauthorized copying of this file, via any medium is strictly prohibited
** Otherwise VisualGear Technology Co., Ltd. will have the right to pursue
** maximum responsibilities within scope of legal.
**
** Copyright 2018-2020 VisualGear All rights reserved.
**/

#pragma once

#include "UIGQWidgetBase.h"
#include <QVector3D>
#include <QtWidgets/QOpenGLWidget>

namespace UIGQtLib
{

	class UIGQOGLWidgetImpl;
	class UIGQOGLWidget : public QOpenGLWidget
	{
	public:
		UIGQOGLWidget(QWidget* pParent = nullptr);
		~UIGQOGLWidget();

		UIG_QT_CTRL_DEF("qtoglwidget", UIGQOGLWidget);

		UIGQOGLWidgetImpl* getImpl() { return _ctrlImpl; }

		friend class UIGQOGLWidgetImpl;

	protected:
		virtual void initializeGL();
		virtual void paintGL();


	private:
		UIGQOGLWidgetImpl* _ctrlImpl;

		UIGQT_GET_CONTROLBASE;
	};

}