Using OpenGL

Mike Parker via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Sat Sep 3 04:27:09 PDT 2016


On Saturday, 3 September 2016 at 11:13:30 UTC, Lodovico Giaretta 
wrote:
> 
> Ah! Well, providing error messages is always useful. Now I see 
> your issue: your callback has D linkage, but OpenGL expects a 
> function with C linkage. So you have to put `extern(C)` on your 
> callback declaration.

Well, it's GLFW, not OpenGL, but yes they do need to be extern 
(C) and also nothrow, as that is how the callback types are 
declared in Derrlict:

```
extern(C) nothrow
void key_callback(GLFWwindow* window, int key, int scancode, int 
action, int mode) {
     if (key == GLFW_KEY_ESCAPE && action == GLFW_PRESS)
         glfwSetWindowShouldClose(window, GL_TRUE);
}
```


More information about the Digitalmars-d-learn mailing list