问题标签 [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.
opengl - glVertexAttribPointer 导致 D 中的无效操作 OpenGL 错误
我有一个使用 DerelictGL3 和 DerelictSDL2 的简单 D 应用程序。我正在尝试使用顶点缓冲区对象渲染一个红色三角形,但是每当我运行时glVertexAttribPointer(position, 2, GL_FLOAT, GL_FALSE, float.sizeof * 2, null);
,glGetError()
都会返回 1282(无效操作)。代码如下...
应用程序.d
着色器/minimal.vert
着色器/minimal.frag
忽略错误时,屏幕右上角会呈现一个红色矩形。
d - OS X 上的 Derelict3 D 绑定
我只是想用 GLFW3 D 绑定做一个小测试。我使用创建一个新包
然后我在 glfw3Test\source\app.d 中写了一个小测试
我修改了默认的 JSON:
我用 构建dub build
,一切都很好,但是当我试图启动可执行文件时,出现以下错误:
我也尝试在不使用 DUB 的情况下手动编译我的应用程序,但我总是遇到同样的问题。
它似乎在寻找 GLFW3 共享库,但我认为该库是由构建过程静态链接的。
我在 OS X 10.10 上安装了 Xcode 6(DMD 编译器 2.065)
d - 使用 GDC 链接到 DerelictGL3
TL;博士:
我如何从拥有 DerelictGL3 等的源代码到使用 GDC 链接到它?
详细投诉:
我有一个用 D 编写的小程序。(http://dlang.org)
我正在尝试使用以下命令构建该程序。(我在Linux上。)
我收到以下错误消息。
我相当确定我传递给 GDC 的所有参数都不是正确的,超出了我的源文件的名称。如果我注释掉所有 -L 行,行为是相同的。如果我注释掉 -I 行,我会得到以下信息。
但是,我希望可以通过一个放置良好的库来解决这个问题。
我如何从拥有 DerelictGL3 等的源代码到使用 GDC 链接到它?
编辑: 我确信我已经在 /usr/bin/ 中安装了 libDerelictGL3.a、libDerelictGLFW3.a 和 libDerelictUtil.a。
更多想法: 我真的很困惑为什么我需要针对源代码进行编译。这不是 C++,也没有头文件。当我放弃 -I 行时,编译器不知道如何打开 gl3 模块。它不应该只是推断我使用的函数存在,然后如果/当它找不到它们时会出现链接器错误?鉴于我已经编译了库并在搜索路径中,为什么 GDC 不能弄清楚其余部分?
更多想法: 我最近发现Can't link GLFW3: undefined references 在这种情况下,OP 发现他们需要 .so 形式的库,而不是 .a 形式,因为他们正在尝试动态链接。我目前正在对此进行调查。
另一个难题: 我已将 gdc 调用的相关部分更改为
现在,我似乎在链接到 _d_runtime 本身时遇到了问题,而不是在链接到 Derelict 时遇到了麻烦。
输出是类似于这些的数百行:
因此,我认为我的问题是 _d_runtime(如果名称错误,请原谅我)在 /usr/bin 以外的某个地方,并且当我将 -L 路径覆盖到 /usr/bin 时(因为那是我放置库的地方)我很难找到它。要么是这样,要么我只是首先安装了 D 错误。但无论哪种情况,它实际上都是在上述示例中找到 libDerelictGL3.a !=)
d - glGenVertexArrays() 使 DerelictGL3 程序崩溃
该函数调用glBindVertexArray(0)
,glGenVertexArrays(1, &vertex_array_object)
并glBindVertexArray(vertex_array_object)
导致我的程序崩溃。当我运行代码if(glGenVertexArrays == null)
时,它评估为真。这让我相信我没有正确加载函数。我正在使用DerelictGL3.load()
并DerelictGL3.reload()
加载我的功能,但我不确定它是否正常工作。其他函数似乎确实加载了,只有与顶点数组对象有关的函数会使程序崩溃。
编辑:我不确定实际问题是什么,但它似乎与 Mac OSX 加载 OpenGL 函数的方式有关。我的代码在 Linux 上不会崩溃。
opengl - 为什么这个 OpenGL 代码没有给出错误但没有打印到屏幕上
作为序言,我正在使用 Derelict 在 D 中编写我的 OpenGL。但是,它应该与使用 C++ 的 OpenGL 几乎相同,因为函数调用是相同的。无论如何,我不知道为什么我的代码不会在屏幕上打印任何内容,因为我的着色器程序没有给出错误。对于大代码转储,我很抱歉,但我无法找出问题所在。我的着色器类如下:
我的网格课是:
opengl - Derelict Assimp 没有正确加载网格?(也许是索引缓冲区)
我编写了一个自定义的 OBJ 文件导入器,它运行得相当好,但不够强大,无法支持所有内容。我决定给 AssImp 一个机会。我遵循了一些教程并设置了我的代码以读取我已成功使用自定义导入器加载的 OBJ 立方体模型的顶点、tex 坐标、法线和索引。立方体模型的面没有正确渲染,而是只渲染了立方体的几个三角形。AssImp 处理数据的方式显然与我的解决方案有点不同,因为法线、位置/顶点、tex 坐标和索引与我的自定义解决方案不匹配。我非常感谢您了解我遇到问题的原因,因为我发现的所有教程都与我的方法相匹配。如果错误渲染的立方体的图片会有所帮助,我可以制作屏幕截图。谢谢你。
我的资产导入类:
我的其余代码位于(Mesh Class 在源代码/图形中): https ://github.com/BennetLeff/PhySim
d - 从 D-to-C 回调访问 D 对象时出现访问冲突错误
我最近开始涉足 DerelictGLFW。我有两个类,一个是一个Window
类,另一个是一个InputHandler
类(窗口事件的事件管理器)。在我的光标位置回调中,我获取窗口用户指针并尝试设置位置,但在尝试设置回调和 GLFW 之外的任何值时,我立即收到访问冲突错误。GLFW 已初始化,不报告任何错误。感谢您的时间。
编辑:
添加extern(C)
到回调,错误仍然存在。
将“立即进入回调”更正为“立即尝试设置回调和 GLFW 之外的任何值”。
增加userPointer
提问功能
sdl - 使用 Derelict SDL 时出现分段错误
我正在尝试使用 Derelict 和 D 编写一个简单的图形测试程序。
当我尝试用 SDL 做几乎任何事情时,它都会出现段错误。这是有问题的代码:
即使下面的所有内容都SDL_GL_SetAttribute()
被注释掉,问题仍然会发生。
此外,derelict 在尝试加载 SDL 时会引发异常,但我认为这很常见:
derelict.util.exception.SymbolLoadException@../../.dub/packages/derelict-util-2.0.4/source/derelict/util/exception.d(35):无法从共享库 libSDL2 加载符号 SDL_QueueAudio。所以
我正在运行 Elementary OS 并使用 apt-get 来确保 SDL 是最新的。
非常感谢您的帮助。
opengl - 从 D 遇到问题 glShaderSource(GLuint,GLsizei,const(GLchar*)*,const(GLint)*)
语言:D
库:DerelictGL3
我试图 glShaderSource( GLuint,GLsizei,const( GLchar* )*,const( GLint )* )
从 D
调用
我有一个字符串中的着色器源和第一个参数的着色器 ID。
我遇到的问题是最后 3 个参数的语法,我设法得到的只是编译器错误。我不知道如何从包含着色器源的字符串到我需要的最后 3 个参数,尤其是第三个参数,const( GLchar* )*
我正在寻找执行此操作的示例代码以及代码正在做什么的解释,从字符串转到最后 3 个参数所需的内容。
opengl - DerelictGL3`glCreateShader`访问冲突
介绍
我正在尝试使用Derelict 的 OpenGL binding在 D 中创建一个 OpenGL 着色器。在制作一个快速测试应用程序以查看我是否可以将所有东西放在一起时,它工作得很好,但是当我开始稍微更好地组织事情时,我遇到了一个非常奇怪的问题(就我对 D 语言和绑定的理解而言) 错误。希望我只是愚蠢。
如果我要调用glCreateShader(GL_VERTEX_SHADER)
模块spacegame.game.game
:
它工作得很好!根本没有错误。另一方面,如果我lib.render.shaderprogram
要从上面的模块导入模块:
并makeShader
从我之前调用的构造函数中调用该函数glCreateShader
(虽然它有效),但出现以下错误:
据我所知,一切都是一样的,包括进口,对吧?由于shaderprogram
模块只是从game
模块中导入的,所以 GL 上下文已经设置好了,就像在第一个示例中一样。
我似乎无法理解的是为什么第一个示例会起作用,而第二个则不会。
这里有一些我不知道的 D 语言编译器魔法吗?任何指向正确方向的指针都将受到高度赞赏。
而且
在我之前提到的“快速测试应用程序”中,我没有任何问题将简单的三角形渲染到 GLFW 窗口。如果我Game
在第一个示例中描述的类中创建着色器程序,则渲染确实有效。
但是,对于分离,如果可以将着色器程序的创建分离出来,那肯定会更好。;-)
编辑:@RichardAndrewCattermole 建议我验证指向的指针glCreateShader
不在null
第二个示例中。这是。这可以解释为什么会发生错误。至于为什么它确实null
让我感到惊讶,考虑到两种情况下的导入都是相同的(包括 mixin)。