最近、DerelictGLFW に足を踏み入れ始めました。1 つはクラス、もう 1 つはWindow
クラスInputHandler
(ウィンドウ イベントのイベント マネージャー) です。カーソル位置のコールバックで、ウィンドウ ユーザー ポインターを取得して位置を設定しようとしましたが、コールバックと GLFW 以外の値を設定しようとするとすぐにアクセス違反エラーが発生します。GLFW は初期化され、エラーは報告されません。お時間をいただきありがとうございます。
Class Window
{
private:
double cursorX;
...other stuffs...
@property
void cursorX(double x) nothrow
{
cursorX = x;
}
}
extern(C) void mousePosCallback(GLFWwindow* window, double x, double y)
{
Window* _window = window.userPointer
//userPointer is a static function that gets the window user pointer
//and casts it to a Window*
_window.cursorX = x;
}
static Window* userPointer(GLFWwindow* window)
{
return cast(Window*) glfwGetWindowUserPointer(window);
}
編集:
コールバックに追加extern(C)
され、エラーが持続します。
「コールバックに入った直後」を「コールバックとGLFW以外の値を設定しようとした直後」に修正。
userPointer
質問に機能を追加