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