QQuickFramebufferObject:自定义FBO在哪里使用?这怎么会导致闪烁呢?

2023-12-27

我目前正在 QML 中集成自定义 OpenGL 视口QQuickFramebuffer对象。我观察到整个应用程序窗口(不仅是QQuickFramebuffer对象窗口),我想知道为什么。

我的定制QQuickFramebufferObject::渲染器确实创建了一个单独的 FPO:

QOpenGLFramebufferObject* OsgRenderer::createFramebufferObject(const QSize &size)
{
    QOpenGLFramebufferObjectFormat format;
    format.setAttachment(QOpenGLFramebufferObject::CombinedDepthStencil);
    return new QOpenGLFramebufferObject(size, format);
}

所以我明白Qt定义了自己的FBO类型(QOpenGL帧缓冲对象)这样它以后就可以使用 FBO 将其与自己的 GL 渲染混合,对吗?

然后我完成所有渲染

void OsgRenderer::render()
{
    assert(m_osgItem);

    if ( !m_osgItem->getViewer() )
        return;

    // Without this line the model is not displayed in the second
    // and subsequent frames.
    QOpenGLContext::currentContext()->functions()->glUseProgram(0);

    // Ask OSG to render.
    m_osgItem->getViewer()->frame(); // WARNING: non-blocking (executed in a thread of its own - in a thread-safe way).

    // Reset OpenGl state for QtQuick.
    m_osgItem->window()->resetOpenGLState();
}

我希望 QtQuick 在调用 render() 之后实际收集我的自定义渲染 FBO 及其自己的窗口渲染,对吗?

