问题标签 [gfx]

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 回答
3037 浏览

c++ - 没有 PROGMEM 的 Adafruit gfx 库 drawBitmap

所以我试图将图像的字节数组放入外部 eeprom (c24LC16B) 并使用 Adafruit gfx 库中的 drawBitmap() 函数在诺基亚 3310 LCD 上绘制它(使用 Adafruit PCD8544 库)。但问题是,drawBitmap() 只能使用静态字节 PROGMEM 数组。不好,我需要将 img 数组从 eeprom 读取到缓冲区(字节 buf[504]{}; ),然后将其绘制在显示器上。

我尝试了一些我在网上找到的修改,例如将其添加到 Adafruit_GFX.ccp:

但它仍然只显示垃圾

那么为什么对 PROGMEM 和普通数组有这么大的影响呢?PROGMEM 和 SRAM 中的字节不一样吗? 也对不起我的语法。

0 投票
1 回答
347 浏览

lua - Torch / Lua 上的 gfx.js,如何可视化图像?

我想在我的 Torch / Lua 代码中使用 gfx.js,但它似乎不起作用。我尝试按照此处的说明安装并运行它。

安装工作正常。然后我跑了:

但随后没有显示图像。相反,会打印此字符串:

我不知道这意味着什么以及为什么我得到它。有人可以给我一些建议吗?

我正在开发 CentOS Linux 版本 7.1.1503(核心)。

0 投票
1 回答
3239 浏览

c++ - 在 C/C++ 中使用 SDL2_gfx 绘制一个实心圆

我是 SDL 初学者。我想用 SDL2 画一个黑色的背景和一个实心的蓝色圆圈。由于无法用 SDL2 画圆,我使用SDL2_gfx。绘制黑色背景没有问题,但我没有到达使用函数filledCircleRGBA绘制圆圈。

我在 Debian GNU/Linux 8 "Jessie" 下运行,我使用我的发行版的 libsdl2-dev 和 libsdl2-gfx-dev。要编译,我使用gcc -O0 -g sdl2-test.c `sdl2-config --cflags --libs` -lSDL2_gfx.

此外,valgrind 通知我有来自 21 个上下文的 21 个错误。3 个错误来自 SDL2 调用,19 个来自 nouveau_dri.so 我想是nouveau 驱动程序(nVidia GPU 的免费/自由驱动程序)使用的共享库,所以这可能不是我的错。

谢谢。

0 投票
1 回答
291 浏览

c++ - SLD2:使用 SDL2_gfx 和 AntTweakBar 在 OS X 上出现奇怪的渲染错误

我正在尝试渲染 3 件事:

  • 使用 gfxPrimitives 的几何形状(在本例中为圆形)
  • 图像/纹理(可选)
  • 带有 AntTewakBar 的 GUI(从这里为 OS X 上的 SDL2 编译)

这些中的每一个都可以自己正常工作,但是将它们组合起来会以某种方式破坏 AntTweakBar,具体取决于组合:

  1. 只有 AntTweakBar:渲染一切正常 没有圆圈和纹理也能正常工作
  2. AntTweakBar + Texture:除了文本之外的所有内容都在 TestBar 中消失了。鼠标与之前的位置相同,但“宽度”没有突出显示,并且所有“图标”都丢失了。不知何故,“帮助和快捷方式”栏背景幸存下来。再次删除纹理不会改变任何东西。添加圆圈将导致案例3 但是去他妈的
  3. AntTweakBar + Circle (+Texture):除了文本被渲染并且文本变成框之外的一切。添加纹理或再次删除圆圈不会改变任何内容,但先删除圆圈然后添加纹理会导致案例2然后

这是此测试应用程序的(杂乱)源代码。res_path.h并且cleanup.h可以在这里这里找到(但应该没关系)。


有谁知道发生了什么以及如何解决或避免这种情况?如果没有,也许有人可以推荐一种不同的方法来在 SDL2/C++ 中渲染简单的几何形状和 GUI(配置一些参数)而无需太多努力。

0 投票
1 回答
354 浏览

opengl - Scaleform GFx 与 OpenGL 的集成

我在将 Scaleform GFx 解决方案集成到简单应用程序时遇到问题。

问题是在显示的场景中,一个应该是白色的模型被显示为紫色。

问题

据我所知,颜色效果出现在我开始渲染 GFx 组件之前;调用 FxTest::Initialize 足以导致问题。

代码如下。

GFx 包装:

暴食场景:

请帮助我理解我做错了什么。

0 投票
0 回答
58 浏览

drag-and-drop - Dojo gfx 组 - onMoved 事件和按 ID 获取

我正在做一个线框类型的项目,我正在使用 dojo gfx 来创建形状。到目前为止,这就是我卡住的地方。我正在创建一个 gfx 组(在创建曲面之后)并向该组添加 2 个小圆圈(如一个点)。该组是一个 gfx.Movable 组。

现在,我有两个挑战:

