summaryrefslogtreecommitdiffstats
path: root/examples/activeqt/opengl/glbox.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/activeqt/opengl/glbox.cpp')
-rw-r--r--examples/activeqt/opengl/glbox.cpp218
1 files changed, 0 insertions, 218 deletions
diff --git a/examples/activeqt/opengl/glbox.cpp b/examples/activeqt/opengl/glbox.cpp
deleted file mode 100644
index 3388670..0000000
--- a/examples/activeqt/opengl/glbox.cpp
+++ /dev/null
@@ -1,218 +0,0 @@
-// Copyright (C) 2015 The Qt Company Ltd.
-// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
-
-/****************************************************************************
-**
-** This is a simple QGLWidget displaying an openGL wireframe box
-**
-** The OpenGL code is mostly borrowed from Brian Pauls "spin" example
-** in the Mesa distribution
-**
-****************************************************************************/
-
-#include "glbox.h"
-#include <QAxAggregated>
-#include <QUuid>
-//! [0]
-#include <objsafe.h>
-//! [0]
-
-/*!
- Create a GLBox widget
-*/
-
-GLBox::GLBox(QWidget *parent, const char *name)
- : QOpenGLWidget(parent)
-{
- setObjectName(name);
-
- QSurfaceFormat format;
- format.setVersion(1, 1);
- format.setProfile(QSurfaceFormat::CompatibilityProfile);
- setFormat(format);
-}
-
-
-/*!
- Release allocated resources
-*/
-
-GLBox::~GLBox()
-{
- makeCurrent();
-
- if (m_object)
- glDeleteLists(m_object, 1);
-}
-
-
-/*!
- Paint the box. The actual openGL commands for drawing the box are
- performed here.
-*/
-
-void GLBox::paintGL()
-{
- glClear(GL_COLOR_BUFFER_BIT);
-
- glLoadIdentity();
- glTranslated(0, 0, -10);
- glScaled(m_scale, m_scale, m_scale);
-
- glRotated(m_xRot, 1, 0, 0);
- glRotated(m_yRot, 0, 1, 0);
- glRotated(m_zRot, 0, 0, 1);
-
- glCallList(m_object);
-}
-
-
-/*!
- Set up the OpenGL rendering state, and define display list
-*/
-
-void GLBox::initializeGL()
-{
- initializeOpenGLFunctions();
- glClearColor(0, 0, 0, 1); // Let OpenGL clear to black
- m_object = makeObject(); // Generate an OpenGL display list
- glShadeModel(GL_FLAT);
-}
-
-
-
-/*!
- Set up the OpenGL view port, matrix mode, etc.
-*/
-
-void GLBox::resizeGL(int w, int h)
-{
- glViewport(0, 0, (GLint)w, (GLint)h);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- glFrustum(-1, 1, -1, 1, 5, 15);
- glMatrixMode(GL_MODELVIEW);
-}
-
-
-/*!
- Generate an OpenGL display list for the object to be shown, i.e. the box
-*/
-
-GLuint GLBox::makeObject()
-{
- GLuint list;
-
- list = glGenLists(1);
-
- glNewList(list, GL_COMPILE);
-
- glColor3d(1, 1, 1); // Shorthand for glColor3f or glIndex
-
- glLineWidth(2);
-
- glBegin(GL_LINE_LOOP);
- glVertex3d( 1, 0.5, -0.4);
- glVertex3d( 1, -0.5, -0.4);
- glVertex3d(-1, -0.5, -0.4);
- glVertex3d(-1, 0.5, -0.4);
- glEnd();
-
- glBegin(GL_LINE_LOOP);
- glVertex3d( 1, 0.5, 0.4);
- glVertex3d( 1, -0.5, 0.4);
- glVertex3d(-1, -0.5, 0.4);
- glVertex3d(-1, 0.5, 0.4);
- glEnd();
-
- glBegin(GL_LINES);
- glVertex3d( 1, 0.5, -0.4); glVertex3d( 1, 0.5, 0.4);
- glVertex3d( 1, -0.5, -0.4); glVertex3d( 1, -0.5, 0.4);
- glVertex3d(-1, -0.5, -0.4); glVertex3d(-1, -0.5, 0.4);
- glVertex3d(-1, 0.5, -0.4); glVertex3d(-1, 0.5, 0.4);
- glEnd();
-
- glEndList();
-
- return list;
-}
-
-
-/*!
- Set the rotation angle of the object to \e degrees around the X axis.
-*/
-
-void GLBox::setXRotation(int degrees)
-{
- m_xRot = GLdouble(degrees % 360);
- update();
-}
-
-
-/*!
- Set the rotation angle of the object to \e degrees around the Y axis.
-*/
-
-void GLBox::setYRotation(int degrees)
-{
- m_yRot = GLdouble(degrees % 360);
- update();
-}
-
-
-/*!
- Set the rotation angle of the object to \e degrees around the Z axis.
-*/
-
-void GLBox::setZRotation(int degrees)
-{
- m_zRot = GLdouble(degrees % 360);
- update();
-}
-
-//! [1]
-class ObjectSafetyImpl : public QAxAggregated,
- public IObjectSafety
-{
-public:
-//! [1] //! [2]
- explicit ObjectSafetyImpl() = default;
-
- long queryInterface(const QUuid &iid, void **iface) override
- {
- *iface = nullptr;
- if (iid != IID_IObjectSafety)
- return E_NOINTERFACE;
-
- *iface = static_cast<IObjectSafety*>(this);
- AddRef();
- return S_OK;
- }
-
-//! [2] //! [3]
- QAXAGG_IUNKNOWN;
-
-//! [3] //! [4]
- HRESULT WINAPI GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions, DWORD *pdwEnabledOptions) override
- {
- Q_UNUSED(riid);
- *pdwSupportedOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACESAFE_FOR_UNTRUSTED_CALLER;
- *pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA | INTERFACESAFE_FOR_UNTRUSTED_CALLER;
- return S_OK;
- }
-
- HRESULT WINAPI SetInterfaceSafetyOptions(REFIID riid, DWORD pdwSupportedOptions, DWORD pdwEnabledOptions) override
- {
- Q_UNUSED(riid);
- Q_UNUSED(pdwSupportedOptions);
- Q_UNUSED(pdwEnabledOptions);
- return S_OK;
- }
-};
-//! [4] //! [5]
-
-QAxAggregated *GLBox::createAggregate()
-{
- return new ObjectSafetyImpl();
-}
-//! [5]