Thread overview
bindbc-opengl: Now drawing triangle
Jan 25, 2020
Luhrel
Jan 25, 2020
lithium iodate
Jan 25, 2020
Luhrel
Jan 25, 2020
JN
Jan 27, 2020
Luhrel
January 25, 2020
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 ?

January 25, 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.
January 25, 2020
On Saturday, 25 January 2020 at 20:21:31 UTC, lithium iodate wrote:
>
> 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.

Many thanks !
January 25, 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 ?

I assume it's working now?

For future, learn to use RenderDoc:

https://renderdoc.org/

it allows you to debug your OpenGL application and see what kind of data is sent by your app.
January 27, 2020
On Saturday, 25 January 2020 at 21:33:09 UTC, JN wrote:
>
> I assume it's working now?

Yup it works.

> For future, learn to use RenderDoc:
>
> https://renderdoc.org/
>
> it allows you to debug your OpenGL application and see what kind of data is sent by your app.

Wow that's what I need. Thanks for sharing this.