(VS2017, GLFW, GLAD, OpenGL)
Posiadam taką klasę:
class Klasa
{
private:
//składowe prywatne
public:
void framebuffer_size_callback(GLFWwindow* win, int w, int h);
};
Definicja void framebuffer_size_callback(GLFWwindow* win, int w, int h);
void framebuffer_size_callback(GLFWwindow* win, int w, int h)
{
glViewport(0, 0, w, h)
}
Następnie w innym fragmencie kodu chcę przekazać wskaźnik na tą funkcję do innej funkcji:
glfwSetFramebufferSizeCallback(win /* jakaś zmienna wcześniej zadeklarowana*/, this->framebuffer_size_callback /* przy samym
framebuffer_size_callback wyskakuje inny błąd*/);
IntelliSense się przymyka, ale jak zaczynam kompilację, wyskakuje błąd:
"niestandardowa składnia; użyj znaku „&”, aby utworzyć wskaźnik do składowej"
O co chodzi? Funkcja framebuffer_size_callback()
musi być składową klasy Klasa
ponieważ korzysta z jej składowych, (niekoniecznie prywatnych) a przez parametry referencji do obiektu przekazać nie mogę bo mam ściśle określony prototyp.