/****************************************************************************
**
** Copyright (C) 2017 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the documentation of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:FDL$
** 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 Free Documentation License Usage
** Alternatively, this file may be used under the terms of the GNU Free
** Documentation License version 1.3 as published by the Free Software
** Foundation and appearing in the file included in the packaging of
** this file. Please review the following information to ensure
** the GNU Free Documentation License version 1.3 requirements
** will be met: https://www.gnu.org/licenses/fdl-1.3.html.
** $QT_END_LICENSE$
**
****************************************************************************/

/*!
    \title QQuickRenderControl OpenGL Example
    \example rendercontrol/rendercontrol_opengl
    \brief Shows how to render a Qt Quick scene into a texture that is then used by a non-Quick based OpenGL renderer.
    \image rendercontrol-opengl-example.jpg

    The Qt Quick scene is managed by a QQuickWindow that is not visible
    on-screen. Rather, rendering targets an OpenGL texture and is controlled
    through QQuickRenderControl.

    The cube is rendered directly with OpenGL, using Qt Gui enablers such as
    QWindow, QOpenGLContext, QOpenGLShaderProgram, and QOpenGLFunctions. The
    cube is textured with the texture that the Qt Quick render pass outputs to.

    In addition, basic input event forwarding is also demonstrated. When holding
    down the left mouse button, the background \l Rectangle color is altered via
    QML bindings. Similarly, holding down a key on the keyboard changes the
    color as well. This proves that the "fake" events sent from the application
    (generated based on events from the on-screen QWindow) are forwarded and
    processed within the Qt Quick scene.
*/