我的渲染实际上是在单独的上下文中实现的。在这种情况下,怎么会导致闪烁呢?任何想法?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QQuickFramebufferObject:自定义FBO在哪里使用?这怎么会导致闪烁呢? 的相关文章

  • 第36.1节 动画-刚体动画控制

    目录 本节功能 具体实现 存放动画 寻找动画 播放 暂停 复位 加速 减速 最后用一个事件响应来联接这一切 所有代码 本节功能 本节后几个章节会介绍和动画有关的课程 本节实现一个从3DMAX导出的地板破碎的动画的控制 这类动画叫做刚体动画
  • 如何打印(使用打印机)QML 对象?

    我用 Qt Quick 设计了一张销售收据 我想用打印机打印它 我怎样才能做到这一点 这是我的main cpp QtQuick2ApplicationViewer viewer viewer setMainQmlFile QStringLi
  • 将参数从 C++ 传递到 QML

    我想将一些参数从 C 传递到 QML 以便 QML 可以用它们做一些事情 有点像这样 void MyClass myCplusplusFunction int i int j emit mySignal i j 在 QML 中 每次mySi
  • Qt5.6:高DPI支持和OpenGL(OpenSceneGraph)

    我有一个最小的应用程序 它使用QOpenGLWidget集成了 OpenGL 包装库 OpenSceneGraph 我试图弄清楚在处理我使用的 OpenGL 内容时如何正确使用 Qt5 6 对高 DPI 屏幕的支持 My main 函数有以
  • 防止执行“继承的”信号处理程序

    当许多派生组件频繁使用该功能时 在 基本 组件中定义信号处理程序非常漂亮 但是 在 QML 中 在派生组件中安装新的处理程序does not替换原来的处理程序 它只是堆叠在它的上面 由于处理程序对于每个信号来说并不是唯一的 它们只是连接 并
  • PyQt5/pyqt4 是否已经支持具有手写识别功能的 QtVirtualKeyboard?

    我正在使用 pyqt5 开发桌面应用程序 并且我想使用具有手写识别功能的虚拟键盘 我看到Qt QtVirtualKeyboard已经支持它了 Here s a link 我在 QtCreator 上运行了 C Qt 示例代码 但是使用 py
  • 错误的坐标白色获取项目相对于其父项的真实位置

    我有一个简单的场景 只有 2 个Rectangles 区别在于第一个使用绝对坐标 第二个使用anchors 在这种情况下 两个矩形都放置在同一位置 但我得到的坐标完全不同 import QtQuick 2 4 import QtQuick
  • QObject 在放入 QML 变量后被销毁

    今天我在我们的程序中遇到了奇怪的错误 继承自某个类的对象QObject正在被类型为的事件删除QEvent DefferedDelete 而没有人可能发送它 它作为 QVariant 传递到 QML cpp Q INVOKABLE QVari
  • 从 QML 访问 C++ QList

    如果我有 C 中的内容列表 如何将其公开给 QML 在 Qt5 QtQuick 2 中 貌似QML只能看懂QObject 派生类 这是一个问题 因为QObjects 不能放入QList或复制 我该怎么做呢 struct Thing int
  • 将带有 Javascript 数组的对象附加到 QML ListModel 会导致 SEGFAULT

    我在 Android 上使用 QtQuick 我正在尝试将带有数组属性的 Javascript 对象附加到ListModel I use LocalStorage来存储这些数据 我从数据库中具体化的对象具有此数组属性 当我尝试将该对象附加到
  • 如何在 Openscenegraph 中从 2D 鼠标单击屏幕坐标点计算 3D 点(世界坐标)?

    我试图在 2D 屏幕空间上用户选择的点的 3D 空间上放置一个球体 为此 我尝试使用以下技术从 2d 点计算 3d 点 但该技术没有给出正确的解决方案 mousePosition x clickPos clientX window left
  • QML 垃圾收集删除仍在使用的对象

    我在动态创建对象时多次遇到过这个问题 无论它们是在 QML 还是 C 中创建的 这些对象在仍在使用时被删除 导致无明显原因的硬崩溃 这些对象仍然被引用并成为其他对象的父对象 一直到根对象 所以我觉得 QML 在它们的引用计数仍然高于零时删除
  • 如何在没有 QQuickView 的情况下截取 QML 应用程序的屏幕截图

    我想抓取我的 QML 应用程序的屏幕 但我的根 QML 对象是ApplicationWindow 所以我不能使用QQuickView来展示它 相反我必须使用QQmlApplicationEngine 我知道如何截图QQuickView QQ
  • 在移动设备上部署 C++ QML 插件的正确方法是什么?

    我经常使用 Box2D QML 插件 看起来效果非常好 但是 我想在 Android SGS2 上部署我的示例应用程序 但我似乎无法让它工作 无论我尝试在 AVD 上还是在设备上运行它 它都不起作用 androiddeployqt 成功完成
  • 在 Windows 上部署 QML 应用程序的正确方法

    最近 我需要为我的 Qt QML 应用程序创建一个部署包 这个过程非常繁琐 因为您需要手动查找并复制依赖项 正如 官方 中所述Qt Wiki https wiki qt io Deploy an Application on Windows
  • 如何更改菜单栏的字体颜色?

    如何更改 QML 菜单项的文本颜色MenuBar import QtQuick 2 4 import QtQuick Controls 1 3 import QtQuick Window 2 2 import QtQuick Dialogs
  • DropArea 不会通知有关 onEntered、onExited、onDropped 的操作

    I have Rectangle洋溢着MouseArea其中上onPressAndHold 处理程序透露第二个Rectangle和转账drag对此采取行动Rectangle 问题是当我移动那一秒时Rectangle over DropAre
  • 扩展 TabViewStyle styleData

    我目前正在尝试找到一种更好的方法来执行此操作 将图标添加到选项卡 现在 我正在放弃 styleData title 以包含图标源 但如果能够扩展 styleData 就更好了 这样我就可以包含其他自定义属性 这是我当前的黑客 Tab tit
  • MapItemView 在 dataChanged 信号后不会更新

    我正在使用 QMLMapItemView使用 C 的组件QAbstractListModel基于模型 这MapItemView当模型重置时 或者每当添加新项目或删除现有项目时 工作正常 但是 那MapItemView不反映对已添加项目的更改
  • OpenSceneGraph 将相机设置在初始位置

    我是第一次使用 OpenSceneGraph 我有点迷失 因为文档确实不太清楚 所以 我有这段代码加载一个带有房子的 obj 文件 并且我在我想要的 人 所在的地方淹没了一个小盒子 所以现在 我不想把那个盒子放在那里 而是想把相机放在那里

