diff options
Diffstat (limited to 'src/Runtime/Source/render/Examples/Qt3DSRenderClearColorExample.cpp')
-rw-r--r-- | src/Runtime/Source/render/Examples/Qt3DSRenderClearColorExample.cpp | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/src/Runtime/Source/render/Examples/Qt3DSRenderClearColorExample.cpp b/src/Runtime/Source/render/Examples/Qt3DSRenderClearColorExample.cpp new file mode 100644 index 00000000..f67cf717 --- /dev/null +++ b/src/Runtime/Source/render/Examples/Qt3DSRenderClearColorExample.cpp @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** Copyright (C) 2008-2012 NVIDIA Corporation. +** Copyright (C) 2017 The Qt Company Ltd. +** Contact: https://www.qt.io/licensing/ +** +** This file is part of Qt 3D Studio. +** +** $QT_BEGIN_LICENSE:GPL$ +** Commercial License Usage +** Licensees holding valid commercial Qt licenses may use this file in +** accordance with the commercial license agreement provided with the +** Software or, alternatively, in accordance with the terms contained in +** a written agreement between you and The Qt Company. For licensing terms +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 or (at your option) any later version +** approved by the KDE Free Qt Foundation. The licenses are as published by +** the Free Software Foundation and appearing in the file LICENSE.GPL3 +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ +#include "Qt3DSRenderExample.h" +#include "foundation/Qt3DSVec4.h" + +using namespace qt3ds; +using namespace qt3ds::render; + +namespace { +class ClearColor : public NVRenderExample +{ + NVRenderContext &m_Context; + +public: + ClearColor(NVRenderContext &ctx) + : m_Context(ctx) + { + } + virtual void drawFrame(double currentSeconds) + { + // Apply this value immediately but track it so that a later pop will in fact + // restore this value. + if (currentSeconds < 1) + m_Context.SetClearColor(QT3DSVec4(.8f, .0f, .0f, 1.f)); + else if (currentSeconds < 2) + m_Context.SetClearColor(QT3DSVec4(0.f, .0f, 1.f, 1.f)); + else + m_Context.SetClearColor(QT3DSVec4(0.f, 1.0f, 1.f, 1.f)); + m_Context.Clear(NVRenderClearFlags(NVRenderClearValues::Color)); + } + virtual QT3DSU32 getRuntimeInSeconds() { return 2; } + virtual void release() { NVDelete(m_Context.GetFoundation(), this); } +}; +} + +// QT3DS_RENDER_REGISTER_EXAMPLE( ClearColor );
\ No newline at end of file |