问题标签 [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.
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 中的示例目录是一个好的开始,对吧?
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?
linux - SDL 窗口似乎被操作系统错误地标记为“无响应”
我有一个通过 Derelict 3 访问的 SDL2 窗口窗口。
它应该是黑白频闪(不是因为我讨厌癫痫症),而且它成功地做到了这一点。但是,经过一段时间后,Ubuntu 13.10 会将窗口标记为“无响应”,使其变灰,并使频闪效果变暗。
这非常令人恼火,并且完全破坏了应用程序从我的 EEG 耳机中检索 SSVEP 读数所需的视觉刺激效果。
如何让我的操作系统意识到窗口正在做它应该做的事情?
代码
由于我已将 SDL 调用包装在我的实际代码中,因此我将提供伪代码和在这些部分中调用的 SDL 方法(我已经检查过我没有调用任何其他 SDL 函数):
我迂腐地检查包装器库中所有 SDL 调用的错误代码和返回值。他们都很好。我需要知道的是我必须添加什么来为我的操作系统提供心跳,这样它就不会让我的窗口变灰。
另一件事...
有人可以添加一个 SDL2 标签吗?SDL2 与 SDL1.2 有一个非常不同的 API ...
sdl - 带参数的 D 语言函数调用
我正在学习 D 并且主要有 C# 方面的经验。具体来说,我正在尝试使用Derelict3 绑定到 SDL2。我已经能够让一些基本功能正常工作,但我对如何为特定调用创建数组参数感到困惑。
该库包含一个调用
而且我一直无法正确地形成论据
此函数的 SDL 文档指出此参数是 的数组SDL_Point
,但我不清楚如何创建适当的数组以传递给此函数。
这是我目前拥有的示例:
并且编译器抱怨我没有为const(SDL_Point)*
in传递正确类型的参数points
。
我怀疑这是我的一个基本误解,所以任何帮助将不胜感激。
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?
sdl - 未定义对 opEquals 的引用:Derelict3 绑定到 SDL2 的链接器错误
我正在尝试使用 SDL2 的 Derelict3 绑定编写一个简单的 hello world。我在链接过程中遇到了以前从未见过的错误。
命令行:
dmd src/main.d -debug -Iinclude -Isrc -L-Llib -L-lSDL2
输出:
我尝试过的:
- 验证 Derelict3 和 SDL2 是最新的
- 更改我的链接库的顺序
- 在线搜索:我只能找到 1 篇与此相关的其他帖子:http ://dblog.aldacron.net/forum/index.php?topic=834.0
我正在使用 DMD64 D 编译器 v2.063.2。任何帮助表示赞赏。谢谢。
d - 自动复制 DUB for Derelict 中的依赖项
我正在创建一个 Derelict 应用程序,显然 derelict 需要共享库位于根路径中。有没有办法使用 DUB 来做到这一点,而无需手动将文件复制到文件./bin
夹中?(只需在自动构建时复制它们)
此外,我假设 Linux 系统的 .so 文件也必须位于二进制文件夹中。我知道有,"copyFiles"
但是文件将从哪里复制,它们将复制到哪里?这是跨平台吗?
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。
sdl - 无法在析构函数中使用 SDL_GL_DeleteContext
我在 D 中创建一个 SDL-OpenGL 应用程序。我正在使用 Derelict SDL 绑定来完成此操作。
当我运行完我的应用程序后,我想卸载 SDL。为此,我运行以下函数:
然而,出于某种原因,这会给我一个模糊的分段错误(GDB 中没有痕迹)并返回 -11。我不能在析构函数中销毁 SDL,我什至必须在使用后销毁 SDL?
我的构造函数:
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.ptr
是char*
指向要加载的图像的名称。但是当使用 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。