随机推荐

  • 从 C# .NET 应用程序调用 Delphi DLL

    编辑 我在下面发布了一个更好的实现 我将其留在这里 以便回复有意义 我已经进行了大量搜索 寻找在 Delphi 中编写 DLL 的正确方法 并能够从 C 调用它 传递和返回字符串 许多信息不完整或不正确 经过多次尝试和错误 我找到了解决方案
  • 系统参数信息返回 0

    include
  • 具有自定义属性的延迟作业

    我正在将延迟作业 3 0 2 与 ActiveRecord 和 Rails 3 2 3 一起使用 我有一个使用 has secure password mixin 的用户模型 因此密码仅以加密方式存储 现在我想使用延迟作业发送欢迎电子邮件
  • 使用 ThreadLocal 作为数据上下文是个好主意吗?

    使用 ThreadLocal 作为 Web 应用程序中数据的上下文是个好主意吗 这就是它的目的 但请注意删除上下文末尾的 ThreadLocal 否则可能会出现内存泄漏 或者至少会保留未使用的数据太长时间 ThreadLocals 也非常快
  • 如何使用 LinqToExcel 获取 Excel 文件的工作表名称?

    我正在使用 LinqToExcel 我希望能够获取 Excel 文件中所有工作表的名称 并将它们与 html 表单中的输入值进行比较 这样当输入值与 Excel 工作表上的任何名称不匹配时 系统会抛出异常 我该如何使用 LinqToExce
  • 调用 $(this) 内部的元素? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在元素内查找元素 https stackoverflow com questions 7386100 how to find an element within an element 我运行一个循
  • 如何获取设备的android_id? [复制]

    这个问题在这里已经有答案了 可能的重复 Android 设备有唯一的 ID 吗 https stackoverflow com questions 2785485 is there a unique android device id 在许
  • li 浮动与显示:内联

    有没有最好的选择float left or display inline用于水平对齐列表项 eg http www vanseodesign com css simple navigation bar with css and xhtml
  • 在 gcc 和 MSVC 中以不同方式调用函数参数的析构函数

    在将一些 C 代码从 Microsoft Visual Studio 移植到 gcc 时 我遇到了一个奇怪的错误 我最终将其归结为 include
  • Apache HttpClient 响应内容长度返回 -1

    为什么下面的代码返回 1 看来请求失败了 public static void main String args DefaultHttpClient httpClient new DefaultHttpClient HttpGet http
  • SaaS - 多租户独立数据库模型在 Java 中的实现

    我正在构建一个软件项目 我想实现 SAAS 软件即服务 模型 我想设计一个与多租户兼容的 Web 应用程序 每个租户都有单独的数据库 我如何在Java环境中设计多租户UI UI本质上应该是租户可配置的 如何为每个租户单独的数据库设计数据访问
  • 如何将字符串解析为 BigDecimal? [复制]

    这个问题在这里已经有答案了 我有这个字符串 10 692 467 440 017 120 这是一个金额 我想将其解析为 BigDecimal 问题是我尝试了 DecimalFormat 和 NumbeFormat 都没有成功 Try thi
  • 是否可以将数据库加载到 RAM 中?

    我想将 MYSQL 数据库加载到我的计算机 RAM 中 有办法做到这一点吗 我在Linux下运行这个数据库 另外 如果可以的话 有没有一个好的方法来进行备份 因为如果计算机意外关闭 我将丢失所有数据 如果缓冲池足够大 那么您的数据实际上就是
  • django-cms 编辑器和 HTML 数据属性已清理

    使用 django cms 2 4 我需要创建包含引导代码的页面 但使用的 html5lib 会清理 data 属性 无论您是否在 TINYMCE DEFAULT CONFIG 中指定 valid element 我仍在为 Wymedito
  • R 4.0.0 之前安装了软件包“XXX”:请重新安装

    我正在使用 R 4 0 2 我手动安装了 2 个软件包cfcdae and Stats5303lib from here http users stat umn edu 7Egary classes 5303 software html 我
  • PHP if/else 简写符号 - 多个条件

    请考虑以下代码构造 condition code if true condition2 code if true2 code if false 这不适用于 PHP 但适用于 JavaScript 有没有办法让它在 PHP 上工作 In PH
  • 将 Airflow 日志格式化为 JSON

    我有一个要求记录阿帕奇气流 https airflow apache org 以 JSON 格式记录到 stdout Airflow 似乎并未立即提供此功能 我找到了几个能够完成此任务的 python 模块 但我无法让实现工作 目前 我正在
  • 将读取的 char 转换为 int C++

    在我的程序中 带有要读取的值 最多 2 位数字 的文件名在终端中给出 我的 main 如下所示 int main int argc char argv assume argv 1 is a filename to open ifstream
  • .NET Standard DLL 二进制文件是否与 .NET Framework 兼容?

    我目前有一个作为 NET Framework 4 6 1 构建的实用程序库 并由各种 NET Framework 应用程序引用 我现在想要创建一个新的 NET Core 应用程序 因此我想将实用程序库转换为 NET Standard 2 0
  • QQuickFramebufferObject:自定义FBO在哪里使用?这怎么会导致闪烁呢?

    我目前正在 QML 中集成自定义 OpenGL 视口QQuickFramebuffer对象 我观察到整个应用程序窗口 不仅是QQuickFramebuffer对象窗口 我想知道为什么 我的定制QQuickFramebufferObject