问题标签 [displaylist]

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 投票
1 回答
98 浏览

c++ - 在头文件 opengl 中声明所有显示列表

我的文件结构为

  • 显示列表.hpp
  • 显示列表.cpp
  • 文件1.cpp

现在我想使用 file1.cpp 中的显示列表之一。

我的display_list.hpp样子

然后display_list.cpp看起来像

但是当我尝试在glCallList(index)我的 file1.cpp 中使用时,我没有在屏幕上绘制任何内容。

0 投票
1 回答
755 浏览

c++ - OpenGL - 从 DisplayList 转换为使用 VBO

我有以下全局变量:

在我的初始化中有这段代码:

在我的 glutDisplayFunc 中,我调用:

我现在想使用 VBO,而不是 DisplayList。我该如何转换此代码?提前致谢。

0 投票
3 回答
7710 浏览

c - 显示学生成绩的链接列表程序

这是一个为单链表编写的程序。当我显示列表时,它只给出列表中的一个元素。每当我尝试打印链表的元素时,它只会输出一个元素我做错了什么请帮忙?

0 投票
2 回答
255 浏览

c++ - OpenGL 显示列表是否烘焙 glVertex 数据?

我已经在简单的立即模式下使用 OpenGL 有一段时间了,并试图通过显示列表传递到保留模式(我很遗憾地了解到它已经被弃用了一段时间)。我想知道的是,当我输入:

OpenGL 会预先计算 for 循环中的所有 10 个顶点并将它们发送到已烘焙的显卡,例如:

或者它是否尝试对每一帧都进行 for 循环(以及许多 sin / cos 操作)?换句话说,将这样的圆形存储在显示列表中(其余的使用 glTranslatef、glRotatef 等)以避免每次帧更新中的三角运算是否合理,或者根本没有性能提升?

编辑:为避免混淆,我打算使用 for 循环创建此显示列表一次,然后在每个帧更新中通过glCallList(list)调用它(即glutDisplayFunc())。我不会为每一帧创建一个列表。

0 投票
2 回答
276 浏览

opengl - OpenGL 显示列表(已弃用但受支持)如何判断是否受支持?

我读过在 OpenGL v3 中不推荐使用显示列表,尽管一些制造商会在可预见的未来支持它们。

是否有一个 OpenGL get... 函数明确告诉我我正在询问的驱动程序是否支持显示列表?

0 投票
1 回答
40 浏览

actionscript-3 - AS3显示列表和box2d

我在从 sprite 类扩展的名为 createBrick 的子类中有一个名为“brick”的函数,我还在导出的库中创建了一个名为“Brick”的影片剪辑,用于运行时共享。由于某些奇怪的原因,当我运行代码时,即使在调试代码时确实创建了砖块,但它并没有出现在舞台上。

这是功能

如果我在主文档类中包含所有代码并且我确实在舞台上看到一块砖,那么相同的功能可以完美地工作。任何线索我没有正确引用它吗?

0 投票
1 回答
21 浏览

actionscript-3 - 为什么重复调用 someContainer.addChild(myBitmap) 会复制我的位图?

这是一个菜鸟问题,我很尴尬地发布它,但是就这样吧。

在我的图像加载器类中,我正在加载一个位图,然后通过 BitmapData.draw() 将其 BitmapData 克隆到另一个位图中。然后该类存储对克隆位图的引用,并且最初加载的位图可能会被垃圾收集,因为它是创建方法本地范围的变量。

然后客户端类从图像加载器类中获取位图,并使用 container.addChild() 将其添加到舞台。

然后,用户可以重新执行此操作,加载新图像(从磁盘)并将其显示在舞台上。应该替换旧的位图。

我认为位图就像所有其他 DisplayObjects 一样,如果您 addChild() 它将它从它所在的 DisplayList 上的任何位置分离,并将其移动到新容器中。在对同一个容器上的同一个对象使用 addChild() 的情况下,我认为它实际上什么都不做。

事实上,既然我提到了它,我根本不知道为什么需要添加它 - 我相信代码的工作方式,我只是替换位图,所以它应该自动更新已经存在的那个舞台......所以不知何故我必须制作新物体,但我不确定这是怎么发生的。

这是代码。

额外的痕迹表明我们正在处理单独的实例,并且 _customImage 实际上没有父级!就好像通过将它添加到 DisplayList 中,它会将其拆分。

这很奇怪,还是只有我?位图始终存储在_customImage客户端类中。并且_customImage是唯一添加到容器剪辑中的内容。所以如果它再次被添加,它不会只是移动吗?为什么从图像加载器类分配位图不会自动更新已经添加到舞台上的_customImage?

0 投票
1 回答
83 浏览

actionscript-3 - AS3:需要在 addChild 之前删除Child?

removeChild我注意到在将其放入另一个容器之前,您不必DisplayObject从它的父级中获取。addChild如果您只是addChild将它放到第二个容器中,它将首先自动从其当前父级中删除。removeChild如果你addChild之后就去别的地方,那么先做有什么意义吗?

0 投票
0 回答
514 浏览

android - Android View 显示列表命令示例?

我想更好地了解 Android View 渲染机制,并且我知道那些高级 View 由一个称为显示列表的较低级别的内部对象表示,该对象将被传输到 GPU 进行渲染。

但是,文章和资料只讲“显示列表是我们要求GPU渲染的命令”,没有给出具体的例子,例如,一个Button是如何转换为显示列表的,显示列表是干什么用的一个按钮的样子。

有人可以举一些常见视图(如 Button 或 TextView)的显示列表示例吗?

0 投票
1 回答
56 浏览

actionscript-3 - 将形状添加到容器的操作脚本问题

我不知道如何描述这个问题,但我会尽量清楚。我正在做一个动作脚本练习,其中我有一个定义为 Sprite 的 DisplayObjetct 容器,我想要添加随机无线电长度在 50 到 100 之间的随机圆圈。

名为“gameZoneContainer_sp”的容器已添加到 Main 类的显示列表中,每次用户更改舞台大小时,容器都会设置其新的宽度和高度值。

这是我所说的代码:

私有函数 refreshScreen(ev:Event= null ):void{

这是我的问题:当我添加一个圆圈时,它似乎没问题,直到我改变窗户(场景)的尺寸。每次我更新尺寸时,事件都会从主类执行方法 refreshScreen 更新场景中所有元素的尺寸和位置,但之后如果我添加一个新圆圈,它会更改容器,这是错误的,因为我想要的是在容器中添加圆圈。

希望不会太久。请任何帮助都会很棒!先感谢您!!

************ 解决方案在这里 ********************