问题标签 [scenegraph]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
68 浏览

architecture - 如何处理场景图创建

我目前正在设计一个场景图,但遇到了一个问题。

创建场景图时,我创建了一个展开的链表来保存子节点。场景图被设计为允许使用自定义分配器,场景被初始化并作为成员变量携带。

就目前而言,我有许多调用make*场景的函数,以及节点可能具有的任何参数(即。makeGroup(scene, null))。我的问题是:我可以使用哪些方法来创建节点,同时消除不必要的膨胀?

到目前为止,我已经提出了两种解决方案:

  1. 仅在创建和销毁时将分配器传递给节点。节点本身不保留对分配器的引用。只有创建它的场景才会这样做。这在创建过程中需要一些额外的噪音,尽管它可以很容易地隐藏在make函数中。

  2. 允许节点携带对分配器本身的引用,增加 Node 类中的依赖关系,以及向该类添加另一个成员。

0 投票
1 回答
169 浏览

performance - 为什么从 .jar 运行而不是使用 sbt run 时 Scala JavaFX 应用程序会变慢?

我正在为我应该在这里展示什么代码而苦苦挣扎,因为它非常复杂并且它同时工作。

问题是我构建了一个相对复杂的 JavaFX 场景图,并用它从 Scala 应用程序更新了 VBox 的内容。

现在,当我使用 sbt run 运行应用程序时,使用控制台窗口,sceneragph 加载速度很快。当我从打包的 .jar 运行它时(我为此使用 sbt-one-jar),sceenraph 需要很长时间才能加载。

所以一切都在工作,一切都以同样的方式工作,除了从 .jar 运行会神奇地减慢它。

无论如何,我粘贴了一些代码,即使它不是很有启发性:

编辑:

根据 sillyfly 的建议,我测量了每一步更新场景图的时间。减慢的步骤是:

这是负责从 XML 标记(作为“blob”传递)构建 JavaFX 场景图的部分,我开发它来描述所谓的“MyComponent”,它们是从现有 JavaFX 小部件构建自定义小部件的类。构建场景图后,更新需要相同的时间。

0 投票
0 回答
134 浏览

java - JavaFX TextArea 包装文本,但它不应该

好的,我是 javafx 新手,只是尝试构建自己的 java IDE。

IDE 有一个视图(“开始”选项卡),您可以在其中创建和编辑类,还有一个调试视图(“调试”选项卡),可以在其中调试此类。(用于使用 JDPA 调试即时消息)。

“开始”视图是一个简单的选项卡窗格(classtabPane),在根边框窗格的中心区域由几个选项卡组成。

“调试”视图包含一个拆分窗格,当视图发生更改时,该拆分窗格分配了 classTabPane 和其他节点。

这些视图之间的切换是通过另一个tabpane来实现的,它集成在根borderpane的顶部区域。

每个类都是一个单独的选项卡,其中嵌入了一个文本区域。这些 textAreas 的每个文本都不应被换行 (setWrapText(false))。

在视图更改(从开始到调试)时,要显示的节点(classTabPane 或 splitPane 已分配)被分配到根边框的中心区域。

问题是当我更改视图(从开始到调试)时,文本被包裹在文本区域中,这实际上不应该发生。但是在文本区域中单击后,文本会被展开。

有没有人知道文本包含在视图更改中可能是什么?

如果缺少任何有用的信息,请直接说。我会立即添加它。

图片示例可以在代码片段下找到

这里有一个例子:

开始视图

调试视图

0 投票
2 回答
326 浏览

roku - 如何在 BrightScript 中使用 replaceChild 替换 PanelSet

我正在使用PanelSet该类创建一个由两个面板组成的设置屏幕:

  • panelA左侧显示整体设置选项列表
  • panelB显示在右侧,包括每个项目的不同选项列表panelA

当用户更改焦点项目时,如何替换Panel右侧显示的内容panelA

Roku 的文档指出您必须使用该方法replaceChild,但我无法弄清楚它应该如何工作或任何示例。这是我正在尝试的,但它不起作用:

0 投票
1 回答
578 浏览

qt - 如何将 QSGClipNode 与自定义几何图形一起使用?

如何将 QSGClipNode 与自定义几何图形一起使用?
这是一个示例:

在此处输入图像描述

0 投票
2 回答
363 浏览

roku - roku 场景图中的闪屏后出现黑屏而没有加载指示器

我正在使用 Scene Graph 组件开发 Roku 应用程序。在我的应用程序中,当我启动应用程序时,在启动屏幕到主屏幕之间的几秒钟内显示黑屏,但我想在屏幕之间显示加载程序。在场景图中有可能吗?请提供解决它的建议。

0 投票
2 回答
863 浏览

roku - 如何在 Roku SG 应用程序中实现深度链接?

我需要帮助理解深度链接,因为我们的 Roku 场景图应用程序被 Roku 拒绝了。

Roku 在这里解释了深度链接:https ://sdkdocs.roku.com/display/sdkdoc/Deep+Linking ,但本文档并未详细说明有关深度链接的所有信息。例如,我们如何获取 contentId 和 mediaType?

这是我们main()在启动时运行的函数:

应用程序启动后,我们打印 args,得到这个关联数组。但是,这不显示任何 contentId 和 mediaType。

使用此 curl 命令,应用程序成功启动并显示 contentId 和 mediaType:

请帮助我们并提供更好的示例来轻松理解和实施深度链接。

0 投票
1 回答
640 浏览

roku - 如何在 roku 中显示隐藏式字幕?

我正在使用要播放 HLS 视频(VOD 和直播)的场景图来处理 Roku Bright 脚本,按下选项按钮并设置“字幕模式:打开”,但隐藏式字幕仍然不显示。甚至弹出

在此处输入图像描述

显示消息“没有可用的字幕”或“没有可用的字幕或音频选择” 当我在 VLC 播放器中播放时,我在轨道 1 上看到了字幕。明亮的脚本代码是 -

流的 m3u8 的内容 -

EXTM3U EXT-X-VERSION:3 EXT-X-STREAM-INF:BANDWIDTH=3211072,CODECS="avc1.77.41,mp4a.40.2",RESOLUTION=1280x720 chunklist_b2931072.m3u8 EXT-X-STREAM-INF:BANDWIDTH=1231072, CODECS="avc1.66.32,mp4a.40.2",RESOLUTION=640x360 chunklist_b1131072.m3u8

请帮助我们并提供一个更好的例子。

0 投票
1 回答
719 浏览

qt - 如何从 C++ 更新 Qt 场景图?

我编写了一个QQuickItem用于绘制曲线的 c++ 组件,但是为了更新曲线,我必须通过计时器调用更新方法。

我在做什么的例子:

有没有办法从 C++ 调用它?

0 投票
2 回答
186 浏览

roku - 是否有可用于 Roku SG 的谷歌分析 SDK?

我们想在我们的 Roku SG 应用程序中通过 SDK 实现 google 分析。我们在 google analytic sdk 上搜索了 Roku SG,没有找到 sdk。谷歌分析 sdk 是否可用于 Roku SG?