1)当组被拖移时,如何连接到gfx组的“onMoved”事件?2) 我如何访问 gfx 组内的圆圈以获取其形状?有没有办法可以为组设置一个 ID 并像 dom.byId() 一样访问它?或任何替代方案/解决方法?

我以为有人会遇到类似的情况,并认为我可能会在这里得到一些帮助。

谢谢。

这是示例代码,您可以假设我已经需要所有必要的模块并且必要的 HTML 元素可用。

0 投票
1 回答
65 浏览

opengl - 以单调递增的数量在一条带中绘制连续的三角形

我想绘制许多三角形,其中每个的“颜色”实际上是内部 CPU 端数据结构的索引。

是否有任何简单(快速的方法)来更改渲染的每个三角形的颜色(索引)?我想过使用未插值的纹理,但我需要 10,000 的索引。

我意识到像素着色器无法引用另一个值,但我认为顶点类型(x, y, z, i)会起作用。

我尝试过 Ubuntu、OSX 和 OpenGL,最终在 Windows 上遇到了 DX11/12 的复杂性。

我尝试使用 Unity3d 并失败了(需要 C++ 插件,所以为什么要打扰)并且不确定如何在 OpenGL 中执行此操作。

0 投票
1 回答
1157 浏览

xcode - SDL2_gfx 安装和使用 - Mac OS X

我已经尝试了大约 6 个小时......在我的Xcode 8.0项目中使用 SDL2_gfx 库。

我现在就告诉你,我是所有这些终端命令的新手,包括库和其他东西。

我已经设法很好地使用了 SDL2,因为有一个 .framework,但 SDL2_gfx 仅作为一个包含 .a、.dylib、.h 和一个神秘 .json 的文件夹出现。

我已经通过自制软件安装了它,没有任何问题,但是现在,我如何使用它制作项目?

在 Build Phases 和 Build Settings 中:我尝试通过“Link Binary With Libraries”链接 .a 和 .dylib,我在“Search Paths”的“Headers Search Paths”中添加了标题路径,我尝试添加.h 直接到我的项目,我完全不知道在“其他链接器标志”中放入什么,因为它在许多答案中都建议。

每当我尝试使用函数时,我都会收到非常简单的错误“调用没有匹配的函数......”。但是我这样做的方式与互联网上的一些示例相同,并且我检查了 .h,这些功能确实存在......

请帮忙T_T

编辑:我设法找到了明显公认的功能:

但是结果是-1,这意味着它不起作用。 仍然无法弄清楚......我想我没有正确使用它们,但我在互联网上找不到任何不同的例子。

0 投票
1 回答
1595 浏览

rust - 货物、工作空间和临时本地依赖

我在一个货物工作区中有两个项目 my_project 和 my_inner_project。它们都依赖于 gfx(以及 gfx_core 和 gfx_device_gl)。我在 gfx_device_core 中发现了一个错误,所以我将它分叉、克隆、修补到本地,并希望在提交之前对其进行测试。

项目结构:

现在我希望 cargo 在 my_project 构建期间使用 gfx 的本地副本:

  1. 第一种方法(Cargo.toml 中的本地路径):我已将所有 gfx 包的源更改为我的两个项目的 Cargo.toml 中的本地路径。\不幸的是,cargo 隐含地假设(这对我来说有点疯狂),所有“路径”指向的依赖项是工作空间的一部分,但工作空间成员必须位于文件系统中的工作空间根目录之下。所以它拒绝构建项目,抱怨 gfx* 是工作区的一部分,但它不在工作区根目录下。AFAIK,目前没有办法改变这种隐含的“一切都在工作区”行为。
  2. 第二种方法([替换]):这种方法导致与上述相同的行为。[replace] 中指定的路径也被隐式添加到工作区中。
  3. 第三种方法(本地路径覆盖):我已将 gfx 添加到 .cargo/config 中的路径。还需要将我的 .toml 中的 gfx 包的源从 crate.io 更改为 git 存储库,因为覆盖包中的版本和 .toml 中引用的版本必须匹配。这也不适用于稳定的 rust 1.13。我收到警告:

    和错误:

    我的项目中 Cargo.toml 中指向的 gfx 和存储库的本地副本是相同的,所以我不明白为什么会发出此警告。

    该错误在 rust nightly 中得到修复,所以我已经安装了它,最后能够使用我的本地 gfx 副本编译项目。

因此,在为相对基本的任务苦苦挣扎了一天之后,我有了一个解决方案,该解决方案仅适用于夜间,并且承诺它不会在功能发布中起作用。

我的问题:

  1. 应该怎么做?
  2. 如何摆脱这个警告?
0 投票
0 回答
48 浏览

c++ - 使用英特尔卸载 gfx 进行计算不起作用

我已经写了一个骨架化函数。它在 CPU 上运行良好,但是当我尝试卸载到英特尔显卡时,它不返回任何数据,甚至不返回任何值。我究竟做错了什么?我正在使用 C++、OpenCV 和 Intel 并行库。

这是代码:主要部分是#pragma