ImagingTools Core SDK
IDrawable.h
1// SPDX-License-Identifier: LGPL-2.1-or-later OR GPL-2.0-or-later OR GPL-3.0-or-later OR LicenseRef-ImtCore-Commercial
2#pragma once
3
4
5// Qt includes
6#include <QtGui/QPainter>
7#if QT_VERSION < 0x060000
8#include <QtGui/QOpenGLShaderProgram>
9#else
10#include <QtOpenGL/QOpenGLShaderProgram>
11#endif
12
13// ACF includes
14#include <istd/IPolymorphic.h>
15
16
17namespace imt3dview
18{
19
20
24class IDrawable: virtual public istd::IPolymorphic
25{
26public:
30 virtual void SetContext(QOpenGLContext* contextPtr) = 0;
31
35 virtual void DrawGl(QOpenGLShaderProgram& program) = 0;
36
40 virtual void Draw(QPainter& painter) = 0;
41};
42
43
44} // namespace imt3dview
45
46
virtual void SetContext(QOpenGLContext *contextPtr)=0
virtual void Draw(QPainter &painter)=0
virtual void DrawGl(QOpenGLShaderProgram &program)=0