问题标签 [derelict3]

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 投票
2 回答
672 浏览

d - 遗弃和GFW3

我试图让 Derelict3 在 Ubuntu 12.10 上与 GLFW3 一起工作。

我已经使用 DMD 2.061 成功构建了 Derelict3 和 glfw3。导入和链接工作。

但是自从我(不区分大小写)在两者中都找不到任何引用以来,似乎 API 发生了变化,因为我写了这篇文章glfwOpenWindowHint

  • 遗弃3 ( git://github.com/aldacron/Derelict3.git) 也不
  • GLFW3 ( git://github.com/elmindreda/glfw.git)

而且我找不到任何其他关于使用 GLFW3 的教程。

有没有人有关于如何在 C 或 D 中使用 GLFW3 的最新教程?

更新:我猜 glfw3 中的示例目录是一个好的开始,对吧?

0 投票
1 回答
1325 浏览

opengl - Create a fake OpenGL context for sake of loading extensions

I've been playing with Derelict3&glfw to use OpenGL in D according to this, if I want to use extensions, I need to create a context first, and this is done by creating a window with glfw and set it as the current context. After the context is created and set, I need to use DerelictGL3.reload() to load all the extensions.

Now, I want to do all the preparations before I create the window. One of those preparations is to load and compile all the shader programs. But this required the shader extension, which required Derelict3GL.reload(), which refuses to run without a context...

So, I've used this hackish hack:

This works - I can now load and compile the shader programs and only then open the real window. But this seems a bit too hackish to me. Is there a proper way to fake a context, or to load the extensions without a context?

0 投票
2 回答
714 浏览

linux - SDL 窗口似乎被操作系统错误地标记为“无响应”

我有一个通过 Derelict 3 访问的 SDL2 窗口窗口。

它应该是黑白频闪(不是因为我讨厌癫痫症),而且它成功地做到了这一点。但是,经过一段时间后,Ubuntu 13.10 会将窗口标记为“无响应”,使其变灰,并使频闪效果变暗。

这非常令人恼火,并且完全破坏了应用程序从我的 EEG 耳机中检索 SSVEP 读数所需的视觉刺激效果。

如何让我的操作系统意识到窗口正在做它应该做的事情?

代码

由于我已将 SDL 调用包装在我的实际代码中,因此我将提供伪代码和在这些部分中调用的 SDL 方法(我已经检查过我没有调用任何其他 SDL 函数):

我迂腐地检查包装器库中所有 SDL 调用的错误代码和返回值。他们都很好。我需要知道的是我必须添加什么来为我的操作系统提供心跳,这样它就不会让我的窗口变灰。

另一件事...

有人可以添加一个 SDL2 标签吗?SDL2 与 SDL1.2 有一个非常不同的 API ...

0 投票
2 回答
584 浏览

sdl - 带参数的 D 语言函数调用

我正在学习 D 并且主要有 C# 方面的经验。具体来说,我正在尝试使用Derelict3 绑定到 SDL2。我已经能够让一些基本功能正常工作,但我对如何为特定调用创建数组参数感到困惑。

该库包含一个调用

而且我一直无法正确地形成论据

此函数的 SDL 文档指出此参数是 的数组SDL_Point,但我不清楚如何创建适当的数组以传递给此函数。

这是我目前拥有的示例:

并且编译器抱怨我没有为const(SDL_Point)*in传递正确类型的参数points

我怀疑这是我的一个基本误解,所以任何帮助将不胜感激。

0 投票
0 回答
158 浏览

static-linking - Building importing/linking a Derelict3 project using dub in D2

I am trying to build a D2/Derelict3 example:

but I get the following error:

I have built Derelict3 using the guide on the Derelict github page, and init'ed a folder with dub.

How do I configure dub to include the libraries in my project?

0 投票
1 回答
157 浏览

sdl - 未定义对 opEquals 的引用:Derelict3 绑定到 SDL2 的链接器错误

我正在尝试使用 SDL2 的 Derelict3 绑定编写一个简单的 hello world。我在链接过程中遇到了以前从未见过的错误。

命令行:

dmd src/main.d -debug -Iinclude -Isrc -L-Llib -L-lSDL2

输出:

我尝试过的:

我正在使用 DMD64 D 编译器 v2.063.2。任何帮助表示赞赏。谢谢。

0 投票
1 回答
229 浏览

d - 自动复制 DUB for Derelict 中的依赖项

我正在创建一个 Derelict 应用程序,显然 derelict 需要共享库位于根路径中。有没有办法使用 DUB 来做到这一点,而无需手动将文件复制到文件./bin夹中?(只需在自动构建时复制它们)

此外,我假设 Linux 系统的 .so 文件也必须位于二进制文件夹中。我知道有,"copyFiles"但是文件将从哪里复制,它们将复制到哪里?这是跨平台吗?

0 投票
1 回答
508 浏览

opengl - DerelictGL.reload() 上的 Derelict3 SDL2 和 OpenGL 奇怪的 SIGSEGV

尝试在 D 上设置 SDL 和 OpenGL。具体来说,SDL2 和 OpenGL 3.3 核心/前向兼容。(尽管我在示例中省略了最后两个,因为无论它们是否存在,它都会在同一点中断)。相当于 GLFW 中的以下内容可以正常工作,所以显然我在 SDL 端搞砸了,或者 SDL 做了一些破坏 Derelict 的神奇事情 - 考虑到 Derelict-gl 并没有做那么多,这似乎很难相信除了加载一些函数指针之外,但某处出了点问题,我不会排除 Derelict 或 SDL 中的错误,尽管它更有可能是我的代码。

不过我没看到,这里是:

就像问题标题所说的那样,它在 DerelictGL.reload() (应该加载类似于 GLEW 的 OpenGL 函数)上中断。这是堆栈跟踪...

这里的错误似乎是因为 glGetString(GL_EXTENSIONS) 返回 null。为什么我不太明白。如果我删除对 DerelictGL.reload 的调用,程序的其余部分就会运行,但这意味着 OpenGL1.1 后的函数不会被加载。

将其表述为一个实际问题——我做错了什么吗?如果是这样,是什么?

额外的

我确认创建了 OpenGL 3.3 上下文 - glGet 分别在 GL_MAJOR_VERSION 和 GL_MINOR_VERSION 上返回 3。

0 投票
1 回答
429 浏览

sdl - 无法在析构函数中使用 SDL_GL_DeleteContext

我在 D 中创建一个 SDL-OpenGL 应用程序。我正在使用 Derelict SDL 绑定来完成此操作。

当我运行完我的应用程序后,我想卸载 SDL。为此,我运行以下函数:

然而,出于某种原因,这会给我一个模糊的分段错误(GDB 中没有痕迹)并返回 -11。我不能在析构函数中销毁 SDL,我什至必须在使用后销毁 SDL?

我的构造函数:

0 投票
1 回答
193 浏览

d - dmd 和 gdc 编译代码不同?

我目前正在尝试DerelictSDL2(与 D 的 SDL2 库的绑定),并且我编写了一个成功加载 JPG 图像并将其显示在窗口中的代码。也就是说,当它使用 dmd 编译时。当我尝试使用 gdc (并且没有修改代码)时,它会编译但不会在运行时加载图像。

我相信我做对了:

SDL_Init(SDL_INIT_VIDEO)

然后

IMG_Init(IMG_INIT_JPG)

在那之后的某个地方

this.data = IMG_LoadTexture(Window.renderer, name.ptr)

其中Window.renderer是(显然)SDL_Renderer*andname.ptrchar*指向要加载的图像的名称。但是当使用 gdc 编译时,IMG_Load两者IMG_LoadTexture都返回null,而使用 dmd 他们返回一个指向新创建的纹理的指针......

我是否忘记了其他事情(毕竟,即使没有 dmd 它也可以工作IMG_Init)?Derelict 是否仅适用于 dmd(即使它仅与 C 函数接口)?

dmd:2.065

全球数据中心:4.9.1

编辑 :

原来问题完全不同。IMG_LoadTexture为其第二个参数获取指向数据的指针,但name.ptr似乎仅适用于 dmd。但是,如果我尝试使用这样的硬编码参数:

IMG_LoadTexture(renderer, "../test/res/image.jpg")

它适用于 dmd 和 gdc。