bindbc-opengl: Now drawing triangle
lithium iodate
whatdoiknow at doesntexist.net
Sat Jan 25 20:21:31 UTC 2020
On Saturday, 25 January 2020 at 19:52:25 UTC, Luhrel wrote:
> Hello,
>
> I made a simple OpenGL file using bindbc-opengl and glfw
> (https://pastebin.com/ehmcHwxj) based on
> https://github.com/SonarSystems/Modern-OpenGL-Tutorials/blob/master/%5BGETTING%20STARTED%5D/%5B1%5D%20Triangle/main.cpp
>
> The cpp project compiles and runs fine (g++ main.cpp -lGL
> -lglfw -o gl_test && ./gl_test), but my d-translated file not:
> the triangle isn't shown.
>
> Do you have any idea ?
In line 146
glBufferData(GL_ARRAY_BUFFER, vertices.sizeof, vertices.ptr,
GL_STATIC_DRAW);
you are calculating the size of `vertices` incorrectly. As
`vertices` is a dynamic array, .sizeof will only give you the
size of the array reference (size_t.sizeof * 2, note that .sizeof
will always give you a compile-time constant in D).
Change it to
glBufferData(GL_ARRAY_BUFFER, vertices.length * GLfloat.sizeof,
vertices.ptr, GL_STATIC_DRAW);
and the data will be correctly copied into the buffer.
More information about the Digitalmars-d-learn
mailing list