daily update on 20231031 by nitload youmu, problem in loading api and converting function pointers

This commit is contained in:
Nitload
2023-11-01 02:41:08 +08:00
parent cb87cad98c
commit 588a61d514
61 changed files with 1624 additions and 3164 deletions
+116 -116
View File
@@ -2561,122 +2561,122 @@ namespace StgSharp.Graphics
#region glfwAPI
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcursor* glfwCreateStandardCursor(int shape);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr glfwCreateWindow(int width, int height, byte[] title, IntPtr monitor, IntPtr share);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwDefaultWindowHints();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwDestroyCursor(GLFWcursor* cursor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwDestroyWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwExtensionSupported(char* extension);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwFocusWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetClipboardString(IntPtr window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr glfwGetCurrentContext();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetError(char** description);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetFramebufferSize(IntPtr* window, int* width, int* height);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetGamepadName(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWgammaramp* glfwGetGammaRamp(IntPtr monitor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetInputMode(IntPtr* window, int mode);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate float* glfwGetJoystickAxes(int jid, int* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate byte[] glfwGetJoystickButtons(int jid, int* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetJoystickGUID(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate byte[] glfwGetJoystickHats(int jid, int* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetJoystickName(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void* glfwGetJoystickUserPointer(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate KeyStatus glfwGetKey(IntPtr window, int key);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetKeyName(int key, int scancode);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetKeyScancode(int key);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetMonitorName(IntPtr monitor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr* glfwGetMonitors(int* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void* glfwGetMonitorUserPointer(IntPtr monitor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetMonitorWorkarea(IntPtr monitor, int* xpos, int* ypos, int* width, int* height);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetMouseButton(IntPtr window, int button);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr glfwGetPrimaryMonitor();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr glfwGetProcAddress(string procname);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate char** glfwGetRequiredInstanceExtensions(uint* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate double glfwGetTime();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate ulong* glfwGetTimerFrequency();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate ulong* glfwGetTimerValue();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetVersion(int* major, int* minor, int* rev);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetVersionString();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWvidmode* glfwGetVideoMode(IntPtr monitor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWvidmode* glfwGetVideoModes(IntPtr monitor, int* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetWindowAttrib(IntPtr* window, int attrib);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetWindowContentScale(IntPtr* window, float* xscale, float* yscale);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetWindowFrameSize(IntPtr* window, int* left, int* top, int* right, int* bottom);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr glfwGetWindowMonitor(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate float glfwGetWindowOpacity(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetWindowPos(IntPtr* window, int* xpos, int* ypos);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetWindowSize(IntPtr* window, int* width, int* height);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void* glfwGetWindowUserPointer(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwHideWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwIconifyWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwInit();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwInitHint(int hint, int value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwJoystickIsGamepad(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwJoystickPresent(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwMakeContextCurrent(IntPtr window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwMaximizeWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwPollEvents();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwPostEmptyEvent();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwRawMouseMotionSupported();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwRequestWindowAttention(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwRestoreWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcharfun glfwSetCharCallback(IntPtr window, GLFWcharfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcharmodsfun glfwSetCharModsCallback(IntPtr window, GLFWcharmodsfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetClipboardString(IntPtr window, byte[] str);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetCursor(IntPtr window, GLFWcursor* cursor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcursorenterfun glfwSetCursorEnterCallback(IntPtr window, GLFWcursorenterfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetCursorPos(IntPtr window, double xpos, double ypos);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcursorposfun glfwSetCursorPosCallback(IntPtr window, GLFWcursorposfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWdropfun glfwSetDropCallback(IntPtr window, GLFWdropfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWframebuffersizefun glfwSetFramebufferSizeCallback(IntPtr window, FrameBufferSizeHadler callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetGamma(IntPtr monitor, float gamma);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetGammaRamp(IntPtr monitor, GLFWgammaramp* ramp);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetInputMode(IntPtr* window, int mode, int value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetJoystickUserPointer(int jid, void* pointer);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWkeyfun glfwSetKeyCallback(IntPtr window, GLFWkeyfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWmousebuttonfun glfwSetMouseButtonCallback(IntPtr window, GLFWmousebuttonfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWscrollfun glfwSetScrollCallback(IntPtr window, GLFWscrollfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetTime(double time);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowAspectRatio(IntPtr* window, int numer, int denom);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowAttrib(IntPtr* window, int attrib, int value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowclosefun glfwSetWindowCloseCallback(IntPtr* window, GLFWwindowclosefun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(IntPtr* window, GLFWwindowcontentscalefun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowfocusfun glfwSetWindowFocusCallback(IntPtr* window, GLFWwindowfocusfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowIcon(IntPtr* window, int count, GLFWimage* images);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowiconifyfun glfwSetWindowIconifyCallback(IntPtr* window, GLFWwindowiconifyfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(IntPtr* window, GLFWwindowmaximizefun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowMonitor(IntPtr* window, IntPtr monitor, int xpos, int ypos, int width, int height, int refreshRate);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowOpacity(IntPtr* window, float opacity);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowPos(IntPtr* window, int xpos, int ypos);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowposfun glfwSetWindowPosCallback(IntPtr* window, GLFWwindowposfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowrefreshfun glfwSetWindowRefreshCallback(IntPtr* window, GLFWwindowrefreshfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowShouldClose(IntPtr window, int value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowSize(IntPtr window, int width, int height);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowsizefun glfwSetWindowSizeCallback(IntPtr* window, GLFWwindowsizefun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowSizeLimits(IntPtr window, int minwidth, int minheight, int maxwidth, int maxheight);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowTitle(IntPtr* window, char* title);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowUserPointer(IntPtr* window, void* pointer);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwShowWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSwapBuffers(IntPtr window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSwapInterval(int interval);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwTerminate();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwUpdateGamepadMappings(byte[] str);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwVulkanSupported();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwWaitEvents();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwWaitEventsTimeout(double timeout);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwWindowHint(int hint, int value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwWindowHintString(int hint, char* value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwWindowShouldClose(IntPtr window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcursor* glfwCreateStandardCursor(int shape);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr glfwCreateWindow(int width, int height, byte[] title, IntPtr monitor, IntPtr share);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwDefaultWindowHints();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwDestroyCursor(GLFWcursor* cursor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwDestroyWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwExtensionSupported(char* extension);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwFocusWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetClipboardString(IntPtr window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr glfwGetCurrentContext();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetError(char** description);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetFramebufferSize(IntPtr* window, int* width, int* height);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetGamepadName(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWgammaramp* glfwGetGammaRamp(IntPtr monitor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetInputMode(IntPtr* window, int mode);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate float* glfwGetJoystickAxes(int jid, int* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate byte[] glfwGetJoystickButtons(int jid, int* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetJoystickGUID(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate byte[] glfwGetJoystickHats(int jid, int* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetJoystickName(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void* glfwGetJoystickUserPointer(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate KeyStatus glfwGetKey(IntPtr window, int key);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetKeyName(int key, int scancode);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetKeyScancode(int key);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetMonitorName(IntPtr monitor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr* glfwGetMonitors(int* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void* glfwGetMonitorUserPointer(IntPtr monitor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetMonitorWorkarea(IntPtr monitor, int* xpos, int* ypos, int* width, int* height);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetMouseButton(IntPtr window, int button);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr glfwGetPrimaryMonitor();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr glfwGetProcAddress(string procname);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate char** glfwGetRequiredInstanceExtensions(uint* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate double glfwGetTime();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate ulong* glfwGetTimerFrequency();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate ulong* glfwGetTimerValue();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetVersion(int* major, int* minor, int* rev);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate char* glfwGetVersionString();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWvidmode* glfwGetVideoMode(IntPtr monitor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWvidmode* glfwGetVideoModes(IntPtr monitor, int* count);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetWindowAttrib(IntPtr* window, int attrib);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetWindowContentScale(IntPtr* window, float* xscale, float* yscale);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetWindowFrameSize(IntPtr* window, int* left, int* top, int* right, int* bottom);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate IntPtr glfwGetWindowMonitor(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate float glfwGetWindowOpacity(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetWindowPos(IntPtr* window, int* xpos, int* ypos);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwGetWindowSize(IntPtr* window, int* width, int* height);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void* glfwGetWindowUserPointer(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwHideWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwIconifyWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwInit();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwInitHint(int hint, int value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwJoystickIsGamepad(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwJoystickPresent(int jid);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwMakeContextCurrent(IntPtr window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwMaximizeWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwPollEvents();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwPostEmptyEvent();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwRawMouseMotionSupported();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwRequestWindowAttention(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwRestoreWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcharfun glfwSetCharCallback(IntPtr window, GLFWcharfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcharmodsfun glfwSetCharModsCallback(IntPtr window, GLFWcharmodsfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetClipboardString(IntPtr window, byte[] str);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetCursor(IntPtr window, GLFWcursor* cursor);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcursorenterfun glfwSetCursorEnterCallback(IntPtr window, GLFWcursorenterfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetCursorPos(IntPtr window, double xpos, double ypos);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWcursorposfun glfwSetCursorPosCallback(IntPtr window, GLFWcursorposfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWdropfun glfwSetDropCallback(IntPtr window, GLFWdropfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWframebuffersizefun glfwSetFramebufferSizeCallback(IntPtr window, FrameBufferSizeHadler callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetGamma(IntPtr monitor, float gamma);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetGammaRamp(IntPtr monitor, GLFWgammaramp* ramp);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetInputMode(IntPtr* window, int mode, int value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetJoystickUserPointer(int jid, void* pointer);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWkeyfun glfwSetKeyCallback(IntPtr window, GLFWkeyfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWmousebuttonfun glfwSetMouseButtonCallback(IntPtr window, GLFWmousebuttonfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWscrollfun glfwSetScrollCallback(IntPtr window, GLFWscrollfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetTime(double time);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowAspectRatio(IntPtr* window, int numer, int denom);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowAttrib(IntPtr* window, int attrib, int value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowclosefun glfwSetWindowCloseCallback(IntPtr* window, GLFWwindowclosefun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(IntPtr* window, GLFWwindowcontentscalefun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowfocusfun glfwSetWindowFocusCallback(IntPtr* window, GLFWwindowfocusfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowIcon(IntPtr* window, int count, GLFWimage* images);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowiconifyfun glfwSetWindowIconifyCallback(IntPtr* window, GLFWwindowiconifyfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(IntPtr* window, GLFWwindowmaximizefun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowMonitor(IntPtr* window, IntPtr monitor, int xpos, int ypos, int width, int height, int refreshRate);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowOpacity(IntPtr* window, float opacity);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowPos(IntPtr* window, int xpos, int ypos);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowposfun glfwSetWindowPosCallback(IntPtr* window, GLFWwindowposfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowrefreshfun glfwSetWindowRefreshCallback(IntPtr* window, GLFWwindowrefreshfun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowShouldClose(IntPtr window, int value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowSize(IntPtr window, int width, int height);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWwindowsizefun glfwSetWindowSizeCallback(IntPtr* window, GLFWwindowsizefun callback);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowSizeLimits(IntPtr window, int minwidth, int minheight, int maxwidth, int maxheight);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowTitle(IntPtr* window, char* title);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSetWindowUserPointer(IntPtr* window, void* pointer);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwShowWindow(IntPtr* window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSwapBuffers(IntPtr window);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwSwapInterval(int interval);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwTerminate();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwUpdateGamepadMappings(byte[] str);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwVulkanSupported();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwWaitEvents();
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwWaitEventsTimeout(double timeout);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwWindowHint(int hint, int value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate void glfwWindowHintString(int hint, char* value);
[UnmanagedFunctionPointer(callingConvention: CallingConvention.StdCall, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwWindowShouldClose(IntPtr window);
//[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, char* procname);
//[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint* queuefamily);
//[UnmanagedFunctionPointer(callingConvention: CallingConvention.Cdecl, CharSet = CharSet.Ansi)] internal unsafe delegate VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow* window, VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
+123 -2
View File
@@ -10,7 +10,6 @@ namespace StgSharp.Graphics
public static unsafe partial class GL
{
internal unsafe static GLcontext* context;
internal unsafe static GLFWapi glfw;
public static unsafe IntPtr LoadGLfunc(string name)
{
@@ -3459,7 +3458,6 @@ namespace StgSharp.Graphics
}
[StructLayout(LayoutKind.Sequential)]
internal struct GLFWapi
{
@@ -3585,5 +3583,128 @@ namespace StgSharp.Graphics
}
[StructLayout(LayoutKind.Sequential)]
internal struct glfwpack
{
internal glfwInit glfw_Init;
internal glfwTerminate glfw_Terminate;
internal glfwInitHint glfw_InitHint;
internal glfwGetVersion glfw_GetVersion;
internal glfwGetVersionString glfw_GetVersionString;
internal glfwGetError glfw_GetError;
internal glfwSetErrorCallback glfw_SetErrorCallback;
internal glfwGetMonitors glfw_GetMonitors;
internal glfwGetPrimaryMonitor glfw_GetPrimaryMonitor;
internal glfwGetMonitorPos glfw_GetMonitorPos;
internal glfwGetMonitorWorkarea glfw_GetMonitorWorkarea;
internal glfwGetMonitorPhysicalSize glfw_GetMonitorPhysicalSize;
internal glfwGetMonitorContentScale glfw_GetMonitorContentScale;
internal glfwGetMonitorName glfw_GetMonitorName;
internal glfwSetMonitorUserPointer glfw_SetMonitorUserPointer;
internal glfwGetMonitorUserPointer glfw_GetMonitorUserPointer;
internal glfwSetMonitorCallback glfw_SetMonitorCallback;
internal glfwGetVideoModes glfw_GetVideoModes;
internal glfwGetVideoMode glfw_GetVideoMode;
internal glfwSetGamma glfw_SetGamma;
internal glfwGetGammaRamp glfw_GetGammaRamp;
internal glfwSetGammaRamp glfw_SetGammaRamp;
internal glfwDefaultWindowHints glfw_DefaultWindowHints;
internal glfwWindowHint glfw_WindowHint;
internal glfwWindowHintString glfw_WindowHintString;
internal glfwCreateWindow glfw_CreateWindow;
internal glfwDestroyWindow glfw_DestroyWindow;
internal glfwWindowShouldClose glfw_WindowShouldClose;
internal glfwSetWindowShouldClose glfw_SetWindowShouldClose;
internal glfwSetWindowTitle glfw_SetWindowTitle;
internal glfwSetWindowIcon glfw_SetWindowIcon;
internal glfwGetWindowPos glfw_GetWindowPos;
internal glfwSetWindowPos glfw_SetWindowPos;
internal glfwGetWindowSize glfw_GetWindowSize;
internal glfwSetWindowSizeLimits glfw_SetWindowSizeLimits;
internal glfwSetWindowAspectRatio glfw_SetWindowAspectRatio;
internal glfwSetWindowSize glfw_SetWindowSize;
internal glfwGetFramebufferSize glfw_GetFramebufferSize;
internal glfwGetWindowFrameSize glfw_GetWindowFrameSize;
internal glfwGetWindowContentScale glfw_GetWindowContentScale;
internal glfwGetWindowOpacity glfw_GetWindowOpacity;
internal glfwSetWindowOpacity glfw_SetWindowOpacity;
internal glfwIconifyWindow glfw_IconifyWindow;
internal glfwRestoreWindow glfw_RestoreWindow;
internal glfwMaximizeWindow glfw_MaximizeWindow;
internal glfwShowWindow glfw_ShowWindow;
internal glfwHideWindow glfw_HideWindow;
internal glfwFocusWindow glfw_FocusWindow;
internal glfwRequestWindowAttention glfw_RequestWindowAttention;
internal glfwGetWindowMonitor glfw_GetWindowMonitor;
internal glfwSetWindowMonitor glfw_SetWindowMonitor;
internal glfwGetWindowAttrib glfw_GetWindowAttrib;
internal glfwSetWindowAttrib glfw_SetWindowAttrib;
internal glfwSetWindowUserPointer glfw_SetWindowUserPointer;
internal glfwGetWindowUserPointer glfw_GetWindowUserPointer;
internal glfwSetWindowPosCallback glfw_SetWindowPosCallback;
internal glfwSetWindowSizeCallback glfw_SetWindowSizeCallback;
internal glfwSetWindowCloseCallback glfw_SetWindowCloseCallback;
internal glfwSetWindowRefreshCallback glfw_SetWindowRefreshCallback;
internal glfwSetWindowFocusCallback glfw_SetWindowFocusCallback;
internal glfwSetWindowIconifyCallback glfw_SetWindowIconifyCallback;
internal glfwSetWindowMaximizeCallback glfw_SetWindowMaximizeCallback;
internal glfwSetFramebufferSizeCallback glfw_SetFramebufferSizeCallback;
internal glfwSetWindowContentScaleCallback glfw_SetWindowContentScaleCallback;
internal glfwPollEvents glfw_PollEvents;
internal glfwWaitEvents glfw_WaitEvents;
internal glfwWaitEventsTimeout glfw_WaitEventsTimeout;
internal glfwPostEmptyEvent glfw_PostEmptyEvent;
internal glfwGetInputMode glfw_GetInputMode;
internal glfwSetInputMode glfw_SetInputMode;
internal glfwRawMouseMotionSupported glfw_RawMouseMotionSupported;
internal glfwGetKeyName glfw_GetKeyName;
internal glfwGetKeyScancode glfw_GetKeyScancode;
internal glfwGetKey glfw_GetKey;
internal glfwGetMouseButton glfw_GetMouseButton;
internal glfwGetCursorPos glfw_GetCursorPos;
internal glfwSetCursorPos glfw_SetCursorPos;
internal glfwCreateCursor glfw_CreateCursor;
internal glfwCreateStandardCursor glfw_CreateStandardCursor;
internal glfwDestroyCursor glfw_DestroyCursor;
internal glfwSetCursor glfw_SetCursor;
internal glfwSetKeyCallback glfw_SetKeyCallback;
internal glfwSetCharCallback glfw_SetCharCallback;
internal glfwSetCharModsCallback glfw_SetCharModsCallback;
internal glfwSetMouseButtonCallback glfw_SetMouseButtonCallback;
internal glfwSetCursorPosCallback glfw_SetCursorPosCallback;
internal glfwSetCursorEnterCallback glfw_SetCursorEnterCallback;
internal glfwSetScrollCallback glfw_SetScrollCallback;
internal glfwSetDropCallback glfw_SetDropCallback;
internal glfwJoystickPresent glfw_JoystickPresent;
internal glfwGetJoystickAxes glfw_GetJoystickAxes;
internal glfwGetJoystickButtons glfw_GetJoystickButtons;
internal glfwGetJoystickHats glfw_GetJoystickHats;
internal glfwGetJoystickName glfw_GetJoystickName;
internal glfwGetJoystickGUID glfw_GetJoystickGUID;
internal glfwSetJoystickUserPointer glfw_SetJoystickUserPointer;
internal glfwGetJoystickUserPointer glfw_GetJoystickUserPointer;
internal glfwJoystickIsGamepad glfw_JoystickIsGamepad;
internal glfwSetJoystickCallback glfw_SetJoystickCallback;
internal glfwUpdateGamepadMappings glfw_UpdateGamepadMappings;
internal glfwGetGamepadName glfw_GetGamepadName;
internal glfwGetGamepadState glfw_GetGamepadState;
internal glfwSetClipboardString glfw_SetClipboardString;
internal glfwGetClipboardString glfw_GetClipboardString;
internal glfwGetTime glfw_GetTime;
internal glfwSetTime glfw_SetTime;
internal glfwGetTimerValue glfw_GetTimerValue;
internal glfwGetTimerFrequency glfw_GetTimerFrequency;
internal glfwMakeContextCurrent glfw_MakeContextCurrent;
internal glfwGetCurrentContext glfw_GetCurrentContext;
internal glfwSwapBuffers glfw_SwapBuffers;
internal glfwSwapInterval glfw_SwapInterval;
internal glfwExtensionSupported glfw_ExtensionSupported;
internal glfwGetProcAddress glfw_GetProcAddress;
internal glfwVulkanSupported glfw_VulkanSupported;
internal glfwGetRequiredInstanceExtensions glfw_GetRequiredInstanceExtensions;
//internal glfwGetInstanceProcAddress glfw_GetInstanceProcAddress;
//internal glfwGetPhysicalDevicePresentationSupport glfw_GetPhysicalDevicePresentationSupport;
//internal glfwCreateWindowSurface glfw_CreateWindowSurface;
}
}
+162 -6
View File
@@ -7,7 +7,35 @@ namespace StgSharp.Graphics
public static unsafe partial class Graphic
{
internal static void ConvertAPI<TDele>(IntPtr funcPtr, TDele dele)
{
if (funcPtr == IntPtr.Zero)
{
InternalIO.InternalWriteLog(
$"Failed to convert {nameof(funcPtr)} to {nameof(dele)}, the function pointer is zero.",
LogType.Error);
return;
}
if (dele != null)
{
InternalIO.InternalWriteLog(
$"Failed to convert {nameof(funcPtr)} to {nameof(dele)}, the delegate is not null.",
LogType.Error);
return;
}
try
{
dele = Marshal.GetDelegateForFunctionPointer<TDele>(funcPtr);
InternalIO.InternalWriteLog($"Successfully lod glfw api {typeof(TDele)}", LogType.Info);
}
catch (Exception ex)
{
InternalIO.InternalWriteLog(
$"Failed to convert {nameof(funcPtr)} to {nameof(dele)}, the runtime throws an exception:\n" +
$"{ex.Message}",
LogType.Error);
}
}
/// <summary>
/// Init an instance of OpenGL program,
@@ -19,11 +47,139 @@ namespace StgSharp.Graphics
if (InternalIO.glfw_Init == null)
{
GL.glfw = new GLFWapi();
IntPtr ret;
fixed (GLFWapi* ptr = &GL.glfw)
ret = InternalIO.InternalInitGL(majorVersion, minorVersion, ptr);
InternalIO.InternalWriteLog(ret.ToString(), LogType.Info);
IntPtr ptr1 = Marshal.AllocHGlobal(sizeof(GLFWapi));
GLFWapi* glfw = (GLFWapi*)ptr1;
//GLFWapi* ptr = (GLFWapi*)InternalIO.InternalInitGL(majorVersion, minorVersion, glfw);
IntPtr packptr = InternalIO.InternalInitGL(majorVersion, minorVersion, glfw);
glfwpack pack = Marshal.PtrToStructure<glfwpack>(packptr);
#if DEBUG
#endif
InternalIO.glfw_CreateWindow = pack.glfw_CreateWindow;
/*
{
ConvertAPI(pack.Init, InternalIO.glfw_Init);
ConvertAPI(pack.Terminate, InternalIO.glfw_Terminate);
ConvertAPI(pack.InitHint, InternalIO.glfw_InitHint);
ConvertAPI(pack.GetVersion, InternalIO.glfw_GetVersion);
ConvertAPI(pack.GetVersionString, InternalIO.glfw_GetVersionString);
ConvertAPI(pack.GetError, InternalIO.glfw_GetError);
ConvertAPI(pack.SetErrorCallback, InternalIO.glfw_SetErrorCallback);
ConvertAPI(pack.GetMonitors, InternalIO.glfw_GetMonitors);
ConvertAPI(pack.GetPrimaryMonitor, InternalIO.glfw_GetPrimaryMonitor);
ConvertAPI(pack.GetMonitorPos, InternalIO.glfw_GetMonitorPos);
ConvertAPI(pack.GetMonitorWorkarea, InternalIO.glfw_GetMonitorWorkarea);
ConvertAPI(pack.GetMonitorPhysicalSize, InternalIO.glfw_GetMonitorPhysicalSize);
ConvertAPI(pack.GetMonitorContentScale, InternalIO.glfw_GetMonitorContentScale);
ConvertAPI(pack.GetMonitorName, InternalIO.glfw_GetMonitorName);
ConvertAPI(pack.SetMonitorUserPointer, InternalIO.glfw_SetMonitorUserPointer);
ConvertAPI(pack.GetMonitorUserPointer, InternalIO.glfw_GetMonitorUserPointer);
ConvertAPI(pack.SetMonitorCallback, InternalIO.glfw_SetMonitorCallback);
ConvertAPI(pack.GetVideoModes, InternalIO.glfw_GetVideoModes);
ConvertAPI(pack.GetVideoMode, InternalIO.glfw_GetVideoMode);
ConvertAPI(pack.SetGamma, InternalIO.glfw_SetGamma);
ConvertAPI(pack.GetGammaRamp, InternalIO.glfw_GetGammaRamp);
ConvertAPI(pack.SetGammaRamp, InternalIO.glfw_SetGammaRamp);
ConvertAPI(pack.DefaultWindowHints, InternalIO.glfw_DefaultWindowHints);
ConvertAPI(pack.WindowHint, InternalIO.glfw_WindowHint);
ConvertAPI(pack.WindowHintString, InternalIO.glfw_WindowHintString);
ConvertAPI(pack.CreateWindow, InternalIO.glfw_CreateWindow);
ConvertAPI(pack.DestroyWindow, InternalIO.glfw_DestroyWindow);
ConvertAPI(pack.WindowShouldClose, InternalIO.glfw_WindowShouldClose);
ConvertAPI(pack.SetWindowShouldClose, InternalIO.glfw_SetWindowShouldClose);
ConvertAPI(pack.SetWindowTitle, InternalIO.glfw_SetWindowTitle);
ConvertAPI(pack.SetWindowIcon, InternalIO.glfw_SetWindowIcon);
ConvertAPI(pack.GetWindowPos, InternalIO.glfw_GetWindowPos);
ConvertAPI(pack.SetWindowPos, InternalIO.glfw_SetWindowPos);
ConvertAPI(pack.GetWindowSize, InternalIO.glfw_GetWindowSize);
ConvertAPI(pack.SetWindowSizeLimits, InternalIO.glfw_SetWindowSizeLimits);
ConvertAPI(pack.SetWindowAspectRatio, InternalIO.glfw_SetWindowAspectRatio);
ConvertAPI(pack.SetWindowSize, InternalIO.glfw_SetWindowSize);
ConvertAPI(pack.GetFramebufferSize, InternalIO.glfw_GetFramebufferSize);
ConvertAPI(pack.GetWindowFrameSize, InternalIO.glfw_GetWindowFrameSize);
ConvertAPI(pack.GetWindowContentScale, InternalIO.glfw_GetWindowContentScale);
ConvertAPI(pack.GetWindowOpacity, InternalIO.glfw_GetWindowOpacity);
ConvertAPI(pack.SetWindowOpacity, InternalIO.glfw_SetWindowOpacity);
ConvertAPI(pack.IconifyWindow, InternalIO.glfw_IconifyWindow);
ConvertAPI(pack.RestoreWindow, InternalIO.glfw_RestoreWindow);
ConvertAPI(pack.MaximizeWindow, InternalIO.glfw_MaximizeWindow);
ConvertAPI(pack.ShowWindow, InternalIO.glfw_ShowWindow);
ConvertAPI(pack.HideWindow, InternalIO.glfw_HideWindow);
ConvertAPI(pack.FocusWindow, InternalIO.glfw_FocusWindow);
ConvertAPI(pack.RequestWindowAttention, InternalIO.glfw_RequestWindowAttention);
ConvertAPI(pack.GetWindowMonitor, InternalIO.glfw_GetWindowMonitor);
ConvertAPI(pack.SetWindowMonitor, InternalIO.glfw_SetWindowMonitor);
ConvertAPI(pack.GetWindowAttrib, InternalIO.glfw_GetWindowAttrib);
ConvertAPI(pack.SetWindowAttrib, InternalIO.glfw_SetWindowAttrib);
ConvertAPI(pack.SetWindowUserPointer, InternalIO.glfw_SetWindowUserPointer);
ConvertAPI(pack.GetWindowUserPointer, InternalIO.glfw_GetWindowUserPointer);
ConvertAPI(pack.SetWindowPosCallback, InternalIO.glfw_SetWindowPosCallback);
ConvertAPI(pack.SetWindowSizeCallback, InternalIO.glfw_SetWindowSizeCallback);
ConvertAPI(pack.SetWindowCloseCallback, InternalIO.glfw_SetWindowCloseCallback);
ConvertAPI(pack.SetWindowRefreshCallback, InternalIO.glfw_SetWindowRefreshCallback);
ConvertAPI(pack.SetWindowFocusCallback, InternalIO.glfw_SetWindowFocusCallback);
ConvertAPI(pack.SetWindowIconifyCallback, InternalIO.glfw_SetWindowIconifyCallback);
ConvertAPI(pack.SetWindowMaximizeCallback, InternalIO.glfw_SetWindowMaximizeCallback);
ConvertAPI(pack.SetFramebufferSizeCallback, InternalIO.glfw_SetFramebufferSizeCallback);
ConvertAPI(pack.SetWindowContentScaleCallback, InternalIO.glfw_SetWindowContentScaleCallback);
ConvertAPI(pack.PollEvents, InternalIO.glfw_PollEvents);
ConvertAPI(pack.WaitEvents, InternalIO.glfw_WaitEvents);
ConvertAPI(pack.WaitEventsTimeout, InternalIO.glfw_WaitEventsTimeout);
ConvertAPI(pack.PostEmptyEvent, InternalIO.glfw_PostEmptyEvent);
ConvertAPI(pack.GetInputMode, InternalIO.glfw_GetInputMode);
ConvertAPI(pack.SetInputMode, InternalIO.glfw_SetInputMode);
ConvertAPI(pack.RawMouseMotionSupported, InternalIO.glfw_RawMouseMotionSupported);
ConvertAPI(pack.GetKeyName, InternalIO.glfw_GetKeyName);
ConvertAPI(pack.GetKeyScancode, InternalIO.glfw_GetKeyScancode);
ConvertAPI(pack.GetKey, InternalIO.glfw_GetKey);
ConvertAPI(pack.GetMouseButton, InternalIO.glfw_GetMouseButton);
ConvertAPI(pack.GetCursorPos, InternalIO.glfw_GetCursorPos);
ConvertAPI(pack.SetCursorPos, InternalIO.glfw_SetCursorPos);
ConvertAPI(pack.CreateCursor, InternalIO.glfw_CreateCursor);
ConvertAPI(pack.CreateStandardCursor, InternalIO.glfw_CreateStandardCursor);
ConvertAPI(pack.DestroyCursor, InternalIO.glfw_DestroyCursor);
ConvertAPI(pack.SetCursor, InternalIO.glfw_SetCursor);
ConvertAPI(pack.SetKeyCallback, InternalIO.glfw_SetKeyCallback);
ConvertAPI(pack.SetCharCallback, InternalIO.glfw_SetCharCallback);
ConvertAPI(pack.SetCharModsCallback, InternalIO.glfw_SetCharModsCallback);
ConvertAPI(pack.SetMouseButtonCallback, InternalIO.glfw_SetMouseButtonCallback);
ConvertAPI(pack.SetCursorPosCallback, InternalIO.glfw_SetCursorPosCallback);
ConvertAPI(pack.SetCursorEnterCallback, InternalIO.glfw_SetCursorEnterCallback);
ConvertAPI(pack.SetScrollCallback, InternalIO.glfw_SetScrollCallback);
ConvertAPI(pack.SetDropCallback, InternalIO.glfw_SetDropCallback);
ConvertAPI(pack.JoystickPresent, InternalIO.glfw_JoystickPresent);
ConvertAPI(pack.GetJoystickAxes, InternalIO.glfw_GetJoystickAxes);
ConvertAPI(pack.GetJoystickButtons, InternalIO.glfw_GetJoystickButtons);
ConvertAPI(pack.GetJoystickHats, InternalIO.glfw_GetJoystickHats);
ConvertAPI(pack.GetJoystickName, InternalIO.glfw_GetJoystickName);
ConvertAPI(pack.GetJoystickGUID, InternalIO.glfw_GetJoystickGUID);
ConvertAPI(pack.SetJoystickUserPointer, InternalIO.glfw_SetJoystickUserPointer);
ConvertAPI(pack.GetJoystickUserPointer, InternalIO.glfw_GetJoystickUserPointer);
ConvertAPI(pack.JoystickIsGamepad, InternalIO.glfw_JoystickIsGamepad);
ConvertAPI(pack.SetJoystickCallback, InternalIO.glfw_SetJoystickCallback);
ConvertAPI(pack.UpdateGamepadMappings, InternalIO.glfw_UpdateGamepadMappings);
ConvertAPI(pack.GetGamepadName, InternalIO.glfw_GetGamepadName);
ConvertAPI(pack.GetGamepadState, InternalIO.glfw_GetGamepadState);
ConvertAPI(pack.SetClipboardString, InternalIO.glfw_SetClipboardString);
ConvertAPI(pack.GetClipboardString, InternalIO.glfw_GetClipboardString);
ConvertAPI(pack.GetTime, InternalIO.glfw_GetTime);
ConvertAPI(pack.SetTime, InternalIO.glfw_SetTime);
ConvertAPI(pack.GetTimerValue, InternalIO.glfw_GetTimerValue);
ConvertAPI(pack.GetTimerFrequency, InternalIO.glfw_GetTimerFrequency);
ConvertAPI(pack.MakeContextCurrent, InternalIO.glfw_MakeContextCurrent);
ConvertAPI(pack.GetCurrentContext, InternalIO.glfw_GetCurrentContext);
ConvertAPI(pack.SwapBuffers, InternalIO.glfw_SwapBuffers);
ConvertAPI(pack.SwapInterval, InternalIO.glfw_SwapInterval);
ConvertAPI(pack.ExtensionSupported, InternalIO.glfw_ExtensionSupported);
ConvertAPI(pack.GetProcAddress, InternalIO.glfw_GetProcAddress);
ConvertAPI(pack.VulkanSupported, InternalIO.glfw_VulkanSupported);
ConvertAPI(pack.GetRequiredInstanceExtensions, InternalIO.glfw_GetRequiredInstanceExtensions);
//ConvertAPI(pack.GetInstanceProcAddress, InternalIO.glfw_GetInstanceProcAddress);
//ConvertAPI(pack.GetPhysicalDevicePresentationSupport, InternalIO.glfw_GetPhysicalDevicePresentationSupport);
//ConvertAPI(pack.CreateWindowSurface, InternalIO.glfw_CreateWindowSurface);
}
*/
}
else
{