add certain file and path to ignore
This commit is contained in:
-1
@@ -1 +0,0 @@
|
||||
|
||||
-21
@@ -1,21 +0,0 @@
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
memset(table, 0, sizeof(GLFWFunctionTable));
|
||||
table->glfwInit = (int (*)(void))glfwGetProcAddress("glfwInit");
|
||||
table->glfwTerminate = (void (*)(void))glfwGetProcAddress("glfwTerminate");
|
||||
table->glfwInitHint = (void (*)(int, int))glfwGetProcAddress("glfwInitHint");
|
||||
table->glfwGetVersionString = (const char* (*)(void))glfwGetProcAddress("glfwGetVersionString");
|
||||
table->glfwGetError = (int (*)(const char**))glfwGetProcAddress("glfwGetError");
|
||||
table->glfwGetMonitors = (GLFWmonitor** (*)(int*))glfwGetProcAddress("glfwGetMonitors");
|
||||
table->glfwGetPrimaryMonitor = (GLFWmonitor* (*)(void))glfwGetProcAddress("glfwGetPrimaryMonitor");
|
||||
table->glfwGetMonitorPos = (void (*)(GLFWmonitor*, int*, int*))glfwGetProcAddress("glfwGetMonitorPos");
|
||||
table->glfwCreateWindow = (GLFWwindow* (*)(int, int, const char*, GLFWmonitor*, GLFWwindow*))glfwGetProcAddress("glfwCreateWindow");
|
||||
table->glfwDestroyWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwDestroyWindow");
|
||||
table->glfwWindowShouldClose = (int (*)(GLFWwindow*))glfwGetProcAddress("glfwWindowShouldClose");
|
||||
table->glfwSetWindowShouldClose = (void (*)(GLFWwindow*, int))glfwGetProcAddress("glfwSetWindowShouldClose");
|
||||
table->glfwPollEvents = (void (*)(void))glfwGetProcAddress("glfwPollEvents");
|
||||
table->glfwSwapBuffers = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwSwapBuffers");
|
||||
table->glfwGetProcAddress = (GLFWglproc (*)(const char*))glfwGetProcAddress("glfwGetProcAddress");
|
||||
}
|
||||
-1
@@ -1 +0,0 @@
|
||||
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
#include "StgSharpNative.h"
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
-1
@@ -1 +0,0 @@
|
||||
|
||||
-1
@@ -1 +0,0 @@
|
||||
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine($"{logType}\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release();
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"{logType}\t@\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-1
@@ -1 +0,0 @@
|
||||
|
||||
-486
@@ -1,486 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static GLFWFunction _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
_glfw = new GLFWFunction();
|
||||
fixed (GLFWFunction* func = &_glfw) { }
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInit")]
|
||||
internal static unsafe partial int glfwInit();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwTerminate")]
|
||||
internal static unsafe partial void glfwTerminate();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInitHint")]
|
||||
internal static unsafe partial void glfwInitHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersion")]
|
||||
internal static unsafe partial void glfwGetVersion(int* major, int* minor, int* rev);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersionString")]
|
||||
internal static unsafe partial byte* glfwGetVersionString();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetError")]
|
||||
internal static unsafe partial int glfwGetError(byte** description);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetErrorCallback")]
|
||||
internal static unsafe partial delegate*<int,byte*,void> glfwSetErrorCallback(
|
||||
delegate*<int,byte*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitors")]
|
||||
internal static unsafe partial IntPtr* glfwGetMonitors(int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPrimaryMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetPrimaryMonitor();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPos")]
|
||||
internal static unsafe partial void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorWorkarea")]
|
||||
internal static unsafe partial void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPhysicalSize")]
|
||||
internal static unsafe partial void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorContentScale")]
|
||||
internal static unsafe partial void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorName")]
|
||||
internal static unsafe partial byte* glfwGetMonitorName(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorUserPointer")]
|
||||
internal static unsafe partial void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorUserPointer")]
|
||||
internal static unsafe partial void* glfwGetMonitorUserPointer(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetMonitorCallback(
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoModes")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoMode")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoMode(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGamma")]
|
||||
internal static unsafe partial void glfwSetGamma(IntPtr monitor, float gamma);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGammaRamp")]
|
||||
internal static unsafe partial glfwGammaramp* glfwGetGammaRamp(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGammaRamp")]
|
||||
internal static unsafe partial void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDefaultWindowHints")]
|
||||
internal static unsafe partial void glfwDefaultWindowHints();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHint")]
|
||||
internal static unsafe partial void glfwWindowHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHintString")]
|
||||
internal static unsafe partial void glfwWindowHintString(int hint, byte* value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindow")]
|
||||
internal static unsafe partial IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
byte[] title,
|
||||
IntPtr monitor,
|
||||
IntPtr share);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyWindow")]
|
||||
internal static unsafe partial void glfwDestroyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowShouldClose")]
|
||||
internal static unsafe partial int glfwWindowShouldClose(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowShouldClose")]
|
||||
internal static unsafe partial void glfwSetWindowShouldClose(IntPtr window, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowTitle")]
|
||||
internal static unsafe partial void glfwSetWindowTitle(IntPtr window, byte* title);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIcon")]
|
||||
internal static unsafe partial void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowPos")]
|
||||
internal static unsafe partial void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPos")]
|
||||
internal static unsafe partial void glfwSetWindowPos(IntPtr window, int xpos, int ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowSize")]
|
||||
internal static unsafe partial void glfwGetWindowSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeLimits")]
|
||||
internal static unsafe partial void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAspectRatio")]
|
||||
internal static unsafe partial void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSize")]
|
||||
internal static unsafe partial void glfwSetWindowSize(IntPtr window, int width, int height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetFramebufferSize")]
|
||||
internal static unsafe partial void glfwGetFramebufferSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowFrameSize")]
|
||||
internal static unsafe partial void glfwGetWindowFrameSize(
|
||||
IntPtr window,
|
||||
int* left,
|
||||
int* top,
|
||||
int* right,
|
||||
int* bottom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowContentScale")]
|
||||
internal static unsafe partial void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowOpacity")]
|
||||
internal static unsafe partial float glfwGetWindowOpacity(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowOpacity")]
|
||||
internal static unsafe partial void glfwSetWindowOpacity(IntPtr window, float opacity);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwIconifyWindow")]
|
||||
internal static unsafe partial void glfwIconifyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRestoreWindow")]
|
||||
internal static unsafe partial void glfwRestoreWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMaximizeWindow")]
|
||||
internal static unsafe partial void glfwMaximizeWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwShowWindow")]
|
||||
internal static unsafe partial void glfwShowWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwHideWindow")]
|
||||
internal static unsafe partial void glfwHideWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwFocusWindow")]
|
||||
internal static unsafe partial void glfwFocusWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRequestWindowAttention")]
|
||||
internal static unsafe partial void glfwRequestWindowAttention(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetWindowMonitor(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMonitor")]
|
||||
internal static unsafe partial void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowAttrib")]
|
||||
internal static unsafe partial int glfwGetWindowAttrib(IntPtr window, int attrib);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAttrib")]
|
||||
internal static unsafe partial void glfwSetWindowAttrib(IntPtr window, int attrib, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowUserPointer")]
|
||||
internal static unsafe partial void glfwSetWindowUserPointer(IntPtr window, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowUserPointer")]
|
||||
internal static unsafe partial void* glfwGetWindowUserPointer(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowCloseCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowRefreshCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowFocusCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIconifyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMaximizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetFramebufferSizeCallback")]
|
||||
internal static unsafe partial FrameBufferSizeHandler glfwSetFramebufferSizeCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowContentScaleCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, float,float> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, float,float> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPollEvents")]
|
||||
internal static unsafe partial void glfwPollEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEvents")]
|
||||
internal static unsafe partial void glfwWaitEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEventsTimeout")]
|
||||
internal static unsafe partial void glfwWaitEventsTimeout(double timeout);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPostEmptyEvent")]
|
||||
internal static unsafe partial void glfwPostEmptyEvent();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInputMode")]
|
||||
internal static unsafe partial int glfwGetInputMode(IntPtr window, int mode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetInputMode")]
|
||||
internal static unsafe partial void glfwSetInputMode(IntPtr window, int mode, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRawMouseMotionSupported")]
|
||||
internal static unsafe partial int glfwRawMouseMotionSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyName")]
|
||||
internal static unsafe partial byte* glfwGetKeyName(int key, int scancode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyScancode")]
|
||||
internal static unsafe partial int glfwGetKeyScancode(int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKey")]
|
||||
internal static unsafe partial KeyStatus glfwGetKey(IntPtr window, int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMouseButton")]
|
||||
internal static unsafe partial int glfwGetMouseButton(IntPtr window, int button);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCursorPos")]
|
||||
internal static unsafe partial void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPos")]
|
||||
internal static unsafe partial void glfwSetCursorPos(IntPtr window, double xpos, double ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateStandardCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateStandardCursor(int shape);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyCursor")]
|
||||
internal static unsafe partial void glfwDestroyCursor(GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursor")]
|
||||
internal static unsafe partial void glfwSetCursor(IntPtr window, GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetKeyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,int,void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,uint,void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,uint,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharModsCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMouseButtonCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorEnterCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetScrollCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetDropCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,byte**,void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,byte**,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickPresent")]
|
||||
internal static unsafe partial int glfwJoystickPresent(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickAxes")]
|
||||
internal static unsafe partial float* glfwGetJoystickAxes(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickButtons")]
|
||||
internal static unsafe partial byte* glfwGetJoystickButtons(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickHats")]
|
||||
internal static unsafe partial byte* glfwGetJoystickHats(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickName")]
|
||||
internal static unsafe partial byte* glfwGetJoystickName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickGUID")]
|
||||
internal static unsafe partial byte* glfwGetJoystickGUID(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickUserPointer")]
|
||||
internal static unsafe partial void glfwSetJoystickUserPointer(int jid, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickUserPointer")]
|
||||
internal static unsafe partial void* glfwGetJoystickUserPointer(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickIsGamepad")]
|
||||
internal static unsafe partial int glfwJoystickIsGamepad(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickCallback")]
|
||||
internal static unsafe partial delegate*<int,int,void> glfwSetJoystickCallback(delegate*<int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwUpdateGamepadMappings")]
|
||||
internal static unsafe partial int glfwUpdateGamepadMappings(byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadName")]
|
||||
internal static unsafe partial byte* glfwGetGamepadName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadState")]
|
||||
internal static unsafe partial int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetClipboardString")]
|
||||
internal static unsafe partial void glfwSetClipboardString(IntPtr window, byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetClipboardString")]
|
||||
internal static unsafe partial byte* glfwGetClipboardString(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTime")]
|
||||
internal static unsafe partial double glfwGetTime();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetTime")]
|
||||
internal static unsafe partial void glfwSetTime(double time);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerValue")]
|
||||
internal static unsafe partial ulong* glfwGetTimerValue();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerFrequency")]
|
||||
internal static unsafe partial ulong* glfwGetTimerFrequency();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMakeContextCurrent")]
|
||||
internal static unsafe partial void glfwMakeContextCurrent(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCurrentContext")]
|
||||
internal static unsafe partial IntPtr glfwGetCurrentContext();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapBuffers")]
|
||||
internal static unsafe partial void glfwSwapBuffers(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapInterval")]
|
||||
internal static unsafe partial void glfwSwapInterval(int interval);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwExtensionSupported")]
|
||||
internal static unsafe partial int glfwExtensionSupported(byte* extension);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetProcAddress", StringMarshalling = StringMarshalling.Utf8)]
|
||||
internal static unsafe partial IntPtr glfwGetProcAddress(string procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwVulkanSupported")]
|
||||
internal static unsafe partial int glfwVulkanSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetRequiredInstanceExtensions")]
|
||||
internal static unsafe partial byte** glfwGetRequiredInstanceExtensions(uint* count);
|
||||
|
||||
/*
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInstanceProcAddress")] internal static unsafe partial delegate*<void> glfwGetInstanceProcAddress(
|
||||
VkInstance instance,
|
||||
byte* procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPhysicalDevicePresentationSupport")] internal static unsafe partial int glfwGetPhysicalDevicePresentationSupport(
|
||||
VkInstance instance,
|
||||
VkPhysicalDevice device,
|
||||
uint* queuefamily);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindowSurface")] internal static unsafe partial VkResult glfwCreateWindowSurface(
|
||||
VkInstance instance,
|
||||
glfwWindow* window,
|
||||
VkAllocationCallbacks* _allocator,
|
||||
VkSurfaceKHR* surface);
|
||||
/**/
|
||||
|
||||
#endregion api call
|
||||
}
|
||||
}
|
||||
-156
@@ -1,156 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunction
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged [Cdecl]<IntPtr, int, byte**, void>> glfwSetDropCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr,double, double, void>> glfwSetScrollCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}
|
||||
-57
@@ -1,57 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunctionTable
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}
|
||||
-692
@@ -1,692 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static GLFWFunction _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
_glfw = new GLFWFunction();
|
||||
fixed (GLFWFunction* func = &_glfw) { }
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
internal static unsafe int glfwInit()
|
||||
{
|
||||
return _glfw.glfwInit();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwTerminate()
|
||||
{
|
||||
_glfw.glfwTerminate();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwInitHint(int hint, int value)
|
||||
{
|
||||
_glfw.glfwInitHint(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetVersion(int* major, int* minor, int* rev)
|
||||
{
|
||||
_glfw.glfwGetVersion(major, minor, rev);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetVersionString()
|
||||
{
|
||||
return _glfw.glfwGetVersionString();
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetError(byte** description)
|
||||
{
|
||||
return _glfw.glfwGetError(description);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<int, byte*, void> glfwSetErrorCallback(
|
||||
delegate* unmanaged[Cdecl]<int, byte*, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetErrorCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr* glfwGetMonitors(int* count)
|
||||
{
|
||||
return _glfw.glfwGetMonitors(count);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetPrimaryMonitor()
|
||||
{
|
||||
return _glfw.glfwGetPrimaryMonitor();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos)
|
||||
{
|
||||
_glfw.glfwGetMonitorPos(monitor, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height)
|
||||
{
|
||||
_glfw.glfwGetMonitorWorkarea(monitor, xpos, ypos, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM)
|
||||
{
|
||||
_glfw.glfwGetMonitorPhysicalSize(monitor, widthMM, heightMM);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale)
|
||||
{
|
||||
_glfw.glfwGetMonitorContentScale(monitor, xscale, yscale);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetMonitorName(IntPtr monitor)
|
||||
{
|
||||
return _glfw.glfwGetMonitorName(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetMonitorUserPointer(monitor, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetMonitorUserPointer(IntPtr monitor)
|
||||
{
|
||||
return _glfw.glfwGetMonitorUserPointer(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetMonitorCallback(
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetMonitorCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count)
|
||||
{
|
||||
return (glfwVideomode*)_glfw.glfwGetVideoModes(monitor, count);
|
||||
}
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoMode(IntPtr monitor)
|
||||
{
|
||||
return (glfwVideomode*)_glfw.glfwGetVideoMode(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetGamma(IntPtr monitor, float gamma)
|
||||
{
|
||||
_glfw.glfwSetGamma(monitor, gamma);
|
||||
}
|
||||
|
||||
internal static unsafe glfwGammaramp* glfwGetGammaRamp(IntPtr monitor)
|
||||
{
|
||||
return (glfwGammaramp*)_glfw.glfwGetGammaRamp(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp)
|
||||
{
|
||||
_glfw.glfwSetGammaRamp(monitor, (IntPtr)ramp);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDefaultWindowHints()
|
||||
{
|
||||
_glfw.glfwDefaultWindowHints();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWindowHint(int hint, int value)
|
||||
{
|
||||
_glfw.glfwWindowHint(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWindowHintString(int hint, byte* value)
|
||||
{
|
||||
_glfw.glfwWindowHintString(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateWindow(int width, int height, byte* title, IntPtr monitor, IntPtr share)
|
||||
{
|
||||
return _glfw.glfwCreateWindow(width, height, title, monitor, share);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDestroyWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwDestroyWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwWindowShouldClose(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwWindowShouldClose(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowShouldClose(IntPtr window, int value)
|
||||
{
|
||||
_glfw.glfwSetWindowShouldClose(window, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowTitle(IntPtr window, byte* title)
|
||||
{
|
||||
_glfw.glfwSetWindowTitle(window, title);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images)
|
||||
{
|
||||
_glfw.glfwSetWindowIcon(window, count, (IntPtr)images);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos)
|
||||
{
|
||||
_glfw.glfwGetWindowPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowPos(IntPtr window, int xpos, int ypos)
|
||||
{
|
||||
_glfw.glfwSetWindowPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowSize(IntPtr window, int* width, int* height)
|
||||
{
|
||||
_glfw.glfwGetWindowSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight)
|
||||
{
|
||||
_glfw.glfwSetWindowSizeLimits(window, minwidth, minheight, maxwidth, maxheight);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom)
|
||||
{
|
||||
_glfw.glfwSetWindowAspectRatio(window, numer, denom);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowSize(IntPtr window, int width, int height)
|
||||
{
|
||||
_glfw.glfwSetWindowSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetFramebufferSize(IntPtr window, int* width, int* height)
|
||||
{
|
||||
_glfw.glfwGetFramebufferSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowFrameSize(IntPtr window, int* left, int* top, int* right, int* bottom)
|
||||
{
|
||||
_glfw.glfwGetWindowFrameSize(window, left, top, right, bottom);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale)
|
||||
{
|
||||
_glfw.glfwGetWindowContentScale(window, xscale, yscale);
|
||||
}
|
||||
|
||||
internal static unsafe float glfwGetWindowOpacity(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowOpacity(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowOpacity(IntPtr window, float opacity)
|
||||
{
|
||||
_glfw.glfwSetWindowOpacity(window, opacity);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwIconifyWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwIconifyWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwRestoreWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwRestoreWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwMaximizeWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwMaximizeWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwShowWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwShowWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwHideWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwHideWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwFocusWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwFocusWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwRequestWindowAttention(IntPtr window)
|
||||
{
|
||||
_glfw.glfwRequestWindowAttention(window);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetWindowMonitor(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowMonitor(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate)
|
||||
{
|
||||
_glfw.glfwSetWindowMonitor(window, monitor, xpos, ypos, width, height, refreshRate);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetWindowAttrib(IntPtr window, int attrib)
|
||||
{
|
||||
return _glfw.glfwGetWindowAttrib(window, attrib);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowAttrib(IntPtr window, int attrib, int value)
|
||||
{
|
||||
_glfw.glfwSetWindowAttrib(window, attrib, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowUserPointer(IntPtr window, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetWindowUserPointer(window, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetWindowUserPointer(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowUserPointer(window);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowPosCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowSizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowCloseCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowRefreshCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowFocusCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowIconifyCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowMaximizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetFramebufferSizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetFramebufferSizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, float, float, void> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, float, float, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowContentScaleCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwPollEvents()
|
||||
{
|
||||
_glfw.glfwPollEvents();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWaitEvents()
|
||||
{
|
||||
_glfw.glfwWaitEvents();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWaitEventsTimeout(double timeout)
|
||||
{
|
||||
_glfw.glfwWaitEventsTimeout(timeout);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwPostEmptyEvent()
|
||||
{
|
||||
_glfw.glfwPostEmptyEvent();
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetInputMode(IntPtr window, int mode)
|
||||
{
|
||||
return _glfw.glfwGetInputMode(window, mode);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetInputMode(IntPtr window, int mode, int value)
|
||||
{
|
||||
_glfw.glfwSetInputMode(window, mode, value);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwRawMouseMotionSupported()
|
||||
{
|
||||
return _glfw.glfwRawMouseMotionSupported();
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetKeyName(int key, int scancode)
|
||||
{
|
||||
return _glfw.glfwGetKeyName(key, scancode);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetKeyScancode(int key)
|
||||
{
|
||||
return _glfw.glfwGetKeyScancode(key);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetKey(IntPtr window, int key)
|
||||
{
|
||||
return _glfw.glfwGetKey(window, key);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetMouseButton(IntPtr window, int button)
|
||||
{
|
||||
return _glfw.glfwGetMouseButton(window, button);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos)
|
||||
{
|
||||
_glfw.glfwGetCursorPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetCursorPos(IntPtr window, double xpos, double ypos)
|
||||
{
|
||||
_glfw.glfwSetCursorPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateCursor(GLFWimage* image, int xhot, int yhot)
|
||||
{
|
||||
return _glfw.glfwCreateCursor((IntPtr)image, xhot, yhot);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateStandardCursor(int shape)
|
||||
{
|
||||
return _glfw.glfwCreateStandardCursor(shape);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDestroyCursor(IntPtr cursor)
|
||||
{
|
||||
_glfw.glfwDestroyCursor(cursor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetCursor(IntPtr window, IntPtr cursor)
|
||||
{
|
||||
_glfw.glfwSetCursor(window, cursor);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetKeyCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, uint, void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, uint, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCharCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, uint, int, void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, uint, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCharModsCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetMouseButtonCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, double, double, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCursorPosCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCursorEnterCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, double, double, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetScrollCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetDropCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwJoystickPresent(int jid)
|
||||
{
|
||||
return _glfw.glfwJoystickPresent(jid);
|
||||
}
|
||||
|
||||
internal static unsafe float* glfwGetJoystickAxes(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickAxes(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickButtons(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickButtons(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickHats(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickHats(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickName(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickName(jid);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickGUID(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickGUID(jid);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetJoystickUserPointer(int jid, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetJoystickUserPointer(jid, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetJoystickUserPointer(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickUserPointer(jid);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwJoystickIsGamepad(int jid)
|
||||
{
|
||||
return _glfw.glfwJoystickIsGamepad(jid);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<int, int, void> glfwSetJoystickCallback(
|
||||
delegate* unmanaged[Cdecl]<int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetJoystickCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwUpdateGamepadMappings(byte* str)
|
||||
{
|
||||
return _glfw.glfwUpdateGamepadMappings(str);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetGamepadName(int jid)
|
||||
{
|
||||
return _glfw.glfwGetGamepadName(jid);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetGamepadState(int jid, GLFWgamepadstate* state)
|
||||
{
|
||||
return _glfw.glfwGetGamepadState(jid, (IntPtr)state);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetClipboardString(IntPtr window, byte* str)
|
||||
{
|
||||
_glfw.glfwSetClipboardString(window, str);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetClipboardString(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetClipboardString(window);
|
||||
}
|
||||
|
||||
internal static unsafe double glfwGetTime()
|
||||
{
|
||||
return _glfw.glfwGetTime();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetTime(double time)
|
||||
{
|
||||
_glfw.glfwSetTime(time);
|
||||
}
|
||||
|
||||
internal static unsafe ulong glfwGetTimerValue()
|
||||
{
|
||||
return _glfw.glfwGetTimerValue();
|
||||
}
|
||||
|
||||
internal static unsafe ulong glfwGetTimerFrequency()
|
||||
{
|
||||
return _glfw.glfwGetTimerFrequency();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwMakeContextCurrent(IntPtr window)
|
||||
{
|
||||
_glfw.glfwMakeContextCurrent(window);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetCurrentContext()
|
||||
{
|
||||
return _glfw.glfwGetCurrentContext();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSwapBuffers(IntPtr window)
|
||||
{
|
||||
_glfw.glfwSwapBuffers(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSwapInterval(int interval)
|
||||
{
|
||||
_glfw.glfwSwapInterval(interval);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwExtensionSupported(byte* extension)
|
||||
{
|
||||
return _glfw.glfwExtensionSupported(extension);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetProcAddress(byte* procname)
|
||||
{
|
||||
return _glfw.glfwGetProcAddress(procname);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwVulkanSupported()
|
||||
{
|
||||
return _glfw.glfwVulkanSupported();
|
||||
}
|
||||
|
||||
internal static unsafe byte** glfwGetRequiredInstanceExtensions(uint* count)
|
||||
{
|
||||
return _glfw.glfwGetRequiredInstanceExtensions(count);
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
-122
@@ -1,122 +0,0 @@
|
||||
#include "StgSharpNative.h"
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
memset(table, 0, sizeof(GLFWFunctionTable));
|
||||
table->glfwInit = glfwInit;
|
||||
table->glfwTerminate = glfwTerminate;
|
||||
table->glfwInitHint = glfwInitHint;
|
||||
table->glfwGetVersion = glfwGetVersion;
|
||||
table->glfwGetVersionString = glfwGetVersionString;
|
||||
table->glfwGetError = glfwGetError;
|
||||
table->glfwSetErrorCallback = glfwSetErrorCallback;
|
||||
table->glfwGetMonitors = glfwGetMonitors;
|
||||
table->glfwGetPrimaryMonitor = glfwGetPrimaryMonitor;
|
||||
table->glfwGetMonitorPos = glfwGetMonitorPos;
|
||||
table->glfwGetMonitorWorkarea = glfwGetMonitorWorkarea;
|
||||
table->glfwGetMonitorPhysicalSize = glfwGetMonitorPhysicalSize;
|
||||
table->glfwGetMonitorContentScale = glfwGetMonitorContentScale;
|
||||
table->glfwGetMonitorName = glfwGetMonitorName;
|
||||
table->glfwSetMonitorUserPointer = glfwSetMonitorUserPointer;
|
||||
table->glfwGetMonitorUserPointer = glfwGetMonitorUserPointer;
|
||||
table->glfwSetMonitorCallback = glfwSetMonitorCallback;
|
||||
table->glfwGetVideoModes = glfwGetVideoModes;
|
||||
table->glfwGetVideoMode = glfwGetVideoMode;
|
||||
table->glfwSetGamma = glfwSetGamma;
|
||||
table->glfwGetGammaRamp = glfwGetGammaRamp;
|
||||
table->glfwSetGammaRamp = glfwSetGammaRamp;
|
||||
table->glfwDefaultWindowHints = glfwDefaultWindowHints;
|
||||
table->glfwWindowHint = glfwWindowHint;
|
||||
table->glfwWindowHintString = glfwWindowHintString;
|
||||
table->glfwCreateWindow = glfwCreateWindow;
|
||||
table->glfwDestroyWindow = glfwDestroyWindow;
|
||||
table->glfwWindowShouldClose = glfwWindowShouldClose;
|
||||
table->glfwSetWindowShouldClose = glfwSetWindowShouldClose;
|
||||
table->glfwSetWindowTitle = glfwSetWindowTitle;
|
||||
table->glfwSetWindowIcon = glfwSetWindowIcon;
|
||||
table->glfwGetWindowPos = glfwGetWindowPos;
|
||||
table->glfwSetWindowPos = glfwSetWindowPos;
|
||||
table->glfwGetWindowSize = glfwGetWindowSize;
|
||||
table->glfwSetWindowSizeLimits = glfwSetWindowSizeLimits;
|
||||
table->glfwSetWindowAspectRatio = glfwSetWindowAspectRatio;
|
||||
table->glfwSetWindowSize = glfwSetWindowSize;
|
||||
table->glfwGetFramebufferSize = glfwGetFramebufferSize;
|
||||
table->glfwGetWindowFrameSize = glfwGetWindowFrameSize;
|
||||
table->glfwGetWindowContentScale = glfwGetWindowContentScale;
|
||||
table->glfwGetWindowOpacity = glfwGetWindowOpacity;
|
||||
table->glfwSetWindowOpacity = glfwSetWindowOpacity;
|
||||
table->glfwIconifyWindow = glfwIconifyWindow;
|
||||
table->glfwRestoreWindow = glfwRestoreWindow;
|
||||
table->glfwMaximizeWindow = glfwMaximizeWindow;
|
||||
table->glfwShowWindow = glfwShowWindow;
|
||||
table->glfwHideWindow = glfwHideWindow;
|
||||
table->glfwFocusWindow = glfwFocusWindow;
|
||||
table->glfwRequestWindowAttention = glfwRequestWindowAttention;
|
||||
table->glfwGetWindowMonitor = glfwGetWindowMonitor;
|
||||
table->glfwSetWindowMonitor = glfwSetWindowMonitor;
|
||||
table->glfwGetWindowAttrib = glfwGetWindowAttrib;
|
||||
table->glfwSetWindowAttrib = glfwSetWindowAttrib;
|
||||
table->glfwSetWindowUserPointer = glfwSetWindowUserPointer;
|
||||
table->glfwGetWindowUserPointer = glfwGetWindowUserPointer;
|
||||
table->glfwSetWindowPosCallback = glfwSetWindowPosCallback;
|
||||
table->glfwSetWindowSizeCallback = glfwSetWindowSizeCallback;
|
||||
table->glfwSetWindowCloseCallback = glfwSetWindowCloseCallback;
|
||||
table->glfwSetWindowRefreshCallback = glfwSetWindowRefreshCallback;
|
||||
table->glfwSetWindowFocusCallback = glfwSetWindowFocusCallback;
|
||||
table->glfwSetWindowIconifyCallback = glfwSetWindowIconifyCallback;
|
||||
table->glfwSetWindowMaximizeCallback = glfwSetWindowMaximizeCallback;
|
||||
table->glfwSetFramebufferSizeCallback = glfwSetFramebufferSizeCallback;
|
||||
table->glfwSetWindowContentScaleCallback = glfwSetWindowContentScaleCallback;
|
||||
table->glfwPollEvents = glfwPollEvents;
|
||||
table->glfwWaitEvents = glfwWaitEvents;
|
||||
table->glfwWaitEventsTimeout = glfwWaitEventsTimeout;
|
||||
table->glfwPostEmptyEvent = glfwPostEmptyEvent;
|
||||
table->glfwGetInputMode = glfwGetInputMode;
|
||||
table->glfwSetInputMode = glfwSetInputMode;
|
||||
table->glfwRawMouseMotionSupported = glfwRawMouseMotionSupported;
|
||||
table->glfwGetKeyName = glfwGetKeyName;
|
||||
table->glfwGetKeyScancode = glfwGetKeyScancode;
|
||||
table->glfwGetKey = glfwGetKey;
|
||||
table->glfwGetMouseButton = glfwGetMouseButton;
|
||||
table->glfwGetCursorPos = glfwGetCursorPos;
|
||||
table->glfwSetCursorPos = glfwSetCursorPos;
|
||||
table->glfwCreateCursor = glfwCreateCursor;
|
||||
table->glfwCreateStandardCursor = glfwCreateStandardCursor;
|
||||
table->glfwDestroyCursor = glfwDestroyCursor;
|
||||
table->glfwSetCursor = glfwSetCursor;
|
||||
table->glfwSetKeyCallback = glfwSetKeyCallback;
|
||||
table->glfwSetCharCallback = glfwSetCharCallback;
|
||||
table->glfwSetCharModsCallback = glfwSetCharModsCallback;
|
||||
table->glfwSetMouseButtonCallback = glfwSetMouseButtonCallback;
|
||||
table->glfwSetCursorPosCallback = glfwSetCursorPosCallback;
|
||||
table->glfwSetCursorEnterCallback = glfwSetCursorEnterCallback;
|
||||
table->glfwSetScrollCallback = glfwSetScrollCallback;
|
||||
table->glfwSetDropCallback = glfwSetDropCallback;
|
||||
table->glfwJoystickPresent = glfwJoystickPresent;
|
||||
table->glfwGetJoystickAxes = glfwGetJoystickAxes;
|
||||
table->glfwGetJoystickButtons = glfwGetJoystickButtons;
|
||||
table->glfwGetJoystickGUID = glfwGetJoystickGUID;
|
||||
table->glfwGetJoystickHats = glfwGetJoystickHats;
|
||||
table->glfwGetJoystickName = glfwGetJoystickName;
|
||||
table->glfwGetJoystickUserPointer = glfwGetJoystickUserPointer;
|
||||
table->glfwJoystickIsGamepad = glfwJoystickIsGamepad;
|
||||
table->glfwSetJoystickCallback = glfwSetJoystickCallback;
|
||||
table->glfwUpdateGamepadMappings = glfwUpdateGamepadMappings;
|
||||
table->glfwGetGamepadName = glfwGetGamepadName;
|
||||
table->glfwGetGamepadState = glfwGetGamepadState;
|
||||
table->glfwSetClipboardString = glfwSetClipboardString;
|
||||
table->glfwGetClipboardString = glfwGetClipboardString;
|
||||
table->glfwGetTime = glfwGetTime;
|
||||
table->glfwSetTime = glfwSetTime;
|
||||
table->glfwGetTimerValue = glfwGetTimerValue;
|
||||
table->glfwGetTimerFrequency = glfwGetTimerFrequency;
|
||||
table->glfwMakeContextCurrent = glfwMakeContextCurrent;
|
||||
table->glfwGetCurrentContext = glfwGetCurrentContext;
|
||||
table->glfwSwapBuffers = glfwSwapBuffers;
|
||||
table->glfwSwapInterval = glfwSwapInterval;
|
||||
table->glfwExtensionSupported = glfwExtensionSupported;
|
||||
table->glfwGetProcAddress = glfwGetProcAddress;
|
||||
table->glfwVulkanSupported = glfwVulkanSupported;
|
||||
table->glfwGetRequiredInstanceExtensions = glfwGetRequiredInstanceExtensions;
|
||||
}
|
||||
-132
@@ -1,132 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "../glfw/glfw3.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwTerminate)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwGetVersion)(int* major, int* minor, int* rev);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
int (*glfwGetError)(const char** description);
|
||||
void* (*glfwSetErrorCallback)(void* callback);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void glfwSetMonitorUserPointer(GLFWmonitor* monitor, void* pointer);
|
||||
void* glfwGetMonitorUserPointer(GLFWmonitor* monitor);
|
||||
void* (*glfwSetMonitorCallback)(void* callback);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGamma)(GLFWmonitor* monitor, float gamma);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwWindowHint)(int hint, int value);
|
||||
void (*glfwWindowHintString)(int hint, const char* value);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwShowWindow)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
void* (*glfwSetWindowPosCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowSizeCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowCloseCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowRefreshCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowFocusCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowIconifyCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, void* callback);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
void (*glfwSetInputMode)(GLFWwindow* window, int mode, int value);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursor* (*glfwCreateCursor)(const GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
void* (*glfwSetKeyCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetCharCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetCharModsCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetMouseButtonCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetCursorPosCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetCursorEnterCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetScrollCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetDropCallback)(GLFWwindow* window, void* callback);
|
||||
int (*glfwJoystickPresent)(int jid);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwJoystickIsGamepad)(int jid);
|
||||
void* (*glfwSetJoystickCallback)(void* callback);
|
||||
int (*glfwUpdateGamepadMappings)(const char* str);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* str);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
double (*glfwGetTime)(void);
|
||||
void (*glfwSetTime)(double time);
|
||||
unsigned long long (*glfwGetTimerValue)(void);
|
||||
unsigned long long (*glfwGetTimerFrequency)(void);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
int (*glfwExtensionSupported)(const char* extension);
|
||||
void* (*glfwGetProcAddress)(const char* procname);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
const char** (*glfwGetRequiredInstanceExtensions)(unsigned int* count);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-366
@@ -1,366 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static GLFWFunction _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
_glfw = new GLFWFunction();
|
||||
fixed (GLFWFunction* func = &_glfw) { }
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
internal static unsafe int glfwInit() => _glfw.glfwInit();
|
||||
|
||||
internal static unsafe void glfwTerminate() => _glfw.glfwTerminate();
|
||||
|
||||
internal static unsafe void glfwInitHint(int hint, int value) => _glfw.glfwInitHint(hint, value);
|
||||
|
||||
internal static unsafe void glfwGetVersion(int* major, int* minor, int* rev) => _glfw.glfwGetVersion(major, minor, rev);
|
||||
|
||||
internal static unsafe byte* glfwGetVersionString() => _glfw.glfwGetVersionString();
|
||||
|
||||
internal static unsafe int glfwGetError(byte** description) => _glfw.glfwGetError(description);
|
||||
|
||||
internal static unsafe delegate*<int, byte*, void> glfwSetErrorCallback(delegate*<int, byte*, void> callback) => _glfw.glfwSetErrorCallback(callback);
|
||||
|
||||
internal static unsafe IntPtr* glfwGetMonitors(int* count) => _glfw.glfwGetMonitors(count);
|
||||
|
||||
internal static unsafe IntPtr glfwGetPrimaryMonitor() => _glfw.glfwGetPrimaryMonitor();
|
||||
|
||||
internal static unsafe void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos) => _glfw.glfwGetMonitorPos(monitor, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height)
|
||||
{
|
||||
_glfw.glfwGetMonitorWorkarea(monitor, xpos, ypos, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM) => _glfw.glfwGetMonitorPhysicalSize(monitor, widthMM, heightMM);
|
||||
|
||||
internal static unsafe void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale) => _glfw.glfwGetMonitorContentScale(monitor, xscale, yscale);
|
||||
|
||||
internal static unsafe byte* glfwGetMonitorName(IntPtr monitor) => _glfw.glfwGetMonitorName(monitor);
|
||||
|
||||
internal static unsafe void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer) => _glfw.glfwSetMonitorUserPointer(monitor, pointer);
|
||||
|
||||
internal static unsafe void* glfwGetMonitorUserPointer(IntPtr monitor) => _glfw.glfwGetMonitorUserPointer(monitor);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetMonitorCallback(
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetMonitorCallback(callback);
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count) => _glfw.glfwGetVideoModes(monitor, count);
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoMode(IntPtr monitor) => _glfw.glfwGetVideoMode(monitor);
|
||||
|
||||
internal static unsafe void glfwSetGamma(IntPtr monitor, float gamma) => _glfw.glfwSetGamma(monitor, gamma);
|
||||
|
||||
internal static unsafe glfwGammaramp* glfwGetGammaRamp(IntPtr monitor) => _glfw.glfwGetGammaRamp(monitor);
|
||||
|
||||
internal static unsafe void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp) => _glfw.glfwSetGammaRamp(monitor, ramp);
|
||||
|
||||
internal static unsafe void glfwDefaultWindowHints() => _glfw.glfwDefaultWindowHints();
|
||||
|
||||
internal static unsafe void glfwWindowHint(int hint, int value) => _glfw.glfwWindowHint(hint, value);
|
||||
|
||||
internal static unsafe void glfwWindowHintString(int hint, byte* value) => _glfw.glfwWindowHintString(hint, value);
|
||||
|
||||
internal static unsafe IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
byte[] title,
|
||||
IntPtr monitor,
|
||||
IntPtr share) => _glfw.glfwCreateWindow(width, height, title, monitor, share);
|
||||
|
||||
internal static unsafe void glfwDestroyWindow(IntPtr window) => _glfw.glfwDestroyWindow(window);
|
||||
|
||||
internal static unsafe int glfwWindowShouldClose(IntPtr window) => _glfw.glfwWindowShouldClose(window);
|
||||
|
||||
internal static unsafe void glfwSetWindowShouldClose(IntPtr window, int value) => _glfw.glfwSetWindowShouldClose(window, value);
|
||||
|
||||
internal static unsafe void glfwSetWindowTitle(IntPtr window, byte* title) => _glfw.glfwSetWindowTitle(window, title);
|
||||
|
||||
internal static unsafe void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images) => _glfw.glfwSetWindowIcon(window, count, images);
|
||||
|
||||
internal static unsafe void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos) => _glfw.glfwGetWindowPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwSetWindowPos(IntPtr window, int xpos, int ypos) => _glfw.glfwSetWindowPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwGetWindowSize(IntPtr window, int* width, int* height) => _glfw.glfwGetWindowSize(window, width, height);
|
||||
|
||||
internal static unsafe void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight) => _glfw.glfwSetWindowSizeLimits(window, minwidth, minheight, maxwidth, maxheight);
|
||||
|
||||
internal static unsafe void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom) => _glfw.glfwSetWindowAspectRatio(window, numer, denom);
|
||||
|
||||
internal static unsafe void glfwSetWindowSize(IntPtr window, int width, int height) => _glfw.glfwSetWindowSize(window, width, height);
|
||||
|
||||
internal static unsafe void glfwGetFramebufferSize(IntPtr window, int* width, int* height) => _glfw.glfwGetFramebufferSize(window, width, height);
|
||||
|
||||
internal static unsafe void glfwGetWindowFrameSize(IntPtr window, int* left, int* top, int* right, int* bottom) => _glfw.glfwGetWindowFrameSize(window, left, top, right, bottom);
|
||||
|
||||
internal static unsafe void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale) => _glfw.glfwGetWindowContentScale(window, xscale, yscale);
|
||||
|
||||
internal static unsafe float glfwGetWindowOpacity(IntPtr window) => _glfw.glfwGetWindowOpacity(window);
|
||||
|
||||
internal static unsafe void glfwSetWindowOpacity(IntPtr window, float opacity) => _glfw.glfwSetWindowOpacity(window, opacity);
|
||||
|
||||
internal static unsafe void glfwIconifyWindow(IntPtr window) => _glfw.glfwIconifyWindow(window);
|
||||
|
||||
internal static unsafe void glfwRestoreWindow(IntPtr window) => _glfw.glfwRestoreWindow(window);
|
||||
|
||||
internal static unsafe void glfwMaximizeWindow(IntPtr window) => _glfw.glfwMaximizeWindow(window);
|
||||
|
||||
internal static unsafe void glfwShowWindow(IntPtr window) => _glfw.glfwShowWindow(window);
|
||||
|
||||
internal static unsafe void glfwHideWindow(IntPtr window) => _glfw.glfwHideWindow(window);
|
||||
|
||||
internal static unsafe void glfwFocusWindow(IntPtr window) => _glfw.glfwFocusWindow(window);
|
||||
|
||||
internal static unsafe void glfwRequestWindowAttention(IntPtr window) => _glfw.glfwRequestWindowAttention(window);
|
||||
|
||||
internal static unsafe IntPtr glfwGetWindowMonitor(IntPtr window) => _glfw.glfwGetWindowMonitor(window);
|
||||
|
||||
internal static unsafe void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate) => _glfw.glfwSetWindowMonitor(
|
||||
window, monitor, xpos, ypos, width, height, refreshRate);
|
||||
|
||||
internal static unsafe int glfwGetWindowAttrib(IntPtr window, int attrib) => _glfw.glfwGetWindowAttrib(window, attrib);
|
||||
|
||||
internal static unsafe void glfwSetWindowAttrib(IntPtr window, int attrib, int value) => _glfw.glfwSetWindowAttrib(window, attrib, value);
|
||||
|
||||
internal static unsafe void glfwSetWindowUserPointer(IntPtr window, void* pointer) => _glfw.glfwSetWindowUserPointer(window, pointer);
|
||||
|
||||
internal static unsafe void* glfwGetWindowUserPointer(IntPtr window) => _glfw.glfwGetWindowUserPointer(window);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback) => _glfw.glfwSetWindowPosCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, void> callback) => _glfw.glfwSetWindowSizeCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback) => _glfw.glfwSetWindowCloseCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback) => _glfw.glfwSetWindowRefreshCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetWindowFocusCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetWindowIconifyCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetWindowMaximizeCallback(window, callback);
|
||||
|
||||
internal static unsafe FrameBufferSizeHandler glfwSetFramebufferSizeCallback(IntPtr window, IntPtr callback) => _glfw.glfwSetFramebufferSizeCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, float, float> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, float, float> callback) => _glfw.glfwSetWindowContentScaleCallback(window, callback);
|
||||
|
||||
internal static unsafe void glfwPollEvents() => _glfw.glfwPollEvents();
|
||||
|
||||
internal static unsafe void glfwWaitEvents() => _glfw.glfwWaitEvents();
|
||||
|
||||
internal static unsafe void glfwWaitEventsTimeout(double timeout) => _glfw.glfwWaitEventsTimeout(timeout);
|
||||
|
||||
internal static unsafe void glfwPostEmptyEvent() => _glfw.glfwPostEmptyEvent();
|
||||
|
||||
internal static unsafe int glfwGetInputMode(IntPtr window, int mode) => _glfw.glfwGetInputMode(window, mode);
|
||||
|
||||
internal static unsafe void glfwSetInputMode(IntPtr window, int mode, int value) => _glfw.glfwSetInputMode(window, mode, value);
|
||||
|
||||
internal static unsafe int glfwRawMouseMotionSupported() => _glfw.glfwRawMouseMotionSupported();
|
||||
|
||||
internal static unsafe byte* glfwGetKeyName(int key, int scancode) => _glfw.glfwGetKeyName(key, scancode);
|
||||
|
||||
internal static unsafe int glfwGetKeyScancode(int key) => _glfw.glfwGetKeyScancode(key);
|
||||
|
||||
internal static unsafe KeyStatus glfwGetKey(IntPtr window, int key) => _glfw.glfwGetKey(window, key);
|
||||
|
||||
internal static unsafe int glfwGetMouseButton(IntPtr window, int button) => _glfw.glfwGetMouseButton(window, button);
|
||||
|
||||
internal static unsafe void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos) => _glfw.glfwGetCursorPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwSetCursorPos(IntPtr window, double xpos, double ypos) => _glfw.glfwSetCursorPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot) => _glfw.glfwCreateCursor(image, xhot, yhot);
|
||||
|
||||
internal static unsafe GLFWcursor* glfwCreateStandardCursor(int shape) => _glfw.glfwCreateStandardCursor(shape);
|
||||
|
||||
internal static unsafe void glfwDestroyCursor(GLFWcursor* cursor) => _glfw.glfwDestroyCursor(cursor);
|
||||
|
||||
internal static unsafe void glfwSetCursor(IntPtr window, GLFWcursor* cursor) => _glfw.glfwSetCursor(window, cursor);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, int, int, void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, int, int, void> callback) => _glfw.glfwSetKeyCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, uint, void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, uint, void> callback) => _glfw.glfwSetCharCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, void> callback) => _glfw.glfwSetCharModsCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, int, void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, int, void> callback) => _glfw.glfwSetMouseButtonCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, double, double, void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, double, double, void> callback) => _glfw.glfwSetCursorPosCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetCursorEnterCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, double, double, void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, double, double, void> callback) => _glfw.glfwSetScrollCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, byte**, void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, byte**, void> callback) => _glfw.glfwSetDropCallback(window, callback);
|
||||
|
||||
internal static unsafe int glfwJoystickPresent(int jid) => _glfw.glfwJoystickPresent(jid);
|
||||
|
||||
internal static unsafe float* glfwGetJoystickAxes(int jid, int* count) => _glfw.glfwGetJoystickAxes(jid, count);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickButtons(int jid, int* count) => _glfw.glfwGetJoystickButtons(jid, count);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickHats(int jid, int* count) => _glfw.glfwGetJoystickHats(jid, count);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickName(int jid) => _glfw.glfwGetJoystickName(jid);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickGUID(int jid) => _glfw.glfwGetJoystickGUID(jid);
|
||||
|
||||
internal static unsafe void glfwSetJoystickUserPointer(int jid, void* pointer) => _glfw.glfwSetJoystickUserPointer(jid, pointer);
|
||||
|
||||
internal static unsafe void* glfwGetJoystickUserPointer(int jid) => _glfw.glfwGetJoystickUserPointer(jid);
|
||||
|
||||
internal static unsafe int glfwJoystickIsGamepad(int jid) => _glfw.glfwJoystickIsGamepad(jid);
|
||||
|
||||
internal static unsafe delegate*<int, int, void> glfwSetJoystickCallback(delegate*<int, int, void> callback) => _glfw.glfwSetJoystickCallback(callback);
|
||||
|
||||
internal static unsafe int glfwUpdateGamepadMappings(byte* str) => _glfw.glfwUpdateGamepadMappings(str);
|
||||
|
||||
internal static unsafe byte* glfwGetGamepadName(int jid) => _glfw.glfwGetGamepadName(jid);
|
||||
|
||||
internal static unsafe int glfwGetGamepadState(int jid, GLFWgamepadstate* state) => _glfw.glfwGetGamepadState(jid, state);
|
||||
|
||||
internal static unsafe void glfwSetClipboardString(IntPtr window, byte* str) => _glfw.glfwSetClipboardString(window, str);
|
||||
|
||||
internal static unsafe byte* glfwGetClipboardString(IntPtr window) => _glfw.glfwGetClipboardString(window);
|
||||
|
||||
internal static unsafe double glfwGetTime() => _glfw.glfwGetTime();
|
||||
|
||||
internal static unsafe void glfwSetTime(double time) => _glfw.glfwSetTime(time);
|
||||
|
||||
internal static unsafe ulong* glfwGetTimerValue() => _glfw.glfwGetTimerValue();
|
||||
|
||||
internal static unsafe ulong* glfwGetTimerFrequency() => _glfw.glfwGetTimerFrequency();
|
||||
|
||||
internal static unsafe void glfwMakeContextCurrent(IntPtr window) => _glfw.glfwMakeContextCurrent(window);
|
||||
|
||||
internal static unsafe IntPtr glfwGetCurrentContext() => _glfw.glfwGetCurrentContext();
|
||||
|
||||
internal static unsafe void glfwSwapBuffers(IntPtr window) => _glfw.glfwSwapBuffers(window);
|
||||
|
||||
internal static unsafe void glfwSwapInterval(int interval) => _glfw.glfwSwapInterval(interval);
|
||||
|
||||
internal static unsafe int glfwExtensionSupported(byte* extension) => _glfw.glfwExtensionSupported(extension);
|
||||
|
||||
internal static unsafe IntPtr glfwGetProcAddress(string procname) => _glfw.glfwGetProcAddress(procname);
|
||||
|
||||
internal static unsafe int glfwVulkanSupported() => _glfw.glfwVulkanSupported();
|
||||
|
||||
internal static unsafe byte** glfwGetRequiredInstanceExtensions(uint* count) => _glfw.glfwGetRequiredInstanceExtensions(count);
|
||||
|
||||
/*
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInstanceProcAddress")] internal static unsafe partial delegate*<void> glfwGetInstanceProcAddress(
|
||||
VkInstance instance,
|
||||
byte* procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPhysicalDevicePresentationSupport")] internal static unsafe partial int glfwGetPhysicalDevicePresentationSupport(
|
||||
VkInstance instance,
|
||||
VkPhysicalDevice device,
|
||||
uint* queuefamily);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindowSurface")] internal static unsafe partial VkResult glfwCreateWindowSurface(
|
||||
VkInstance instance,
|
||||
glfwWindow* window,
|
||||
VkAllocationCallbacks* _allocator,
|
||||
VkSurfaceKHR* surface);
|
||||
/**/
|
||||
|
||||
#endregion api call
|
||||
}
|
||||
}
|
||||
-157
@@ -1,157 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfwFunction.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunction
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<int*, int*, int*, void> glfwGetVersion;
|
||||
public delegate* unmanaged[Cdecl]<byte**> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>> glfwSetDropCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, byte*, void>, delegate* unmanaged[Cdecl]<int, byte*, void>> glfwSetErrorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetScrollCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}}
|
||||
-132
@@ -1,132 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "../glfw/glfw3.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwTerminate)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwGetVersion)(int* major, int* minor, int* rev);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
int (*glfwGetError)(const char** description);
|
||||
void* (*glfwSetErrorCallback)(void* callback);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void glfwSetMonitorUserPointer(GLFWmonitor* monitor, void* pointer);
|
||||
void* glfwGetMonitorUserPointer(GLFWmonitor* monitor);
|
||||
void* (*glfwSetMonitorCallback)(void* callback);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGamma)(GLFWmonitor* monitor, float gamma);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwWindowHint)(int hint, int value);
|
||||
void (*glfwWindowHintString)(int hint, const char* value);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwShowWindow)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
void* (*glfwSetWindowPosCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowSizeCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowCloseCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowRefreshCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowFocusCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowIconifyCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, void* callback);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
void (*glfwSetInputMode)(GLFWwindow* window, int mode, int value);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursor* (*glfwCreateCursor)(const GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
void* (*glfwSetKeyCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetCharCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetCharModsCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetMouseButtonCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetCursorPosCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetCursorEnterCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetScrollCallback)(GLFWwindow* window, void* callback);
|
||||
void* (*glfwSetDropCallback)(GLFWwindow* window, void* callback);
|
||||
int (*glfwJoystickPresent)(int jid);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwJoystickIsGamepad)(int jid);
|
||||
void* (*glfwSetJoystickCallback)(void* callback);
|
||||
int (*glfwUpdateGamepadMappings)(const char* str);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* str);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
double (*glfwGetTime)(void);
|
||||
void (*glfwSetTime)(double time);
|
||||
unsigned long long (*glfwGetTimerValue)(void);
|
||||
unsigned long long (*glfwGetTimerFrequency)(void);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
int (*glfwExtensionSupported)(const char* extension);
|
||||
void* (*glfwGetProcAddress)(const char* procname);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
const char** (*glfwGetRequiredInstanceExtensions)(unsigned int* count);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "../glfw/glfw3.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
void (*glfwCreateCursor)(GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
int (*glfwGetError)(const char** description);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
double (*glfwGetTime)(void);
|
||||
uint64_t (*glfwGetTimerFrequency)(void);
|
||||
uint64_t (*glfwGetTimerValue)(void);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* string);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
void (*glfwSetJoystickUserPointer)(int jid, void* pointer);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
void (*glfwSetTime)(double time);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
void (*glfwTerminate)(void);
|
||||
int (*glfwUpdateGamepadMappings)(const char* string);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "../glfw/glfw3.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
void (*glfwCreateCursor)(GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
int (*glfwGetError)(const char** description);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
double (*glfwGetTime)(void);
|
||||
uint64_t (*glfwGetTimerFrequency)(void);
|
||||
uint64_t (*glfwGetTimerValue)(void);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* string);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
void (*glfwSetJoystickUserPointer)(int jid, void* pointer);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
void (*glfwSetTime)(double time);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
void (*glfwTerminate)(void);
|
||||
int (*glfwUpdateGamepadMappings)(const char* string);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
#include "StgSharpNative.h"
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
-156
@@ -1,156 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunction
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged [Cdecl]<IntPtr, int, byte**, void>> glfwSetDropCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr,double, double, void>> glfwSetScrollCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
#include "StgSharpNative.h"
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine($"{logType}\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release();
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"{logType}\t@\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-132
@@ -1,132 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "../glfw/glfw3.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwTerminate)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwGetVersion)(int* major, int* minor, int* rev);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
int (*glfwGetError)(const char** description);
|
||||
GLFWerrorfun (*glfwSetErrorCallback)(GLFWerrorfun callback);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGamma)(GLFWmonitor* monitor, float gamma);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwWindowHint)(int hint, int value);
|
||||
void (*glfwWindowHintString)(int hint, const char* value);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwShowWindow)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
void (*glfwSetInputMode)(GLFWwindow* window, int mode, int value);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursor* (*glfwCreateCursor)(const GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
int (*glfwJoystickPresent)(int jid);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwJoystickIsGamepad)(int jid);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
int (*glfwUpdateGamepadMappings)(const char* str);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* str);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
double (*glfwGetTime)(void);
|
||||
void (*glfwSetTime)(double time);
|
||||
unsigned long long (*glfwGetTimerValue)(void);
|
||||
unsigned long long (*glfwGetTimerFrequency)(void);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
int (*glfwExtensionSupported)(const char* extension);
|
||||
GLFWglproc (*glfwGetProcAddress)(const char* procname);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
const char** (*glfwGetRequiredInstanceExtensions)(unsigned int* count);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-366
@@ -1,366 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static GLFWFunction _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
_glfw = new GLFWFunction();
|
||||
fixed (GLFWFunction* func = &_glfw) { }
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
internal static unsafe int glfwInit() => _glfw.glfwInit();
|
||||
|
||||
internal static unsafe void glfwTerminate() => _glfw.glfwTerminate();
|
||||
|
||||
internal static unsafe void glfwInitHint(int hint, int value) => _glfw.glfwInitHint(hint, value);
|
||||
|
||||
internal static unsafe void glfwGetVersion(int* major, int* minor, int* rev) => _glfw.glfwGetVersion(major, minor, rev);
|
||||
|
||||
internal static unsafe byte* glfwGetVersionString() => _glfw.glfwGetVersionString();
|
||||
|
||||
internal static unsafe int glfwGetError(byte** description) => _glfw.glfwGetError(description);
|
||||
|
||||
internal static unsafe delegate*<int, byte*, void> glfwSetErrorCallback(delegate*<int, byte*, void> callback) => _glfw.glfwSetErrorCallback(callback);
|
||||
|
||||
internal static unsafe IntPtr* glfwGetMonitors(int* count) => _glfw.glfwGetMonitors(count);
|
||||
|
||||
internal static unsafe IntPtr glfwGetPrimaryMonitor() => _glfw.glfwGetPrimaryMonitor();
|
||||
|
||||
internal static unsafe void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos) => _glfw.glfwGetMonitorPos(monitor, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height)
|
||||
{
|
||||
_glfw.glfwGetMonitorWorkarea(monitor, xpos, ypos, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM) => _glfw.glfwGetMonitorPhysicalSize(monitor, widthMM, heightMM);
|
||||
|
||||
internal static unsafe void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale) => _glfw.glfwGetMonitorContentScale(monitor, xscale, yscale);
|
||||
|
||||
internal static unsafe byte* glfwGetMonitorName(IntPtr monitor) => _glfw.glfwGetMonitorName(monitor);
|
||||
|
||||
internal static unsafe void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer) => _glfw.glfwSetMonitorUserPointer(monitor, pointer);
|
||||
|
||||
internal static unsafe void* glfwGetMonitorUserPointer(IntPtr monitor) => _glfw.glfwGetMonitorUserPointer(monitor);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetMonitorCallback(
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetMonitorCallback(callback);
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count) => _glfw.glfwGetVideoModes(monitor, count);
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoMode(IntPtr monitor) => _glfw.glfwGetVideoMode(monitor);
|
||||
|
||||
internal static unsafe void glfwSetGamma(IntPtr monitor, float gamma) => _glfw.glfwSetGamma(monitor, gamma);
|
||||
|
||||
internal static unsafe glfwGammaramp* glfwGetGammaRamp(IntPtr monitor) => _glfw.glfwGetGammaRamp(monitor);
|
||||
|
||||
internal static unsafe void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp) => _glfw.glfwSetGammaRamp(monitor, ramp);
|
||||
|
||||
internal static unsafe void glfwDefaultWindowHints() => _glfw.glfwDefaultWindowHints();
|
||||
|
||||
internal static unsafe void glfwWindowHint(int hint, int value) => _glfw.glfwWindowHint(hint, value);
|
||||
|
||||
internal static unsafe void glfwWindowHintString(int hint, byte* value) => _glfw.glfwWindowHintString(hint, value);
|
||||
|
||||
internal static unsafe IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
byte[] title,
|
||||
IntPtr monitor,
|
||||
IntPtr share) => _glfw.glfwCreateWindow(width, height, title, monitor, share);
|
||||
|
||||
internal static unsafe void glfwDestroyWindow(IntPtr window) => _glfw.glfwDestroyWindow(window);
|
||||
|
||||
internal static unsafe int glfwWindowShouldClose(IntPtr window) => _glfw.glfwWindowShouldClose(window);
|
||||
|
||||
internal static unsafe void glfwSetWindowShouldClose(IntPtr window, int value) => _glfw.glfwSetWindowShouldClose(window, value);
|
||||
|
||||
internal static unsafe void glfwSetWindowTitle(IntPtr window, byte* title) => _glfw.glfwSetWindowTitle(window, title);
|
||||
|
||||
internal static unsafe void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images) => _glfw.glfwSetWindowIcon(window, count, images);
|
||||
|
||||
internal static unsafe void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos) => _glfw.glfwGetWindowPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwSetWindowPos(IntPtr window, int xpos, int ypos) => _glfw.glfwSetWindowPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwGetWindowSize(IntPtr window, int* width, int* height) => _glfw.glfwGetWindowSize(window, width, height);
|
||||
|
||||
internal static unsafe void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight) => _glfw.glfwSetWindowSizeLimits(window, minwidth, minheight, maxwidth, maxheight);
|
||||
|
||||
internal static unsafe void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom) => _glfw.glfwSetWindowAspectRatio(window, numer, denom);
|
||||
|
||||
internal static unsafe void glfwSetWindowSize(IntPtr window, int width, int height) => _glfw.glfwSetWindowSize(window, width, height);
|
||||
|
||||
internal static unsafe void glfwGetFramebufferSize(IntPtr window, int* width, int* height) => _glfw.glfwGetFramebufferSize(window, width, height);
|
||||
|
||||
internal static unsafe void glfwGetWindowFrameSize(IntPtr window, int* left, int* top, int* right, int* bottom) => _glfw.glfwGetWindowFrameSize(window, left, top, right, bottom);
|
||||
|
||||
internal static unsafe void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale) => _glfw.glfwGetWindowContentScale(window, xscale, yscale);
|
||||
|
||||
internal static unsafe float glfwGetWindowOpacity(IntPtr window) => _glfw.glfwGetWindowOpacity(window);
|
||||
|
||||
internal static unsafe void glfwSetWindowOpacity(IntPtr window, float opacity) => _glfw.glfwSetWindowOpacity(window, opacity);
|
||||
|
||||
internal static unsafe void glfwIconifyWindow(IntPtr window) => _glfw.glfwIconifyWindow(window);
|
||||
|
||||
internal static unsafe void glfwRestoreWindow(IntPtr window) => _glfw.glfwRestoreWindow(window);
|
||||
|
||||
internal static unsafe void glfwMaximizeWindow(IntPtr window) => _glfw.glfwMaximizeWindow(window);
|
||||
|
||||
internal static unsafe void glfwShowWindow(IntPtr window) => _glfw.glfwShowWindow(window);
|
||||
|
||||
internal static unsafe void glfwHideWindow(IntPtr window) => _glfw.glfwHideWindow(window);
|
||||
|
||||
internal static unsafe void glfwFocusWindow(IntPtr window) => _glfw.glfwFocusWindow(window);
|
||||
|
||||
internal static unsafe void glfwRequestWindowAttention(IntPtr window) => _glfw.glfwRequestWindowAttention(window);
|
||||
|
||||
internal static unsafe IntPtr glfwGetWindowMonitor(IntPtr window) => _glfw.glfwGetWindowMonitor(window);
|
||||
|
||||
internal static unsafe void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate) => _glfw.glfwSetWindowMonitor(
|
||||
window, monitor, xpos, ypos, width, height, refreshRate);
|
||||
|
||||
internal static unsafe int glfwGetWindowAttrib(IntPtr window, int attrib) => _glfw.glfwGetWindowAttrib(window, attrib);
|
||||
|
||||
internal static unsafe void glfwSetWindowAttrib(IntPtr window, int attrib, int value) => _glfw.glfwSetWindowAttrib(window, attrib, value);
|
||||
|
||||
internal static unsafe void glfwSetWindowUserPointer(IntPtr window, void* pointer) => _glfw.glfwSetWindowUserPointer(window, pointer);
|
||||
|
||||
internal static unsafe void* glfwGetWindowUserPointer(IntPtr window) => _glfw.glfwGetWindowUserPointer(window);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback) => _glfw.glfwSetWindowPosCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, void> callback) => _glfw.glfwSetWindowSizeCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback) => _glfw.glfwSetWindowCloseCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback) => _glfw.glfwSetWindowRefreshCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetWindowFocusCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetWindowIconifyCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetWindowMaximizeCallback(window, callback);
|
||||
|
||||
internal static unsafe FrameBufferSizeHandler glfwSetFramebufferSizeCallback(IntPtr window, IntPtr callback) => _glfw.glfwSetFramebufferSizeCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, float, float> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, float, float> callback) => _glfw.glfwSetWindowContentScaleCallback(window, callback);
|
||||
|
||||
internal static unsafe void glfwPollEvents() => _glfw.glfwPollEvents();
|
||||
|
||||
internal static unsafe void glfwWaitEvents() => _glfw.glfwWaitEvents();
|
||||
|
||||
internal static unsafe void glfwWaitEventsTimeout(double timeout) => _glfw.glfwWaitEventsTimeout(timeout);
|
||||
|
||||
internal static unsafe void glfwPostEmptyEvent() => _glfw.glfwPostEmptyEvent();
|
||||
|
||||
internal static unsafe int glfwGetInputMode(IntPtr window, int mode) => _glfw.glfwGetInputMode(window, mode);
|
||||
|
||||
internal static unsafe void glfwSetInputMode(IntPtr window, int mode, int value) => _glfw.glfwSetInputMode(window, mode, value);
|
||||
|
||||
internal static unsafe int glfwRawMouseMotionSupported() => _glfw.glfwRawMouseMotionSupported();
|
||||
|
||||
internal static unsafe byte* glfwGetKeyName(int key, int scancode) => _glfw.glfwGetKeyName(key, scancode);
|
||||
|
||||
internal static unsafe int glfwGetKeyScancode(int key) => _glfw.glfwGetKeyScancode(key);
|
||||
|
||||
internal static unsafe KeyStatus glfwGetKey(IntPtr window, int key) => _glfw.glfwGetKey(window, key);
|
||||
|
||||
internal static unsafe int glfwGetMouseButton(IntPtr window, int button) => _glfw.glfwGetMouseButton(window, button);
|
||||
|
||||
internal static unsafe void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos) => _glfw.glfwGetCursorPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwSetCursorPos(IntPtr window, double xpos, double ypos) => _glfw.glfwSetCursorPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot) => _glfw.glfwCreateCursor(image, xhot, yhot);
|
||||
|
||||
internal static unsafe GLFWcursor* glfwCreateStandardCursor(int shape) => _glfw.glfwCreateStandardCursor(shape);
|
||||
|
||||
internal static unsafe void glfwDestroyCursor(GLFWcursor* cursor) => _glfw.glfwDestroyCursor(cursor);
|
||||
|
||||
internal static unsafe void glfwSetCursor(IntPtr window, GLFWcursor* cursor) => _glfw.glfwSetCursor(window, cursor);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, int, int, void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, int, int, void> callback) => _glfw.glfwSetKeyCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, uint, void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, uint, void> callback) => _glfw.glfwSetCharCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, void> callback) => _glfw.glfwSetCharModsCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, int, void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, int, void> callback) => _glfw.glfwSetMouseButtonCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, double, double, void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, double, double, void> callback) => _glfw.glfwSetCursorPosCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetCursorEnterCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, double, double, void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, double, double, void> callback) => _glfw.glfwSetScrollCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, byte**, void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, byte**, void> callback) => _glfw.glfwSetDropCallback(window, callback);
|
||||
|
||||
internal static unsafe int glfwJoystickPresent(int jid) => _glfw.glfwJoystickPresent(jid);
|
||||
|
||||
internal static unsafe float* glfwGetJoystickAxes(int jid, int* count) => _glfw.glfwGetJoystickAxes(jid, count);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickButtons(int jid, int* count) => _glfw.glfwGetJoystickButtons(jid, count);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickHats(int jid, int* count) => _glfw.glfwGetJoystickHats(jid, count);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickName(int jid) => _glfw.glfwGetJoystickName(jid);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickGUID(int jid) => _glfw.glfwGetJoystickGUID(jid);
|
||||
|
||||
internal static unsafe void glfwSetJoystickUserPointer(int jid, void* pointer) => _glfw.glfwSetJoystickUserPointer(jid, pointer);
|
||||
|
||||
internal static unsafe void* glfwGetJoystickUserPointer(int jid) => _glfw.glfwGetJoystickUserPointer(jid);
|
||||
|
||||
internal static unsafe int glfwJoystickIsGamepad(int jid) => _glfw.glfwJoystickIsGamepad(jid);
|
||||
|
||||
internal static unsafe delegate*<int, int, void> glfwSetJoystickCallback(delegate*<int, int, void> callback) => _glfw.glfwSetJoystickCallback(callback);
|
||||
|
||||
internal static unsafe int glfwUpdateGamepadMappings(byte* str) => _glfw.glfwUpdateGamepadMappings(str);
|
||||
|
||||
internal static unsafe byte* glfwGetGamepadName(int jid) => _glfw.glfwGetGamepadName(jid);
|
||||
|
||||
internal static unsafe int glfwGetGamepadState(int jid, GLFWgamepadstate* state) => _glfw.glfwGetGamepadState(jid, state);
|
||||
|
||||
internal static unsafe void glfwSetClipboardString(IntPtr window, byte* str) => _glfw.glfwSetClipboardString(window, str);
|
||||
|
||||
internal static unsafe byte* glfwGetClipboardString(IntPtr window) => _glfw.glfwGetClipboardString(window);
|
||||
|
||||
internal static unsafe double glfwGetTime() => _glfw.glfwGetTime();
|
||||
|
||||
internal static unsafe void glfwSetTime(double time) => _glfw.glfwSetTime(time);
|
||||
|
||||
internal static unsafe ulong* glfwGetTimerValue() => _glfw.glfwGetTimerValue();
|
||||
|
||||
internal static unsafe ulong* glfwGetTimerFrequency() => _glfw.glfwGetTimerFrequency();
|
||||
|
||||
internal static unsafe void glfwMakeContextCurrent(IntPtr window) => _glfw.glfwMakeContextCurrent(window);
|
||||
|
||||
internal static unsafe IntPtr glfwGetCurrentContext() => _glfw.glfwGetCurrentContext();
|
||||
|
||||
internal static unsafe void glfwSwapBuffers(IntPtr window) => _glfw.glfwSwapBuffers(window);
|
||||
|
||||
internal static unsafe void glfwSwapInterval(int interval) => _glfw.glfwSwapInterval(interval);
|
||||
|
||||
internal static unsafe int glfwExtensionSupported(byte* extension) => _glfw.glfwExtensionSupported(extension);
|
||||
|
||||
internal static unsafe IntPtr glfwGetProcAddress(string procname) => _glfw.glfwGetProcAddress(procname);
|
||||
|
||||
internal static unsafe int glfwVulkanSupported() => _glfw.glfwVulkanSupported();
|
||||
|
||||
internal static unsafe byte** glfwGetRequiredInstanceExtensions(uint* count) => _glfw.glfwGetRequiredInstanceExtensions(count);
|
||||
|
||||
/*
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInstanceProcAddress")] internal static unsafe partial delegate*<void> glfwGetInstanceProcAddress(
|
||||
VkInstance instance,
|
||||
byte* procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPhysicalDevicePresentationSupport")] internal static unsafe partial int glfwGetPhysicalDevicePresentationSupport(
|
||||
VkInstance instance,
|
||||
VkPhysicalDevice device,
|
||||
uint* queuefamily);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindowSurface")] internal static unsafe partial VkResult glfwCreateWindowSurface(
|
||||
VkInstance instance,
|
||||
glfwWindow* window,
|
||||
VkAllocationCallbacks* _allocator,
|
||||
VkSurfaceKHR* surface);
|
||||
/**/
|
||||
|
||||
#endregion api call
|
||||
}
|
||||
}
|
||||
-156
@@ -1,156 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunction
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged [Cdecl]<IntPtr, int, byte**, void>> glfwSetDropCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr,double, double, void>> glfwSetScrollCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}
|
||||
-133
@@ -1,133 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "glfw3_no_comments.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwTerminate)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
int (*glfwGetError)(const char** description);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGamma)(GLFWmonitor* monitor, float gamma);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwWindowHint)(int hint, int value);
|
||||
void (*glfwWindowHintString)(int hint, const char* value);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwShowWindow)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
void (*glfwSetInputMode)(GLFWwindow* window, int mode, int value);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursor* (*glfwCreateCursor)(const GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
int (*glfwJoystickPresent)(int jid);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
void (*glfwSetJoystickUserPointer)(int jid, void* pointer);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwJoystickIsGamepad)(int jid);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
int (*glfwUpdateGamepadMappings)(const char* string);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* string);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
double (*glfwGetTime)(void);
|
||||
void (*glfwSetTime)(double time);
|
||||
uint64_t (*glfwGetTimerValue)(void);
|
||||
uint64_t (*glfwGetTimerFrequency)(void);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
int (*glfwExtensionSupported)(const char* extension);
|
||||
GLFWglproc (*glfwGetProcAddress)(const char* procname);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
const char** (*glfwGetRequiredInstanceExtensions)(uint32_t* count);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-120
@@ -1,120 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "glfw3_no_comments.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
int (*glfwGetError)(const char** description);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
double (*glfwGetTime)(void);
|
||||
uint64_t (*glfwGetTimerFrequency)(void);
|
||||
uint64_t (*glfwGetTimerValue)(void);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* string);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
void (*glfwSetJoystickUserPointer)(int jid, void* pointer);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
void (*glfwSetTime)(double time);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
void (*glfwTerminate)(void);
|
||||
int (*glfwUpdateGamepadMappings)(const char* string);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
#include "StgSharpNative.h"
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
-158
@@ -1,158 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunctionTable
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged<Cdecl]<IntPtr,
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged<Cdecl]<IntPtr,
|
||||
double, double, void>> glfwSetScrollCallback;
|
||||
int, byte**, void>> glfwSetDropCallback;
|
||||
|
||||
}
|
||||
}
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine($"{logType}\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release();
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"{logType}\t@\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-120
@@ -1,120 +0,0 @@
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
memset(table, 0, sizeof(GLFWFunctionTable));
|
||||
table->glfwInit = (int (*)(void))glfwGetProcAddress("glfwInit");
|
||||
table->glfwTerminate = (void (*)(void))glfwGetProcAddress("glfwTerminate");
|
||||
table->glfwInitHint = (void (*)(int, int))glfwGetProcAddress("glfwInitHint");
|
||||
table->glfwGetVersionString = (const char* (*)(void))glfwGetProcAddress("glfwGetVersionString");
|
||||
table->glfwGetError = (int (*)(const char**))glfwGetProcAddress("glfwGetError");
|
||||
table->glfwGetMonitors = (GLFWmonitor** (*)(int*))glfwGetProcAddress("glfwGetMonitors");
|
||||
table->glfwGetPrimaryMonitor = (GLFWmonitor* (*)(void))glfwGetProcAddress("glfwGetPrimaryMonitor");
|
||||
table->glfwGetMonitorPos = (void (*)(GLFWmonitor*, int*, int*))glfwGetProcAddress("glfwGetMonitorPos");
|
||||
table->glfwGetMonitorWorkarea = (void (*)(GLFWmonitor*, int*, int*, int*, int*))glfwGetProcAddress("glfwGetMonitorWorkarea");
|
||||
table->glfwGetMonitorPhysicalSize = (void (*)(GLFWmonitor*, int*, int*))glfwGetProcAddress("glfwGetMonitorPhysicalSize");
|
||||
table->glfwGetMonitorContentScale = (void (*)(GLFWmonitor*, float*, float*))glfwGetProcAddress("glfwGetMonitorContentScale");
|
||||
table->glfwGetMonitorName = (const char* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetMonitorName");
|
||||
table->glfwSetMonitorUserPointer = (void (*)(GLFWmonitor*, void*))glfwGetProcAddress("glfwSetMonitorUserPointer");
|
||||
table->glfwGetMonitorUserPointer = (void* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetMonitorUserPointer");
|
||||
table->glfwSetMonitorCallback = (GLFWmonitorfun (*)(GLFWmonitorfun))glfwGetProcAddress("glfwSetMonitorCallback");
|
||||
table->glfwGetVideoModes = (const GLFWvidmode* (*)(GLFWmonitor*, int*))glfwGetProcAddress("glfwGetVideoModes");
|
||||
table->glfwGetVideoMode = (const GLFWvidmode* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetVideoMode");
|
||||
table->glfwSetGamma = (void (*)(GLFWmonitor*, float))glfwGetProcAddress("glfwSetGamma");
|
||||
table->glfwGetGammaRamp = (const GLFWgammaramp* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetGammaRamp");
|
||||
table->glfwSetGammaRamp = (void (*)(GLFWmonitor*, const GLFWgammaramp*))glfwGetProcAddress("glfwSetGammaRamp");
|
||||
table->glfwDefaultWindowHints = (void (*)(void))glfwGetProcAddress("glfwDefaultWindowHints");
|
||||
table->glfwWindowHint = (void (*)(int, int))glfwGetProcAddress("glfwWindowHint");
|
||||
table->glfwWindowHintString = (void (*)(int, const char*))glfwGetProcAddress("glfwWindowHintString");
|
||||
table->glfwCreateWindow = (GLFWwindow* (*)(int, int, const char*, GLFWmonitor*, GLFWwindow*))glfwGetProcAddress("glfwCreateWindow");
|
||||
table->glfwDestroyWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwDestroyWindow");
|
||||
table->glfwWindowShouldClose = (int (*)(GLFWwindow*))glfwGetProcAddress("glfwWindowShouldClose");
|
||||
table->glfwSetWindowShouldClose = (void (*)(GLFWwindow*, int))glfwGetProcAddress("glfwSetWindowShouldClose");
|
||||
table->glfwSetWindowTitle = (void (*)(GLFWwindow*, const char*))glfwGetProcAddress("glfwSetWindowTitle");
|
||||
table->glfwSetWindowIcon = (void (*)(GLFWwindow*, int, const GLFWimage*))glfwGetProcAddress("glfwSetWindowIcon");
|
||||
table->glfwGetWindowPos = (void (*)(GLFWwindow*, int*, int*))glfwGetProcAddress("glfwGetWindowPos");
|
||||
table->glfwSetWindowPos = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowPos");
|
||||
table->glfwGetWindowSize = (void (*)(GLFWwindow*, int*, int*))glfwGetProcAddress("glfwGetWindowSize");
|
||||
table->glfwSetWindowSizeLimits = (void (*)(GLFWwindow*, int, int, int, int))glfwGetProcAddress("glfwSetWindowSizeLimits");
|
||||
table->glfwSetWindowAspectRatio = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowAspectRatio");
|
||||
table->glfwSetWindowSize = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowSize");
|
||||
table->glfwGetFramebufferSize = (void (*)(GLFWwindow*, int*, int*))glfwGetProcAddress("glfwGetFramebufferSize");
|
||||
table->glfwGetWindowFrameSize = (void (*)(GLFWwindow*, int*, int*, int*, int*))glfwGetProcAddress("glfwGetWindowFrameSize");
|
||||
table->glfwGetWindowContentScale = (void (*)(GLFWwindow*, float*, float*))glfwGetProcAddress("glfwGetWindowContentScale");
|
||||
table->glfwGetWindowOpacity = (float (*)(GLFWwindow*))glfwGetProcAddress("glfwGetWindowOpacity");
|
||||
table->glfwSetWindowOpacity = (void (*)(GLFWwindow*, float))glfwGetProcAddress("glfwSetWindowOpacity");
|
||||
table->glfwIconifyWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwIconifyWindow");
|
||||
table->glfwRestoreWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwRestoreWindow");
|
||||
table->glfwMaximizeWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwMaximizeWindow");
|
||||
table->glfwShowWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwShowWindow");
|
||||
table->glfwHideWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwHideWindow");
|
||||
table->glfwFocusWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwFocusWindow");
|
||||
table->glfwRequestWindowAttention = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwRequestWindowAttention");
|
||||
table->glfwGetWindowMonitor = (GLFWmonitor* (*)(GLFWwindow*))glfwGetProcAddress("glfwGetWindowMonitor");
|
||||
table->glfwSetWindowMonitor = (void (*)(GLFWwindow*, GLFWmonitor*, int, int, int, int, int))glfwGetProcAddress("glfwSetWindowMonitor");
|
||||
table->glfwGetWindowAttrib = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetWindowAttrib");
|
||||
table->glfwSetWindowAttrib = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowAttrib");
|
||||
table->glfwSetWindowUserPointer = (void (*)(GLFWwindow*, void*))glfwGetProcAddress("glfwSetWindowUserPointer");
|
||||
table->glfwGetWindowUserPointer = (void* (*)(GLFWwindow*))glfwGetProcAddress("glfwGetWindowUserPointer");
|
||||
table->glfwSetWindowPosCallback = (GLFWwindowposfun (*)(GLFWwindow*, GLFWwindowposfun))glfwGetProcAddress("glfwSetWindowPosCallback");
|
||||
table->glfwSetWindowSizeCallback = (GLFWwindowsizefun (*)(GLFWwindow*, GLFWwindowsizefun))glfwGetProcAddress("glfwSetWindowSizeCallback");
|
||||
table->glfwSetWindowCloseCallback = (GLFWwindowclosefun (*)(GLFWwindow*, GLFWwindowclosefun))glfwGetProcAddress("glfwSetWindowCloseCallback");
|
||||
table->glfwSetWindowRefreshCallback = (GLFWwindowrefreshfun (*)(GLFWwindow*, GLFWwindowrefreshfun))glfwGetProcAddress("glfwSetWindowRefreshCallback");
|
||||
table->glfwSetWindowFocusCallback = (GLFWwindowfocusfun (*)(GLFWwindow*, GLFWwindowfocusfun))glfwGetProcAddress("glfwSetWindowFocusCallback");
|
||||
table->glfwSetWindowIconifyCallback = (GLFWwindowiconifyfun (*)(GLFWwindow*, GLFWwindowiconifyfun))glfwGetProcAddress("glfwSetWindowIconifyCallback");
|
||||
table->glfwSetWindowMaximizeCallback = (GLFWwindowmaximizefun (*)(GLFWwindow*, GLFWwindowmaximizefun))glfwGetProcAddress("glfwSetWindowMaximizeCallback");
|
||||
table->glfwSetFramebufferSizeCallback = (GLFWframebuffersizefun (*)(GLFWwindow*, GLFWframebuffersizefun))glfwGetProcAddress("glfwSetFramebufferSizeCallback");
|
||||
table->glfwSetWindowContentScaleCallback = (GLFWwindowcontentscalefun (*)(GLFWwindow*, GLFWwindowcontentscalefun))glfwGetProcAddress("glfwSetWindowContentScaleCallback");
|
||||
table->glfwPollEvents = (void (*)(void))glfwGetProcAddress("glfwPollEvents");
|
||||
table->glfwWaitEvents = (void (*)(void))glfwGetProcAddress("glfwWaitEvents");
|
||||
table->glfwWaitEventsTimeout = (void (*)(double))glfwGetProcAddress("glfwWaitEventsTimeout");
|
||||
table->glfwPostEmptyEvent = (void (*)(void))glfwGetProcAddress("glfwPostEmptyEvent");
|
||||
table->glfwGetInputMode = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetInputMode");
|
||||
table->glfwSetInputMode = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetInputMode");
|
||||
table->glfwRawMouseMotionSupported = (int (*)(void))glfwGetProcAddress("glfwRawMouseMotionSupported");
|
||||
table->glfwGetKeyName = (const char* (*)(int, int))glfwGetProcAddress("glfwGetKeyName");
|
||||
table->glfwGetKeyScancode = (int (*)(int))glfwGetProcAddress("glfwGetKeyScancode");
|
||||
table->glfwGetKey = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetKey");
|
||||
table->glfwGetMouseButton = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetMouseButton");
|
||||
table->glfwGetCursorPos = (void (*)(GLFWwindow*, double*, double*))glfwGetProcAddress("glfwGetCursorPos");
|
||||
table->glfwSetCursorPos = (void (*)(GLFWwindow*, double, double))glfwGetProcAddress("glfwSetCursorPos");
|
||||
table->glfwCreateCursor = (GLFWcursor* (*)(const GLFWimage*, int, int))glfwGetProcAddress("glfwCreateCursor");
|
||||
table->glfwCreateStandardCursor = (GLFWcursor* (*)(int))glfwGetProcAddress("glfwCreateStandardCursor");
|
||||
table->glfwDestroyCursor = (void (*)(GLFWcursor*))glfwGetProcAddress("glfwDestroyCursor");
|
||||
table->glfwSetCursor = (void (*)(GLFWwindow*, GLFWcursor*))glfwGetProcAddress("glfwSetCursor");
|
||||
table->glfwSetKeyCallback = (GLFWkeyfun (*)(GLFWwindow*, GLFWkeyfun))glfwGetProcAddress("glfwSetKeyCallback");
|
||||
table->glfwSetCharCallback = (GLFWcharfun (*)(GLFWwindow*, GLFWcharfun))glfwGetProcAddress("glfwSetCharCallback");
|
||||
table->glfwSetCharModsCallback = (GLFWcharmodsfun (*)(GLFWwindow*, GLFWcharmodsfun))glfwGetProcAddress("glfwSetCharModsCallback");
|
||||
table->glfwSetMouseButtonCallback = (GLFWmousebuttonfun (*)(GLFWwindow*, GLFWmousebuttonfun))glfwGetProcAddress("glfwSetMouseButtonCallback");
|
||||
table->glfwSetCursorPosCallback = (GLFWcursorposfun (*)(GLFWwindow*, GLFWcursorposfun))glfwGetProcAddress("glfwSetCursorPosCallback");
|
||||
table->glfwSetCursorEnterCallback = (GLFWcursorenterfun (*)(GLFWwindow*, GLFWcursorenterfun))glfwGetProcAddress("glfwSetCursorEnterCallback");
|
||||
table->glfwSetScrollCallback = (GLFWscrollfun (*)(GLFWwindow*, GLFWscrollfun))glfwGetProcAddress("glfwSetScrollCallback");
|
||||
table->glfwSetDropCallback = (GLFWdropfun (*)(GLFWwindow*, GLFWdropfun))glfwGetProcAddress("glfwSetDropCallback");
|
||||
table->glfwJoystickPresent = (int (*)(int))glfwGetProcAddress("glfwJoystickPresent");
|
||||
table->glfwGetJoystickAxes = (const float* (*)(int, int*))glfwGetProcAddress("glfwGetJoystickAxes");
|
||||
table->glfwGetJoystickButtons = (const unsigned char* (*)(int, int*))glfwGetProcAddress("glfwGetJoystickButtons");
|
||||
table->glfwGetJoystickHats = (const unsigned char* (*)(int, int*))glfwGetProcAddress("glfwGetJoystickHats");
|
||||
table->glfwGetJoystickName = (const char* (*)(int))glfwGetProcAddress("glfwGetJoystickName");
|
||||
table->glfwGetJoystickGUID = (const char* (*)(int))glfwGetProcAddress("glfwGetJoystickGUID");
|
||||
table->glfwSetJoystickUserPointer = (void (*)(int, void*))glfwGetProcAddress("glfwSetJoystickUserPointer");
|
||||
table->glfwGetJoystickUserPointer = (void* (*)(int))glfwGetProcAddress("glfwGetJoystickUserPointer");
|
||||
table->glfwJoystickIsGamepad = (int (*)(int))glfwGetProcAddress("glfwJoystickIsGamepad");
|
||||
table->glfwSetJoystickCallback = (GLFWjoystickfun (*)(GLFWjoystickfun))glfwGetProcAddress("glfwSetJoystickCallback");
|
||||
table->glfwUpdateGamepadMappings = (int (*)(const char*))glfwGetProcAddress("glfwUpdateGamepadMappings");
|
||||
table->glfwGetGamepadName = (const char* (*)(int))glfwGetProcAddress("glfwGetGamepadName");
|
||||
table->glfwGetGamepadState = (int (*)(int, GLFWgamepadstate*))glfwGetProcAddress("glfwGetGamepadState");
|
||||
table->glfwSetClipboardString = (void (*)(GLFWwindow*, const char*))glfwGetProcAddress("glfwSetClipboardString");
|
||||
table->glfwGetClipboardString = (const char* (*)(GLFWwindow*))glfwGetProcAddress("glfwGetClipboardString");
|
||||
table->glfwGetTime = (double (*)(void))glfwGetProcAddress("glfwGetTime");
|
||||
table->glfwSetTime = (void (*)(double))glfwGetProcAddress("glfwSetTime");
|
||||
table->glfwGetTimerValue = (uint64_t (*)(void))glfwGetProcAddress("glfwGetTimerValue");
|
||||
table->glfwGetTimerFrequency = (uint64_t (*)(void))glfwGetProcAddress("glfwGetTimerFrequency");
|
||||
table->glfwMakeContextCurrent = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwMakeContextCurrent");
|
||||
table->glfwGetCurrentContext = (GLFWwindow* (*)(void))glfwGetProcAddress("glfwGetCurrentContext");
|
||||
table->glfwSwapBuffers = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwSwapBuffers");
|
||||
table->glfwSwapInterval = (void (*)(int))glfwGetProcAddress("glfwSwapInterval");
|
||||
table->glfwExtensionSupported = (int (*)(const char*))glfwGetProcAddress("glfwExtensionSupported");
|
||||
table->glfwGetProcAddress = (GLFWglproc (*)(const char*))glfwGetProcAddress("glfwGetProcAddress");
|
||||
table->glfwVulkanSupported = (int (*)(void))glfwGetProcAddress("glfwVulkanSupported");
|
||||
table->glfwGetRequiredInstanceExtensions = (const char** (*)(uint32_t*))glfwGetProcAddress("glfwGetRequiredInstanceExtensions");
|
||||
}
|
||||
-486
@@ -1,486 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static GLFWFunction _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
_glfw = new GLFWFunction();
|
||||
fixed (GLFWFunction* func = &_glfw) { }
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInit")]
|
||||
internal static unsafe partial int glfwInit();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwTerminate")]
|
||||
internal static unsafe partial void glfwTerminate();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInitHint")]
|
||||
internal static unsafe partial void glfwInitHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersion")]
|
||||
internal static unsafe partial void glfwGetVersion(int* major, int* minor, int* rev);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersionString")]
|
||||
internal static unsafe partial byte* glfwGetVersionString();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetError")]
|
||||
internal static unsafe partial int glfwGetError(byte** description);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetErrorCallback")]
|
||||
internal static unsafe partial delegate*<int,byte*,void> glfwSetErrorCallback(
|
||||
delegate*<int,byte*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitors")]
|
||||
internal static unsafe partial IntPtr* glfwGetMonitors(int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPrimaryMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetPrimaryMonitor();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPos")]
|
||||
internal static unsafe partial void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorWorkarea")]
|
||||
internal static unsafe partial void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPhysicalSize")]
|
||||
internal static unsafe partial void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorContentScale")]
|
||||
internal static unsafe partial void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorName")]
|
||||
internal static unsafe partial byte* glfwGetMonitorName(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorUserPointer")]
|
||||
internal static unsafe partial void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorUserPointer")]
|
||||
internal static unsafe partial void* glfwGetMonitorUserPointer(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetMonitorCallback(
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoModes")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoMode")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoMode(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGamma")]
|
||||
internal static unsafe partial void glfwSetGamma(IntPtr monitor, float gamma);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGammaRamp")]
|
||||
internal static unsafe partial glfwGammaramp* glfwGetGammaRamp(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGammaRamp")]
|
||||
internal static unsafe partial void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDefaultWindowHints")]
|
||||
internal static unsafe partial void glfwDefaultWindowHints();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHint")]
|
||||
internal static unsafe partial void glfwWindowHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHintString")]
|
||||
internal static unsafe partial void glfwWindowHintString(int hint, byte* value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindow")]
|
||||
internal static unsafe partial IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
byte[] title,
|
||||
IntPtr monitor,
|
||||
IntPtr share);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyWindow")]
|
||||
internal static unsafe partial void glfwDestroyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowShouldClose")]
|
||||
internal static unsafe partial int glfwWindowShouldClose(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowShouldClose")]
|
||||
internal static unsafe partial void glfwSetWindowShouldClose(IntPtr window, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowTitle")]
|
||||
internal static unsafe partial void glfwSetWindowTitle(IntPtr window, byte* title);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIcon")]
|
||||
internal static unsafe partial void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowPos")]
|
||||
internal static unsafe partial void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPos")]
|
||||
internal static unsafe partial void glfwSetWindowPos(IntPtr window, int xpos, int ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowSize")]
|
||||
internal static unsafe partial void glfwGetWindowSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeLimits")]
|
||||
internal static unsafe partial void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAspectRatio")]
|
||||
internal static unsafe partial void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSize")]
|
||||
internal static unsafe partial void glfwSetWindowSize(IntPtr window, int width, int height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetFramebufferSize")]
|
||||
internal static unsafe partial void glfwGetFramebufferSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowFrameSize")]
|
||||
internal static unsafe partial void glfwGetWindowFrameSize(
|
||||
IntPtr window,
|
||||
int* left,
|
||||
int* top,
|
||||
int* right,
|
||||
int* bottom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowContentScale")]
|
||||
internal static unsafe partial void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowOpacity")]
|
||||
internal static unsafe partial float glfwGetWindowOpacity(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowOpacity")]
|
||||
internal static unsafe partial void glfwSetWindowOpacity(IntPtr window, float opacity);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwIconifyWindow")]
|
||||
internal static unsafe partial void glfwIconifyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRestoreWindow")]
|
||||
internal static unsafe partial void glfwRestoreWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMaximizeWindow")]
|
||||
internal static unsafe partial void glfwMaximizeWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwShowWindow")]
|
||||
internal static unsafe partial void glfwShowWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwHideWindow")]
|
||||
internal static unsafe partial void glfwHideWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwFocusWindow")]
|
||||
internal static unsafe partial void glfwFocusWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRequestWindowAttention")]
|
||||
internal static unsafe partial void glfwRequestWindowAttention(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetWindowMonitor(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMonitor")]
|
||||
internal static unsafe partial void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowAttrib")]
|
||||
internal static unsafe partial int glfwGetWindowAttrib(IntPtr window, int attrib);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAttrib")]
|
||||
internal static unsafe partial void glfwSetWindowAttrib(IntPtr window, int attrib, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowUserPointer")]
|
||||
internal static unsafe partial void glfwSetWindowUserPointer(IntPtr window, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowUserPointer")]
|
||||
internal static unsafe partial void* glfwGetWindowUserPointer(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowCloseCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowRefreshCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowFocusCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIconifyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMaximizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetFramebufferSizeCallback")]
|
||||
internal static unsafe partial FrameBufferSizeHandler glfwSetFramebufferSizeCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowContentScaleCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, float,float> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, float,float> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPollEvents")]
|
||||
internal static unsafe partial void glfwPollEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEvents")]
|
||||
internal static unsafe partial void glfwWaitEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEventsTimeout")]
|
||||
internal static unsafe partial void glfwWaitEventsTimeout(double timeout);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPostEmptyEvent")]
|
||||
internal static unsafe partial void glfwPostEmptyEvent();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInputMode")]
|
||||
internal static unsafe partial int glfwGetInputMode(IntPtr window, int mode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetInputMode")]
|
||||
internal static unsafe partial void glfwSetInputMode(IntPtr window, int mode, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRawMouseMotionSupported")]
|
||||
internal static unsafe partial int glfwRawMouseMotionSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyName")]
|
||||
internal static unsafe partial byte* glfwGetKeyName(int key, int scancode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyScancode")]
|
||||
internal static unsafe partial int glfwGetKeyScancode(int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKey")]
|
||||
internal static unsafe partial KeyStatus glfwGetKey(IntPtr window, int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMouseButton")]
|
||||
internal static unsafe partial int glfwGetMouseButton(IntPtr window, int button);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCursorPos")]
|
||||
internal static unsafe partial void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPos")]
|
||||
internal static unsafe partial void glfwSetCursorPos(IntPtr window, double xpos, double ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateStandardCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateStandardCursor(int shape);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyCursor")]
|
||||
internal static unsafe partial void glfwDestroyCursor(GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursor")]
|
||||
internal static unsafe partial void glfwSetCursor(IntPtr window, GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetKeyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,int,void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,uint,void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,uint,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharModsCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMouseButtonCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorEnterCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetScrollCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetDropCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,byte**,void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,byte**,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickPresent")]
|
||||
internal static unsafe partial int glfwJoystickPresent(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickAxes")]
|
||||
internal static unsafe partial float* glfwGetJoystickAxes(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickButtons")]
|
||||
internal static unsafe partial byte* glfwGetJoystickButtons(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickHats")]
|
||||
internal static unsafe partial byte* glfwGetJoystickHats(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickName")]
|
||||
internal static unsafe partial byte* glfwGetJoystickName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickGUID")]
|
||||
internal static unsafe partial byte* glfwGetJoystickGUID(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickUserPointer")]
|
||||
internal static unsafe partial void glfwSetJoystickUserPointer(int jid, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickUserPointer")]
|
||||
internal static unsafe partial void* glfwGetJoystickUserPointer(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickIsGamepad")]
|
||||
internal static unsafe partial int glfwJoystickIsGamepad(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickCallback")]
|
||||
internal static unsafe partial delegate*<int,int,void> glfwSetJoystickCallback(delegate*<int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwUpdateGamepadMappings")]
|
||||
internal static unsafe partial int glfwUpdateGamepadMappings(byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadName")]
|
||||
internal static unsafe partial byte* glfwGetGamepadName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadState")]
|
||||
internal static unsafe partial int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetClipboardString")]
|
||||
internal static unsafe partial void glfwSetClipboardString(IntPtr window, byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetClipboardString")]
|
||||
internal static unsafe partial byte* glfwGetClipboardString(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTime")]
|
||||
internal static unsafe partial double glfwGetTime();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetTime")]
|
||||
internal static unsafe partial void glfwSetTime(double time);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerValue")]
|
||||
internal static unsafe partial ulong* glfwGetTimerValue();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerFrequency")]
|
||||
internal static unsafe partial ulong* glfwGetTimerFrequency();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMakeContextCurrent")]
|
||||
internal static unsafe partial void glfwMakeContextCurrent(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCurrentContext")]
|
||||
internal static unsafe partial IntPtr glfwGetCurrentContext();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapBuffers")]
|
||||
internal static unsafe partial void glfwSwapBuffers(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapInterval")]
|
||||
internal static unsafe partial void glfwSwapInterval(int interval);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwExtensionSupported")]
|
||||
internal static unsafe partial int glfwExtensionSupported(byte* extension);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetProcAddress", StringMarshalling = StringMarshalling.Utf8)]
|
||||
internal static unsafe partial IntPtr glfwGetProcAddress(string procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwVulkanSupported")]
|
||||
internal static unsafe partial int glfwVulkanSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetRequiredInstanceExtensions")]
|
||||
internal static unsafe partial byte** glfwGetRequiredInstanceExtensions(uint* count);
|
||||
|
||||
/*
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInstanceProcAddress")] internal static unsafe partial delegate*<void> glfwGetInstanceProcAddress(
|
||||
VkInstance instance,
|
||||
byte* procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPhysicalDevicePresentationSupport")] internal static unsafe partial int glfwGetPhysicalDevicePresentationSupport(
|
||||
VkInstance instance,
|
||||
VkPhysicalDevice device,
|
||||
uint* queuefamily);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindowSurface")] internal static unsafe partial VkResult glfwCreateWindowSurface(
|
||||
VkInstance instance,
|
||||
glfwWindow* window,
|
||||
VkAllocationCallbacks* _allocator,
|
||||
VkSurfaceKHR* surface);
|
||||
/**/
|
||||
|
||||
#endregion api call
|
||||
}
|
||||
}
|
||||
-133
@@ -1,133 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "glfw3_no_comments.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwTerminate)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
int (*glfwGetError)(const char** description);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGamma)(GLFWmonitor* monitor, float gamma);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwWindowHint)(int hint, int value);
|
||||
void (*glfwWindowHintString)(int hint, const char* value);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwShowWindow)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
void (*glfwSetInputMode)(GLFWwindow* window, int mode, int value);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursor* (*glfwCreateCursor)(const GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
int (*glfwJoystickPresent)(int jid);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
void (*glfwSetJoystickUserPointer)(int jid, void* pointer);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwJoystickIsGamepad)(int jid);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
int (*glfwUpdateGamepadMappings)(const char* string);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* string);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
double (*glfwGetTime)(void);
|
||||
void (*glfwSetTime)(double time);
|
||||
uint64_t (*glfwGetTimerValue)(void);
|
||||
uint64_t (*glfwGetTimerFrequency)(void);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
int (*glfwExtensionSupported)(const char* extension);
|
||||
GLFWglproc (*glfwGetProcAddress)(const char* procname);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
const char** (*glfwGetRequiredInstanceExtensions)(uint32_t* count);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-107
@@ -1,107 +0,0 @@
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
memset(table, 0, sizeof(GLFWFunctionTable));
|
||||
table->glfwDefaultWindowHints = glfwDefaultWindowHints;
|
||||
table->glfwDestroyCursor = glfwDestroyCursor;
|
||||
table->glfwDestroyWindow = glfwDestroyWindow;
|
||||
table->glfwFocusWindow = glfwFocusWindow;
|
||||
table->glfwGetClipboardString = glfwGetClipboardString;
|
||||
table->glfwGetCurrentContext = glfwGetCurrentContext;
|
||||
table->glfwGetCursorPos = glfwGetCursorPos;
|
||||
table->glfwGetError = glfwGetError;
|
||||
table->glfwGetFramebufferSize = glfwGetFramebufferSize;
|
||||
table->glfwGetGamepadName = glfwGetGamepadName;
|
||||
table->glfwGetGamepadState = glfwGetGamepadState;
|
||||
table->glfwGetGammaRamp = glfwGetGammaRamp;
|
||||
table->glfwGetInputMode = glfwGetInputMode;
|
||||
table->glfwGetJoystickAxes = glfwGetJoystickAxes;
|
||||
table->glfwGetJoystickButtons = glfwGetJoystickButtons;
|
||||
table->glfwGetJoystickGUID = glfwGetJoystickGUID;
|
||||
table->glfwGetJoystickHats = glfwGetJoystickHats;
|
||||
table->glfwGetJoystickName = glfwGetJoystickName;
|
||||
table->glfwGetJoystickUserPointer = glfwGetJoystickUserPointer;
|
||||
table->glfwGetKey = glfwGetKey;
|
||||
table->glfwGetKeyName = glfwGetKeyName;
|
||||
table->glfwGetKeyScancode = glfwGetKeyScancode;
|
||||
table->glfwGetMonitorContentScale = glfwGetMonitorContentScale;
|
||||
table->glfwGetMonitorName = glfwGetMonitorName;
|
||||
table->glfwGetMonitorPhysicalSize = glfwGetMonitorPhysicalSize;
|
||||
table->glfwGetMonitorPos = glfwGetMonitorPos;
|
||||
table->glfwGetMonitors = glfwGetMonitors;
|
||||
table->glfwGetMonitorUserPointer = glfwGetMonitorUserPointer;
|
||||
table->glfwGetMonitorWorkarea = glfwGetMonitorWorkarea;
|
||||
table->glfwGetMouseButton = glfwGetMouseButton;
|
||||
table->glfwGetPrimaryMonitor = glfwGetPrimaryMonitor;
|
||||
table->glfwGetTime = glfwGetTime;
|
||||
table->glfwGetTimerFrequency = glfwGetTimerFrequency;
|
||||
table->glfwGetTimerValue = glfwGetTimerValue;
|
||||
table->glfwGetVersionString = glfwGetVersionString;
|
||||
table->glfwGetVideoMode = glfwGetVideoMode;
|
||||
table->glfwGetVideoModes = glfwGetVideoModes;
|
||||
table->glfwGetWindowAttrib = glfwGetWindowAttrib;
|
||||
table->glfwGetWindowContentScale = glfwGetWindowContentScale;
|
||||
table->glfwGetWindowFrameSize = glfwGetWindowFrameSize;
|
||||
table->glfwGetWindowMonitor = glfwGetWindowMonitor;
|
||||
table->glfwGetWindowOpacity = glfwGetWindowOpacity;
|
||||
table->glfwGetWindowPos = glfwGetWindowPos;
|
||||
table->glfwGetWindowSize = glfwGetWindowSize;
|
||||
table->glfwGetWindowUserPointer = glfwGetWindowUserPointer;
|
||||
table->glfwHideWindow = glfwHideWindow;
|
||||
table->glfwIconifyWindow = glfwIconifyWindow;
|
||||
table->glfwInit = glfwInit;
|
||||
table->glfwInitHint = glfwInitHint;
|
||||
table->glfwMakeContextCurrent = glfwMakeContextCurrent;
|
||||
table->glfwMaximizeWindow = glfwMaximizeWindow;
|
||||
table->glfwPollEvents = glfwPollEvents;
|
||||
table->glfwPostEmptyEvent = glfwPostEmptyEvent;
|
||||
table->glfwRequestWindowAttention = glfwRequestWindowAttention;
|
||||
table->glfwRawMouseMotionSupported = glfwRawMouseMotionSupported;
|
||||
table->glfwRestoreWindow = glfwRestoreWindow;
|
||||
table->glfwSetClipboardString = glfwSetClipboardString;
|
||||
table->glfwSetCharCallback = glfwSetCharCallback;
|
||||
table->glfwSetCharModsCallback = glfwSetCharModsCallback;
|
||||
table->glfwSetCursor = glfwSetCursor;
|
||||
table->glfwSetCursorEnterCallback = glfwSetCursorEnterCallback;
|
||||
table->glfwSetCursorPos = glfwSetCursorPos;
|
||||
table->glfwSetCursorPosCallback = glfwSetCursorPosCallback;
|
||||
table->glfwSetDropCallback = glfwSetDropCallback;
|
||||
table->glfwSetGammaRamp = glfwSetGammaRamp;
|
||||
table->glfwSetJoystickCallback = glfwSetJoystickCallback;
|
||||
table->glfwSetJoystickUserPointer = glfwSetJoystickUserPointer;
|
||||
table->glfwSetKeyCallback = glfwSetKeyCallback;
|
||||
table->glfwSetMonitorUserPointer = glfwSetMonitorUserPointer;
|
||||
table->glfwSetMonitorCallback = glfwSetMonitorCallback;
|
||||
table->glfwSetTime = glfwSetTime;
|
||||
table->glfwSetWindowAspectRatio = glfwSetWindowAspectRatio;
|
||||
table->glfwSetWindowAttrib = glfwSetWindowAttrib;
|
||||
table->glfwSetWindowCloseCallback = glfwSetWindowCloseCallback;
|
||||
table->glfwSetWindowIcon = glfwSetWindowIcon;
|
||||
table->glfwSetWindowIconifyCallback = glfwSetWindowIconifyCallback;
|
||||
table->glfwSetWindowFocusCallback = glfwSetWindowFocusCallback;
|
||||
table->glfwSetFramebufferSizeCallback = glfwSetFramebufferSizeCallback;
|
||||
table->glfwSetWindowMaximizeCallback = glfwSetWindowMaximizeCallback;
|
||||
table->glfwSetWindowMonitor = glfwSetWindowMonitor;
|
||||
table->glfwSetMouseButtonCallback = glfwSetMouseButtonCallback;
|
||||
table->glfwSetWindowOpacity = glfwSetWindowOpacity;
|
||||
table->glfwSetWindowPosCallback = glfwSetWindowPosCallback;
|
||||
table->glfwSetWindowPos = glfwSetWindowPos;
|
||||
table->glfwSetScrollCallback = glfwSetScrollCallback;
|
||||
table->glfwSetWindowShouldClose = glfwSetWindowShouldClose;
|
||||
table->glfwSetWindowSizeLimits = glfwSetWindowSizeLimits;
|
||||
table->glfwSetWindowSizeCallback = glfwSetWindowSizeCallback;
|
||||
table->glfwSetWindowSize = glfwSetWindowSize;
|
||||
table->glfwSetWindowTitle = glfwSetWindowTitle;
|
||||
table->glfwSetWindowUserPointer = glfwSetWindowUserPointer;
|
||||
table->glfwSetWindowRefreshCallback = glfwSetWindowRefreshCallback;
|
||||
table->glfwSetWindowContentScaleCallback = glfwSetWindowContentScaleCallback;
|
||||
table->glfwSwapBuffers = glfwSwapBuffers;
|
||||
table->glfwSwapInterval = glfwSwapInterval;
|
||||
table->glfwTerminate = glfwTerminate;
|
||||
table->glfwUpdateGamepadMappings = glfwUpdateGamepadMappings;
|
||||
table->glfwWaitEvents = glfwWaitEvents;
|
||||
table->glfwWaitEventsTimeout = glfwWaitEventsTimeout;
|
||||
table->glfwVulkanSupported = glfwVulkanSupported;
|
||||
table->glfwWindowShouldClose = glfwWindowShouldClose;
|
||||
}
|
||||
-120
@@ -1,120 +0,0 @@
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
memset(table, 0, sizeof(GLFWFunctionTable));
|
||||
table->glfwInit = (int (*)(void))glfwGetProcAddress("glfwInit");
|
||||
table->glfwTerminate = (void (*)(void))glfwGetProcAddress("glfwTerminate");
|
||||
table->glfwInitHint = (void (*)(int, int))glfwGetProcAddress("glfwInitHint");
|
||||
table->glfwGetVersionString = (const char* (*)(void))glfwGetProcAddress("glfwGetVersionString");
|
||||
table->glfwGetError = (int (*)(const char**))glfwGetProcAddress("glfwGetError");
|
||||
table->glfwGetMonitors = (GLFWmonitor** (*)(int*))glfwGetProcAddress("glfwGetMonitors");
|
||||
table->glfwGetPrimaryMonitor = (GLFWmonitor* (*)(void))glfwGetProcAddress("glfwGetPrimaryMonitor");
|
||||
table->glfwGetMonitorPos = (void (*)(GLFWmonitor*, int*, int*))glfwGetProcAddress("glfwGetMonitorPos");
|
||||
table->glfwGetMonitorWorkarea = (void (*)(GLFWmonitor*, int*, int*, int*, int*))glfwGetProcAddress("glfwGetMonitorWorkarea");
|
||||
table->glfwGetMonitorPhysicalSize = (void (*)(GLFWmonitor*, int*, int*))glfwGetProcAddress("glfwGetMonitorPhysicalSize");
|
||||
table->glfwGetMonitorContentScale = (void (*)(GLFWmonitor*, float*, float*))glfwGetProcAddress("glfwGetMonitorContentScale");
|
||||
table->glfwGetMonitorName = (const char* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetMonitorName");
|
||||
table->glfwSetMonitorUserPointer = (void (*)(GLFWmonitor*, void*))glfwGetProcAddress("glfwSetMonitorUserPointer");
|
||||
table->glfwGetMonitorUserPointer = (void* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetMonitorUserPointer");
|
||||
table->glfwSetMonitorCallback = (GLFWmonitorfun (*)(GLFWmonitorfun))glfwGetProcAddress("glfwSetMonitorCallback");
|
||||
table->glfwGetVideoModes = (const GLFWvidmode* (*)(GLFWmonitor*, int*))glfwGetProcAddress("glfwGetVideoModes");
|
||||
table->glfwGetVideoMode = (const GLFWvidmode* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetVideoMode");
|
||||
table->glfwSetGamma = (void (*)(GLFWmonitor*, float))glfwGetProcAddress("glfwSetGamma");
|
||||
table->glfwGetGammaRamp = (const GLFWgammaramp* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetGammaRamp");
|
||||
table->glfwSetGammaRamp = (void (*)(GLFWmonitor*, const GLFWgammaramp*))glfwGetProcAddress("glfwSetGammaRamp");
|
||||
table->glfwDefaultWindowHints = (void (*)(void))glfwGetProcAddress("glfwDefaultWindowHints");
|
||||
table->glfwWindowHint = (void (*)(int, int))glfwGetProcAddress("glfwWindowHint");
|
||||
table->glfwWindowHintString = (void (*)(int, const char*))glfwGetProcAddress("glfwWindowHintString");
|
||||
table->glfwCreateWindow = (GLFWwindow* (*)(int, int, const char*, GLFWmonitor*, GLFWwindow*))glfwGetProcAddress("glfwCreateWindow");
|
||||
table->glfwDestroyWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwDestroyWindow");
|
||||
table->glfwWindowShouldClose = (int (*)(GLFWwindow*))glfwGetProcAddress("glfwWindowShouldClose");
|
||||
table->glfwSetWindowShouldClose = (void (*)(GLFWwindow*, int))glfwGetProcAddress("glfwSetWindowShouldClose");
|
||||
table->glfwSetWindowTitle = (void (*)(GLFWwindow*, const char*))glfwGetProcAddress("glfwSetWindowTitle");
|
||||
table->glfwSetWindowIcon = (void (*)(GLFWwindow*, int, const GLFWimage*))glfwGetProcAddress("glfwSetWindowIcon");
|
||||
table->glfwGetWindowPos = (void (*)(GLFWwindow*, int*, int*))glfwGetProcAddress("glfwGetWindowPos");
|
||||
table->glfwSetWindowPos = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowPos");
|
||||
table->glfwGetWindowSize = (void (*)(GLFWwindow*, int*, int*))glfwGetProcAddress("glfwGetWindowSize");
|
||||
table->glfwSetWindowSizeLimits = (void (*)(GLFWwindow*, int, int, int, int))glfwGetProcAddress("glfwSetWindowSizeLimits");
|
||||
table->glfwSetWindowAspectRatio = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowAspectRatio");
|
||||
table->glfwSetWindowSize = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowSize");
|
||||
table->glfwGetFramebufferSize = (void (*)(GLFWwindow*, int*, int*))glfwGetProcAddress("glfwGetFramebufferSize");
|
||||
table->glfwGetWindowFrameSize = (void (*)(GLFWwindow*, int*, int*, int*, int*))glfwGetProcAddress("glfwGetWindowFrameSize");
|
||||
table->glfwGetWindowContentScale = (void (*)(GLFWwindow*, float*, float*))glfwGetProcAddress("glfwGetWindowContentScale");
|
||||
table->glfwGetWindowOpacity = (float (*)(GLFWwindow*))glfwGetProcAddress("glfwGetWindowOpacity");
|
||||
table->glfwSetWindowOpacity = (void (*)(GLFWwindow*, float))glfwGetProcAddress("glfwSetWindowOpacity");
|
||||
table->glfwIconifyWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwIconifyWindow");
|
||||
table->glfwRestoreWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwRestoreWindow");
|
||||
table->glfwMaximizeWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwMaximizeWindow");
|
||||
table->glfwShowWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwShowWindow");
|
||||
table->glfwHideWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwHideWindow");
|
||||
table->glfwFocusWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwFocusWindow");
|
||||
table->glfwRequestWindowAttention = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwRequestWindowAttention");
|
||||
table->glfwGetWindowMonitor = (GLFWmonitor* (*)(GLFWwindow*))glfwGetProcAddress("glfwGetWindowMonitor");
|
||||
table->glfwSetWindowMonitor = (void (*)(GLFWwindow*, GLFWmonitor*, int, int, int, int, int))glfwGetProcAddress("glfwSetWindowMonitor");
|
||||
table->glfwGetWindowAttrib = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetWindowAttrib");
|
||||
table->glfwSetWindowAttrib = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowAttrib");
|
||||
table->glfwSetWindowUserPointer = (void (*)(GLFWwindow*, void*))glfwGetProcAddress("glfwSetWindowUserPointer");
|
||||
table->glfwGetWindowUserPointer = (void* (*)(GLFWwindow*))glfwGetProcAddress("glfwGetWindowUserPointer");
|
||||
table->glfwSetWindowPosCallback = (GLFWwindowposfun (*)(GLFWwindow*, GLFWwindowposfun))glfwGetProcAddress("glfwSetWindowPosCallback");
|
||||
table->glfwSetWindowSizeCallback = (GLFWwindowsizefun (*)(GLFWwindow*, GLFWwindowsizefun))glfwGetProcAddress("glfwSetWindowSizeCallback");
|
||||
table->glfwSetWindowCloseCallback = (GLFWwindowclosefun (*)(GLFWwindow*, GLFWwindowclosefun))glfwGetProcAddress("glfwSetWindowCloseCallback");
|
||||
table->glfwSetWindowRefreshCallback = (GLFWwindowrefreshfun (*)(GLFWwindow*, GLFWwindowrefreshfun))glfwGetProcAddress("glfwSetWindowRefreshCallback");
|
||||
table->glfwSetWindowFocusCallback = (GLFWwindowfocusfun (*)(GLFWwindow*, GLFWwindowfocusfun))glfwGetProcAddress("glfwSetWindowFocusCallback");
|
||||
table->glfwSetWindowIconifyCallback = (GLFWwindowiconifyfun (*)(GLFWwindow*, GLFWwindowiconifyfun))glfwGetProcAddress("glfwSetWindowIconifyCallback");
|
||||
table->glfwSetWindowMaximizeCallback = (GLFWwindowmaximizefun (*)(GLFWwindow*, GLFWwindowmaximizefun))glfwGetProcAddress("glfwSetWindowMaximizeCallback");
|
||||
table->glfwSetFramebufferSizeCallback = (GLFWframebuffersizefun (*)(GLFWwindow*, GLFWframebuffersizefun))glfwGetProcAddress("glfwSetFramebufferSizeCallback");
|
||||
table->glfwSetWindowContentScaleCallback = (GLFWwindowcontentscalefun (*)(GLFWwindow*, GLFWwindowcontentscalefun))glfwGetProcAddress("glfwSetWindowContentScaleCallback");
|
||||
table->glfwPollEvents = (void (*)(void))glfwGetProcAddress("glfwPollEvents");
|
||||
table->glfwWaitEvents = (void (*)(void))glfwGetProcAddress("glfwWaitEvents");
|
||||
table->glfwWaitEventsTimeout = (void (*)(double))glfwGetProcAddress("glfwWaitEventsTimeout");
|
||||
table->glfwPostEmptyEvent = (void (*)(void))glfwGetProcAddress("glfwPostEmptyEvent");
|
||||
table->glfwGetInputMode = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetInputMode");
|
||||
table->glfwSetInputMode = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetInputMode");
|
||||
table->glfwRawMouseMotionSupported = (int (*)(void))glfwGetProcAddress("glfwRawMouseMotionSupported");
|
||||
table->glfwGetKeyName = (const char* (*)(int, int))glfwGetProcAddress("glfwGetKeyName");
|
||||
table->glfwGetKeyScancode = (int (*)(int))glfwGetProcAddress("glfwGetKeyScancode");
|
||||
table->glfwGetKey = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetKey");
|
||||
table->glfwGetMouseButton = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetMouseButton");
|
||||
table->glfwGetCursorPos = (void (*)(GLFWwindow*, double*, double*))glfwGetProcAddress("glfwGetCursorPos");
|
||||
table->glfwSetCursorPos = (void (*)(GLFWwindow*, double, double))glfwGetProcAddress("glfwSetCursorPos");
|
||||
table->glfwCreateCursor = (GLFWcursor* (*)(const GLFWimage*, int, int))glfwGetProcAddress("glfwCreateCursor");
|
||||
table->glfwCreateStandardCursor = (GLFWcursor* (*)(int))glfwGetProcAddress("glfwCreateStandardCursor");
|
||||
table->glfwDestroyCursor = (void (*)(GLFWcursor*))glfwGetProcAddress("glfwDestroyCursor");
|
||||
table->glfwSetCursor = (void (*)(GLFWwindow*, GLFWcursor*))glfwGetProcAddress("glfwSetCursor");
|
||||
table->glfwSetKeyCallback = (GLFWkeyfun (*)(GLFWwindow*, GLFWkeyfun))glfwGetProcAddress("glfwSetKeyCallback");
|
||||
table->glfwSetCharCallback = (GLFWcharfun (*)(GLFWwindow*, GLFWcharfun))glfwGetProcAddress("glfwSetCharCallback");
|
||||
table->glfwSetCharModsCallback = (GLFWcharmodsfun (*)(GLFWwindow*, GLFWcharmodsfun))glfwGetProcAddress("glfwSetCharModsCallback");
|
||||
table->glfwSetMouseButtonCallback = (GLFWmousebuttonfun (*)(GLFWwindow*, GLFWmousebuttonfun))glfwGetProcAddress("glfwSetMouseButtonCallback");
|
||||
table->glfwSetCursorPosCallback = (GLFWcursorposfun (*)(GLFWwindow*, GLFWcursorposfun))glfwGetProcAddress("glfwSetCursorPosCallback");
|
||||
table->glfwSetCursorEnterCallback = (GLFWcursorenterfun (*)(GLFWwindow*, GLFWcursorenterfun))glfwGetProcAddress("glfwSetCursorEnterCallback");
|
||||
table->glfwSetScrollCallback = (GLFWscrollfun (*)(GLFWwindow*, GLFWscrollfun))glfwGetProcAddress("glfwSetScrollCallback");
|
||||
table->glfwSetDropCallback = (GLFWdropfun (*)(GLFWwindow*, GLFWdropfun))glfwGetProcAddress("glfwSetDropCallback");
|
||||
table->glfwJoystickPresent = (int (*)(int))glfwGetProcAddress("glfwJoystickPresent");
|
||||
table->glfwGetJoystickAxes = (const float* (*)(int, int*))glfwGetProcAddress("glfwGetJoystickAxes");
|
||||
table->glfwGetJoystickButtons = (const unsigned char* (*)(int, int*))glfwGetProcAddress("glfwGetJoystickButtons");
|
||||
table->glfwGetJoystickHats = (const unsigned char* (*)(int, int*))glfwGetProcAddress("glfwGetJoystickHats");
|
||||
table->glfwGetJoystickName = (const char* (*)(int))glfwGetProcAddress("glfwGetJoystickName");
|
||||
table->glfwGetJoystickGUID = (const char* (*)(int))glfwGetProcAddress("glfwGetJoystickGUID");
|
||||
table->glfwSetJoystickUserPointer = (void (*)(int, void*))glfwGetProcAddress("glfwSetJoystickUserPointer");
|
||||
table->glfwGetJoystickUserPointer = (void* (*)(int))glfwGetProcAddress("glfwGetJoystickUserPointer");
|
||||
table->glfwJoystickIsGamepad = (int (*)(int))glfwGetProcAddress("glfwJoystickIsGamepad");
|
||||
table->glfwSetJoystickCallback = (GLFWjoystickfun (*)(GLFWjoystickfun))glfwGetProcAddress("glfwSetJoystickCallback");
|
||||
table->glfwUpdateGamepadMappings = (int (*)(const char*))glfwGetProcAddress("glfwUpdateGamepadMappings");
|
||||
table->glfwGetGamepadName = (const char* (*)(int))glfwGetProcAddress("glfwGetGamepadName");
|
||||
table->glfwGetGamepadState = (int (*)(int, GLFWgamepadstate*))glfwGetProcAddress("glfwGetGamepadState");
|
||||
table->glfwSetClipboardString = (void (*)(GLFWwindow*, const char*))glfwGetProcAddress("glfwSetClipboardString");
|
||||
table->glfwGetClipboardString = (const char* (*)(GLFWwindow*))glfwGetProcAddress("glfwGetClipboardString");
|
||||
table->glfwGetTime = (double (*)(void))glfwGetProcAddress("glfwGetTime");
|
||||
table->glfwSetTime = (void (*)(double))glfwGetProcAddress("glfwSetTime");
|
||||
table->glfwGetTimerValue = (uint64_t (*)(void))glfwGetProcAddress("glfwGetTimerValue");
|
||||
table->glfwGetTimerFrequency = (uint64_t (*)(void))glfwGetProcAddress("glfwGetTimerFrequency");
|
||||
table->glfwMakeContextCurrent = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwMakeContextCurrent");
|
||||
table->glfwGetCurrentContext = (GLFWwindow* (*)(void))glfwGetProcAddress("glfwGetCurrentContext");
|
||||
table->glfwSwapBuffers = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwSwapBuffers");
|
||||
table->glfwSwapInterval = (void (*)(int))glfwGetProcAddress("glfwSwapInterval");
|
||||
table->glfwExtensionSupported = (int (*)(const char*))glfwGetProcAddress("glfwExtensionSupported");
|
||||
table->glfwGetProcAddress = (GLFWglproc (*)(const char*))glfwGetProcAddress("glfwGetProcAddress");
|
||||
table->glfwVulkanSupported = (int (*)(void))glfwGetProcAddress("glfwVulkanSupported");
|
||||
table->glfwGetRequiredInstanceExtensions = (const char** (*)(uint32_t*))glfwGetProcAddress("glfwGetRequiredInstanceExtensions");
|
||||
}
|
||||
-156
@@ -1,156 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunction
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged [Cdecl]<IntPtr, int, byte**, void>> glfwSetDropCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr,double, double, void>> glfwSetScrollCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "../glfw/glfw3.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
void (*glfwCreateCursor)(GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
int (*glfwGetError)(const char** description);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
double (*glfwGetTime)(void);
|
||||
uint64_t (*glfwGetTimerFrequency)(void);
|
||||
uint64_t (*glfwGetTimerValue)(void);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* string);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
void (*glfwSetJoystickUserPointer)(int jid, void* pointer);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
void (*glfwSetTime)(double time);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
void (*glfwTerminate)(void);
|
||||
int (*glfwUpdateGamepadMappings)(const char* string);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
#include "StgSharpNative.h"
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
-486
@@ -1,486 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static GLFWFunction _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
_glfw = new GLFWFunction();
|
||||
fixed (GLFWFunction* func = &_glfw) { }
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInit")]
|
||||
internal static unsafe partial int glfwInit();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwTerminate")]
|
||||
internal static unsafe partial void glfwTerminate();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInitHint")]
|
||||
internal static unsafe partial void glfwInitHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersion")]
|
||||
internal static unsafe partial void glfwGetVersion(int* major, int* minor, int* rev);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersionString")]
|
||||
internal static unsafe partial byte* glfwGetVersionString();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetError")]
|
||||
internal static unsafe partial int glfwGetError(byte** description);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetErrorCallback")]
|
||||
internal static unsafe partial delegate*<int,byte*,void> glfwSetErrorCallback(
|
||||
delegate*<int,byte*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitors")]
|
||||
internal static unsafe partial IntPtr* glfwGetMonitors(int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPrimaryMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetPrimaryMonitor();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPos")]
|
||||
internal static unsafe partial void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorWorkarea")]
|
||||
internal static unsafe partial void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPhysicalSize")]
|
||||
internal static unsafe partial void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorContentScale")]
|
||||
internal static unsafe partial void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorName")]
|
||||
internal static unsafe partial byte* glfwGetMonitorName(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorUserPointer")]
|
||||
internal static unsafe partial void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorUserPointer")]
|
||||
internal static unsafe partial void* glfwGetMonitorUserPointer(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetMonitorCallback(
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoModes")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoMode")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoMode(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGamma")]
|
||||
internal static unsafe partial void glfwSetGamma(IntPtr monitor, float gamma);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGammaRamp")]
|
||||
internal static unsafe partial glfwGammaramp* glfwGetGammaRamp(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGammaRamp")]
|
||||
internal static unsafe partial void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDefaultWindowHints")]
|
||||
internal static unsafe partial void glfwDefaultWindowHints();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHint")]
|
||||
internal static unsafe partial void glfwWindowHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHintString")]
|
||||
internal static unsafe partial void glfwWindowHintString(int hint, byte* value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindow")]
|
||||
internal static unsafe partial IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
byte[] title,
|
||||
IntPtr monitor,
|
||||
IntPtr share);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyWindow")]
|
||||
internal static unsafe partial void glfwDestroyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowShouldClose")]
|
||||
internal static unsafe partial int glfwWindowShouldClose(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowShouldClose")]
|
||||
internal static unsafe partial void glfwSetWindowShouldClose(IntPtr window, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowTitle")]
|
||||
internal static unsafe partial void glfwSetWindowTitle(IntPtr window, byte* title);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIcon")]
|
||||
internal static unsafe partial void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowPos")]
|
||||
internal static unsafe partial void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPos")]
|
||||
internal static unsafe partial void glfwSetWindowPos(IntPtr window, int xpos, int ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowSize")]
|
||||
internal static unsafe partial void glfwGetWindowSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeLimits")]
|
||||
internal static unsafe partial void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAspectRatio")]
|
||||
internal static unsafe partial void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSize")]
|
||||
internal static unsafe partial void glfwSetWindowSize(IntPtr window, int width, int height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetFramebufferSize")]
|
||||
internal static unsafe partial void glfwGetFramebufferSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowFrameSize")]
|
||||
internal static unsafe partial void glfwGetWindowFrameSize(
|
||||
IntPtr window,
|
||||
int* left,
|
||||
int* top,
|
||||
int* right,
|
||||
int* bottom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowContentScale")]
|
||||
internal static unsafe partial void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowOpacity")]
|
||||
internal static unsafe partial float glfwGetWindowOpacity(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowOpacity")]
|
||||
internal static unsafe partial void glfwSetWindowOpacity(IntPtr window, float opacity);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwIconifyWindow")]
|
||||
internal static unsafe partial void glfwIconifyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRestoreWindow")]
|
||||
internal static unsafe partial void glfwRestoreWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMaximizeWindow")]
|
||||
internal static unsafe partial void glfwMaximizeWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwShowWindow")]
|
||||
internal static unsafe partial void glfwShowWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwHideWindow")]
|
||||
internal static unsafe partial void glfwHideWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwFocusWindow")]
|
||||
internal static unsafe partial void glfwFocusWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRequestWindowAttention")]
|
||||
internal static unsafe partial void glfwRequestWindowAttention(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetWindowMonitor(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMonitor")]
|
||||
internal static unsafe partial void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowAttrib")]
|
||||
internal static unsafe partial int glfwGetWindowAttrib(IntPtr window, int attrib);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAttrib")]
|
||||
internal static unsafe partial void glfwSetWindowAttrib(IntPtr window, int attrib, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowUserPointer")]
|
||||
internal static unsafe partial void glfwSetWindowUserPointer(IntPtr window, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowUserPointer")]
|
||||
internal static unsafe partial void* glfwGetWindowUserPointer(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowCloseCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowRefreshCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowFocusCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIconifyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMaximizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetFramebufferSizeCallback")]
|
||||
internal static unsafe partial FrameBufferSizeHandler glfwSetFramebufferSizeCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowContentScaleCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, float,float> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, float,float> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPollEvents")]
|
||||
internal static unsafe partial void glfwPollEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEvents")]
|
||||
internal static unsafe partial void glfwWaitEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEventsTimeout")]
|
||||
internal static unsafe partial void glfwWaitEventsTimeout(double timeout);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPostEmptyEvent")]
|
||||
internal static unsafe partial void glfwPostEmptyEvent();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInputMode")]
|
||||
internal static unsafe partial int glfwGetInputMode(IntPtr window, int mode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetInputMode")]
|
||||
internal static unsafe partial void glfwSetInputMode(IntPtr window, int mode, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRawMouseMotionSupported")]
|
||||
internal static unsafe partial int glfwRawMouseMotionSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyName")]
|
||||
internal static unsafe partial byte* glfwGetKeyName(int key, int scancode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyScancode")]
|
||||
internal static unsafe partial int glfwGetKeyScancode(int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKey")]
|
||||
internal static unsafe partial KeyStatus glfwGetKey(IntPtr window, int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMouseButton")]
|
||||
internal static unsafe partial int glfwGetMouseButton(IntPtr window, int button);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCursorPos")]
|
||||
internal static unsafe partial void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPos")]
|
||||
internal static unsafe partial void glfwSetCursorPos(IntPtr window, double xpos, double ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateStandardCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateStandardCursor(int shape);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyCursor")]
|
||||
internal static unsafe partial void glfwDestroyCursor(GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursor")]
|
||||
internal static unsafe partial void glfwSetCursor(IntPtr window, GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetKeyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,int,void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,uint,void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,uint,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharModsCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMouseButtonCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorEnterCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetScrollCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetDropCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,byte**,void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,byte**,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickPresent")]
|
||||
internal static unsafe partial int glfwJoystickPresent(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickAxes")]
|
||||
internal static unsafe partial float* glfwGetJoystickAxes(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickButtons")]
|
||||
internal static unsafe partial byte* glfwGetJoystickButtons(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickHats")]
|
||||
internal static unsafe partial byte* glfwGetJoystickHats(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickName")]
|
||||
internal static unsafe partial byte* glfwGetJoystickName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickGUID")]
|
||||
internal static unsafe partial byte* glfwGetJoystickGUID(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickUserPointer")]
|
||||
internal static unsafe partial void glfwSetJoystickUserPointer(int jid, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickUserPointer")]
|
||||
internal static unsafe partial void* glfwGetJoystickUserPointer(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickIsGamepad")]
|
||||
internal static unsafe partial int glfwJoystickIsGamepad(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickCallback")]
|
||||
internal static unsafe partial delegate*<int,int,void> glfwSetJoystickCallback(delegate*<int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwUpdateGamepadMappings")]
|
||||
internal static unsafe partial int glfwUpdateGamepadMappings(byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadName")]
|
||||
internal static unsafe partial byte* glfwGetGamepadName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadState")]
|
||||
internal static unsafe partial int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetClipboardString")]
|
||||
internal static unsafe partial void glfwSetClipboardString(IntPtr window, byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetClipboardString")]
|
||||
internal static unsafe partial byte* glfwGetClipboardString(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTime")]
|
||||
internal static unsafe partial double glfwGetTime();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetTime")]
|
||||
internal static unsafe partial void glfwSetTime(double time);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerValue")]
|
||||
internal static unsafe partial ulong* glfwGetTimerValue();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerFrequency")]
|
||||
internal static unsafe partial ulong* glfwGetTimerFrequency();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMakeContextCurrent")]
|
||||
internal static unsafe partial void glfwMakeContextCurrent(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCurrentContext")]
|
||||
internal static unsafe partial IntPtr glfwGetCurrentContext();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapBuffers")]
|
||||
internal static unsafe partial void glfwSwapBuffers(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapInterval")]
|
||||
internal static unsafe partial void glfwSwapInterval(int interval);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwExtensionSupported")]
|
||||
internal static unsafe partial int glfwExtensionSupported(byte* extension);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetProcAddress", StringMarshalling = StringMarshalling.Utf8)]
|
||||
internal static unsafe partial IntPtr glfwGetProcAddress(string procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwVulkanSupported")]
|
||||
internal static unsafe partial int glfwVulkanSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetRequiredInstanceExtensions")]
|
||||
internal static unsafe partial byte** glfwGetRequiredInstanceExtensions(uint* count);
|
||||
|
||||
/*
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInstanceProcAddress")] internal static unsafe partial delegate*<void> glfwGetInstanceProcAddress(
|
||||
VkInstance instance,
|
||||
byte* procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPhysicalDevicePresentationSupport")] internal static unsafe partial int glfwGetPhysicalDevicePresentationSupport(
|
||||
VkInstance instance,
|
||||
VkPhysicalDevice device,
|
||||
uint* queuefamily);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindowSurface")] internal static unsafe partial VkResult glfwCreateWindowSurface(
|
||||
VkInstance instance,
|
||||
glfwWindow* window,
|
||||
VkAllocationCallbacks* _allocator,
|
||||
VkSurfaceKHR* surface);
|
||||
/**/
|
||||
|
||||
#endregion api call
|
||||
}
|
||||
}
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine($"{logType}\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release();
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"{logType}\t@\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-486
@@ -1,486 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static GLFWFunction _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
_glfw = new GLFWFunction();
|
||||
fixed (GLFWFunction* func = &_glfw) { }
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInit")]
|
||||
internal static unsafe partial int glfwInit();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwTerminate")]
|
||||
internal static unsafe partial void glfwTerminate();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInitHint")]
|
||||
internal static unsafe partial void glfwInitHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersion")]
|
||||
internal static unsafe partial void glfwGetVersion(int* major, int* minor, int* rev);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersionString")]
|
||||
internal static unsafe partial byte* glfwGetVersionString();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetError")]
|
||||
internal static unsafe partial int glfwGetError(byte** description);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetErrorCallback")]
|
||||
internal static unsafe partial delegate*<int,byte*,void> glfwSetErrorCallback(
|
||||
delegate*<int,byte*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitors")]
|
||||
internal static unsafe partial IntPtr* glfwGetMonitors(int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPrimaryMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetPrimaryMonitor();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPos")]
|
||||
internal static unsafe partial void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorWorkarea")]
|
||||
internal static unsafe partial void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPhysicalSize")]
|
||||
internal static unsafe partial void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorContentScale")]
|
||||
internal static unsafe partial void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorName")]
|
||||
internal static unsafe partial byte* glfwGetMonitorName(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorUserPointer")]
|
||||
internal static unsafe partial void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorUserPointer")]
|
||||
internal static unsafe partial void* glfwGetMonitorUserPointer(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetMonitorCallback(
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoModes")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoMode")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoMode(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGamma")]
|
||||
internal static unsafe partial void glfwSetGamma(IntPtr monitor, float gamma);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGammaRamp")]
|
||||
internal static unsafe partial glfwGammaramp* glfwGetGammaRamp(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGammaRamp")]
|
||||
internal static unsafe partial void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDefaultWindowHints")]
|
||||
internal static unsafe partial void glfwDefaultWindowHints();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHint")]
|
||||
internal static unsafe partial void glfwWindowHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHintString")]
|
||||
internal static unsafe partial void glfwWindowHintString(int hint, byte* value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindow")]
|
||||
internal static unsafe partial IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
byte[] title,
|
||||
IntPtr monitor,
|
||||
IntPtr share);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyWindow")]
|
||||
internal static unsafe partial void glfwDestroyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowShouldClose")]
|
||||
internal static unsafe partial int glfwWindowShouldClose(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowShouldClose")]
|
||||
internal static unsafe partial void glfwSetWindowShouldClose(IntPtr window, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowTitle")]
|
||||
internal static unsafe partial void glfwSetWindowTitle(IntPtr window, byte* title);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIcon")]
|
||||
internal static unsafe partial void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowPos")]
|
||||
internal static unsafe partial void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPos")]
|
||||
internal static unsafe partial void glfwSetWindowPos(IntPtr window, int xpos, int ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowSize")]
|
||||
internal static unsafe partial void glfwGetWindowSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeLimits")]
|
||||
internal static unsafe partial void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAspectRatio")]
|
||||
internal static unsafe partial void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSize")]
|
||||
internal static unsafe partial void glfwSetWindowSize(IntPtr window, int width, int height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetFramebufferSize")]
|
||||
internal static unsafe partial void glfwGetFramebufferSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowFrameSize")]
|
||||
internal static unsafe partial void glfwGetWindowFrameSize(
|
||||
IntPtr window,
|
||||
int* left,
|
||||
int* top,
|
||||
int* right,
|
||||
int* bottom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowContentScale")]
|
||||
internal static unsafe partial void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowOpacity")]
|
||||
internal static unsafe partial float glfwGetWindowOpacity(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowOpacity")]
|
||||
internal static unsafe partial void glfwSetWindowOpacity(IntPtr window, float opacity);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwIconifyWindow")]
|
||||
internal static unsafe partial void glfwIconifyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRestoreWindow")]
|
||||
internal static unsafe partial void glfwRestoreWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMaximizeWindow")]
|
||||
internal static unsafe partial void glfwMaximizeWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwShowWindow")]
|
||||
internal static unsafe partial void glfwShowWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwHideWindow")]
|
||||
internal static unsafe partial void glfwHideWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwFocusWindow")]
|
||||
internal static unsafe partial void glfwFocusWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRequestWindowAttention")]
|
||||
internal static unsafe partial void glfwRequestWindowAttention(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetWindowMonitor(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMonitor")]
|
||||
internal static unsafe partial void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowAttrib")]
|
||||
internal static unsafe partial int glfwGetWindowAttrib(IntPtr window, int attrib);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAttrib")]
|
||||
internal static unsafe partial void glfwSetWindowAttrib(IntPtr window, int attrib, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowUserPointer")]
|
||||
internal static unsafe partial void glfwSetWindowUserPointer(IntPtr window, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowUserPointer")]
|
||||
internal static unsafe partial void* glfwGetWindowUserPointer(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowCloseCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowRefreshCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowFocusCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIconifyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMaximizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetFramebufferSizeCallback")]
|
||||
internal static unsafe partial FrameBufferSizeHandler glfwSetFramebufferSizeCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowContentScaleCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, float,float> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, float,float> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPollEvents")]
|
||||
internal static unsafe partial void glfwPollEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEvents")]
|
||||
internal static unsafe partial void glfwWaitEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEventsTimeout")]
|
||||
internal static unsafe partial void glfwWaitEventsTimeout(double timeout);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPostEmptyEvent")]
|
||||
internal static unsafe partial void glfwPostEmptyEvent();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInputMode")]
|
||||
internal static unsafe partial int glfwGetInputMode(IntPtr window, int mode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetInputMode")]
|
||||
internal static unsafe partial void glfwSetInputMode(IntPtr window, int mode, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRawMouseMotionSupported")]
|
||||
internal static unsafe partial int glfwRawMouseMotionSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyName")]
|
||||
internal static unsafe partial byte* glfwGetKeyName(int key, int scancode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyScancode")]
|
||||
internal static unsafe partial int glfwGetKeyScancode(int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKey")]
|
||||
internal static unsafe partial KeyStatus glfwGetKey(IntPtr window, int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMouseButton")]
|
||||
internal static unsafe partial int glfwGetMouseButton(IntPtr window, int button);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCursorPos")]
|
||||
internal static unsafe partial void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPos")]
|
||||
internal static unsafe partial void glfwSetCursorPos(IntPtr window, double xpos, double ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateStandardCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateStandardCursor(int shape);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyCursor")]
|
||||
internal static unsafe partial void glfwDestroyCursor(GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursor")]
|
||||
internal static unsafe partial void glfwSetCursor(IntPtr window, GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetKeyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,int,void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,uint,void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,uint,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharModsCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMouseButtonCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorEnterCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetScrollCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetDropCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,byte**,void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,byte**,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickPresent")]
|
||||
internal static unsafe partial int glfwJoystickPresent(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickAxes")]
|
||||
internal static unsafe partial float* glfwGetJoystickAxes(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickButtons")]
|
||||
internal static unsafe partial byte* glfwGetJoystickButtons(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickHats")]
|
||||
internal static unsafe partial byte* glfwGetJoystickHats(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickName")]
|
||||
internal static unsafe partial byte* glfwGetJoystickName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickGUID")]
|
||||
internal static unsafe partial byte* glfwGetJoystickGUID(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickUserPointer")]
|
||||
internal static unsafe partial void glfwSetJoystickUserPointer(int jid, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickUserPointer")]
|
||||
internal static unsafe partial void* glfwGetJoystickUserPointer(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickIsGamepad")]
|
||||
internal static unsafe partial int glfwJoystickIsGamepad(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickCallback")]
|
||||
internal static unsafe partial delegate*<int,int,void> glfwSetJoystickCallback(delegate*<int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwUpdateGamepadMappings")]
|
||||
internal static unsafe partial int glfwUpdateGamepadMappings(byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadName")]
|
||||
internal static unsafe partial byte* glfwGetGamepadName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadState")]
|
||||
internal static unsafe partial int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetClipboardString")]
|
||||
internal static unsafe partial void glfwSetClipboardString(IntPtr window, byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetClipboardString")]
|
||||
internal static unsafe partial byte* glfwGetClipboardString(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTime")]
|
||||
internal static unsafe partial double glfwGetTime();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetTime")]
|
||||
internal static unsafe partial void glfwSetTime(double time);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerValue")]
|
||||
internal static unsafe partial ulong* glfwGetTimerValue();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerFrequency")]
|
||||
internal static unsafe partial ulong* glfwGetTimerFrequency();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMakeContextCurrent")]
|
||||
internal static unsafe partial void glfwMakeContextCurrent(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCurrentContext")]
|
||||
internal static unsafe partial IntPtr glfwGetCurrentContext();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapBuffers")]
|
||||
internal static unsafe partial void glfwSwapBuffers(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapInterval")]
|
||||
internal static unsafe partial void glfwSwapInterval(int interval);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwExtensionSupported")]
|
||||
internal static unsafe partial int glfwExtensionSupported(byte* extension);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetProcAddress", StringMarshalling = StringMarshalling.Utf8)]
|
||||
internal static unsafe partial IntPtr glfwGetProcAddress(string procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwVulkanSupported")]
|
||||
internal static unsafe partial int glfwVulkanSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetRequiredInstanceExtensions")]
|
||||
internal static unsafe partial byte** glfwGetRequiredInstanceExtensions(uint* count);
|
||||
|
||||
/*
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInstanceProcAddress")] internal static unsafe partial delegate*<void> glfwGetInstanceProcAddress(
|
||||
VkInstance instance,
|
||||
byte* procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPhysicalDevicePresentationSupport")] internal static unsafe partial int glfwGetPhysicalDevicePresentationSupport(
|
||||
VkInstance instance,
|
||||
VkPhysicalDevice device,
|
||||
uint* queuefamily);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindowSurface")] internal static unsafe partial VkResult glfwCreateWindowSurface(
|
||||
VkInstance instance,
|
||||
glfwWindow* window,
|
||||
VkAllocationCallbacks* _allocator,
|
||||
VkSurfaceKHR* surface);
|
||||
/**/
|
||||
|
||||
#endregion api call
|
||||
}
|
||||
}
|
||||
-363
@@ -1,363 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static GLFWFunction _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
_glfw = new GLFWFunction();
|
||||
fixed (GLFWFunction* func = &_glfw) { }
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
internal static unsafe int glfwInit() => _glfw.glfwInit();
|
||||
|
||||
internal static unsafe void glfwTerminate() => _glfw.glfwTerminate();
|
||||
|
||||
internal static unsafe void glfwInitHint(int hint, int value) => _glfw.glfwInitHint(hint, value);
|
||||
|
||||
internal static unsafe void glfwGetVersion(int* major, int* minor, int* rev) => _glfw.glfwGetVersion(major, minor, rev);
|
||||
|
||||
internal static unsafe byte* glfwGetVersionString() => _glfw.glfwGetVersionString();
|
||||
|
||||
internal static unsafe int glfwGetError(byte** description) => _glfw.glfwGetError(description);
|
||||
|
||||
internal static unsafe delegate*<int, byte*, void> glfwSetErrorCallback(delegate*<int, byte*, void> callback) => _glfw.glfwSetErrorCallback(callback);
|
||||
|
||||
internal static unsafe IntPtr* glfwGetMonitors(int* count) => _glfw.glfwGetMonitors(count);
|
||||
|
||||
internal static unsafe IntPtr glfwGetPrimaryMonitor() => _glfw.glfwGetPrimaryMonitor();
|
||||
|
||||
internal static unsafe void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos) => _glfw.glfwGetMonitorPos(monitor, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height) => _glfw.glfwGetMonitorWorkarea(monitor, xpos, ypos, width, height);
|
||||
|
||||
internal static unsafe void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM) => _glfw.glfwGetMonitorPhysicalSize(monitor, widthMM, heightMM);
|
||||
|
||||
internal static unsafe void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale) => _glfw.glfwGetMonitorContentScale(monitor, xscale, yscale);
|
||||
|
||||
internal static unsafe byte* glfwGetMonitorName(IntPtr monitor) => _glfw.glfwGetMonitorName(monitor);
|
||||
|
||||
internal static unsafe void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer) => _glfw.glfwSetMonitorUserPointer(monitor, pointer);
|
||||
|
||||
internal static unsafe void* glfwGetMonitorUserPointer(IntPtr monitor) => _glfw.glfwGetMonitorUserPointer(monitor);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetMonitorCallback(
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetMonitorCallback(callback);
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count) => _glfw.glfwGetVideoModes(monitor, count);
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoMode(IntPtr monitor) => _glfw.glfwGetVideoMode(monitor);
|
||||
|
||||
internal static unsafe void glfwSetGamma(IntPtr monitor, float gamma) => _glfw.glfwSetGamma(monitor, gamma);
|
||||
|
||||
internal static unsafe glfwGammaramp* glfwGetGammaRamp(IntPtr monitor) => _glfw.glfwGetGammaRamp(monitor);
|
||||
|
||||
internal static unsafe void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp) => _glfw.glfwSetGammaRamp(monitor, ramp);
|
||||
|
||||
internal static unsafe void glfwDefaultWindowHints() => _glfw.glfwDefaultWindowHints();
|
||||
|
||||
internal static unsafe void glfwWindowHint(int hint, int value) => _glfw.glfwWindowHint(hint, value);
|
||||
|
||||
internal static unsafe void glfwWindowHintString(int hint, byte* value) => _glfw.glfwWindowHintString(hint, value);
|
||||
|
||||
internal static unsafe IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
byte[] title,
|
||||
IntPtr monitor,
|
||||
IntPtr share) => _glfw.glfwCreateWindow(width, height, title, monitor, share);
|
||||
|
||||
internal static unsafe void glfwDestroyWindow(IntPtr window) => _glfw.glfwDestroyWindow(window);
|
||||
|
||||
internal static unsafe int glfwWindowShouldClose(IntPtr window) => _glfw.glfwWindowShouldClose(window);
|
||||
|
||||
internal static unsafe void glfwSetWindowShouldClose(IntPtr window, int value) => _glfw.glfwSetWindowShouldClose(window, value);
|
||||
|
||||
internal static unsafe void glfwSetWindowTitle(IntPtr window, byte* title) => _glfw.glfwSetWindowTitle(window, title);
|
||||
|
||||
internal static unsafe void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images) => _glfw.glfwSetWindowIcon(window, count, images);
|
||||
|
||||
internal static unsafe void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos) => _glfw.glfwGetWindowPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwSetWindowPos(IntPtr window, int xpos, int ypos) => _glfw.glfwSetWindowPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwGetWindowSize(IntPtr window, int* width, int* height) => _glfw.glfwGetWindowSize(window, width, height);
|
||||
|
||||
internal static unsafe void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight) => _glfw.glfwSetWindowSizeLimits(window, minwidth, minheight, maxwidth, maxheight);
|
||||
|
||||
internal static unsafe void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom) => _glfw.glfwSetWindowAspectRatio(window, numer, denom);
|
||||
|
||||
internal static unsafe void glfwSetWindowSize(IntPtr window, int width, int height) => _glfw.glfwSetWindowSize(window, width, height);
|
||||
|
||||
internal static unsafe void glfwGetFramebufferSize(IntPtr window, int* width, int* height) => _glfw.glfwGetFramebufferSize(window, width, height);
|
||||
|
||||
internal static unsafe void glfwGetWindowFrameSize(IntPtr window, int* left, int* top, int* right, int* bottom) => _glfw.glfwGetWindowFrameSize(window, left, top, right, bottom);
|
||||
|
||||
internal static unsafe void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale) => _glfw.glfwGetWindowContentScale(window, xscale, yscale);
|
||||
|
||||
internal static unsafe float glfwGetWindowOpacity(IntPtr window) => _glfw.glfwGetWindowOpacity(window);
|
||||
|
||||
internal static unsafe void glfwSetWindowOpacity(IntPtr window, float opacity) => _glfw.glfwSetWindowOpacity(window, opacity);
|
||||
|
||||
internal static unsafe void glfwIconifyWindow(IntPtr window) => _glfw.glfwIconifyWindow(window);
|
||||
|
||||
internal static unsafe void glfwRestoreWindow(IntPtr window) => _glfw.glfwRestoreWindow(window);
|
||||
|
||||
internal static unsafe void glfwMaximizeWindow(IntPtr window) => _glfw.glfwMaximizeWindow(window);
|
||||
|
||||
internal static unsafe void glfwShowWindow(IntPtr window) => _glfw.glfwShowWindow(window);
|
||||
|
||||
internal static unsafe void glfwHideWindow(IntPtr window) => _glfw.glfwHideWindow(window);
|
||||
|
||||
internal static unsafe void glfwFocusWindow(IntPtr window) => _glfw.glfwFocusWindow(window);
|
||||
|
||||
internal static unsafe void glfwRequestWindowAttention(IntPtr window) => _glfw.glfwRequestWindowAttention(window);
|
||||
|
||||
internal static unsafe IntPtr glfwGetWindowMonitor(IntPtr window) => _glfw.glfwGetWindowMonitor(window);
|
||||
|
||||
internal static unsafe void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate) => _glfw.glfwSetWindowMonitor(
|
||||
window, monitor, xpos, ypos, width, height, refreshRate);
|
||||
|
||||
internal static unsafe int glfwGetWindowAttrib(IntPtr window, int attrib) => _glfw.glfwGetWindowAttrib(window, attrib);
|
||||
|
||||
internal static unsafe void glfwSetWindowAttrib(IntPtr window, int attrib, int value) => _glfw.glfwSetWindowAttrib(window, attrib, value);
|
||||
|
||||
internal static unsafe void glfwSetWindowUserPointer(IntPtr window, void* pointer) => _glfw.glfwSetWindowUserPointer(window, pointer);
|
||||
|
||||
internal static unsafe void* glfwGetWindowUserPointer(IntPtr window) => _glfw.glfwGetWindowUserPointer(window);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback) => _glfw.glfwSetWindowPosCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, void> callback) => _glfw.glfwSetWindowSizeCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback) => _glfw.glfwSetWindowCloseCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback) => _glfw.glfwSetWindowRefreshCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetWindowFocusCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetWindowIconifyCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetWindowMaximizeCallback(window, callback);
|
||||
|
||||
internal static unsafe FrameBufferSizeHandler glfwSetFramebufferSizeCallback(IntPtr window, IntPtr callback) => _glfw.glfwSetFramebufferSizeCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, float, float> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, float, float> callback) => _glfw.glfwSetWindowContentScaleCallback(window, callback);
|
||||
|
||||
internal static unsafe void glfwPollEvents() => _glfw.glfwPollEvents();
|
||||
|
||||
internal static unsafe void glfwWaitEvents() => _glfw.glfwWaitEvents();
|
||||
|
||||
internal static unsafe void glfwWaitEventsTimeout(double timeout) => _glfw.glfwWaitEventsTimeout(timeout);
|
||||
|
||||
internal static unsafe void glfwPostEmptyEvent() => _glfw.glfwPostEmptyEvent();
|
||||
|
||||
internal static unsafe int glfwGetInputMode(IntPtr window, int mode) => _glfw.glfwGetInputMode(window, mode);
|
||||
|
||||
internal static unsafe void glfwSetInputMode(IntPtr window, int mode, int value) => _glfw.glfwSetInputMode(window, mode, value);
|
||||
|
||||
internal static unsafe int glfwRawMouseMotionSupported() => _glfw.glfwRawMouseMotionSupported();
|
||||
|
||||
internal static unsafe byte* glfwGetKeyName(int key, int scancode) => _glfw.glfwGetKeyName(key, scancode);
|
||||
|
||||
internal static unsafe int glfwGetKeyScancode(int key) => _glfw.glfwGetKeyScancode(key);
|
||||
|
||||
internal static unsafe KeyStatus glfwGetKey(IntPtr window, int key) => _glfw.glfwGetKey(window, key);
|
||||
|
||||
internal static unsafe int glfwGetMouseButton(IntPtr window, int button) => _glfw.glfwGetMouseButton(window, button);
|
||||
|
||||
internal static unsafe void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos) => _glfw.glfwGetCursorPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe void glfwSetCursorPos(IntPtr window, double xpos, double ypos) => _glfw.glfwSetCursorPos(window, xpos, ypos);
|
||||
|
||||
internal static unsafe GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot) => _glfw.glfwCreateCursor(image, xhot, yhot);
|
||||
|
||||
internal static unsafe GLFWcursor* glfwCreateStandardCursor(int shape) => _glfw.glfwCreateStandardCursor(shape);
|
||||
|
||||
internal static unsafe void glfwDestroyCursor(GLFWcursor* cursor) => _glfw.glfwDestroyCursor(cursor);
|
||||
|
||||
internal static unsafe void glfwSetCursor(IntPtr window, GLFWcursor* cursor) => _glfw.glfwSetCursor(window, cursor);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, int, int, void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, int, int, void> callback) => _glfw.glfwSetKeyCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, uint, void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, uint, void> callback) => _glfw.glfwSetCharCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, void> callback) => _glfw.glfwSetCharModsCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, int, int, void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, int, int, void> callback) => _glfw.glfwSetMouseButtonCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, double, double, void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, double, double, void> callback) => _glfw.glfwSetCursorPosCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, void> callback) => _glfw.glfwSetCursorEnterCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, double, double, void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, double, double, void> callback) => _glfw.glfwSetScrollCallback(window, callback);
|
||||
|
||||
internal static unsafe delegate*<glfwWindow*, int, byte**, void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, int, byte**, void> callback) => _glfw.glfwSetDropCallback(window, callback);
|
||||
|
||||
internal static unsafe int glfwJoystickPresent(int jid) => _glfw.glfwJoystickPresent(jid);
|
||||
|
||||
internal static unsafe float* glfwGetJoystickAxes(int jid, int* count) => _glfw.glfwGetJoystickAxes(jid, count);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickButtons(int jid, int* count) => _glfw.glfwGetJoystickButtons(jid, count);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickHats(int jid, int* count) => _glfw.glfwGetJoystickHats(jid, count);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickName(int jid) => _glfw.glfwGetJoystickName(jid);
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickGUID(int jid) => _glfw.glfwGetJoystickGUID(jid);
|
||||
|
||||
internal static unsafe void glfwSetJoystickUserPointer(int jid, void* pointer) => _glfw.glfwSetJoystickUserPointer(jid, pointer);
|
||||
|
||||
internal static unsafe void* glfwGetJoystickUserPointer(int jid) => _glfw.glfwGetJoystickUserPointer(jid);
|
||||
|
||||
internal static unsafe int glfwJoystickIsGamepad(int jid) => _glfw.glfwJoystickIsGamepad(jid);
|
||||
|
||||
internal static unsafe delegate*<int, int, void> glfwSetJoystickCallback(delegate*<int, int, void> callback) => _glfw.glfwSetJoystickCallback(callback);
|
||||
|
||||
internal static unsafe int glfwUpdateGamepadMappings(byte* str) => _glfw.glfwUpdateGamepadMappings(str);
|
||||
|
||||
internal static unsafe byte* glfwGetGamepadName(int jid) => _glfw.glfwGetGamepadName(jid);
|
||||
|
||||
internal static unsafe int glfwGetGamepadState(int jid, GLFWgamepadstate* state) => _glfw.glfwGetGamepadState(jid, state);
|
||||
|
||||
internal static unsafe void glfwSetClipboardString(IntPtr window, byte* str) => _glfw.glfwSetClipboardString(window, str);
|
||||
|
||||
internal static unsafe byte* glfwGetClipboardString(IntPtr window) => _glfw.glfwGetClipboardString(window);
|
||||
|
||||
internal static unsafe double glfwGetTime() => _glfw.glfwGetTime();
|
||||
|
||||
internal static unsafe void glfwSetTime(double time) => _glfw.glfwSetTime(time);
|
||||
|
||||
internal static unsafe ulong* glfwGetTimerValue() => _glfw.glfwGetTimerValue();
|
||||
|
||||
internal static unsafe ulong* glfwGetTimerFrequency() => _glfw.glfwGetTimerFrequency();
|
||||
|
||||
internal static unsafe void glfwMakeContextCurrent(IntPtr window) => _glfw.glfwMakeContextCurrent(window);
|
||||
|
||||
internal static unsafe IntPtr glfwGetCurrentContext() => _glfw.glfwGetCurrentContext();
|
||||
|
||||
internal static unsafe void glfwSwapBuffers(IntPtr window) => _glfw.glfwSwapBuffers(window);
|
||||
|
||||
internal static unsafe void glfwSwapInterval(int interval) => _glfw.glfwSwapInterval(interval);
|
||||
|
||||
internal static unsafe int glfwExtensionSupported(byte* extension) => _glfw.glfwExtensionSupported(extension);
|
||||
|
||||
internal static unsafe IntPtr glfwGetProcAddress(string procname) => _glfw.glfwGetProcAddress(procname);
|
||||
|
||||
internal static unsafe int glfwVulkanSupported() => _glfw.glfwVulkanSupported();
|
||||
|
||||
internal static unsafe byte** glfwGetRequiredInstanceExtensions(uint* count) => _glfw.glfwGetRequiredInstanceExtensions(count);
|
||||
|
||||
/*
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInstanceProcAddress")] internal static unsafe partial delegate*<void> glfwGetInstanceProcAddress(
|
||||
VkInstance instance,
|
||||
byte* procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPhysicalDevicePresentationSupport")] internal static unsafe partial int glfwGetPhysicalDevicePresentationSupport(
|
||||
VkInstance instance,
|
||||
VkPhysicalDevice device,
|
||||
uint* queuefamily);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindowSurface")] internal static unsafe partial VkResult glfwCreateWindowSurface(
|
||||
VkInstance instance,
|
||||
glfwWindow* window,
|
||||
VkAllocationCallbacks* _allocator,
|
||||
VkSurfaceKHR* surface);
|
||||
/**/
|
||||
|
||||
#endregion api call
|
||||
}
|
||||
}
|
||||
-156
@@ -1,156 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunction
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged [Cdecl]<IntPtr, int, byte**, void>> glfwSetDropCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr,double, double, void>> glfwSetScrollCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine($"{logType}\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release();
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"{logType}\t@\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine($"{logType}\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release();
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"{logType}\t@\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-153
@@ -1,153 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private const long MaxLogFileSize = 10 * 1024 * 1024; // 10 MB
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
private static LogType _currentLogLevel = LogType.Info;
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
if (logType < _currentLogLevel) {
|
||||
return;
|
||||
}
|
||||
|
||||
logSyncSemaphore.Wait();
|
||||
try
|
||||
{
|
||||
RotateLogFile();
|
||||
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] [{logType}] {logLine}");
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
logSyncSemaphore.Release();
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] [{logType}] {logLine}");
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
internal static void SetLogLevel(LogType logLevel)
|
||||
{
|
||||
_currentLogLevel = logLevel;
|
||||
}
|
||||
|
||||
private static void RotateLogFile()
|
||||
{
|
||||
if (File.Exists(SS_errorLog) && new FileInfo(SS_errorLog).Length > MaxLogFileSize)
|
||||
{
|
||||
string backupFile = SS_errorLog + ".backup";
|
||||
if (File.Exists(backupFile)) {
|
||||
File.Delete(backupFile);
|
||||
}
|
||||
File.Move(SS_errorLog, backupFile);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-132
@@ -1,132 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "../glfw/glfw3.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwTerminate)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwGetVersion)(int* major, int* minor, int* rev);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
int (*glfwGetError)(const char** description);
|
||||
GLFWerrorfun (*glfwSetErrorCallback)(GLFWerrorfun callback);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGamma)(GLFWmonitor* monitor, float gamma);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwWindowHint)(int hint, int value);
|
||||
void (*glfwWindowHintString)(int hint, const char* value);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwShowWindow)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
void (*glfwSetInputMode)(GLFWwindow* window, int mode, int value);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursor* (*glfwCreateCursor)(const GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
int (*glfwJoystickPresent)(int jid);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwJoystickIsGamepad)(int jid);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
int (*glfwUpdateGamepadMappings)(const char* str);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* str);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
double (*glfwGetTime)(void);
|
||||
void (*glfwSetTime)(double time);
|
||||
unsigned long long (*glfwGetTimerValue)(void);
|
||||
unsigned long long (*glfwGetTimerFrequency)(void);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
int (*glfwExtensionSupported)(const char* extension);
|
||||
GLFWglproc (*glfwGetProcAddress)(const char* procname);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
const char** (*glfwGetRequiredInstanceExtensions)(unsigned int* count);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine($"{logType}\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release();
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"{logType}\t@\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-132
@@ -1,132 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "../glfw/glfw3.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwTerminate)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwGetVersion)(int* major, int* minor, int* rev);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
int (*glfwGetError)(const char** description);
|
||||
GLFWerrorfun (*glfwSetErrorCallback)(GLFWerrorfun callback);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGamma)(GLFWmonitor* monitor, float gamma);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwWindowHint)(int hint, int value);
|
||||
void (*glfwWindowHintString)(int hint, const char* value);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwShowWindow)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
void (*glfwSetInputMode)(GLFWwindow* window, int mode, int value);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursor* (*glfwCreateCursor)(const GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
int (*glfwJoystickPresent)(int jid);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwJoystickIsGamepad)(int jid);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
int (*glfwUpdateGamepadMappings)(const char* str);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* str);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
double (*glfwGetTime)(void);
|
||||
void (*glfwSetTime)(double time);
|
||||
unsigned long long (*glfwGetTimerValue)(void);
|
||||
unsigned long long (*glfwGetTimerFrequency)(void);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
int (*glfwExtensionSupported)(const char* extension);
|
||||
GLFWglproc (*glfwGetProcAddress)(const char* procname);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
const char** (*glfwGetRequiredInstanceExtensions)(unsigned int* count);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-711
@@ -1,711 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static readonly GLFWFunction _glfw = new GLFWFunction();
|
||||
|
||||
public static GLFWFunction glfwContext => _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
fixed (GLFWFunction* func = &_glfw) {
|
||||
glfwLoadLibrary(func);
|
||||
}
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
internal static unsafe int glfwInit()
|
||||
{
|
||||
return _glfw.glfwInit();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwTerminate()
|
||||
{
|
||||
_glfw.glfwTerminate();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwInitHint(int hint, int value)
|
||||
{
|
||||
_glfw.glfwInitHint(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetVersion(int* major, int* minor, int* rev)
|
||||
{
|
||||
_glfw.glfwGetVersion(major, minor, rev);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetVersionString()
|
||||
{
|
||||
return _glfw.glfwGetVersionString();
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetError(byte** description)
|
||||
{
|
||||
return _glfw.glfwGetError(description);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<int, byte*, void> glfwSetErrorCallback(
|
||||
delegate* unmanaged[Cdecl]<int, byte*, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetErrorCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr* glfwGetMonitors(int* count)
|
||||
{
|
||||
return _glfw.glfwGetMonitors(count);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetPrimaryMonitor()
|
||||
{
|
||||
return _glfw.glfwGetPrimaryMonitor();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos)
|
||||
{
|
||||
_glfw.glfwGetMonitorPos(monitor, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height)
|
||||
{
|
||||
_glfw.glfwGetMonitorWorkarea(monitor, xpos, ypos, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM)
|
||||
{
|
||||
_glfw.glfwGetMonitorPhysicalSize(monitor, widthMM, heightMM);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale)
|
||||
{
|
||||
_glfw.glfwGetMonitorContentScale(monitor, xscale, yscale);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetMonitorName(IntPtr monitor)
|
||||
{
|
||||
return _glfw.glfwGetMonitorName(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetMonitorUserPointer(monitor, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetMonitorUserPointer(IntPtr monitor)
|
||||
{
|
||||
return _glfw.glfwGetMonitorUserPointer(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetMonitorCallback(
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetMonitorCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count)
|
||||
{
|
||||
return (glfwVideomode*)_glfw.glfwGetVideoModes(monitor, count);
|
||||
}
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoMode(IntPtr monitor)
|
||||
{
|
||||
return (glfwVideomode*)_glfw.glfwGetVideoMode(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetGamma(IntPtr monitor, float gamma)
|
||||
{
|
||||
_glfw.glfwSetGamma(monitor, gamma);
|
||||
}
|
||||
|
||||
internal static unsafe glfwGammaramp* glfwGetGammaRamp(IntPtr monitor)
|
||||
{
|
||||
return (glfwGammaramp*)_glfw.glfwGetGammaRamp(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp)
|
||||
{
|
||||
_glfw.glfwSetGammaRamp(monitor, (IntPtr)ramp);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDefaultWindowHints()
|
||||
{
|
||||
_glfw.glfwDefaultWindowHints();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWindowHint(int hint, int value)
|
||||
{
|
||||
_glfw.glfwWindowHint(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWindowHintString(int hint, byte* value)
|
||||
{
|
||||
_glfw.glfwWindowHintString(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
Span<byte> title,
|
||||
IntPtr monitor,
|
||||
IntPtr share)
|
||||
{
|
||||
fixed (byte* titlePtr = title) {
|
||||
return _glfw.glfwCreateWindow(width, height, titlePtr, monitor, share);
|
||||
}
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDestroyWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwDestroyWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwWindowShouldClose(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwWindowShouldClose(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowShouldClose(IntPtr window, int value)
|
||||
{
|
||||
_glfw.glfwSetWindowShouldClose(window, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowTitle(IntPtr window, byte* title)
|
||||
{
|
||||
_glfw.glfwSetWindowTitle(window, title);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images)
|
||||
{
|
||||
_glfw.glfwSetWindowIcon(window, count, (IntPtr)images);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos)
|
||||
{
|
||||
_glfw.glfwGetWindowPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowPos(IntPtr window, int xpos, int ypos)
|
||||
{
|
||||
_glfw.glfwSetWindowPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowSize(IntPtr window, int* width, int* height)
|
||||
{
|
||||
_glfw.glfwGetWindowSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight)
|
||||
{
|
||||
_glfw.glfwSetWindowSizeLimits(window, minwidth, minheight, maxwidth, maxheight);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom)
|
||||
{
|
||||
_glfw.glfwSetWindowAspectRatio(window, numer, denom);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowSize(IntPtr window, int width, int height)
|
||||
{
|
||||
_glfw.glfwSetWindowSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetFramebufferSize(IntPtr window, int* width, int* height)
|
||||
{
|
||||
_glfw.glfwGetFrameBufferSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowFrameSize(IntPtr window, int* left, int* top, int* right, int* bottom)
|
||||
{
|
||||
_glfw.glfwGetWindowFrameSize(window, left, top, right, bottom);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale)
|
||||
{
|
||||
_glfw.glfwGetWindowContentScale(window, xscale, yscale);
|
||||
}
|
||||
|
||||
internal static unsafe float glfwGetWindowOpacity(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowOpacity(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowOpacity(IntPtr window, float opacity)
|
||||
{
|
||||
_glfw.glfwSetWindowOpacity(window, opacity);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwIconifyWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwIconifyWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwRestoreWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwRestoreWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwMaximizeWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwMaximizeWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwShowWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwShowWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwHideWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwHideWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwFocusWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwFocusWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwRequestWindowAttention(IntPtr window)
|
||||
{
|
||||
_glfw.glfwRequestWindowAttention(window);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetWindowMonitor(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowMonitor(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate)
|
||||
{
|
||||
_glfw.glfwSetWindowMonitor(window, monitor, xpos, ypos, width, height, refreshRate);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetWindowAttrib(IntPtr window, int attrib)
|
||||
{
|
||||
return _glfw.glfwGetWindowAttrib(window, attrib);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowAttrib(IntPtr window, int attrib, int value)
|
||||
{
|
||||
_glfw.glfwSetWindowAttrib(window, attrib, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowUserPointer(IntPtr window, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetWindowUserPointer(window, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetWindowUserPointer(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowUserPointer(window);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowPosCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowSizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowCloseCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowRefreshCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowFocusCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowIconifyCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowMaximizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetFrameBufferSizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetFramebufferSizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, float, float, void> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, float, float, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowContentScaleCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwPollEvents()
|
||||
{
|
||||
_glfw.glfwPollEvents();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWaitEvents()
|
||||
{
|
||||
_glfw.glfwWaitEvents();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWaitEventsTimeout(double timeout)
|
||||
{
|
||||
_glfw.glfwWaitEventsTimeout(timeout);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwPostEmptyEvent()
|
||||
{
|
||||
_glfw.glfwPostEmptyEvent();
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetInputMode(IntPtr window, int mode)
|
||||
{
|
||||
return _glfw.glfwGetInputMode(window, mode);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetInputMode(IntPtr window, int mode, int value)
|
||||
{
|
||||
_glfw.glfwSetInputMode(window, mode, value);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwRawMouseMotionSupported()
|
||||
{
|
||||
return _glfw.glfwRawMouseMotionSupported();
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetKeyName(int key, int scancode)
|
||||
{
|
||||
return _glfw.glfwGetKeyName(key, scancode);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetKeyScancode(int key)
|
||||
{
|
||||
return _glfw.glfwGetKeyScancode(key);
|
||||
}
|
||||
|
||||
internal static unsafe KeyStatus glfwGetKey(IntPtr window, int key)
|
||||
{
|
||||
return _glfw.glfwGetKey(window, key);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetMouseButton(IntPtr window, int button)
|
||||
{
|
||||
return _glfw.glfwGetMouseButton(window, button);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos)
|
||||
{
|
||||
_glfw.glfwGetCursorPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetCursorPos(IntPtr window, double xpos, double ypos)
|
||||
{
|
||||
_glfw.glfwSetCursorPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateCursor(GLFWimage* image, int xhot, int yhot)
|
||||
{
|
||||
return _glfw.glfwCreateCursor((IntPtr)image, xhot, yhot);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateStandardCursor(int shape)
|
||||
{
|
||||
return _glfw.glfwCreateStandardCursor(shape);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDestroyCursor(IntPtr cursor)
|
||||
{
|
||||
_glfw.glfwDestroyCursor(cursor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetCursor(IntPtr window, IntPtr cursor)
|
||||
{
|
||||
_glfw.glfwSetCursor(window, cursor);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetKeyCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, uint, void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, uint, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCharCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, uint, int, void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, uint, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCharModsCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetMouseButtonCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, double, double, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCursorPosCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCursorEnterCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, double, double, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetScrollCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetDropCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwJoystickPresent(int jid)
|
||||
{
|
||||
return _glfw.glfwJoystickPresent(jid);
|
||||
}
|
||||
|
||||
internal static unsafe float* glfwGetJoystickAxes(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickAxes(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickButtons(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickButtons(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickHats(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickHats(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickName(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickName(jid);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickGUID(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickGUID(jid);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetJoystickUserPointer(int jid, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetJoystickUserPointer(jid, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetJoystickUserPointer(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickUserPointer(jid);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwJoystickIsGamepad(int jid)
|
||||
{
|
||||
return _glfw.glfwJoystickIsGamePad(jid);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<int, int, void> glfwSetJoystickCallback(
|
||||
delegate* unmanaged[Cdecl]<int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetJoystickCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwUpdateGamePadMappings(byte* str)
|
||||
{
|
||||
return _glfw.glfwUpdateGamePadMappings(str);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetGamePadName(int jid)
|
||||
{
|
||||
return _glfw.glfwGetGamepadName(jid);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetGamePadState(int jid, GLFWgamepadstate* state)
|
||||
{
|
||||
return _glfw.glfwGetGamepadState(jid, (IntPtr)state);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetClipboardString(IntPtr window, byte* str)
|
||||
{
|
||||
_glfw.glfwSetClipboardString(window, str);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetClipboardString(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetClipboardString(window);
|
||||
}
|
||||
|
||||
internal static unsafe double glfwGetTime()
|
||||
{
|
||||
return _glfw.glfwGetTime();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetTime(double time)
|
||||
{
|
||||
_glfw.glfwSetTime(time);
|
||||
}
|
||||
|
||||
internal static unsafe ulong glfwGetTimerValue()
|
||||
{
|
||||
return _glfw.glfwGetTimerValue();
|
||||
}
|
||||
|
||||
internal static unsafe ulong glfwGetTimerFrequency()
|
||||
{
|
||||
return _glfw.glfwGetTimerFrequency();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwMakeContextCurrent(IntPtr window)
|
||||
{
|
||||
_glfw.glfwMakeContextCurrent(window);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetCurrentContext()
|
||||
{
|
||||
return _glfw.glfwGetCurrentContext();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSwapBuffers(IntPtr window)
|
||||
{
|
||||
_glfw.glfwSwapBuffers(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSwapInterval(int interval)
|
||||
{
|
||||
_glfw.glfwSwapInterval(interval);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwExtensionSupported(byte* extension)
|
||||
{
|
||||
return _glfw.glfwExtensionSupported(extension);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetProcAddress(string procName)
|
||||
{
|
||||
return glfwGetProcAddress(Encoding.UTF8.GetBytes(procName));
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetProcAddress(Span<byte> procName)
|
||||
{
|
||||
fixed (byte* bPtr = procName) {
|
||||
return _glfw.glfwGetProcAddress(bPtr);
|
||||
}
|
||||
}
|
||||
|
||||
internal static unsafe int glfwVulkanSupported()
|
||||
{
|
||||
return _glfw.glfwVulkanSupported();
|
||||
}
|
||||
|
||||
internal static unsafe byte** glfwGetRequiredInstanceExtensions(uint* count)
|
||||
{
|
||||
return _glfw.glfwGetRequiredInstanceExtensions(count);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
-132
@@ -1,132 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "../glfw/glfw3.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwTerminate)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwGetVersion)(int* major, int* minor, int* rev);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
int (*glfwGetError)(const char** description);
|
||||
GLFWerrorfun (*glfwSetErrorCallback)(GLFWerrorfun callback);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGamma)(GLFWmonitor* monitor, float gamma);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwWindowHint)(int hint, int value);
|
||||
void (*glfwWindowHintString)(int hint, const char* value);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwShowWindow)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
void (*glfwSetInputMode)(GLFWwindow* window, int mode, int value);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursor* (*glfwCreateCursor)(const GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
int (*glfwJoystickPresent)(int jid);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwJoystickIsGamepad)(int jid);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
int (*glfwUpdateGamepadMappings)(const char* str);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* str);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
double (*glfwGetTime)(void);
|
||||
void (*glfwSetTime)(double time);
|
||||
unsigned long long (*glfwGetTimerValue)(void);
|
||||
unsigned long long (*glfwGetTimerFrequency)(void);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
int (*glfwExtensionSupported)(const char* extension);
|
||||
GLFWglproc (*glfwGetProcAddress)(const char* procname);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
const char** (*glfwGetRequiredInstanceExtensions)(unsigned int* count);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-829
@@ -1,829 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static readonly GLFWFunction _glfw = new GLFWFunction();
|
||||
|
||||
public static GLFWFunction glfwContext => _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
fixed (GLFWFunction* func = &_glfw) {
|
||||
glfwLoadLibrary(func);
|
||||
}
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwInit()
|
||||
{
|
||||
return _glfw.glfwInit();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwTerminate()
|
||||
{
|
||||
_glfw.glfwTerminate();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwInitHint(int hint, int value)
|
||||
{
|
||||
_glfw.glfwInitHint(hint, value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetVersion(int* major, int* minor, int* rev)
|
||||
{
|
||||
_glfw.glfwGetVersion(major, minor, rev);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe byte* glfwGetVersionString()
|
||||
{
|
||||
return _glfw.glfwGetVersionString();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwGetError(byte** description)
|
||||
{
|
||||
return _glfw.glfwGetError(description);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<int, byte*, void> glfwSetErrorCallback(
|
||||
delegate* unmanaged[Cdecl]<int, byte*, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetErrorCallback(callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe IntPtr* glfwGetMonitors(int* count)
|
||||
{
|
||||
return _glfw.glfwGetMonitors(count);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe IntPtr glfwGetPrimaryMonitor()
|
||||
{
|
||||
return _glfw.glfwGetPrimaryMonitor();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos)
|
||||
{
|
||||
_glfw.glfwGetMonitorPos(monitor, xpos, ypos);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height)
|
||||
{
|
||||
_glfw.glfwGetMonitorWorkarea(monitor, xpos, ypos, width, height);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM)
|
||||
{
|
||||
_glfw.glfwGetMonitorPhysicalSize(monitor, widthMM, heightMM);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale)
|
||||
{
|
||||
_glfw.glfwGetMonitorContentScale(monitor, xscale, yscale);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe byte* glfwGetMonitorName(IntPtr monitor)
|
||||
{
|
||||
return _glfw.glfwGetMonitorName(monitor);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetMonitorUserPointer(monitor, pointer);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void* glfwGetMonitorUserPointer(IntPtr monitor)
|
||||
{
|
||||
return _glfw.glfwGetMonitorUserPointer(monitor);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetMonitorCallback(
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetMonitorCallback(callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count)
|
||||
{
|
||||
return (glfwVideomode*)_glfw.glfwGetVideoModes(monitor, count);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe glfwVideomode* glfwGetVideoMode(IntPtr monitor)
|
||||
{
|
||||
return (glfwVideomode*)_glfw.glfwGetVideoMode(monitor);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetGamma(IntPtr monitor, float gamma)
|
||||
{
|
||||
_glfw.glfwSetGamma(monitor, gamma);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe glfwGammaramp* glfwGetGammaRamp(IntPtr monitor)
|
||||
{
|
||||
return (glfwGammaramp*)_glfw.glfwGetGammaRamp(monitor);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp)
|
||||
{
|
||||
_glfw.glfwSetGammaRamp(monitor, (IntPtr)ramp);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwDefaultWindowHints()
|
||||
{
|
||||
_glfw.glfwDefaultWindowHints();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwWindowHint(int hint, int value)
|
||||
{
|
||||
_glfw.glfwWindowHint(hint, value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwWindowHintString(int hint, byte* value)
|
||||
{
|
||||
_glfw.glfwWindowHintString(hint, value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
Span<byte> title,
|
||||
IntPtr monitor,
|
||||
IntPtr share)
|
||||
{
|
||||
fixed (byte* titlePtr = title) {
|
||||
return _glfw.glfwCreateWindow(width, height, titlePtr, monitor, share);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwDestroyWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwDestroyWindow(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwWindowShouldClose(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwWindowShouldClose(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowShouldClose(IntPtr window, int value)
|
||||
{
|
||||
_glfw.glfwSetWindowShouldClose(window, value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowTitle(IntPtr window, byte* title)
|
||||
{
|
||||
_glfw.glfwSetWindowTitle(window, title);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images)
|
||||
{
|
||||
_glfw.glfwSetWindowIcon(window, count, (IntPtr)images);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos)
|
||||
{
|
||||
_glfw.glfwGetWindowPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowPos(IntPtr window, int xpos, int ypos)
|
||||
{
|
||||
_glfw.glfwSetWindowPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetWindowSize(IntPtr window, int* width, int* height)
|
||||
{
|
||||
_glfw.glfwGetWindowSize(window, width, height);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight)
|
||||
{
|
||||
_glfw.glfwSetWindowSizeLimits(window, minwidth, minheight, maxwidth, maxheight);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom)
|
||||
{
|
||||
_glfw.glfwSetWindowAspectRatio(window, numer, denom);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowSize(IntPtr window, int width, int height)
|
||||
{
|
||||
_glfw.glfwSetWindowSize(window, width, height);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetFramebufferSize(IntPtr window, int* width, int* height)
|
||||
{
|
||||
_glfw.glfwGetFrameBufferSize(window, width, height);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetWindowFrameSize(IntPtr window, int* left, int* top, int* right, int* bottom)
|
||||
{
|
||||
_glfw.glfwGetWindowFrameSize(window, left, top, right, bottom);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale)
|
||||
{
|
||||
_glfw.glfwGetWindowContentScale(window, xscale, yscale);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe float glfwGetWindowOpacity(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowOpacity(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowOpacity(IntPtr window, float opacity)
|
||||
{
|
||||
_glfw.glfwSetWindowOpacity(window, opacity);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwIconifyWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwIconifyWindow(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwRestoreWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwRestoreWindow(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwMaximizeWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwMaximizeWindow(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwShowWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwShowWindow(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwHideWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwHideWindow(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwFocusWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwFocusWindow(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwRequestWindowAttention(IntPtr window)
|
||||
{
|
||||
_glfw.glfwRequestWindowAttention(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe IntPtr glfwGetWindowMonitor(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowMonitor(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate)
|
||||
{
|
||||
_glfw.glfwSetWindowMonitor(window, monitor, xpos, ypos, width, height, refreshRate);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwGetWindowAttrib(IntPtr window, int attrib)
|
||||
{
|
||||
return _glfw.glfwGetWindowAttrib(window, attrib);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowAttrib(IntPtr window, int attrib, int value)
|
||||
{
|
||||
_glfw.glfwSetWindowAttrib(window, attrib, value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetWindowUserPointer(IntPtr window, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetWindowUserPointer(window, pointer);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void* glfwGetWindowUserPointer(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowUserPointer(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowPosCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowSizeCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowCloseCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowRefreshCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowFocusCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowIconifyCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowMaximizeCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetFrameBufferSizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetFramebufferSizeCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, float, float, void> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, float, float, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowContentScaleCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwPollEvents()
|
||||
{
|
||||
_glfw.glfwPollEvents();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwWaitEvents()
|
||||
{
|
||||
_glfw.glfwWaitEvents();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwWaitEventsTimeout(double timeout)
|
||||
{
|
||||
_glfw.glfwWaitEventsTimeout(timeout);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwPostEmptyEvent()
|
||||
{
|
||||
_glfw.glfwPostEmptyEvent();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwGetInputMode(IntPtr window, int mode)
|
||||
{
|
||||
return _glfw.glfwGetInputMode(window, mode);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetInputMode(IntPtr window, int mode, int value)
|
||||
{
|
||||
_glfw.glfwSetInputMode(window, mode, value);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwRawMouseMotionSupported()
|
||||
{
|
||||
return _glfw.glfwRawMouseMotionSupported();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe byte* glfwGetKeyName(int key, int scancode)
|
||||
{
|
||||
return _glfw.glfwGetKeyName(key, scancode);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwGetKeyScancode(int key)
|
||||
{
|
||||
return _glfw.glfwGetKeyScancode(key);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe KeyStatus glfwGetKey(IntPtr window, int key)
|
||||
{
|
||||
return _glfw.glfwGetKey(window, key);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwGetMouseButton(IntPtr window, int button)
|
||||
{
|
||||
return _glfw.glfwGetMouseButton(window, button);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos)
|
||||
{
|
||||
_glfw.glfwGetCursorPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetCursorPos(IntPtr window, double xpos, double ypos)
|
||||
{
|
||||
_glfw.glfwSetCursorPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe IntPtr glfwCreateCursor(GLFWimage* image, int xhot, int yhot)
|
||||
{
|
||||
return _glfw.glfwCreateCursor((IntPtr)image, xhot, yhot);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe IntPtr glfwCreateStandardCursor(int shape)
|
||||
{
|
||||
return _glfw.glfwCreateStandardCursor(shape);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwDestroyCursor(IntPtr cursor)
|
||||
{
|
||||
_glfw.glfwDestroyCursor(cursor);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetCursor(IntPtr window, IntPtr cursor)
|
||||
{
|
||||
_glfw.glfwSetCursor(window, cursor);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetKeyCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, uint, void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, uint, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCharCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, uint, int, void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, uint, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCharModsCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetMouseButtonCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, double, double, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCursorPosCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCursorEnterCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, double, double, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetScrollCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetDropCallback(window, callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwJoystickPresent(int jid)
|
||||
{
|
||||
return _glfw.glfwJoystickPresent(jid);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe float* glfwGetJoystickAxes(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickAxes(jid, count);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe byte* glfwGetJoystickButtons(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickButtons(jid, count);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe byte* glfwGetJoystickHats(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickHats(jid, count);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe byte* glfwGetJoystickName(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickName(jid);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe byte* glfwGetJoystickGUID(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickGUID(jid);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetJoystickUserPointer(int jid, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetJoystickUserPointer(jid, pointer);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void* glfwGetJoystickUserPointer(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickUserPointer(jid);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwJoystickIsGamepad(int jid)
|
||||
{
|
||||
return _glfw.glfwJoystickIsGamePad(jid);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<int, int, void> glfwSetJoystickCallback(
|
||||
delegate* unmanaged[Cdecl]<int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetJoystickCallback(callback);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwUpdateGamePadMappings(byte* str)
|
||||
{
|
||||
return _glfw.glfwUpdateGamePadMappings(str);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe byte* glfwGetGamePadName(int jid)
|
||||
{
|
||||
return _glfw.glfwGetGamepadName(jid);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwGetGamePadState(int jid, GLFWgamepadstate* state)
|
||||
{
|
||||
return _glfw.glfwGetGamepadState(jid, (IntPtr)state);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetClipboardString(IntPtr window, byte* str)
|
||||
{
|
||||
_glfw.glfwSetClipboardString(window, str);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe byte* glfwGetClipboardString(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetClipboardString(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe double glfwGetTime()
|
||||
{
|
||||
return _glfw.glfwGetTime();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSetTime(double time)
|
||||
{
|
||||
_glfw.glfwSetTime(time);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe ulong glfwGetTimerValue()
|
||||
{
|
||||
return _glfw.glfwGetTimerValue();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe ulong glfwGetTimerFrequency()
|
||||
{
|
||||
return _glfw.glfwGetTimerFrequency();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwMakeContextCurrent(IntPtr window)
|
||||
{
|
||||
_glfw.glfwMakeContextCurrent(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe IntPtr glfwGetCurrentContext()
|
||||
{
|
||||
return _glfw.glfwGetCurrentContext();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSwapBuffers(IntPtr window)
|
||||
{
|
||||
_glfw.glfwSwapBuffers(window);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe void glfwSwapInterval(int interval)
|
||||
{
|
||||
_glfw.glfwSwapInterval(interval);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwExtensionSupported(byte* extension)
|
||||
{
|
||||
return _glfw.glfwExtensionSupported(extension);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe IntPtr glfwGetProcAddress(string procName)
|
||||
{
|
||||
return glfwGetProcAddress(Encoding.UTF8.GetBytes(procName));
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe IntPtr glfwGetProcAddress(Span<byte> procName)
|
||||
{
|
||||
fixed (byte* bPtr = procName) {
|
||||
return _glfw.glfwGetProcAddress(bPtr);
|
||||
}
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe int glfwVulkanSupported()
|
||||
{
|
||||
return _glfw.glfwVulkanSupported();
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
internal static unsafe byte** glfwGetRequiredInstanceExtensions(uint* count)
|
||||
{
|
||||
return _glfw.glfwGetRequiredInstanceExtensions(count);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine($"{logType}\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release();
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"{logType}\t@\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-711
@@ -1,711 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static readonly GLFWFunction _glfw = new GLFWFunction();
|
||||
|
||||
public static GLFWFunction glfwContext => _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
fixed (GLFWFunction* func = &_glfw) {
|
||||
glfwLoadLibrary(func);
|
||||
}
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
internal static unsafe int glfwInit()
|
||||
{
|
||||
return _glfw.glfwInit();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwTerminate()
|
||||
{
|
||||
_glfw.glfwTerminate();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwInitHint(int hint, int value)
|
||||
{
|
||||
_glfw.glfwInitHint(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetVersion(int* major, int* minor, int* rev)
|
||||
{
|
||||
_glfw.glfwGetVersion(major, minor, rev);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetVersionString()
|
||||
{
|
||||
return _glfw.glfwGetVersionString();
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetError(byte** description)
|
||||
{
|
||||
return _glfw.glfwGetError(description);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<int, byte*, void> glfwSetErrorCallback(
|
||||
delegate* unmanaged[Cdecl]<int, byte*, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetErrorCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr* glfwGetMonitors(int* count)
|
||||
{
|
||||
return _glfw.glfwGetMonitors(count);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetPrimaryMonitor()
|
||||
{
|
||||
return _glfw.glfwGetPrimaryMonitor();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos)
|
||||
{
|
||||
_glfw.glfwGetMonitorPos(monitor, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height)
|
||||
{
|
||||
_glfw.glfwGetMonitorWorkarea(monitor, xpos, ypos, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM)
|
||||
{
|
||||
_glfw.glfwGetMonitorPhysicalSize(monitor, widthMM, heightMM);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale)
|
||||
{
|
||||
_glfw.glfwGetMonitorContentScale(monitor, xscale, yscale);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetMonitorName(IntPtr monitor)
|
||||
{
|
||||
return _glfw.glfwGetMonitorName(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetMonitorUserPointer(monitor, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetMonitorUserPointer(IntPtr monitor)
|
||||
{
|
||||
return _glfw.glfwGetMonitorUserPointer(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetMonitorCallback(
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetMonitorCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count)
|
||||
{
|
||||
return (glfwVideomode*)_glfw.glfwGetVideoModes(monitor, count);
|
||||
}
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoMode(IntPtr monitor)
|
||||
{
|
||||
return (glfwVideomode*)_glfw.glfwGetVideoMode(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetGamma(IntPtr monitor, float gamma)
|
||||
{
|
||||
_glfw.glfwSetGamma(monitor, gamma);
|
||||
}
|
||||
|
||||
internal static unsafe glfwGammaramp* glfwGetGammaRamp(IntPtr monitor)
|
||||
{
|
||||
return (glfwGammaramp*)_glfw.glfwGetGammaRamp(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp)
|
||||
{
|
||||
_glfw.glfwSetGammaRamp(monitor, (IntPtr)ramp);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDefaultWindowHints()
|
||||
{
|
||||
_glfw.glfwDefaultWindowHints();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWindowHint(int hint, int value)
|
||||
{
|
||||
_glfw.glfwWindowHint(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWindowHintString(int hint, byte* value)
|
||||
{
|
||||
_glfw.glfwWindowHintString(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
Span<byte> title,
|
||||
IntPtr monitor,
|
||||
IntPtr share)
|
||||
{
|
||||
fixed (byte* titlePtr = title) {
|
||||
return _glfw.glfwCreateWindow(width, height, titlePtr, monitor, share);
|
||||
}
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDestroyWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwDestroyWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwWindowShouldClose(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwWindowShouldClose(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowShouldClose(IntPtr window, int value)
|
||||
{
|
||||
_glfw.glfwSetWindowShouldClose(window, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowTitle(IntPtr window, byte* title)
|
||||
{
|
||||
_glfw.glfwSetWindowTitle(window, title);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images)
|
||||
{
|
||||
_glfw.glfwSetWindowIcon(window, count, (IntPtr)images);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos)
|
||||
{
|
||||
_glfw.glfwGetWindowPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowPos(IntPtr window, int xpos, int ypos)
|
||||
{
|
||||
_glfw.glfwSetWindowPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowSize(IntPtr window, int* width, int* height)
|
||||
{
|
||||
_glfw.glfwGetWindowSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight)
|
||||
{
|
||||
_glfw.glfwSetWindowSizeLimits(window, minwidth, minheight, maxwidth, maxheight);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom)
|
||||
{
|
||||
_glfw.glfwSetWindowAspectRatio(window, numer, denom);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowSize(IntPtr window, int width, int height)
|
||||
{
|
||||
_glfw.glfwSetWindowSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetFramebufferSize(IntPtr window, int* width, int* height)
|
||||
{
|
||||
_glfw.glfwGetFrameBufferSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowFrameSize(IntPtr window, int* left, int* top, int* right, int* bottom)
|
||||
{
|
||||
_glfw.glfwGetWindowFrameSize(window, left, top, right, bottom);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale)
|
||||
{
|
||||
_glfw.glfwGetWindowContentScale(window, xscale, yscale);
|
||||
}
|
||||
|
||||
internal static unsafe float glfwGetWindowOpacity(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowOpacity(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowOpacity(IntPtr window, float opacity)
|
||||
{
|
||||
_glfw.glfwSetWindowOpacity(window, opacity);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwIconifyWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwIconifyWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwRestoreWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwRestoreWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwMaximizeWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwMaximizeWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwShowWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwShowWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwHideWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwHideWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwFocusWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwFocusWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwRequestWindowAttention(IntPtr window)
|
||||
{
|
||||
_glfw.glfwRequestWindowAttention(window);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetWindowMonitor(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowMonitor(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate)
|
||||
{
|
||||
_glfw.glfwSetWindowMonitor(window, monitor, xpos, ypos, width, height, refreshRate);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetWindowAttrib(IntPtr window, int attrib)
|
||||
{
|
||||
return _glfw.glfwGetWindowAttrib(window, attrib);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowAttrib(IntPtr window, int attrib, int value)
|
||||
{
|
||||
_glfw.glfwSetWindowAttrib(window, attrib, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowUserPointer(IntPtr window, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetWindowUserPointer(window, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetWindowUserPointer(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowUserPointer(window);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowPosCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowSizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowCloseCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowRefreshCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowFocusCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowIconifyCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowMaximizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetFrameBufferSizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetFramebufferSizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, float, float, void> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, float, float, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowContentScaleCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwPollEvents()
|
||||
{
|
||||
_glfw.glfwPollEvents();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWaitEvents()
|
||||
{
|
||||
_glfw.glfwWaitEvents();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWaitEventsTimeout(double timeout)
|
||||
{
|
||||
_glfw.glfwWaitEventsTimeout(timeout);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwPostEmptyEvent()
|
||||
{
|
||||
_glfw.glfwPostEmptyEvent();
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetInputMode(IntPtr window, int mode)
|
||||
{
|
||||
return _glfw.glfwGetInputMode(window, mode);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetInputMode(IntPtr window, int mode, int value)
|
||||
{
|
||||
_glfw.glfwSetInputMode(window, mode, value);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwRawMouseMotionSupported()
|
||||
{
|
||||
return _glfw.glfwRawMouseMotionSupported();
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetKeyName(int key, int scancode)
|
||||
{
|
||||
return _glfw.glfwGetKeyName(key, scancode);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetKeyScancode(int key)
|
||||
{
|
||||
return _glfw.glfwGetKeyScancode(key);
|
||||
}
|
||||
|
||||
internal static unsafe KeyStatus glfwGetKey(IntPtr window, int key)
|
||||
{
|
||||
return _glfw.glfwGetKey(window, key);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetMouseButton(IntPtr window, int button)
|
||||
{
|
||||
return _glfw.glfwGetMouseButton(window, button);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos)
|
||||
{
|
||||
_glfw.glfwGetCursorPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetCursorPos(IntPtr window, double xpos, double ypos)
|
||||
{
|
||||
_glfw.glfwSetCursorPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateCursor(GLFWimage* image, int xhot, int yhot)
|
||||
{
|
||||
return _glfw.glfwCreateCursor((IntPtr)image, xhot, yhot);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateStandardCursor(int shape)
|
||||
{
|
||||
return _glfw.glfwCreateStandardCursor(shape);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDestroyCursor(IntPtr cursor)
|
||||
{
|
||||
_glfw.glfwDestroyCursor(cursor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetCursor(IntPtr window, IntPtr cursor)
|
||||
{
|
||||
_glfw.glfwSetCursor(window, cursor);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetKeyCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, uint, void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, uint, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCharCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, uint, int, void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, uint, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCharModsCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetMouseButtonCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, double, double, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCursorPosCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCursorEnterCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, double, double, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetScrollCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetDropCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwJoystickPresent(int jid)
|
||||
{
|
||||
return _glfw.glfwJoystickPresent(jid);
|
||||
}
|
||||
|
||||
internal static unsafe float* glfwGetJoystickAxes(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickAxes(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickButtons(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickButtons(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickHats(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickHats(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickName(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickName(jid);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickGUID(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickGUID(jid);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetJoystickUserPointer(int jid, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetJoystickUserPointer(jid, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetJoystickUserPointer(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickUserPointer(jid);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwJoystickIsGamepad(int jid)
|
||||
{
|
||||
return _glfw.glfwJoystickIsGamePad(jid);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<int, int, void> glfwSetJoystickCallback(
|
||||
delegate* unmanaged[Cdecl]<int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetJoystickCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwUpdateGamePadMappings(byte* str)
|
||||
{
|
||||
return _glfw.glfwUpdateGamePadMappings(str);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetGamePadName(int jid)
|
||||
{
|
||||
return _glfw.glfwGetGamepadName(jid);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetGamePadState(int jid, GLFWgamepadstate* state)
|
||||
{
|
||||
return _glfw.glfwGetGamepadState(jid, (IntPtr)state);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetClipboardString(IntPtr window, byte* str)
|
||||
{
|
||||
_glfw.glfwSetClipboardString(window, str);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetClipboardString(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetClipboardString(window);
|
||||
}
|
||||
|
||||
internal static unsafe double glfwGetTime()
|
||||
{
|
||||
return _glfw.glfwGetTime();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetTime(double time)
|
||||
{
|
||||
_glfw.glfwSetTime(time);
|
||||
}
|
||||
|
||||
internal static unsafe ulong glfwGetTimerValue()
|
||||
{
|
||||
return _glfw.glfwGetTimerValue();
|
||||
}
|
||||
|
||||
internal static unsafe ulong glfwGetTimerFrequency()
|
||||
{
|
||||
return _glfw.glfwGetTimerFrequency();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwMakeContextCurrent(IntPtr window)
|
||||
{
|
||||
_glfw.glfwMakeContextCurrent(window);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetCurrentContext()
|
||||
{
|
||||
return _glfw.glfwGetCurrentContext();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSwapBuffers(IntPtr window)
|
||||
{
|
||||
_glfw.glfwSwapBuffers(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSwapInterval(int interval)
|
||||
{
|
||||
_glfw.glfwSwapInterval(interval);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwExtensionSupported(byte* extension)
|
||||
{
|
||||
return _glfw.glfwExtensionSupported(extension);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetProcAddress(string procName)
|
||||
{
|
||||
return glfwGetProcAddress(Encoding.UTF8.GetBytes(procName));
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetProcAddress(Span<byte> procName)
|
||||
{
|
||||
fixed (byte* bPtr = procName) {
|
||||
return _glfw.glfwGetProcAddress(bPtr);
|
||||
}
|
||||
}
|
||||
|
||||
internal static unsafe int glfwVulkanSupported()
|
||||
{
|
||||
return _glfw.glfwVulkanSupported();
|
||||
}
|
||||
|
||||
internal static unsafe byte** glfwGetRequiredInstanceExtensions(uint* count)
|
||||
{
|
||||
return _glfw.glfwGetRequiredInstanceExtensions(count);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
-711
@@ -1,711 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static readonly GLFWFunction _glfw = new GLFWFunction();
|
||||
|
||||
public static GLFWFunction glfwContext => _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
fixed (GLFWFunction* func = &_glfw) {
|
||||
glfwLoadLibrary(func);
|
||||
}
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
internal static unsafe int glfwInit()
|
||||
{
|
||||
return _glfw.glfwInit();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwTerminate()
|
||||
{
|
||||
_glfw.glfwTerminate();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwInitHint(int hint, int value)
|
||||
{
|
||||
_glfw.glfwInitHint(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetVersion(int* major, int* minor, int* rev)
|
||||
{
|
||||
_glfw.glfwGetVersion(major, minor, rev);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetVersionString()
|
||||
{
|
||||
return _glfw.glfwGetVersionString();
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetError(byte** description)
|
||||
{
|
||||
return _glfw.glfwGetError(description);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<int, byte*, void> glfwSetErrorCallback(
|
||||
delegate* unmanaged[Cdecl]<int, byte*, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetErrorCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr* glfwGetMonitors(int* count)
|
||||
{
|
||||
return _glfw.glfwGetMonitors(count);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetPrimaryMonitor()
|
||||
{
|
||||
return _glfw.glfwGetPrimaryMonitor();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos)
|
||||
{
|
||||
_glfw.glfwGetMonitorPos(monitor, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height)
|
||||
{
|
||||
_glfw.glfwGetMonitorWorkarea(monitor, xpos, ypos, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM)
|
||||
{
|
||||
_glfw.glfwGetMonitorPhysicalSize(monitor, widthMM, heightMM);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale)
|
||||
{
|
||||
_glfw.glfwGetMonitorContentScale(monitor, xscale, yscale);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetMonitorName(IntPtr monitor)
|
||||
{
|
||||
return _glfw.glfwGetMonitorName(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetMonitorUserPointer(monitor, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetMonitorUserPointer(IntPtr monitor)
|
||||
{
|
||||
return _glfw.glfwGetMonitorUserPointer(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetMonitorCallback(
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetMonitorCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count)
|
||||
{
|
||||
return (glfwVideomode*)_glfw.glfwGetVideoModes(monitor, count);
|
||||
}
|
||||
|
||||
internal static unsafe glfwVideomode* glfwGetVideoMode(IntPtr monitor)
|
||||
{
|
||||
return (glfwVideomode*)_glfw.glfwGetVideoMode(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetGamma(IntPtr monitor, float gamma)
|
||||
{
|
||||
_glfw.glfwSetGamma(monitor, gamma);
|
||||
}
|
||||
|
||||
internal static unsafe glfwGammaramp* glfwGetGammaRamp(IntPtr monitor)
|
||||
{
|
||||
return (glfwGammaramp*)_glfw.glfwGetGammaRamp(monitor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp)
|
||||
{
|
||||
_glfw.glfwSetGammaRamp(monitor, (IntPtr)ramp);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDefaultWindowHints()
|
||||
{
|
||||
_glfw.glfwDefaultWindowHints();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWindowHint(int hint, int value)
|
||||
{
|
||||
_glfw.glfwWindowHint(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWindowHintString(int hint, byte* value)
|
||||
{
|
||||
_glfw.glfwWindowHintString(hint, value);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
Span<byte> title,
|
||||
IntPtr monitor,
|
||||
IntPtr share)
|
||||
{
|
||||
fixed (byte* titlePtr = title) {
|
||||
return _glfw.glfwCreateWindow(width, height, titlePtr, monitor, share);
|
||||
}
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDestroyWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwDestroyWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwWindowShouldClose(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwWindowShouldClose(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowShouldClose(IntPtr window, int value)
|
||||
{
|
||||
_glfw.glfwSetWindowShouldClose(window, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowTitle(IntPtr window, byte* title)
|
||||
{
|
||||
_glfw.glfwSetWindowTitle(window, title);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images)
|
||||
{
|
||||
_glfw.glfwSetWindowIcon(window, count, (IntPtr)images);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos)
|
||||
{
|
||||
_glfw.glfwGetWindowPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowPos(IntPtr window, int xpos, int ypos)
|
||||
{
|
||||
_glfw.glfwSetWindowPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowSize(IntPtr window, int* width, int* height)
|
||||
{
|
||||
_glfw.glfwGetWindowSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight)
|
||||
{
|
||||
_glfw.glfwSetWindowSizeLimits(window, minwidth, minheight, maxwidth, maxheight);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom)
|
||||
{
|
||||
_glfw.glfwSetWindowAspectRatio(window, numer, denom);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowSize(IntPtr window, int width, int height)
|
||||
{
|
||||
_glfw.glfwSetWindowSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetFramebufferSize(IntPtr window, int* width, int* height)
|
||||
{
|
||||
_glfw.glfwGetFrameBufferSize(window, width, height);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowFrameSize(IntPtr window, int* left, int* top, int* right, int* bottom)
|
||||
{
|
||||
_glfw.glfwGetWindowFrameSize(window, left, top, right, bottom);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale)
|
||||
{
|
||||
_glfw.glfwGetWindowContentScale(window, xscale, yscale);
|
||||
}
|
||||
|
||||
internal static unsafe float glfwGetWindowOpacity(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowOpacity(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowOpacity(IntPtr window, float opacity)
|
||||
{
|
||||
_glfw.glfwSetWindowOpacity(window, opacity);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwIconifyWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwIconifyWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwRestoreWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwRestoreWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwMaximizeWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwMaximizeWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwShowWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwShowWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwHideWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwHideWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwFocusWindow(IntPtr window)
|
||||
{
|
||||
_glfw.glfwFocusWindow(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwRequestWindowAttention(IntPtr window)
|
||||
{
|
||||
_glfw.glfwRequestWindowAttention(window);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetWindowMonitor(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowMonitor(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate)
|
||||
{
|
||||
_glfw.glfwSetWindowMonitor(window, monitor, xpos, ypos, width, height, refreshRate);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetWindowAttrib(IntPtr window, int attrib)
|
||||
{
|
||||
return _glfw.glfwGetWindowAttrib(window, attrib);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowAttrib(IntPtr window, int attrib, int value)
|
||||
{
|
||||
_glfw.glfwSetWindowAttrib(window, attrib, value);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetWindowUserPointer(IntPtr window, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetWindowUserPointer(window, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetWindowUserPointer(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetWindowUserPointer(window);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowPosCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowSizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowCloseCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowRefreshCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowFocusCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowIconifyCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowMaximizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetFrameBufferSizeCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetFramebufferSizeCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, float, float, void> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, float, float, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetWindowContentScaleCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwPollEvents()
|
||||
{
|
||||
_glfw.glfwPollEvents();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWaitEvents()
|
||||
{
|
||||
_glfw.glfwWaitEvents();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwWaitEventsTimeout(double timeout)
|
||||
{
|
||||
_glfw.glfwWaitEventsTimeout(timeout);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwPostEmptyEvent()
|
||||
{
|
||||
_glfw.glfwPostEmptyEvent();
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetInputMode(IntPtr window, int mode)
|
||||
{
|
||||
return _glfw.glfwGetInputMode(window, mode);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetInputMode(IntPtr window, int mode, int value)
|
||||
{
|
||||
_glfw.glfwSetInputMode(window, mode, value);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwRawMouseMotionSupported()
|
||||
{
|
||||
return _glfw.glfwRawMouseMotionSupported();
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetKeyName(int key, int scancode)
|
||||
{
|
||||
return _glfw.glfwGetKeyName(key, scancode);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetKeyScancode(int key)
|
||||
{
|
||||
return _glfw.glfwGetKeyScancode(key);
|
||||
}
|
||||
|
||||
internal static unsafe KeyStatus glfwGetKey(IntPtr window, int key)
|
||||
{
|
||||
return _glfw.glfwGetKey(window, key);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetMouseButton(IntPtr window, int button)
|
||||
{
|
||||
return _glfw.glfwGetMouseButton(window, button);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos)
|
||||
{
|
||||
_glfw.glfwGetCursorPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetCursorPos(IntPtr window, double xpos, double ypos)
|
||||
{
|
||||
_glfw.glfwSetCursorPos(window, xpos, ypos);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateCursor(GLFWimage* image, int xhot, int yhot)
|
||||
{
|
||||
return _glfw.glfwCreateCursor((IntPtr)image, xhot, yhot);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwCreateStandardCursor(int shape)
|
||||
{
|
||||
return _glfw.glfwCreateStandardCursor(shape);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwDestroyCursor(IntPtr cursor)
|
||||
{
|
||||
_glfw.glfwDestroyCursor(cursor);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetCursor(IntPtr window, IntPtr cursor)
|
||||
{
|
||||
_glfw.glfwSetCursor(window, cursor);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetKeyCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, uint, void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, uint, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCharCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, uint, int, void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, uint, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCharModsCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetMouseButtonCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, double, double, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCursorPosCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetCursorEnterCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, double, double, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetScrollCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetDropCallback(window, callback);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwJoystickPresent(int jid)
|
||||
{
|
||||
return _glfw.glfwJoystickPresent(jid);
|
||||
}
|
||||
|
||||
internal static unsafe float* glfwGetJoystickAxes(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickAxes(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickButtons(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickButtons(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickHats(int jid, int* count)
|
||||
{
|
||||
return _glfw.glfwGetJoystickHats(jid, count);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickName(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickName(jid);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetJoystickGUID(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickGUID(jid);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetJoystickUserPointer(int jid, void* pointer)
|
||||
{
|
||||
_glfw.glfwSetJoystickUserPointer(jid, pointer);
|
||||
}
|
||||
|
||||
internal static unsafe void* glfwGetJoystickUserPointer(int jid)
|
||||
{
|
||||
return _glfw.glfwGetJoystickUserPointer(jid);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwJoystickIsGamepad(int jid)
|
||||
{
|
||||
return _glfw.glfwJoystickIsGamePad(jid);
|
||||
}
|
||||
|
||||
internal static unsafe delegate* unmanaged[Cdecl]<int, int, void> glfwSetJoystickCallback(
|
||||
delegate* unmanaged[Cdecl]<int, int, void> callback)
|
||||
{
|
||||
return _glfw.glfwSetJoystickCallback(callback);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwUpdateGamePadMappings(byte* str)
|
||||
{
|
||||
return _glfw.glfwUpdateGamePadMappings(str);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetGamePadName(int jid)
|
||||
{
|
||||
return _glfw.glfwGetGamepadName(jid);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwGetGamePadState(int jid, GLFWgamepadstate* state)
|
||||
{
|
||||
return _glfw.glfwGetGamepadState(jid, (IntPtr)state);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetClipboardString(IntPtr window, byte* str)
|
||||
{
|
||||
_glfw.glfwSetClipboardString(window, str);
|
||||
}
|
||||
|
||||
internal static unsafe byte* glfwGetClipboardString(IntPtr window)
|
||||
{
|
||||
return _glfw.glfwGetClipboardString(window);
|
||||
}
|
||||
|
||||
internal static unsafe double glfwGetTime()
|
||||
{
|
||||
return _glfw.glfwGetTime();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSetTime(double time)
|
||||
{
|
||||
_glfw.glfwSetTime(time);
|
||||
}
|
||||
|
||||
internal static unsafe ulong glfwGetTimerValue()
|
||||
{
|
||||
return _glfw.glfwGetTimerValue();
|
||||
}
|
||||
|
||||
internal static unsafe ulong glfwGetTimerFrequency()
|
||||
{
|
||||
return _glfw.glfwGetTimerFrequency();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwMakeContextCurrent(IntPtr window)
|
||||
{
|
||||
_glfw.glfwMakeContextCurrent(window);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetCurrentContext()
|
||||
{
|
||||
return _glfw.glfwGetCurrentContext();
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSwapBuffers(IntPtr window)
|
||||
{
|
||||
_glfw.glfwSwapBuffers(window);
|
||||
}
|
||||
|
||||
internal static unsafe void glfwSwapInterval(int interval)
|
||||
{
|
||||
_glfw.glfwSwapInterval(interval);
|
||||
}
|
||||
|
||||
internal static unsafe int glfwExtensionSupported(byte* extension)
|
||||
{
|
||||
return _glfw.glfwExtensionSupported(extension);
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetProcAddress(string procName)
|
||||
{
|
||||
return glfwGetProcAddress(Encoding.UTF8.GetBytes(procName));
|
||||
}
|
||||
|
||||
internal static unsafe IntPtr glfwGetProcAddress(Span<byte> procName)
|
||||
{
|
||||
fixed (byte* bPtr = procName) {
|
||||
return _glfw.glfwGetProcAddress(bPtr);
|
||||
}
|
||||
}
|
||||
|
||||
internal static unsafe int glfwVulkanSupported()
|
||||
{
|
||||
return _glfw.glfwVulkanSupported();
|
||||
}
|
||||
|
||||
internal static unsafe byte** glfwGetRequiredInstanceExtensions(uint* count)
|
||||
{
|
||||
return _glfw.glfwGetRequiredInstanceExtensions(count);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
table->glfwInit = (int (*)(void))glfwGetProcAddress("glfwInit");
|
||||
table->glfwTerminate = (void (*)(void))glfwGetProcAddress("glfwTerminate");
|
||||
table->glfwInitHint = (void (*)(int, int))glfwGetProcAddress("glfwInitHint");
|
||||
table->glfwGetVersionString = (const char* (*)(void))glfwGetProcAddress("glfwGetVersionString");
|
||||
table->glfwGetError = (int (*)(const char**))glfwGetProcAddress("glfwGetError");
|
||||
table->glfwGetMonitors = (GLFWmonitor** (*)(int*))glfwGetProcAddress("glfwGetMonitors");
|
||||
table->glfwGetPrimaryMonitor = (GLFWmonitor* (*)(void))glfwGetProcAddress("glfwGetPrimaryMonitor");
|
||||
table->glfwGetMonitorPos = (void (*)(GLFWmonitor*, int*, int*))glfwGetProcAddress("glfwGetMonitorPos");
|
||||
table->glfwCreateWindow = (GLFWwindow* (*)(int, int, const char*, GLFWmonitor*, GLFWwindow*))glfwGetProcAddress("glfwCreateWindow");
|
||||
table->glfwDestroyWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwDestroyWindow");
|
||||
table->glfwWindowShouldClose = (int (*)(GLFWwindow*))glfwGetProcAddress("glfwWindowShouldClose");
|
||||
table->glfwSetWindowShouldClose = (void (*)(GLFWwindow*, int))glfwGetProcAddress("glfwSetWindowShouldClose");
|
||||
table->glfwPollEvents = (void (*)(void))glfwGetProcAddress("glfwPollEvents");
|
||||
table->glfwSwapBuffers = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwSwapBuffers");
|
||||
table->glfwGetProcAddress = (GLFWglproc (*)(const char*))glfwGetProcAddress("glfwGetProcAddress");
|
||||
}
|
||||
-158
@@ -1,158 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunctionTable
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged<Cdecl]<IntPtr,
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged<Cdecl]<IntPtr,
|
||||
double, double, void>> glfwSetScrollCallback;
|
||||
int, byte**, void>> glfwSetDropCallback;
|
||||
|
||||
}
|
||||
}
|
||||
-120
@@ -1,120 +0,0 @@
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
memset(table, 0, sizeof(GLFWFunctionTable));
|
||||
table->glfwInit = (int (*)(void))glfwGetProcAddress("glfwInit");
|
||||
table->glfwTerminate = (void (*)(void))glfwGetProcAddress("glfwTerminate");
|
||||
table->glfwInitHint = (void (*)(int, int))glfwGetProcAddress("glfwInitHint");
|
||||
table->glfwGetVersionString = (const char* (*)(void))glfwGetProcAddress("glfwGetVersionString");
|
||||
table->glfwGetError = (int (*)(const char**))glfwGetProcAddress("glfwGetError");
|
||||
table->glfwGetMonitors = (GLFWmonitor** (*)(int*))glfwGetProcAddress("glfwGetMonitors");
|
||||
table->glfwGetPrimaryMonitor = (GLFWmonitor* (*)(void))glfwGetProcAddress("glfwGetPrimaryMonitor");
|
||||
table->glfwGetMonitorPos = (void (*)(GLFWmonitor*, int*, int*))glfwGetProcAddress("glfwGetMonitorPos");
|
||||
table->glfwGetMonitorWorkarea = (void (*)(GLFWmonitor*, int*, int*, int*, int*))glfwGetProcAddress("glfwGetMonitorWorkarea");
|
||||
table->glfwGetMonitorPhysicalSize = (void (*)(GLFWmonitor*, int*, int*))glfwGetProcAddress("glfwGetMonitorPhysicalSize");
|
||||
table->glfwGetMonitorContentScale = (void (*)(GLFWmonitor*, float*, float*))glfwGetProcAddress("glfwGetMonitorContentScale");
|
||||
table->glfwGetMonitorName = (const char* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetMonitorName");
|
||||
table->glfwSetMonitorUserPointer = (void (*)(GLFWmonitor*, void*))glfwGetProcAddress("glfwSetMonitorUserPointer");
|
||||
table->glfwGetMonitorUserPointer = (void* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetMonitorUserPointer");
|
||||
table->glfwSetMonitorCallback = (GLFWmonitorfun (*)(GLFWmonitorfun))glfwGetProcAddress("glfwSetMonitorCallback");
|
||||
table->glfwGetVideoModes = (const GLFWvidmode* (*)(GLFWmonitor*, int*))glfwGetProcAddress("glfwGetVideoModes");
|
||||
table->glfwGetVideoMode = (const GLFWvidmode* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetVideoMode");
|
||||
table->glfwSetGamma = (void (*)(GLFWmonitor*, float))glfwGetProcAddress("glfwSetGamma");
|
||||
table->glfwGetGammaRamp = (const GLFWgammaramp* (*)(GLFWmonitor*))glfwGetProcAddress("glfwGetGammaRamp");
|
||||
table->glfwSetGammaRamp = (void (*)(GLFWmonitor*, const GLFWgammaramp*))glfwGetProcAddress("glfwSetGammaRamp");
|
||||
table->glfwDefaultWindowHints = (void (*)(void))glfwGetProcAddress("glfwDefaultWindowHints");
|
||||
table->glfwWindowHint = (void (*)(int, int))glfwGetProcAddress("glfwWindowHint");
|
||||
table->glfwWindowHintString = (void (*)(int, const char*))glfwGetProcAddress("glfwWindowHintString");
|
||||
table->glfwCreateWindow = (GLFWwindow* (*)(int, int, const char*, GLFWmonitor*, GLFWwindow*))glfwGetProcAddress("glfwCreateWindow");
|
||||
table->glfwDestroyWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwDestroyWindow");
|
||||
table->glfwWindowShouldClose = (int (*)(GLFWwindow*))glfwGetProcAddress("glfwWindowShouldClose");
|
||||
table->glfwSetWindowShouldClose = (void (*)(GLFWwindow*, int))glfwGetProcAddress("glfwSetWindowShouldClose");
|
||||
table->glfwSetWindowTitle = (void (*)(GLFWwindow*, const char*))glfwGetProcAddress("glfwSetWindowTitle");
|
||||
table->glfwSetWindowIcon = (void (*)(GLFWwindow*, int, const GLFWimage*))glfwGetProcAddress("glfwSetWindowIcon");
|
||||
table->glfwGetWindowPos = (void (*)(GLFWwindow*, int*, int*))glfwGetProcAddress("glfwGetWindowPos");
|
||||
table->glfwSetWindowPos = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowPos");
|
||||
table->glfwGetWindowSize = (void (*)(GLFWwindow*, int*, int*))glfwGetProcAddress("glfwGetWindowSize");
|
||||
table->glfwSetWindowSizeLimits = (void (*)(GLFWwindow*, int, int, int, int))glfwGetProcAddress("glfwSetWindowSizeLimits");
|
||||
table->glfwSetWindowAspectRatio = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowAspectRatio");
|
||||
table->glfwSetWindowSize = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowSize");
|
||||
table->glfwGetFramebufferSize = (void (*)(GLFWwindow*, int*, int*))glfwGetProcAddress("glfwGetFramebufferSize");
|
||||
table->glfwGetWindowFrameSize = (void (*)(GLFWwindow*, int*, int*, int*, int*))glfwGetProcAddress("glfwGetWindowFrameSize");
|
||||
table->glfwGetWindowContentScale = (void (*)(GLFWwindow*, float*, float*))glfwGetProcAddress("glfwGetWindowContentScale");
|
||||
table->glfwGetWindowOpacity = (float (*)(GLFWwindow*))glfwGetProcAddress("glfwGetWindowOpacity");
|
||||
table->glfwSetWindowOpacity = (void (*)(GLFWwindow*, float))glfwGetProcAddress("glfwSetWindowOpacity");
|
||||
table->glfwIconifyWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwIconifyWindow");
|
||||
table->glfwRestoreWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwRestoreWindow");
|
||||
table->glfwMaximizeWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwMaximizeWindow");
|
||||
table->glfwShowWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwShowWindow");
|
||||
table->glfwHideWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwHideWindow");
|
||||
table->glfwFocusWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwFocusWindow");
|
||||
table->glfwRequestWindowAttention = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwRequestWindowAttention");
|
||||
table->glfwGetWindowMonitor = (GLFWmonitor* (*)(GLFWwindow*))glfwGetProcAddress("glfwGetWindowMonitor");
|
||||
table->glfwSetWindowMonitor = (void (*)(GLFWwindow*, GLFWmonitor*, int, int, int, int, int))glfwGetProcAddress("glfwSetWindowMonitor");
|
||||
table->glfwGetWindowAttrib = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetWindowAttrib");
|
||||
table->glfwSetWindowAttrib = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetWindowAttrib");
|
||||
table->glfwSetWindowUserPointer = (void (*)(GLFWwindow*, void*))glfwGetProcAddress("glfwSetWindowUserPointer");
|
||||
table->glfwGetWindowUserPointer = (void* (*)(GLFWwindow*))glfwGetProcAddress("glfwGetWindowUserPointer");
|
||||
table->glfwSetWindowPosCallback = (GLFWwindowposfun (*)(GLFWwindow*, GLFWwindowposfun))glfwGetProcAddress("glfwSetWindowPosCallback");
|
||||
table->glfwSetWindowSizeCallback = (GLFWwindowsizefun (*)(GLFWwindow*, GLFWwindowsizefun))glfwGetProcAddress("glfwSetWindowSizeCallback");
|
||||
table->glfwSetWindowCloseCallback = (GLFWwindowclosefun (*)(GLFWwindow*, GLFWwindowclosefun))glfwGetProcAddress("glfwSetWindowCloseCallback");
|
||||
table->glfwSetWindowRefreshCallback = (GLFWwindowrefreshfun (*)(GLFWwindow*, GLFWwindowrefreshfun))glfwGetProcAddress("glfwSetWindowRefreshCallback");
|
||||
table->glfwSetWindowFocusCallback = (GLFWwindowfocusfun (*)(GLFWwindow*, GLFWwindowfocusfun))glfwGetProcAddress("glfwSetWindowFocusCallback");
|
||||
table->glfwSetWindowIconifyCallback = (GLFWwindowiconifyfun (*)(GLFWwindow*, GLFWwindowiconifyfun))glfwGetProcAddress("glfwSetWindowIconifyCallback");
|
||||
table->glfwSetWindowMaximizeCallback = (GLFWwindowmaximizefun (*)(GLFWwindow*, GLFWwindowmaximizefun))glfwGetProcAddress("glfwSetWindowMaximizeCallback");
|
||||
table->glfwSetFramebufferSizeCallback = (GLFWframebuffersizefun (*)(GLFWwindow*, GLFWframebuffersizefun))glfwGetProcAddress("glfwSetFramebufferSizeCallback");
|
||||
table->glfwSetWindowContentScaleCallback = (GLFWwindowcontentscalefun (*)(GLFWwindow*, GLFWwindowcontentscalefun))glfwGetProcAddress("glfwSetWindowContentScaleCallback");
|
||||
table->glfwPollEvents = (void (*)(void))glfwGetProcAddress("glfwPollEvents");
|
||||
table->glfwWaitEvents = (void (*)(void))glfwGetProcAddress("glfwWaitEvents");
|
||||
table->glfwWaitEventsTimeout = (void (*)(double))glfwGetProcAddress("glfwWaitEventsTimeout");
|
||||
table->glfwPostEmptyEvent = (void (*)(void))glfwGetProcAddress("glfwPostEmptyEvent");
|
||||
table->glfwGetInputMode = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetInputMode");
|
||||
table->glfwSetInputMode = (void (*)(GLFWwindow*, int, int))glfwGetProcAddress("glfwSetInputMode");
|
||||
table->glfwRawMouseMotionSupported = (int (*)(void))glfwGetProcAddress("glfwRawMouseMotionSupported");
|
||||
table->glfwGetKeyName = (const char* (*)(int, int))glfwGetProcAddress("glfwGetKeyName");
|
||||
table->glfwGetKeyScancode = (int (*)(int))glfwGetProcAddress("glfwGetKeyScancode");
|
||||
table->glfwGetKey = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetKey");
|
||||
table->glfwGetMouseButton = (int (*)(GLFWwindow*, int))glfwGetProcAddress("glfwGetMouseButton");
|
||||
table->glfwGetCursorPos = (void (*)(GLFWwindow*, double*, double*))glfwGetProcAddress("glfwGetCursorPos");
|
||||
table->glfwSetCursorPos = (void (*)(GLFWwindow*, double, double))glfwGetProcAddress("glfwSetCursorPos");
|
||||
table->glfwCreateCursor = (GLFWcursor* (*)(const GLFWimage*, int, int))glfwGetProcAddress("glfwCreateCursor");
|
||||
table->glfwCreateStandardCursor = (GLFWcursor* (*)(int))glfwGetProcAddress("glfwCreateStandardCursor");
|
||||
table->glfwDestroyCursor = (void (*)(GLFWcursor*))glfwGetProcAddress("glfwDestroyCursor");
|
||||
table->glfwSetCursor = (void (*)(GLFWwindow*, GLFWcursor*))glfwGetProcAddress("glfwSetCursor");
|
||||
table->glfwSetKeyCallback = (GLFWkeyfun (*)(GLFWwindow*, GLFWkeyfun))glfwGetProcAddress("glfwSetKeyCallback");
|
||||
table->glfwSetCharCallback = (GLFWcharfun (*)(GLFWwindow*, GLFWcharfun))glfwGetProcAddress("glfwSetCharCallback");
|
||||
table->glfwSetCharModsCallback = (GLFWcharmodsfun (*)(GLFWwindow*, GLFWcharmodsfun))glfwGetProcAddress("glfwSetCharModsCallback");
|
||||
table->glfwSetMouseButtonCallback = (GLFWmousebuttonfun (*)(GLFWwindow*, GLFWmousebuttonfun))glfwGetProcAddress("glfwSetMouseButtonCallback");
|
||||
table->glfwSetCursorPosCallback = (GLFWcursorposfun (*)(GLFWwindow*, GLFWcursorposfun))glfwGetProcAddress("glfwSetCursorPosCallback");
|
||||
table->glfwSetCursorEnterCallback = (GLFWcursorenterfun (*)(GLFWwindow*, GLFWcursorenterfun))glfwGetProcAddress("glfwSetCursorEnterCallback");
|
||||
table->glfwSetScrollCallback = (GLFWscrollfun (*)(GLFWwindow*, GLFWscrollfun))glfwGetProcAddress("glfwSetScrollCallback");
|
||||
table->glfwSetDropCallback = (GLFWdropfun (*)(GLFWwindow*, GLFWdropfun))glfwGetProcAddress("glfwSetDropCallback");
|
||||
table->glfwJoystickPresent = (int (*)(int))glfwGetProcAddress("glfwJoystickPresent");
|
||||
table->glfwGetJoystickAxes = (const float* (*)(int, int*))glfwGetProcAddress("glfwGetJoystickAxes");
|
||||
table->glfwGetJoystickButtons = (const unsigned char* (*)(int, int*))glfwGetProcAddress("glfwGetJoystickButtons");
|
||||
table->glfwGetJoystickHats = (const unsigned char* (*)(int, int*))glfwGetProcAddress("glfwGetJoystickHats");
|
||||
table->glfwGetJoystickName = (const char* (*)(int))glfwGetProcAddress("glfwGetJoystickName");
|
||||
table->glfwGetJoystickGUID = (const char* (*)(int))glfwGetProcAddress("glfwGetJoystickGUID");
|
||||
table->glfwSetJoystickUserPointer = (void (*)(int, void*))glfwGetProcAddress("glfwSetJoystickUserPointer");
|
||||
table->glfwGetJoystickUserPointer = (void* (*)(int))glfwGetProcAddress("glfwGetJoystickUserPointer");
|
||||
table->glfwJoystickIsGamepad = (int (*)(int))glfwGetProcAddress("glfwJoystickIsGamepad");
|
||||
table->glfwSetJoystickCallback = (GLFWjoystickfun (*)(GLFWjoystickfun))glfwGetProcAddress("glfwSetJoystickCallback");
|
||||
table->glfwUpdateGamepadMappings = (int (*)(const char*))glfwGetProcAddress("glfwUpdateGamepadMappings");
|
||||
table->glfwGetGamepadName = (const char* (*)(int))glfwGetProcAddress("glfwGetGamepadName");
|
||||
table->glfwGetGamepadState = (int (*)(int, GLFWgamepadstate*))glfwGetProcAddress("glfwGetGamepadState");
|
||||
table->glfwSetClipboardString = (void (*)(GLFWwindow*, const char*))glfwGetProcAddress("glfwSetClipboardString");
|
||||
table->glfwGetClipboardString = (const char* (*)(GLFWwindow*))glfwGetProcAddress("glfwGetClipboardString");
|
||||
table->glfwGetTime = (double (*)(void))glfwGetProcAddress("glfwGetTime");
|
||||
table->glfwSetTime = (void (*)(double))glfwGetProcAddress("glfwSetTime");
|
||||
table->glfwGetTimerValue = (uint64_t (*)(void))glfwGetProcAddress("glfwGetTimerValue");
|
||||
table->glfwGetTimerFrequency = (uint64_t (*)(void))glfwGetProcAddress("glfwGetTimerFrequency");
|
||||
table->glfwMakeContextCurrent = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwMakeContextCurrent");
|
||||
table->glfwGetCurrentContext = (GLFWwindow* (*)(void))glfwGetProcAddress("glfwGetCurrentContext");
|
||||
table->glfwSwapBuffers = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwSwapBuffers");
|
||||
table->glfwSwapInterval = (void (*)(int))glfwGetProcAddress("glfwSwapInterval");
|
||||
table->glfwExtensionSupported = (int (*)(const char*))glfwGetProcAddress("glfwExtensionSupported");
|
||||
table->glfwGetProcAddress = (GLFWglproc (*)(const char*))glfwGetProcAddress("glfwGetProcAddress");
|
||||
table->glfwVulkanSupported = (int (*)(void))glfwGetProcAddress("glfwVulkanSupported");
|
||||
table->glfwGetRequiredInstanceExtensions = (const char** (*)(uint32_t*))glfwGetProcAddress("glfwGetRequiredInstanceExtensions");
|
||||
}
|
||||
-133
@@ -1,133 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "glfw3_no_comments.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwTerminate)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
int (*glfwGetError)(const char** description);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGamma)(GLFWmonitor* monitor, float gamma);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwWindowHint)(int hint, int value);
|
||||
void (*glfwWindowHintString)(int hint, const char* value);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwShowWindow)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
void (*glfwSetInputMode)(GLFWwindow* window, int mode, int value);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursor* (*glfwCreateCursor)(const GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
int (*glfwJoystickPresent)(int jid);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
void (*glfwSetJoystickUserPointer)(int jid, void* pointer);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwJoystickIsGamepad)(int jid);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
int (*glfwUpdateGamepadMappings)(const char* string);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* string);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
double (*glfwGetTime)(void);
|
||||
void (*glfwSetTime)(double time);
|
||||
uint64_t (*glfwGetTimerValue)(void);
|
||||
uint64_t (*glfwGetTimerFrequency)(void);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
int (*glfwExtensionSupported)(const char* extension);
|
||||
GLFWglproc (*glfwGetProcAddress)(const char* procname);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
const char** (*glfwGetRequiredInstanceExtensions)(uint32_t* count);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-1
@@ -1 +0,0 @@
|
||||
|
||||
-57
@@ -1,57 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunctionTable
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
#include "StgSharpNative.h"
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
-57
@@ -1,57 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunctionTable
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}
|
||||
-1
@@ -1 +0,0 @@
|
||||
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine($"{logType}\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release();
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"{logType}\t@\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-20
@@ -1,20 +0,0 @@
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
table->glfwInit = (int (*)(void))glfwGetProcAddress("glfwInit");
|
||||
table->glfwTerminate = (void (*)(void))glfwGetProcAddress("glfwTerminate");
|
||||
table->glfwInitHint = (void (*)(int, int))glfwGetProcAddress("glfwInitHint");
|
||||
table->glfwGetVersionString = (const char* (*)(void))glfwGetProcAddress("glfwGetVersionString");
|
||||
table->glfwGetError = (int (*)(const char**))glfwGetProcAddress("glfwGetError");
|
||||
table->glfwGetMonitors = (GLFWmonitor** (*)(int*))glfwGetProcAddress("glfwGetMonitors");
|
||||
table->glfwGetPrimaryMonitor = (GLFWmonitor* (*)(void))glfwGetProcAddress("glfwGetPrimaryMonitor");
|
||||
table->glfwGetMonitorPos = (void (*)(GLFWmonitor*, int*, int*))glfwGetProcAddress("glfwGetMonitorPos");
|
||||
table->glfwCreateWindow = (GLFWwindow* (*)(int, int, const char*, GLFWmonitor*, GLFWwindow*))glfwGetProcAddress("glfwCreateWindow");
|
||||
table->glfwDestroyWindow = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwDestroyWindow");
|
||||
table->glfwWindowShouldClose = (int (*)(GLFWwindow*))glfwGetProcAddress("glfwWindowShouldClose");
|
||||
table->glfwSetWindowShouldClose = (void (*)(GLFWwindow*, int))glfwGetProcAddress("glfwSetWindowShouldClose");
|
||||
table->glfwPollEvents = (void (*)(void))glfwGetProcAddress("glfwPollEvents");
|
||||
table->glfwSwapBuffers = (void (*)(GLFWwindow*))glfwGetProcAddress("glfwSwapBuffers");
|
||||
table->glfwGetProcAddress = (GLFWglproc (*)(const char*))glfwGetProcAddress("glfwGetProcAddress");
|
||||
}
|
||||
-486
@@ -1,486 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static GLFWFunction _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
_glfw = new GLFWFunction();
|
||||
fixed (GLFWFunction* func = &_glfw) { }
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInit")]
|
||||
internal static unsafe partial int glfwInit();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwTerminate")]
|
||||
internal static unsafe partial void glfwTerminate();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInitHint")]
|
||||
internal static unsafe partial void glfwInitHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersion")]
|
||||
internal static unsafe partial void glfwGetVersion(int* major, int* minor, int* rev);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersionString")]
|
||||
internal static unsafe partial byte* glfwGetVersionString();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetError")]
|
||||
internal static unsafe partial int glfwGetError(byte** description);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetErrorCallback")]
|
||||
internal static unsafe partial delegate*<int,byte*,void> glfwSetErrorCallback(
|
||||
delegate*<int,byte*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitors")]
|
||||
internal static unsafe partial IntPtr* glfwGetMonitors(int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPrimaryMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetPrimaryMonitor();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPos")]
|
||||
internal static unsafe partial void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorWorkarea")]
|
||||
internal static unsafe partial void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPhysicalSize")]
|
||||
internal static unsafe partial void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorContentScale")]
|
||||
internal static unsafe partial void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorName")]
|
||||
internal static unsafe partial byte* glfwGetMonitorName(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorUserPointer")]
|
||||
internal static unsafe partial void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorUserPointer")]
|
||||
internal static unsafe partial void* glfwGetMonitorUserPointer(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetMonitorCallback(
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoModes")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoMode")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoMode(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGamma")]
|
||||
internal static unsafe partial void glfwSetGamma(IntPtr monitor, float gamma);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGammaRamp")]
|
||||
internal static unsafe partial glfwGammaramp* glfwGetGammaRamp(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGammaRamp")]
|
||||
internal static unsafe partial void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDefaultWindowHints")]
|
||||
internal static unsafe partial void glfwDefaultWindowHints();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHint")]
|
||||
internal static unsafe partial void glfwWindowHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHintString")]
|
||||
internal static unsafe partial void glfwWindowHintString(int hint, byte* value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindow")]
|
||||
internal static unsafe partial IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
byte[] title,
|
||||
IntPtr monitor,
|
||||
IntPtr share);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyWindow")]
|
||||
internal static unsafe partial void glfwDestroyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowShouldClose")]
|
||||
internal static unsafe partial int glfwWindowShouldClose(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowShouldClose")]
|
||||
internal static unsafe partial void glfwSetWindowShouldClose(IntPtr window, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowTitle")]
|
||||
internal static unsafe partial void glfwSetWindowTitle(IntPtr window, byte* title);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIcon")]
|
||||
internal static unsafe partial void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowPos")]
|
||||
internal static unsafe partial void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPos")]
|
||||
internal static unsafe partial void glfwSetWindowPos(IntPtr window, int xpos, int ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowSize")]
|
||||
internal static unsafe partial void glfwGetWindowSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeLimits")]
|
||||
internal static unsafe partial void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAspectRatio")]
|
||||
internal static unsafe partial void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSize")]
|
||||
internal static unsafe partial void glfwSetWindowSize(IntPtr window, int width, int height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetFramebufferSize")]
|
||||
internal static unsafe partial void glfwGetFramebufferSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowFrameSize")]
|
||||
internal static unsafe partial void glfwGetWindowFrameSize(
|
||||
IntPtr window,
|
||||
int* left,
|
||||
int* top,
|
||||
int* right,
|
||||
int* bottom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowContentScale")]
|
||||
internal static unsafe partial void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowOpacity")]
|
||||
internal static unsafe partial float glfwGetWindowOpacity(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowOpacity")]
|
||||
internal static unsafe partial void glfwSetWindowOpacity(IntPtr window, float opacity);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwIconifyWindow")]
|
||||
internal static unsafe partial void glfwIconifyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRestoreWindow")]
|
||||
internal static unsafe partial void glfwRestoreWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMaximizeWindow")]
|
||||
internal static unsafe partial void glfwMaximizeWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwShowWindow")]
|
||||
internal static unsafe partial void glfwShowWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwHideWindow")]
|
||||
internal static unsafe partial void glfwHideWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwFocusWindow")]
|
||||
internal static unsafe partial void glfwFocusWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRequestWindowAttention")]
|
||||
internal static unsafe partial void glfwRequestWindowAttention(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetWindowMonitor(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMonitor")]
|
||||
internal static unsafe partial void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowAttrib")]
|
||||
internal static unsafe partial int glfwGetWindowAttrib(IntPtr window, int attrib);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAttrib")]
|
||||
internal static unsafe partial void glfwSetWindowAttrib(IntPtr window, int attrib, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowUserPointer")]
|
||||
internal static unsafe partial void glfwSetWindowUserPointer(IntPtr window, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowUserPointer")]
|
||||
internal static unsafe partial void* glfwGetWindowUserPointer(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowCloseCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowRefreshCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowFocusCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIconifyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMaximizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetFramebufferSizeCallback")]
|
||||
internal static unsafe partial FrameBufferSizeHandler glfwSetFramebufferSizeCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowContentScaleCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, float,float> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, float,float> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPollEvents")]
|
||||
internal static unsafe partial void glfwPollEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEvents")]
|
||||
internal static unsafe partial void glfwWaitEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEventsTimeout")]
|
||||
internal static unsafe partial void glfwWaitEventsTimeout(double timeout);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPostEmptyEvent")]
|
||||
internal static unsafe partial void glfwPostEmptyEvent();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInputMode")]
|
||||
internal static unsafe partial int glfwGetInputMode(IntPtr window, int mode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetInputMode")]
|
||||
internal static unsafe partial void glfwSetInputMode(IntPtr window, int mode, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRawMouseMotionSupported")]
|
||||
internal static unsafe partial int glfwRawMouseMotionSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyName")]
|
||||
internal static unsafe partial byte* glfwGetKeyName(int key, int scancode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyScancode")]
|
||||
internal static unsafe partial int glfwGetKeyScancode(int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKey")]
|
||||
internal static unsafe partial KeyStatus glfwGetKey(IntPtr window, int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMouseButton")]
|
||||
internal static unsafe partial int glfwGetMouseButton(IntPtr window, int button);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCursorPos")]
|
||||
internal static unsafe partial void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPos")]
|
||||
internal static unsafe partial void glfwSetCursorPos(IntPtr window, double xpos, double ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateStandardCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateStandardCursor(int shape);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyCursor")]
|
||||
internal static unsafe partial void glfwDestroyCursor(GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursor")]
|
||||
internal static unsafe partial void glfwSetCursor(IntPtr window, GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetKeyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,int,void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,uint,void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,uint,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharModsCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMouseButtonCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorEnterCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetScrollCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetDropCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,byte**,void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,byte**,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickPresent")]
|
||||
internal static unsafe partial int glfwJoystickPresent(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickAxes")]
|
||||
internal static unsafe partial float* glfwGetJoystickAxes(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickButtons")]
|
||||
internal static unsafe partial byte* glfwGetJoystickButtons(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickHats")]
|
||||
internal static unsafe partial byte* glfwGetJoystickHats(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickName")]
|
||||
internal static unsafe partial byte* glfwGetJoystickName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickGUID")]
|
||||
internal static unsafe partial byte* glfwGetJoystickGUID(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickUserPointer")]
|
||||
internal static unsafe partial void glfwSetJoystickUserPointer(int jid, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickUserPointer")]
|
||||
internal static unsafe partial void* glfwGetJoystickUserPointer(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickIsGamepad")]
|
||||
internal static unsafe partial int glfwJoystickIsGamepad(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickCallback")]
|
||||
internal static unsafe partial delegate*<int,int,void> glfwSetJoystickCallback(delegate*<int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwUpdateGamepadMappings")]
|
||||
internal static unsafe partial int glfwUpdateGamepadMappings(byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadName")]
|
||||
internal static unsafe partial byte* glfwGetGamepadName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadState")]
|
||||
internal static unsafe partial int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetClipboardString")]
|
||||
internal static unsafe partial void glfwSetClipboardString(IntPtr window, byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetClipboardString")]
|
||||
internal static unsafe partial byte* glfwGetClipboardString(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTime")]
|
||||
internal static unsafe partial double glfwGetTime();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetTime")]
|
||||
internal static unsafe partial void glfwSetTime(double time);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerValue")]
|
||||
internal static unsafe partial ulong* glfwGetTimerValue();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerFrequency")]
|
||||
internal static unsafe partial ulong* glfwGetTimerFrequency();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMakeContextCurrent")]
|
||||
internal static unsafe partial void glfwMakeContextCurrent(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCurrentContext")]
|
||||
internal static unsafe partial IntPtr glfwGetCurrentContext();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapBuffers")]
|
||||
internal static unsafe partial void glfwSwapBuffers(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapInterval")]
|
||||
internal static unsafe partial void glfwSwapInterval(int interval);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwExtensionSupported")]
|
||||
internal static unsafe partial int glfwExtensionSupported(byte* extension);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetProcAddress", StringMarshalling = StringMarshalling.Utf8)]
|
||||
internal static unsafe partial IntPtr glfwGetProcAddress(string procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwVulkanSupported")]
|
||||
internal static unsafe partial int glfwVulkanSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetRequiredInstanceExtensions")]
|
||||
internal static unsafe partial byte** glfwGetRequiredInstanceExtensions(uint* count);
|
||||
|
||||
/*
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInstanceProcAddress")] internal static unsafe partial delegate*<void> glfwGetInstanceProcAddress(
|
||||
VkInstance instance,
|
||||
byte* procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPhysicalDevicePresentationSupport")] internal static unsafe partial int glfwGetPhysicalDevicePresentationSupport(
|
||||
VkInstance instance,
|
||||
VkPhysicalDevice device,
|
||||
uint* queuefamily);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindowSurface")] internal static unsafe partial VkResult glfwCreateWindowSurface(
|
||||
VkInstance instance,
|
||||
glfwWindow* window,
|
||||
VkAllocationCallbacks* _allocator,
|
||||
VkSurfaceKHR* surface);
|
||||
/**/
|
||||
|
||||
#endregion api call
|
||||
}
|
||||
}
|
||||
-156
@@ -1,156 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunction
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged [Cdecl]<IntPtr, int, byte**, void>> glfwSetDropCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr,double, double, void>> glfwSetScrollCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}
|
||||
-156
@@ -1,156 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunctionTable
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged<Cdecl]<IntPtr,
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged<Cdecl]<IntPtr,
|
||||
int, int, void>> glfwSetWindowPosCallback;
|
||||
int, int, void>> glfwSetWindowSizeCallback;
|
||||
|
||||
}
|
||||
}
|
||||
-120
@@ -1,120 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "glfw3_no_comments.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
int (*glfwGetError)(const char** description);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
double (*glfwGetTime)(void);
|
||||
uint64_t (*glfwGetTimerFrequency)(void);
|
||||
uint64_t (*glfwGetTimerValue)(void);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* string);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
void (*glfwSetJoystickUserPointer)(int jid, void* pointer);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
void (*glfwSetTime)(double time);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
void (*glfwTerminate)(void);
|
||||
int (*glfwUpdateGamepadMappings)(const char* string);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "glfw3_no_comments.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
void (*glfwCreateCursor)(GLFWimage* image, int xhot, int yhot);
|
||||
GLFWcursor* (*glfwCreateStandardCursor)(int shape);
|
||||
GLFWwindow* (*glfwCreateWindow)(int width, int height, const char* title, GLFWmonitor* monitor, GLFWwindow* share);
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
int (*glfwGetError)(const char** description);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
double (*glfwGetTime)(void);
|
||||
uint64_t (*glfwGetTimerFrequency)(void);
|
||||
uint64_t (*glfwGetTimerValue)(void);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* string);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
void (*glfwSetJoystickUserPointer)(int jid, void* pointer);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
void (*glfwSetTime)(double time);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
void (*glfwTerminate)(void);
|
||||
int (*glfwUpdateGamepadMappings)(const char* string);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-158
@@ -1,158 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunctionTable
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged<Cdecl]<IntPtr,
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged<Cdecl]<IntPtr,
|
||||
double, double, void>> glfwSetScrollCallback;
|
||||
int, byte**, void>> glfwSetDropCallback;
|
||||
|
||||
}
|
||||
}
|
||||
-107
@@ -1,107 +0,0 @@
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
memset(table, 0, sizeof(GLFWFunctionTable));
|
||||
table->glfwDefaultWindowHints = glfwDefaultWindowHints;
|
||||
table->glfwDestroyCursor = glfwDestroyCursor;
|
||||
table->glfwDestroyWindow = glfwDestroyWindow;
|
||||
table->glfwFocusWindow = glfwFocusWindow;
|
||||
table->glfwGetClipboardString = glfwGetClipboardString;
|
||||
table->glfwGetCurrentContext = glfwGetCurrentContext;
|
||||
table->glfwGetCursorPos = glfwGetCursorPos;
|
||||
table->glfwGetError = glfwGetError;
|
||||
table->glfwGetFramebufferSize = glfwGetFramebufferSize;
|
||||
table->glfwGetGamepadName = glfwGetGamepadName;
|
||||
table->glfwGetGamepadState = glfwGetGamepadState;
|
||||
table->glfwGetGammaRamp = glfwGetGammaRamp;
|
||||
table->glfwGetInputMode = glfwGetInputMode;
|
||||
table->glfwGetJoystickAxes = glfwGetJoystickAxes;
|
||||
table->glfwGetJoystickButtons = glfwGetJoystickButtons;
|
||||
table->glfwGetJoystickGUID = glfwGetJoystickGUID;
|
||||
table->glfwGetJoystickHats = glfwGetJoystickHats;
|
||||
table->glfwGetJoystickName = glfwGetJoystickName;
|
||||
table->glfwGetJoystickUserPointer = glfwGetJoystickUserPointer;
|
||||
table->glfwGetKey = glfwGetKey;
|
||||
table->glfwGetKeyName = glfwGetKeyName;
|
||||
table->glfwGetKeyScancode = glfwGetKeyScancode;
|
||||
table->glfwGetMonitorContentScale = glfwGetMonitorContentScale;
|
||||
table->glfwGetMonitorName = glfwGetMonitorName;
|
||||
table->glfwGetMonitorPhysicalSize = glfwGetMonitorPhysicalSize;
|
||||
table->glfwGetMonitorPos = glfwGetMonitorPos;
|
||||
table->glfwGetMonitors = glfwGetMonitors;
|
||||
table->glfwGetMonitorUserPointer = glfwGetMonitorUserPointer;
|
||||
table->glfwGetMonitorWorkarea = glfwGetMonitorWorkarea;
|
||||
table->glfwGetMouseButton = glfwGetMouseButton;
|
||||
table->glfwGetPrimaryMonitor = glfwGetPrimaryMonitor;
|
||||
table->glfwGetTime = glfwGetTime;
|
||||
table->glfwGetTimerFrequency = glfwGetTimerFrequency;
|
||||
table->glfwGetTimerValue = glfwGetTimerValue;
|
||||
table->glfwGetVersionString = glfwGetVersionString;
|
||||
table->glfwGetVideoMode = glfwGetVideoMode;
|
||||
table->glfwGetVideoModes = glfwGetVideoModes;
|
||||
table->glfwGetWindowAttrib = glfwGetWindowAttrib;
|
||||
table->glfwGetWindowContentScale = glfwGetWindowContentScale;
|
||||
table->glfwGetWindowFrameSize = glfwGetWindowFrameSize;
|
||||
table->glfwGetWindowMonitor = glfwGetWindowMonitor;
|
||||
table->glfwGetWindowOpacity = glfwGetWindowOpacity;
|
||||
table->glfwGetWindowPos = glfwGetWindowPos;
|
||||
table->glfwGetWindowSize = glfwGetWindowSize;
|
||||
table->glfwGetWindowUserPointer = glfwGetWindowUserPointer;
|
||||
table->glfwHideWindow = glfwHideWindow;
|
||||
table->glfwIconifyWindow = glfwIconifyWindow;
|
||||
table->glfwInit = glfwInit;
|
||||
table->glfwInitHint = glfwInitHint;
|
||||
table->glfwMakeContextCurrent = glfwMakeContextCurrent;
|
||||
table->glfwMaximizeWindow = glfwMaximizeWindow;
|
||||
table->glfwPollEvents = glfwPollEvents;
|
||||
table->glfwPostEmptyEvent = glfwPostEmptyEvent;
|
||||
table->glfwRequestWindowAttention = glfwRequestWindowAttention;
|
||||
table->glfwRawMouseMotionSupported = glfwRawMouseMotionSupported;
|
||||
table->glfwRestoreWindow = glfwRestoreWindow;
|
||||
table->glfwSetClipboardString = glfwSetClipboardString;
|
||||
table->glfwSetCharCallback = glfwSetCharCallback;
|
||||
table->glfwSetCharModsCallback = glfwSetCharModsCallback;
|
||||
table->glfwSetCursor = glfwSetCursor;
|
||||
table->glfwSetCursorEnterCallback = glfwSetCursorEnterCallback;
|
||||
table->glfwSetCursorPos = glfwSetCursorPos;
|
||||
table->glfwSetCursorPosCallback = glfwSetCursorPosCallback;
|
||||
table->glfwSetDropCallback = glfwSetDropCallback;
|
||||
table->glfwSetGammaRamp = glfwSetGammaRamp;
|
||||
table->glfwSetJoystickCallback = glfwSetJoystickCallback;
|
||||
table->glfwSetJoystickUserPointer = glfwSetJoystickUserPointer;
|
||||
table->glfwSetKeyCallback = glfwSetKeyCallback;
|
||||
table->glfwSetMonitorUserPointer = glfwSetMonitorUserPointer;
|
||||
table->glfwSetMonitorCallback = glfwSetMonitorCallback;
|
||||
table->glfwSetTime = glfwSetTime;
|
||||
table->glfwSetWindowAspectRatio = glfwSetWindowAspectRatio;
|
||||
table->glfwSetWindowAttrib = glfwSetWindowAttrib;
|
||||
table->glfwSetWindowCloseCallback = glfwSetWindowCloseCallback;
|
||||
table->glfwSetWindowIcon = glfwSetWindowIcon;
|
||||
table->glfwSetWindowIconifyCallback = glfwSetWindowIconifyCallback;
|
||||
table->glfwSetWindowFocusCallback = glfwSetWindowFocusCallback;
|
||||
table->glfwSetFramebufferSizeCallback = glfwSetFramebufferSizeCallback;
|
||||
table->glfwSetWindowMaximizeCallback = glfwSetWindowMaximizeCallback;
|
||||
table->glfwSetWindowMonitor = glfwSetWindowMonitor;
|
||||
table->glfwSetMouseButtonCallback = glfwSetMouseButtonCallback;
|
||||
table->glfwSetWindowOpacity = glfwSetWindowOpacity;
|
||||
table->glfwSetWindowPosCallback = glfwSetWindowPosCallback;
|
||||
table->glfwSetWindowPos = glfwSetWindowPos;
|
||||
table->glfwSetScrollCallback = glfwSetScrollCallback;
|
||||
table->glfwSetWindowShouldClose = glfwSetWindowShouldClose;
|
||||
table->glfwSetWindowSizeLimits = glfwSetWindowSizeLimits;
|
||||
table->glfwSetWindowSizeCallback = glfwSetWindowSizeCallback;
|
||||
table->glfwSetWindowSize = glfwSetWindowSize;
|
||||
table->glfwSetWindowTitle = glfwSetWindowTitle;
|
||||
table->glfwSetWindowUserPointer = glfwSetWindowUserPointer;
|
||||
table->glfwSetWindowRefreshCallback = glfwSetWindowRefreshCallback;
|
||||
table->glfwSetWindowContentScaleCallback = glfwSetWindowContentScaleCallback;
|
||||
table->glfwSwapBuffers = glfwSwapBuffers;
|
||||
table->glfwSwapInterval = glfwSwapInterval;
|
||||
table->glfwTerminate = glfwTerminate;
|
||||
table->glfwUpdateGamepadMappings = glfwUpdateGamepadMappings;
|
||||
table->glfwWaitEvents = glfwWaitEvents;
|
||||
table->glfwWaitEventsTimeout = glfwWaitEventsTimeout;
|
||||
table->glfwVulkanSupported = glfwVulkanSupported;
|
||||
table->glfwWindowShouldClose = glfwWindowShouldClose;
|
||||
}
|
||||
-3
@@ -1,3 +0,0 @@
|
||||
#include "StgSharpNative.h"
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
-158
@@ -1,158 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunctionTable
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged<Cdecl]<IntPtr,
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged<Cdecl]<IntPtr,
|
||||
double, double, void>> glfwSetScrollCallback;
|
||||
int, byte**, void>> glfwSetDropCallback;
|
||||
|
||||
}
|
||||
}
|
||||
-120
@@ -1,120 +0,0 @@
|
||||
#ifndef GLFW_FUNCTION_TABLE_H
|
||||
#define GLFW_FUNCTION_TABLE_H
|
||||
|
||||
#include "glfw3_no_comments.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct GLFWFunctionTable {
|
||||
void (*glfwDefaultWindowHints)(void);
|
||||
void (*glfwDestroyCursor)(GLFWcursor* cursor);
|
||||
void (*glfwDestroyWindow)(GLFWwindow* window);
|
||||
void (*glfwFocusWindow)(GLFWwindow* window);
|
||||
const char* (*glfwGetClipboardString)(GLFWwindow* window);
|
||||
GLFWwindow* (*glfwGetCurrentContext)(void);
|
||||
void (*glfwGetCursorPos)(GLFWwindow* window, double* xpos, double* ypos);
|
||||
int (*glfwGetError)(const char** description);
|
||||
void (*glfwGetFramebufferSize)(GLFWwindow* window, int* width, int* height);
|
||||
const char* (*glfwGetGamepadName)(int jid);
|
||||
int (*glfwGetGamepadState)(int jid, GLFWgamepadstate* state);
|
||||
const GLFWgammaramp* (*glfwGetGammaRamp)(GLFWmonitor* monitor);
|
||||
int (*glfwGetInputMode)(GLFWwindow* window, int mode);
|
||||
const float* (*glfwGetJoystickAxes)(int jid, int* count);
|
||||
const unsigned char* (*glfwGetJoystickButtons)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickGUID)(int jid);
|
||||
const unsigned char* (*glfwGetJoystickHats)(int jid, int* count);
|
||||
const char* (*glfwGetJoystickName)(int jid);
|
||||
void* (*glfwGetJoystickUserPointer)(int jid);
|
||||
int (*glfwGetKey)(GLFWwindow* window, int key);
|
||||
const char* (*glfwGetKeyName)(int key, int scancode);
|
||||
int (*glfwGetKeyScancode)(int key);
|
||||
void (*glfwGetMonitorContentScale)(GLFWmonitor* monitor, float* xscale, float* yscale);
|
||||
const char* (*glfwGetMonitorName)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorPhysicalSize)(GLFWmonitor* monitor, int* widthMM, int* heightMM);
|
||||
void (*glfwGetMonitorPos)(GLFWmonitor* monitor, int* xpos, int* ypos);
|
||||
GLFWmonitor** (*glfwGetMonitors)(int* count);
|
||||
void* (*glfwGetMonitorUserPointer)(GLFWmonitor* monitor);
|
||||
void (*glfwGetMonitorWorkarea)(GLFWmonitor* monitor, int* xpos, int* ypos, int* width, int* height);
|
||||
int (*glfwGetMouseButton)(GLFWwindow* window, int button);
|
||||
GLFWmonitor* (*glfwGetPrimaryMonitor)(void);
|
||||
double (*glfwGetTime)(void);
|
||||
uint64_t (*glfwGetTimerFrequency)(void);
|
||||
uint64_t (*glfwGetTimerValue)(void);
|
||||
const char* (*glfwGetVersionString)(void);
|
||||
const GLFWvidmode* (*glfwGetVideoMode)(GLFWmonitor* monitor);
|
||||
const GLFWvidmode* (*glfwGetVideoModes)(GLFWmonitor* monitor, int* count);
|
||||
int (*glfwGetWindowAttrib)(GLFWwindow* window, int attrib);
|
||||
void (*glfwGetWindowContentScale)(GLFWwindow* window, float* xscale, float* yscale);
|
||||
void (*glfwGetWindowFrameSize)(GLFWwindow* window, int* left, int* top, int* right, int* bottom);
|
||||
GLFWmonitor* (*glfwGetWindowMonitor)(GLFWwindow* window);
|
||||
float (*glfwGetWindowOpacity)(GLFWwindow* window);
|
||||
void (*glfwGetWindowPos)(GLFWwindow* window, int* xpos, int* ypos);
|
||||
void (*glfwGetWindowSize)(GLFWwindow* window, int* width, int* height);
|
||||
void* (*glfwGetWindowUserPointer)(GLFWwindow* window);
|
||||
void (*glfwHideWindow)(GLFWwindow* window);
|
||||
void (*glfwIconifyWindow)(GLFWwindow* window);
|
||||
int (*glfwInit)(void);
|
||||
void (*glfwInitHint)(int hint, int value);
|
||||
void (*glfwMakeContextCurrent)(GLFWwindow* window);
|
||||
void (*glfwMaximizeWindow)(GLFWwindow* window);
|
||||
void (*glfwPollEvents)(void);
|
||||
void (*glfwPostEmptyEvent)(void);
|
||||
void (*glfwRequestWindowAttention)(GLFWwindow* window);
|
||||
int (*glfwRawMouseMotionSupported)(void);
|
||||
void (*glfwRestoreWindow)(GLFWwindow* window);
|
||||
void (*glfwSetClipboardString)(GLFWwindow* window, const char* string);
|
||||
GLFWcharfun (*glfwSetCharCallback)(GLFWwindow* window, GLFWcharfun callback);
|
||||
GLFWcharmodsfun (*glfwSetCharModsCallback)(GLFWwindow* window, GLFWcharmodsfun callback);
|
||||
void (*glfwSetCursor)(GLFWwindow* window, GLFWcursor* cursor);
|
||||
GLFWcursorenterfun (*glfwSetCursorEnterCallback)(GLFWwindow* window, GLFWcursorenterfun callback);
|
||||
void (*glfwSetCursorPos)(GLFWwindow* window, double xpos, double ypos);
|
||||
GLFWcursorposfun (*glfwSetCursorPosCallback)(GLFWwindow* window, GLFWcursorposfun callback);
|
||||
GLFWdropfun (*glfwSetDropCallback)(GLFWwindow* window, GLFWdropfun callback);
|
||||
void (*glfwSetGammaRamp)(GLFWmonitor* monitor, const GLFWgammaramp* ramp);
|
||||
GLFWjoystickfun (*glfwSetJoystickCallback)(GLFWjoystickfun callback);
|
||||
void (*glfwSetJoystickUserPointer)(int jid, void* pointer);
|
||||
GLFWkeyfun (*glfwSetKeyCallback)(GLFWwindow* window, GLFWkeyfun callback);
|
||||
void (*glfwSetMonitorUserPointer)(GLFWmonitor* monitor, void* pointer);
|
||||
GLFWmonitorfun (*glfwSetMonitorCallback)(GLFWmonitorfun callback);
|
||||
void (*glfwSetTime)(double time);
|
||||
void (*glfwSetWindowAspectRatio)(GLFWwindow* window, int numer, int denom);
|
||||
void (*glfwSetWindowAttrib)(GLFWwindow* window, int attrib, int value);
|
||||
GLFWwindowclosefun (*glfwSetWindowCloseCallback)(GLFWwindow* window, GLFWwindowclosefun callback);
|
||||
void (*glfwSetWindowIcon)(GLFWwindow* window, int count, const GLFWimage* images);
|
||||
GLFWwindowiconifyfun (*glfwSetWindowIconifyCallback)(GLFWwindow* window, GLFWwindowiconifyfun callback);
|
||||
GLFWwindowfocusfun (*glfwSetWindowFocusCallback)(GLFWwindow* window, GLFWwindowfocusfun callback);
|
||||
GLFWframebuffersizefun (*glfwSetFramebufferSizeCallback)(GLFWwindow* window, GLFWframebuffersizefun callback);
|
||||
GLFWwindowmaximizefun (*glfwSetWindowMaximizeCallback)(GLFWwindow* window, GLFWwindowmaximizefun callback);
|
||||
void (*glfwSetWindowMonitor)(GLFWwindow* window, GLFWmonitor* monitor, int xpos, int ypos, int width, int height, int refreshRate);
|
||||
GLFWmousebuttonfun (*glfwSetMouseButtonCallback)(GLFWwindow* window, GLFWmousebuttonfun callback);
|
||||
void (*glfwSetWindowOpacity)(GLFWwindow* window, float opacity);
|
||||
GLFWwindowposfun (*glfwSetWindowPosCallback)(GLFWwindow* window, GLFWwindowposfun callback);
|
||||
void (*glfwSetWindowPos)(GLFWwindow* window, int xpos, int ypos);
|
||||
GLFWscrollfun (*glfwSetScrollCallback)(GLFWwindow* window, GLFWscrollfun callback);
|
||||
void (*glfwSetWindowShouldClose)(GLFWwindow* window, int value);
|
||||
void (*glfwSetWindowSizeLimits)(GLFWwindow* window, int minwidth, int minheight, int maxwidth, int maxheight);
|
||||
GLFWwindowsizefun (*glfwSetWindowSizeCallback)(GLFWwindow* window, GLFWwindowsizefun callback);
|
||||
void (*glfwSetWindowSize)(GLFWwindow* window, int width, int height);
|
||||
void (*glfwSetWindowTitle)(GLFWwindow* window, const char* title);
|
||||
void (*glfwSetWindowUserPointer)(GLFWwindow* window, void* pointer);
|
||||
GLFWwindowrefreshfun (*glfwSetWindowRefreshCallback)(GLFWwindow* window, GLFWwindowrefreshfun callback);
|
||||
GLFWwindowcontentscalefun (*glfwSetWindowContentScaleCallback)(GLFWwindow* window, GLFWwindowcontentscalefun callback);
|
||||
void (*glfwSwapBuffers)(GLFWwindow* window);
|
||||
void (*glfwSwapInterval)(int interval);
|
||||
void (*glfwTerminate)(void);
|
||||
int (*glfwUpdateGamepadMappings)(const char* string);
|
||||
void (*glfwWaitEvents)(void);
|
||||
void (*glfwWaitEventsTimeout)(double timeout);
|
||||
int (*glfwVulkanSupported)(void);
|
||||
int (*glfwWindowShouldClose)(GLFWwindow* window);
|
||||
} GLFWFunctionTable;
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
-123
@@ -1,123 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine($"{logType}\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release();
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"{logType}\t@\t{DateTime.Now.ToString("o")}");
|
||||
logStream.WriteLine(logLine);
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-107
@@ -1,107 +0,0 @@
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
memset(table, 0, sizeof(GLFWFunctionTable));
|
||||
table->glfwDefaultWindowHints = glfwDefaultWindowHints;
|
||||
table->glfwDestroyCursor = glfwDestroyCursor;
|
||||
table->glfwDestroyWindow = glfwDestroyWindow;
|
||||
table->glfwFocusWindow = glfwFocusWindow;
|
||||
table->glfwGetClipboardString = glfwGetClipboardString;
|
||||
table->glfwGetCurrentContext = glfwGetCurrentContext;
|
||||
table->glfwGetCursorPos = glfwGetCursorPos;
|
||||
table->glfwGetError = glfwGetError;
|
||||
table->glfwGetFramebufferSize = glfwGetFramebufferSize;
|
||||
table->glfwGetGamepadName = glfwGetGamepadName;
|
||||
table->glfwGetGamepadState = glfwGetGamepadState;
|
||||
table->glfwGetGammaRamp = glfwGetGammaRamp;
|
||||
table->glfwGetInputMode = glfwGetInputMode;
|
||||
table->glfwGetJoystickAxes = glfwGetJoystickAxes;
|
||||
table->glfwGetJoystickButtons = glfwGetJoystickButtons;
|
||||
table->glfwGetJoystickGUID = glfwGetJoystickGUID;
|
||||
table->glfwGetJoystickHats = glfwGetJoystickHats;
|
||||
table->glfwGetJoystickName = glfwGetJoystickName;
|
||||
table->glfwGetJoystickUserPointer = glfwGetJoystickUserPointer;
|
||||
table->glfwGetKey = glfwGetKey;
|
||||
table->glfwGetKeyName = glfwGetKeyName;
|
||||
table->glfwGetKeyScancode = glfwGetKeyScancode;
|
||||
table->glfwGetMonitorContentScale = glfwGetMonitorContentScale;
|
||||
table->glfwGetMonitorName = glfwGetMonitorName;
|
||||
table->glfwGetMonitorPhysicalSize = glfwGetMonitorPhysicalSize;
|
||||
table->glfwGetMonitorPos = glfwGetMonitorPos;
|
||||
table->glfwGetMonitors = glfwGetMonitors;
|
||||
table->glfwGetMonitorUserPointer = glfwGetMonitorUserPointer;
|
||||
table->glfwGetMonitorWorkarea = glfwGetMonitorWorkarea;
|
||||
table->glfwGetMouseButton = glfwGetMouseButton;
|
||||
table->glfwGetPrimaryMonitor = glfwGetPrimaryMonitor;
|
||||
table->glfwGetTime = glfwGetTime;
|
||||
table->glfwGetTimerFrequency = glfwGetTimerFrequency;
|
||||
table->glfwGetTimerValue = glfwGetTimerValue;
|
||||
table->glfwGetVersionString = glfwGetVersionString;
|
||||
table->glfwGetVideoMode = glfwGetVideoMode;
|
||||
table->glfwGetVideoModes = glfwGetVideoModes;
|
||||
table->glfwGetWindowAttrib = glfwGetWindowAttrib;
|
||||
table->glfwGetWindowContentScale = glfwGetWindowContentScale;
|
||||
table->glfwGetWindowFrameSize = glfwGetWindowFrameSize;
|
||||
table->glfwGetWindowMonitor = glfwGetWindowMonitor;
|
||||
table->glfwGetWindowOpacity = glfwGetWindowOpacity;
|
||||
table->glfwGetWindowPos = glfwGetWindowPos;
|
||||
table->glfwGetWindowSize = glfwGetWindowSize;
|
||||
table->glfwGetWindowUserPointer = glfwGetWindowUserPointer;
|
||||
table->glfwHideWindow = glfwHideWindow;
|
||||
table->glfwIconifyWindow = glfwIconifyWindow;
|
||||
table->glfwInit = glfwInit;
|
||||
table->glfwInitHint = glfwInitHint;
|
||||
table->glfwMakeContextCurrent = glfwMakeContextCurrent;
|
||||
table->glfwMaximizeWindow = glfwMaximizeWindow;
|
||||
table->glfwPollEvents = glfwPollEvents;
|
||||
table->glfwPostEmptyEvent = glfwPostEmptyEvent;
|
||||
table->glfwRequestWindowAttention = glfwRequestWindowAttention;
|
||||
table->glfwRawMouseMotionSupported = glfwRawMouseMotionSupported;
|
||||
table->glfwRestoreWindow = glfwRestoreWindow;
|
||||
table->glfwSetClipboardString = glfwSetClipboardString;
|
||||
table->glfwSetCharCallback = glfwSetCharCallback;
|
||||
table->glfwSetCharModsCallback = glfwSetCharModsCallback;
|
||||
table->glfwSetCursor = glfwSetCursor;
|
||||
table->glfwSetCursorEnterCallback = glfwSetCursorEnterCallback;
|
||||
table->glfwSetCursorPos = glfwSetCursorPos;
|
||||
table->glfwSetCursorPosCallback = glfwSetCursorPosCallback;
|
||||
table->glfwSetDropCallback = glfwSetDropCallback;
|
||||
table->glfwSetGammaRamp = glfwSetGammaRamp;
|
||||
table->glfwSetJoystickCallback = glfwSetJoystickCallback;
|
||||
table->glfwSetJoystickUserPointer = glfwSetJoystickUserPointer;
|
||||
table->glfwSetKeyCallback = glfwSetKeyCallback;
|
||||
table->glfwSetMonitorUserPointer = glfwSetMonitorUserPointer;
|
||||
table->glfwSetMonitorCallback = glfwSetMonitorCallback;
|
||||
table->glfwSetTime = glfwSetTime;
|
||||
table->glfwSetWindowAspectRatio = glfwSetWindowAspectRatio;
|
||||
table->glfwSetWindowAttrib = glfwSetWindowAttrib;
|
||||
table->glfwSetWindowCloseCallback = glfwSetWindowCloseCallback;
|
||||
table->glfwSetWindowIcon = glfwSetWindowIcon;
|
||||
table->glfwSetWindowIconifyCallback = glfwSetWindowIconifyCallback;
|
||||
table->glfwSetWindowFocusCallback = glfwSetWindowFocusCallback;
|
||||
table->glfwSetFramebufferSizeCallback = glfwSetFramebufferSizeCallback;
|
||||
table->glfwSetWindowMaximizeCallback = glfwSetWindowMaximizeCallback;
|
||||
table->glfwSetWindowMonitor = glfwSetWindowMonitor;
|
||||
table->glfwSetMouseButtonCallback = glfwSetMouseButtonCallback;
|
||||
table->glfwSetWindowOpacity = glfwSetWindowOpacity;
|
||||
table->glfwSetWindowPosCallback = glfwSetWindowPosCallback;
|
||||
table->glfwSetWindowPos = glfwSetWindowPos;
|
||||
table->glfwSetScrollCallback = glfwSetScrollCallback;
|
||||
table->glfwSetWindowShouldClose = glfwSetWindowShouldClose;
|
||||
table->glfwSetWindowSizeLimits = glfwSetWindowSizeLimits;
|
||||
table->glfwSetWindowSizeCallback = glfwSetWindowSizeCallback;
|
||||
table->glfwSetWindowSize = glfwSetWindowSize;
|
||||
table->glfwSetWindowTitle = glfwSetWindowTitle;
|
||||
table->glfwSetWindowUserPointer = glfwSetWindowUserPointer;
|
||||
table->glfwSetWindowRefreshCallback = glfwSetWindowRefreshCallback;
|
||||
table->glfwSetWindowContentScaleCallback = glfwSetWindowContentScaleCallback;
|
||||
table->glfwSwapBuffers = glfwSwapBuffers;
|
||||
table->glfwSwapInterval = glfwSwapInterval;
|
||||
table->glfwTerminate = glfwTerminate;
|
||||
table->glfwUpdateGamepadMappings = glfwUpdateGamepadMappings;
|
||||
table->glfwWaitEvents = glfwWaitEvents;
|
||||
table->glfwWaitEventsTimeout = glfwWaitEventsTimeout;
|
||||
table->glfwVulkanSupported = glfwVulkanSupported;
|
||||
table->glfwWindowShouldClose = glfwWindowShouldClose;
|
||||
}
|
||||
-486
@@ -1,486 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Text;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private static GLFWFunction _glfw;
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "load_glfw_functions")]
|
||||
internal static unsafe partial void glfwLoadLibrary(GLFWFunction* context);
|
||||
|
||||
internal static unsafe void LoadGlfw()
|
||||
{
|
||||
_glfw = new GLFWFunction();
|
||||
fixed (GLFWFunction* func = &_glfw) { }
|
||||
}
|
||||
|
||||
#region api call
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInit")]
|
||||
internal static unsafe partial int glfwInit();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwTerminate")]
|
||||
internal static unsafe partial void glfwTerminate();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwInitHint")]
|
||||
internal static unsafe partial void glfwInitHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersion")]
|
||||
internal static unsafe partial void glfwGetVersion(int* major, int* minor, int* rev);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVersionString")]
|
||||
internal static unsafe partial byte* glfwGetVersionString();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetError")]
|
||||
internal static unsafe partial int glfwGetError(byte** description);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetErrorCallback")]
|
||||
internal static unsafe partial delegate*<int,byte*,void> glfwSetErrorCallback(
|
||||
delegate*<int,byte*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitors")]
|
||||
internal static unsafe partial IntPtr* glfwGetMonitors(int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPrimaryMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetPrimaryMonitor();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPos")]
|
||||
internal static unsafe partial void glfwGetMonitorPos(IntPtr monitor, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorWorkarea")]
|
||||
internal static unsafe partial void glfwGetMonitorWorkarea(
|
||||
IntPtr monitor,
|
||||
int* xpos,
|
||||
int* ypos,
|
||||
int* width,
|
||||
int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorPhysicalSize")]
|
||||
internal static unsafe partial void glfwGetMonitorPhysicalSize(IntPtr monitor, int* widthMM, int* heightMM);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorContentScale")]
|
||||
internal static unsafe partial void glfwGetMonitorContentScale(IntPtr monitor, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorName")]
|
||||
internal static unsafe partial byte* glfwGetMonitorName(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorUserPointer")]
|
||||
internal static unsafe partial void glfwSetMonitorUserPointer(IntPtr monitor, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMonitorUserPointer")]
|
||||
internal static unsafe partial void* glfwGetMonitorUserPointer(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMonitorCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetMonitorCallback(
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoModes")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoModes(IntPtr monitor, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetVideoMode")]
|
||||
internal static unsafe partial glfwVideomode* glfwGetVideoMode(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGamma")]
|
||||
internal static unsafe partial void glfwSetGamma(IntPtr monitor, float gamma);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGammaRamp")]
|
||||
internal static unsafe partial glfwGammaramp* glfwGetGammaRamp(IntPtr monitor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetGammaRamp")]
|
||||
internal static unsafe partial void glfwSetGammaRamp(IntPtr monitor, glfwGammaramp* ramp);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDefaultWindowHints")]
|
||||
internal static unsafe partial void glfwDefaultWindowHints();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHint")]
|
||||
internal static unsafe partial void glfwWindowHint(int hint, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowHintString")]
|
||||
internal static unsafe partial void glfwWindowHintString(int hint, byte* value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindow")]
|
||||
internal static unsafe partial IntPtr glfwCreateWindow(
|
||||
int width,
|
||||
int height,
|
||||
byte[] title,
|
||||
IntPtr monitor,
|
||||
IntPtr share);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyWindow")]
|
||||
internal static unsafe partial void glfwDestroyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWindowShouldClose")]
|
||||
internal static unsafe partial int glfwWindowShouldClose(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowShouldClose")]
|
||||
internal static unsafe partial void glfwSetWindowShouldClose(IntPtr window, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowTitle")]
|
||||
internal static unsafe partial void glfwSetWindowTitle(IntPtr window, byte* title);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIcon")]
|
||||
internal static unsafe partial void glfwSetWindowIcon(IntPtr window, int count, GLFWimage* images);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowPos")]
|
||||
internal static unsafe partial void glfwGetWindowPos(IntPtr window, int* xpos, int* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPos")]
|
||||
internal static unsafe partial void glfwSetWindowPos(IntPtr window, int xpos, int ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowSize")]
|
||||
internal static unsafe partial void glfwGetWindowSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeLimits")]
|
||||
internal static unsafe partial void glfwSetWindowSizeLimits(
|
||||
IntPtr window,
|
||||
int minwidth,
|
||||
int minheight,
|
||||
int maxwidth,
|
||||
int maxheight);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAspectRatio")]
|
||||
internal static unsafe partial void glfwSetWindowAspectRatio(IntPtr window, int numer, int denom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSize")]
|
||||
internal static unsafe partial void glfwSetWindowSize(IntPtr window, int width, int height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetFramebufferSize")]
|
||||
internal static unsafe partial void glfwGetFramebufferSize(IntPtr window, int* width, int* height);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowFrameSize")]
|
||||
internal static unsafe partial void glfwGetWindowFrameSize(
|
||||
IntPtr window,
|
||||
int* left,
|
||||
int* top,
|
||||
int* right,
|
||||
int* bottom);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowContentScale")]
|
||||
internal static unsafe partial void glfwGetWindowContentScale(IntPtr window, float* xscale, float* yscale);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowOpacity")]
|
||||
internal static unsafe partial float glfwGetWindowOpacity(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowOpacity")]
|
||||
internal static unsafe partial void glfwSetWindowOpacity(IntPtr window, float opacity);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwIconifyWindow")]
|
||||
internal static unsafe partial void glfwIconifyWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRestoreWindow")]
|
||||
internal static unsafe partial void glfwRestoreWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMaximizeWindow")]
|
||||
internal static unsafe partial void glfwMaximizeWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwShowWindow")]
|
||||
internal static unsafe partial void glfwShowWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwHideWindow")]
|
||||
internal static unsafe partial void glfwHideWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwFocusWindow")]
|
||||
internal static unsafe partial void glfwFocusWindow(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRequestWindowAttention")]
|
||||
internal static unsafe partial void glfwRequestWindowAttention(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowMonitor")]
|
||||
internal static unsafe partial IntPtr glfwGetWindowMonitor(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMonitor")]
|
||||
internal static unsafe partial void glfwSetWindowMonitor(
|
||||
IntPtr window,
|
||||
IntPtr monitor,
|
||||
int xpos,
|
||||
int ypos,
|
||||
int width,
|
||||
int height,
|
||||
int refreshRate);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowAttrib")]
|
||||
internal static unsafe partial int glfwGetWindowAttrib(IntPtr window, int attrib);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowAttrib")]
|
||||
internal static unsafe partial void glfwSetWindowAttrib(IntPtr window, int attrib, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowUserPointer")]
|
||||
internal static unsafe partial void glfwSetWindowUserPointer(IntPtr window, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetWindowUserPointer")]
|
||||
internal static unsafe partial void* glfwGetWindowUserPointer(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowPosCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowSizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowSizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowCloseCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,void> glfwSetWindowCloseCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowRefreshCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, void> glfwSetWindowRefreshCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowFocusCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowFocusCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowIconifyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowIconifyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowMaximizeCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowMaximizeCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetFramebufferSizeCallback")]
|
||||
internal static unsafe partial FrameBufferSizeHandler glfwSetFramebufferSizeCallback(
|
||||
IntPtr window,
|
||||
IntPtr callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetWindowContentScaleCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*, float,float> glfwSetWindowContentScaleCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*, float,float> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPollEvents")]
|
||||
internal static unsafe partial void glfwPollEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEvents")]
|
||||
internal static unsafe partial void glfwWaitEvents();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwWaitEventsTimeout")]
|
||||
internal static unsafe partial void glfwWaitEventsTimeout(double timeout);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwPostEmptyEvent")]
|
||||
internal static unsafe partial void glfwPostEmptyEvent();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInputMode")]
|
||||
internal static unsafe partial int glfwGetInputMode(IntPtr window, int mode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetInputMode")]
|
||||
internal static unsafe partial void glfwSetInputMode(IntPtr window, int mode, int value);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwRawMouseMotionSupported")]
|
||||
internal static unsafe partial int glfwRawMouseMotionSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyName")]
|
||||
internal static unsafe partial byte* glfwGetKeyName(int key, int scancode);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKeyScancode")]
|
||||
internal static unsafe partial int glfwGetKeyScancode(int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetKey")]
|
||||
internal static unsafe partial KeyStatus glfwGetKey(IntPtr window, int key);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetMouseButton")]
|
||||
internal static unsafe partial int glfwGetMouseButton(IntPtr window, int button);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCursorPos")]
|
||||
internal static unsafe partial void glfwGetCursorPos(IntPtr window, double* xpos, double* ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPos")]
|
||||
internal static unsafe partial void glfwSetCursorPos(IntPtr window, double xpos, double ypos);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateCursor(GLFWimage* image, int xhot, int yhot);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateStandardCursor")]
|
||||
internal static unsafe partial GLFWcursor* glfwCreateStandardCursor(int shape);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwDestroyCursor")]
|
||||
internal static unsafe partial void glfwDestroyCursor(GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursor")]
|
||||
internal static unsafe partial void glfwSetCursor(IntPtr window, GLFWcursor* cursor);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetKeyCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,int,void> glfwSetKeyCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,uint,void> glfwSetCharCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,uint,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCharModsCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetCharModsCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetMouseButtonCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,int,int,void> glfwSetMouseButtonCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorPosCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetCursorPosCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetCursorEnterCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetCursorEnterCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetScrollCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetScrollCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,double,double,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetDropCallback")]
|
||||
internal static unsafe partial delegate*<glfwWindow*,int,byte**,void> glfwSetDropCallback(
|
||||
IntPtr window,
|
||||
delegate*<glfwWindow*,int,byte**,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickPresent")]
|
||||
internal static unsafe partial int glfwJoystickPresent(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickAxes")]
|
||||
internal static unsafe partial float* glfwGetJoystickAxes(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickButtons")]
|
||||
internal static unsafe partial byte* glfwGetJoystickButtons(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickHats")]
|
||||
internal static unsafe partial byte* glfwGetJoystickHats(int jid, int* count);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickName")]
|
||||
internal static unsafe partial byte* glfwGetJoystickName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickGUID")]
|
||||
internal static unsafe partial byte* glfwGetJoystickGUID(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickUserPointer")]
|
||||
internal static unsafe partial void glfwSetJoystickUserPointer(int jid, void* pointer);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetJoystickUserPointer")]
|
||||
internal static unsafe partial void* glfwGetJoystickUserPointer(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwJoystickIsGamepad")]
|
||||
internal static unsafe partial int glfwJoystickIsGamepad(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetJoystickCallback")]
|
||||
internal static unsafe partial delegate*<int,int,void> glfwSetJoystickCallback(delegate*<int,int,void> callback);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwUpdateGamepadMappings")]
|
||||
internal static unsafe partial int glfwUpdateGamepadMappings(byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadName")]
|
||||
internal static unsafe partial byte* glfwGetGamepadName(int jid);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetGamepadState")]
|
||||
internal static unsafe partial int glfwGetGamepadState(int jid, GLFWgamepadstate* state);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetClipboardString")]
|
||||
internal static unsafe partial void glfwSetClipboardString(IntPtr window, byte* str);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetClipboardString")]
|
||||
internal static unsafe partial byte* glfwGetClipboardString(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTime")]
|
||||
internal static unsafe partial double glfwGetTime();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSetTime")]
|
||||
internal static unsafe partial void glfwSetTime(double time);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerValue")]
|
||||
internal static unsafe partial ulong* glfwGetTimerValue();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetTimerFrequency")]
|
||||
internal static unsafe partial ulong* glfwGetTimerFrequency();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwMakeContextCurrent")]
|
||||
internal static unsafe partial void glfwMakeContextCurrent(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetCurrentContext")]
|
||||
internal static unsafe partial IntPtr glfwGetCurrentContext();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapBuffers")]
|
||||
internal static unsafe partial void glfwSwapBuffers(IntPtr window);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwSwapInterval")]
|
||||
internal static unsafe partial void glfwSwapInterval(int interval);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwExtensionSupported")]
|
||||
internal static unsafe partial int glfwExtensionSupported(byte* extension);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetProcAddress", StringMarshalling = StringMarshalling.Utf8)]
|
||||
internal static unsafe partial IntPtr glfwGetProcAddress(string procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwVulkanSupported")]
|
||||
internal static unsafe partial int glfwVulkanSupported();
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetRequiredInstanceExtensions")]
|
||||
internal static unsafe partial byte** glfwGetRequiredInstanceExtensions(uint* count);
|
||||
|
||||
/*
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetInstanceProcAddress")] internal static unsafe partial delegate*<void> glfwGetInstanceProcAddress(
|
||||
VkInstance instance,
|
||||
byte* procname);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwGetPhysicalDevicePresentationSupport")] internal static unsafe partial int glfwGetPhysicalDevicePresentationSupport(
|
||||
VkInstance instance,
|
||||
VkPhysicalDevice device,
|
||||
uint* queuefamily);
|
||||
|
||||
[LibraryImport(NativeLibName, EntryPoint = "glfwCreateWindowSurface")] internal static unsafe partial VkResult glfwCreateWindowSurface(
|
||||
VkInstance instance,
|
||||
glfwWindow* window,
|
||||
VkAllocationCallbacks* _allocator,
|
||||
VkSurfaceKHR* surface);
|
||||
/**/
|
||||
|
||||
#endregion api call
|
||||
}
|
||||
}
|
||||
-110
@@ -1,110 +0,0 @@
|
||||
#include "glfw_function_table.h"
|
||||
#include <string.h>
|
||||
|
||||
void LoadGLFWFunctions(GLFWFunctionTable* table) {
|
||||
memset(table, 0, sizeof(GLFWFunctionTable));
|
||||
table->glfwCreateCursor = glfwCreateCursor;
|
||||
table->glfwCreateStandardCursor = glfwCreateStandardCursor;
|
||||
table->glfwCreateWindow = glfwCreateWindow;
|
||||
table->glfwDefaultWindowHints = glfwDefaultWindowHints;
|
||||
table->glfwDestroyCursor = glfwDestroyCursor;
|
||||
table->glfwDestroyWindow = glfwDestroyWindow;
|
||||
table->glfwFocusWindow = glfwFocusWindow;
|
||||
table->glfwGetClipboardString = glfwGetClipboardString;
|
||||
table->glfwGetCurrentContext = glfwGetCurrentContext;
|
||||
table->glfwGetCursorPos = glfwGetCursorPos;
|
||||
table->glfwGetError = glfwGetError;
|
||||
table->glfwGetFramebufferSize = glfwGetFramebufferSize;
|
||||
table->glfwGetGamepadName = glfwGetGamepadName;
|
||||
table->glfwGetGamepadState = glfwGetGamepadState;
|
||||
table->glfwGetGammaRamp = glfwGetGammaRamp;
|
||||
table->glfwGetInputMode = glfwGetInputMode;
|
||||
table->glfwGetJoystickAxes = glfwGetJoystickAxes;
|
||||
table->glfwGetJoystickButtons = glfwGetJoystickButtons;
|
||||
table->glfwGetJoystickGUID = glfwGetJoystickGUID;
|
||||
table->glfwGetJoystickHats = glfwGetJoystickHats;
|
||||
table->glfwGetJoystickName = glfwGetJoystickName;
|
||||
table->glfwGetJoystickUserPointer = glfwGetJoystickUserPointer;
|
||||
table->glfwGetKey = glfwGetKey;
|
||||
table->glfwGetKeyName = glfwGetKeyName;
|
||||
table->glfwGetKeyScancode = glfwGetKeyScancode;
|
||||
table->glfwGetMonitorContentScale = glfwGetMonitorContentScale;
|
||||
table->glfwGetMonitorName = glfwGetMonitorName;
|
||||
table->glfwGetMonitorPhysicalSize = glfwGetMonitorPhysicalSize;
|
||||
table->glfwGetMonitorPos = glfwGetMonitorPos;
|
||||
table->glfwGetMonitors = glfwGetMonitors;
|
||||
table->glfwGetMonitorUserPointer = glfwGetMonitorUserPointer;
|
||||
table->glfwGetMonitorWorkarea = glfwGetMonitorWorkarea;
|
||||
table->glfwGetMouseButton = glfwGetMouseButton;
|
||||
table->glfwGetPrimaryMonitor = glfwGetPrimaryMonitor;
|
||||
table->glfwGetTime = glfwGetTime;
|
||||
table->glfwGetTimerFrequency = glfwGetTimerFrequency;
|
||||
table->glfwGetTimerValue = glfwGetTimerValue;
|
||||
table->glfwGetVersionString = glfwGetVersionString;
|
||||
table->glfwGetVideoMode = glfwGetVideoMode;
|
||||
table->glfwGetVideoModes = glfwGetVideoModes;
|
||||
table->glfwGetWindowAttrib = glfwGetWindowAttrib;
|
||||
table->glfwGetWindowContentScale = glfwGetWindowContentScale;
|
||||
table->glfwGetWindowFrameSize = glfwGetWindowFrameSize;
|
||||
table->glfwGetWindowMonitor = glfwGetWindowMonitor;
|
||||
table->glfwGetWindowOpacity = glfwGetWindowOpacity;
|
||||
table->glfwGetWindowPos = glfwGetWindowPos;
|
||||
table->glfwGetWindowSize = glfwGetWindowSize;
|
||||
table->glfwGetWindowUserPointer = glfwGetWindowUserPointer;
|
||||
table->glfwHideWindow = glfwHideWindow;
|
||||
table->glfwIconifyWindow = glfwIconifyWindow;
|
||||
table->glfwInit = glfwInit;
|
||||
table->glfwInitHint = glfwInitHint;
|
||||
table->glfwMakeContextCurrent = glfwMakeContextCurrent;
|
||||
table->glfwMaximizeWindow = glfwMaximizeWindow;
|
||||
table->glfwPollEvents = glfwPollEvents;
|
||||
table->glfwPostEmptyEvent = glfwPostEmptyEvent;
|
||||
table->glfwRequestWindowAttention = glfwRequestWindowAttention;
|
||||
table->glfwRawMouseMotionSupported = glfwRawMouseMotionSupported;
|
||||
table->glfwRestoreWindow = glfwRestoreWindow;
|
||||
table->glfwSetClipboardString = glfwSetClipboardString;
|
||||
table->glfwSetCharCallback = glfwSetCharCallback;
|
||||
table->glfwSetCharModsCallback = glfwSetCharModsCallback;
|
||||
table->glfwSetCursor = glfwSetCursor;
|
||||
table->glfwSetCursorEnterCallback = glfwSetCursorEnterCallback;
|
||||
table->glfwSetCursorPos = glfwSetCursorPos;
|
||||
table->glfwSetCursorPosCallback = glfwSetCursorPosCallback;
|
||||
table->glfwSetDropCallback = glfwSetDropCallback;
|
||||
table->glfwSetGammaRamp = glfwSetGammaRamp;
|
||||
table->glfwSetJoystickCallback = glfwSetJoystickCallback;
|
||||
table->glfwSetJoystickUserPointer = glfwSetJoystickUserPointer;
|
||||
table->glfwSetKeyCallback = glfwSetKeyCallback;
|
||||
table->glfwSetMonitorUserPointer = glfwSetMonitorUserPointer;
|
||||
table->glfwSetMonitorCallback = glfwSetMonitorCallback;
|
||||
table->glfwSetTime = glfwSetTime;
|
||||
table->glfwSetWindowAspectRatio = glfwSetWindowAspectRatio;
|
||||
table->glfwSetWindowAttrib = glfwSetWindowAttrib;
|
||||
table->glfwSetWindowCloseCallback = glfwSetWindowCloseCallback;
|
||||
table->glfwSetWindowIcon = glfwSetWindowIcon;
|
||||
table->glfwSetWindowIconifyCallback = glfwSetWindowIconifyCallback;
|
||||
table->glfwSetWindowFocusCallback = glfwSetWindowFocusCallback;
|
||||
table->glfwSetFramebufferSizeCallback = glfwSetFramebufferSizeCallback;
|
||||
table->glfwSetWindowMaximizeCallback = glfwSetWindowMaximizeCallback;
|
||||
table->glfwSetWindowMonitor = glfwSetWindowMonitor;
|
||||
table->glfwSetMouseButtonCallback = glfwSetMouseButtonCallback;
|
||||
table->glfwSetWindowOpacity = glfwSetWindowOpacity;
|
||||
table->glfwSetWindowPosCallback = glfwSetWindowPosCallback;
|
||||
table->glfwSetWindowPos = glfwSetWindowPos;
|
||||
table->glfwSetScrollCallback = glfwSetScrollCallback;
|
||||
table->glfwSetWindowShouldClose = glfwSetWindowShouldClose;
|
||||
table->glfwSetWindowSizeLimits = glfwSetWindowSizeLimits;
|
||||
table->glfwSetWindowSizeCallback = glfwSetWindowSizeCallback;
|
||||
table->glfwSetWindowSize = glfwSetWindowSize;
|
||||
table->glfwSetWindowTitle = glfwSetWindowTitle;
|
||||
table->glfwSetWindowUserPointer = glfwSetWindowUserPointer;
|
||||
table->glfwSetWindowRefreshCallback = glfwSetWindowRefreshCallback;
|
||||
table->glfwSetWindowContentScaleCallback = glfwSetWindowContentScaleCallback;
|
||||
table->glfwSwapBuffers = glfwSwapBuffers;
|
||||
table->glfwSwapInterval = glfwSwapInterval;
|
||||
table->glfwTerminate = glfwTerminate;
|
||||
table->glfwUpdateGamepadMappings = glfwUpdateGamepadMappings;
|
||||
table->glfwWaitEvents = glfwWaitEvents;
|
||||
table->glfwWaitEventsTimeout = glfwWaitEventsTimeout;
|
||||
table->glfwVulkanSupported = glfwVulkanSupported;
|
||||
table->glfwWindowShouldClose = glfwWindowShouldClose;
|
||||
}
|
||||
-156
@@ -1,156 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="glfw_function_table.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
[StructLayout(LayoutKind.Sequential)]
|
||||
internal unsafe struct GLFWFunction
|
||||
{
|
||||
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, IntPtr> glfwCreateCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr> glfwCreateStandardCursor;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*, IntPtr, IntPtr, IntPtr> glfwCreateWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwDefaultWindowHints;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwDestroyWindow;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwExtensionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwFocusWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetCurrentContext;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double*, double*, void> glfwGetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<byte**, int> glfwGetError;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetFramebufferSize;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetGamepadName;
|
||||
public delegate* unmanaged[Cdecl]<int, IntPtr, int> glfwGetGamepadState;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, float*> glfwGetJoystickAxes;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickButtons;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickGUID;
|
||||
public delegate* unmanaged[Cdecl]<int, int*, byte*> glfwGetJoystickHats;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*> glfwGetJoystickName;
|
||||
public delegate* unmanaged[Cdecl]<int, void*> glfwGetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetKey;
|
||||
public delegate* unmanaged[Cdecl]<int, int, byte*> glfwGetKeyName;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwGetKeyScancode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetMonitorContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*> glfwGetMonitorName;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPhysicalSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetMonitorPos;
|
||||
public delegate* unmanaged[Cdecl]<int*, IntPtr*> glfwGetMonitors;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetMonitorWorkarea;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetMouseButton;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr> glfwGetPrimaryMonitor;
|
||||
public delegate* unmanaged[Cdecl]<byte*, IntPtr> glfwGetProcAddress;
|
||||
public delegate* unmanaged[Cdecl]<uint*, byte**> glfwGetRequiredInstanceExtensions;
|
||||
public delegate* unmanaged[Cdecl]<double> glfwGetTime;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerFrequency;
|
||||
public delegate* unmanaged[Cdecl]<ulong> glfwGetTimerValue;
|
||||
public delegate* unmanaged[Cdecl]<byte*> glfwGetVersionString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetVideoMode;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, IntPtr*> glfwGetVideoModes;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int> glfwGetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float*, float*, void> glfwGetWindowContentScale;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, int*, int*, void> glfwGetWindowFrameSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr> glfwGetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float> glfwGetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int*, int*, void> glfwGetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*> glfwGetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwHideWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwIconifyWindow;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwInit;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwInitHint;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickIsGamepad;
|
||||
public delegate* unmanaged[Cdecl]<int, int> glfwJoystickPresent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMakeContextCurrent;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwMaximizeWindow;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPollEvents;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwPostEmptyEvent;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwRawMouseMotionSupported;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRequestWindowAttention;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwRestoreWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, void>> glfwSetCharCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>, delegate* unmanaged[Cdecl]<IntPtr, uint, int, void>> glfwSetCharModsCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetClipboardString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetCursor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetCursorEnterCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, double, double, void> glfwSetCursorPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>> glfwSetCursorPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, byte**, void>, delegate* unmanaged [Cdecl]<IntPtr, int, byte**, void>> glfwSetDropCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetFramebufferSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetGamma;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, void> glfwSetGammaRamp;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetInputMode;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<int, int, void>, delegate* unmanaged[Cdecl]<int, int, void>> glfwSetJoystickCallback;
|
||||
public delegate* unmanaged[Cdecl]<int, void*, void> glfwSetJoystickUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void>> glfwSetKeyCallback;
|
||||
public delegate* unmanaged[Cdecl]<delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetMonitorCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetMonitorUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, int, void>> glfwSetMouseButtonCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, double, double, void>, delegate* unmanaged[Cdecl]<IntPtr,double, double, void>> glfwSetScrollCallback;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwSetTime;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAspectRatio;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowAttrib;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowCloseCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>, delegate* unmanaged[Cdecl]<IntPtr, float, float, void>> glfwSetWindowContentScaleCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowFocusCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, IntPtr, void> glfwSetWindowIcon;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowIconifyCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, void>> glfwSetWindowMaximizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, IntPtr, int, int, int, int, int, void> glfwSetWindowMonitor;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, float, void> glfwSetWindowOpacity;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowPos;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowPosCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, void>, delegate* unmanaged[Cdecl]<IntPtr, void>> glfwSetWindowRefreshCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, void> glfwSetWindowShouldClose;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, void> glfwSetWindowSize;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>, delegate* unmanaged[Cdecl]<IntPtr, int, int, void>> glfwSetWindowSizeCallback;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int, int, int, int, void> glfwSetWindowSizeLimits;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, byte*, void> glfwSetWindowTitle;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void*, void> glfwSetWindowUserPointer;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwShowWindow;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, void> glfwSwapBuffers;
|
||||
public delegate* unmanaged[Cdecl]<int, void> glfwSwapInterval;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwTerminate;
|
||||
public delegate* unmanaged[Cdecl]<byte*, int> glfwUpdateGamepadMappings;
|
||||
public delegate* unmanaged[Cdecl]<int> glfwVulkanSupported;
|
||||
public delegate* unmanaged[Cdecl]<void> glfwWaitEvents;
|
||||
public delegate* unmanaged[Cdecl]<double, void> glfwWaitEventsTimeout;
|
||||
public delegate* unmanaged[Cdecl]<int, int, void> glfwWindowHint;
|
||||
public delegate* unmanaged[Cdecl]<int, byte*, void> glfwWindowHintString;
|
||||
public delegate* unmanaged[Cdecl]<IntPtr, int> glfwWindowShouldClose;
|
||||
|
||||
}
|
||||
}
|
||||
-202
@@ -1,202 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using Microsoft.Extensions.Logging;
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private const long MaxLogFileSize = 10 * 1024 * 1024; // 10 MB
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
private static ILogger? _logger;
|
||||
|
||||
private static LogType _currentLogLevel = LogType.Info;
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Sets an external logger for logging purposes.
|
||||
/// </summary>
|
||||
/// <param name="logger">
|
||||
/// The logger to use.
|
||||
/// </param>
|
||||
public static void SetLogger(ILogger logger)
|
||||
{
|
||||
_logger = logger;
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
if (logType < _currentLogLevel) {
|
||||
return;
|
||||
}
|
||||
|
||||
logSyncSemaphore.Wait();
|
||||
try
|
||||
{
|
||||
RotateLogFile();
|
||||
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] [{logType}] {logLine}");
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
logSyncSemaphore.Release();
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] [{logType}] {logLine}");
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Logs a message using the external logger if available, otherwise falls back to the
|
||||
/// internal logging system.
|
||||
/// </summary>
|
||||
/// <param name="logLine">
|
||||
/// The log message.
|
||||
/// </param>
|
||||
/// <param name="logType">
|
||||
/// The type of the log.
|
||||
/// </param>
|
||||
internal static void Log(string logLine, LogType logType)
|
||||
{
|
||||
if (_logger != null)
|
||||
{
|
||||
switch (logType)
|
||||
{
|
||||
case LogType.Error:
|
||||
_logger.LogError(logLine);
|
||||
break;
|
||||
case LogType.Warning:
|
||||
_logger.LogWarning(logLine);
|
||||
break;
|
||||
case LogType.Info:
|
||||
_logger.LogInformation(logLine);
|
||||
break;
|
||||
default:
|
||||
_logger.LogDebug(logLine);
|
||||
break;
|
||||
}
|
||||
} else
|
||||
{
|
||||
InternalWriteLog(logLine, logType);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void SetLogLevel(LogType logLevel)
|
||||
{
|
||||
_currentLogLevel = logLevel;
|
||||
}
|
||||
|
||||
private static void RotateLogFile()
|
||||
{
|
||||
if (File.Exists(SS_errorLog) && new FileInfo(SS_errorLog).Length > MaxLogFileSize)
|
||||
{
|
||||
string backupFile = SS_errorLog + ".backup";
|
||||
if (File.Exists(backupFile)) {
|
||||
File.Delete(backupFile);
|
||||
}
|
||||
File.Move(SS_errorLog, backupFile);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-153
@@ -1,153 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private const long MaxLogFileSize = 10 * 1024 * 1024; // 10 MB
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
private static LogType _currentLogLevel = LogType.Info;
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
if (logType < _currentLogLevel) {
|
||||
return;
|
||||
}
|
||||
|
||||
logSyncSemaphore.Wait();
|
||||
try
|
||||
{
|
||||
RotateLogFile();
|
||||
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] [{logType}] {logLine}");
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
logSyncSemaphore.Release();
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] [{logType}] {logLine}");
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
internal static void SetLogLevel(LogType logLevel)
|
||||
{
|
||||
_currentLogLevel = logLevel;
|
||||
}
|
||||
|
||||
private static void RotateLogFile()
|
||||
{
|
||||
if (File.Exists(SS_errorLog) && new FileInfo(SS_errorLog).Length > MaxLogFileSize)
|
||||
{
|
||||
string backupFile = SS_errorLog + ".backup";
|
||||
if (File.Exists(backupFile)) {
|
||||
File.Delete(backupFile);
|
||||
}
|
||||
File.Move(SS_errorLog, backupFile);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-153
@@ -1,153 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="InternalIO.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Graphics;
|
||||
using StgSharp.Graphics.OpenGL;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.Internal
|
||||
{
|
||||
internal static unsafe partial class InternalIO
|
||||
{
|
||||
|
||||
private const long MaxLogFileSize = 10 * 1024 * 1024; // 10 MB
|
||||
|
||||
internal const string NativeLibName =
|
||||
"StgSharp.C";
|
||||
|
||||
internal const string SS_errorLog =
|
||||
"SS_errorlog.log";
|
||||
|
||||
private static LogType _currentLogLevel = LogType.Info;
|
||||
|
||||
internal static Dictionary<TypeCode, uint> GLtype = [];
|
||||
|
||||
internal static readonly GCHandle ssc_logHandle =
|
||||
GCHandle.Alloc(new byte[512], GCHandleType.Pinned);
|
||||
|
||||
internal static IntPtr _nativeLibPtr = IntPtr.Zero;
|
||||
|
||||
internal static SemaphoreSlim logSyncSemaphore = new SemaphoreSlim(1, 1);
|
||||
|
||||
static InternalIO()
|
||||
{
|
||||
GLtype.Add(TypeCode.Single, glConst.FLOAT);
|
||||
GLtype.Add(TypeCode.Int32, glConst.INT);
|
||||
GLtype.Add(TypeCode.UInt32, glConst.UNSIGNED_INT);
|
||||
GLtype.Add(TypeCode.Int16, glConst.SHORT);
|
||||
GLtype.Add(TypeCode.UInt16, glConst.UNSIGNED_SHORT);
|
||||
GLtype.Add(TypeCode.SByte, glConst.BYTE);
|
||||
GLtype.Add(TypeCode.Byte, glConst.UNSIGNED_BYTE);
|
||||
}
|
||||
|
||||
internal static void InternalAppendLog(string log)
|
||||
{
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine(log);
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string logLine, LogType logType)
|
||||
{
|
||||
if (logType < _currentLogLevel) {
|
||||
return;
|
||||
}
|
||||
|
||||
logSyncSemaphore.Wait();
|
||||
try
|
||||
{
|
||||
RotateLogFile();
|
||||
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog)) {
|
||||
logStream.WriteLine($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] [{logType}] {logLine}");
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
logSyncSemaphore.Release();
|
||||
}
|
||||
}
|
||||
|
||||
internal static void InternalWriteLog(string beforeTime, string logLine, LogType logType)
|
||||
{
|
||||
logSyncSemaphore.Wait();
|
||||
if (!File.Exists(SS_errorLog))
|
||||
{
|
||||
FileStream stream = File.Create(SS_errorLog);
|
||||
stream.Close();
|
||||
}
|
||||
|
||||
using (StreamWriter logStream = File.AppendText(SS_errorLog))
|
||||
{
|
||||
logStream.WriteLine(beforeTime);
|
||||
logStream.WriteLine($"[{DateTime.Now:yyyy-MM-dd HH:mm:ss.fff}] [{logType}] {logLine}");
|
||||
}
|
||||
_ = logSyncSemaphore.Release(1);
|
||||
}
|
||||
|
||||
internal static void SetLogLevel(LogType logLevel)
|
||||
{
|
||||
_currentLogLevel = logLevel;
|
||||
}
|
||||
|
||||
private static void RotateLogFile()
|
||||
{
|
||||
if (File.Exists(SS_errorLog) && new FileInfo(SS_errorLog).Length > MaxLogFileSize)
|
||||
{
|
||||
string backupFile = SS_errorLog + ".backup";
|
||||
if (File.Exists(backupFile)) {
|
||||
File.Delete(backupFile);
|
||||
}
|
||||
File.Move(SS_errorLog, backupFile);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Binary file not shown.
-143
@@ -1,143 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.Alloc.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Threading;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using hlsfHandle = StgSharp.HighPerformance.Memory.HybridLayerSegregatedFitAllocationHandle;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private BufferExpansionLock _spareLock = new();
|
||||
|
||||
public hlsfHandle Alloc(uint size)
|
||||
{
|
||||
ArgumentOutOfRangeException.ThrowIfGreaterThan<nuint>(size, (nuint)levelSize[^1] * 2);
|
||||
int level = GetLevelFromSize(size);
|
||||
int segmentIndex = DetermineSegmentIndex(size, level);
|
||||
|
||||
int i = level, s = segmentIndex;
|
||||
if (TryPopLevel(i, s, out Entry* handle))
|
||||
{
|
||||
handle->State = EntryState.Allocated;
|
||||
return new hlsfHandle(handle, size);
|
||||
}
|
||||
|
||||
fallback:
|
||||
i = level;
|
||||
s = segmentIndex;
|
||||
while (!TryPopLevel(i, s, out handle))
|
||||
{
|
||||
if (++s >= 3)
|
||||
{
|
||||
s = 0;
|
||||
i++;
|
||||
}
|
||||
if (i >= levelSize.Length)
|
||||
{
|
||||
if (TryAllocateNew16MBBlock(out handle))
|
||||
{
|
||||
break;
|
||||
}
|
||||
Thread.Sleep(0);
|
||||
goto fallback;
|
||||
}
|
||||
}
|
||||
|
||||
if (handle != null)
|
||||
{
|
||||
SliceMemory(handle, (segmentIndex + 1) * levelSize[level]);
|
||||
handle->State = EntryState.Allocated;
|
||||
}
|
||||
|
||||
return new hlsfHandle(handle, size);
|
||||
}
|
||||
|
||||
private void SliceMemory(Entry* e, int offset) { }
|
||||
|
||||
/// <summary>
|
||||
/// Try to allocate a new 16MB block when all buckets are empty
|
||||
/// </summary>
|
||||
/// <param name="handle">
|
||||
/// Output handle to the allocated Entry
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// True if allocation succeeded
|
||||
/// </returns>
|
||||
private bool TryAllocateNew16MBBlock(out Entry* handle)
|
||||
{
|
||||
nuint pos = Volatile.Read(ref _spareMemory->Position);
|
||||
nuint blockSize = (nuint)levelSize[^1]; // Use last level size (16MB)
|
||||
nuint newPos = pos + blockSize;
|
||||
|
||||
|
||||
// Check if we have enough space
|
||||
if (newPos > ((nuint)m_Buffer) + _size)
|
||||
{
|
||||
handle = null;
|
||||
return false; // Out of memory
|
||||
}
|
||||
|
||||
// Try to allocate new Entry from slab allocator
|
||||
try
|
||||
{
|
||||
handle = (Entry*)_nodes.Allocate();
|
||||
handle->Position = pos;
|
||||
handle->BlockSize = (uint)blockSize;
|
||||
handle->State = EntryState.ThreadOccupied;
|
||||
handle->NextNear = EmptyHandle;
|
||||
handle->PreviousNear = EmptyHandle;
|
||||
handle->SpinLock = 0;
|
||||
|
||||
|
||||
// Update spare memory position
|
||||
_spareMemory->Position = newPos;
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
handle = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-143
@@ -1,143 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.Alloc.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Threading;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using hlsfHandle = StgSharp.HighPerformance.Memory.HybridLayerSegregatedFitAllocationHandle;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private BufferExpansionLock _spareLock = new();
|
||||
|
||||
public hlsfHandle Alloc(uint size)
|
||||
{
|
||||
ArgumentOutOfRangeException.ThrowIfGreaterThan<nuint>(size, (nuint)levelSize[^1] * 2);
|
||||
int level = GetLevelFromSize(size);
|
||||
int segmentIndex = DetermineSegmentIndex(size, level);
|
||||
|
||||
int i = level, s = segmentIndex;
|
||||
if (TryPopLevel(i, s, out Entry* handle))
|
||||
{
|
||||
handle->State = EntryState.Allocated;
|
||||
return new hlsfHandle(handle, size);
|
||||
}
|
||||
|
||||
fallback:
|
||||
i = level;
|
||||
s = segmentIndex;
|
||||
while (!TryPopLevel(i, s, out handle))
|
||||
{
|
||||
if (++s >= 3)
|
||||
{
|
||||
s = 0;
|
||||
i++;
|
||||
}
|
||||
if (i >= levelSize.Length)
|
||||
{
|
||||
if (TryAllocateNew16MBBlock(out handle))
|
||||
{
|
||||
break;
|
||||
}
|
||||
Thread.Sleep(0);
|
||||
goto fallback;
|
||||
}
|
||||
}
|
||||
|
||||
if (handle != null)
|
||||
{
|
||||
SliceMemory(handle, (segmentIndex + 1) * levelSize[level]);
|
||||
handle->State = EntryState.Allocated;
|
||||
}
|
||||
|
||||
return new hlsfHandle(handle, size);
|
||||
}
|
||||
|
||||
private void SliceMemory(Entry* e, int offset) { }
|
||||
|
||||
/// <summary>
|
||||
/// Try to allocate a new 16MB block when all buckets are empty
|
||||
/// </summary>
|
||||
/// <param name="handle">
|
||||
/// Output handle to the allocated Entry
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// True if allocation succeeded
|
||||
/// </returns>
|
||||
private bool TryAllocateNew16MBBlock(out Entry* handle)
|
||||
{
|
||||
nuint pos = Volatile.Read(ref _spareMemory->Position);
|
||||
nuint blockSize = (nuint)levelSize[^1]; // Use last level size (16MB)
|
||||
nuint newPos = pos + blockSize;
|
||||
|
||||
|
||||
// Check if we have enough space
|
||||
if (newPos > ((nuint)m_Buffer) + _size)
|
||||
{
|
||||
handle = null;
|
||||
return false; // Out of memory
|
||||
}
|
||||
|
||||
// Try to allocate new Entry from slab allocator
|
||||
try
|
||||
{
|
||||
handle = (Entry*)_nodes.Allocate();
|
||||
handle->Position = pos;
|
||||
handle->BlockSize = (uint)blockSize;
|
||||
handle->State = EntryState.ThreadOccupied;
|
||||
handle->NextNear = EmptyHandle;
|
||||
handle->PreviousNear = EmptyHandle;
|
||||
handle->SpinLock = 0;
|
||||
|
||||
|
||||
// Update spare memory position
|
||||
_spareMemory->Position = newPos;
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
handle = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-307
@@ -1,307 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.SegmentEntry.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private void AcquireEntrySpinLock(Entry* entry)
|
||||
{
|
||||
if (entry == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
while (Interlocked.CompareExchange(ref entry->SpinLock, Environment.CurrentManagedThreadId, 0) != 0) {
|
||||
Thread.Sleep(0);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determine segment index based on size and level
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private int DetermineSegmentIndex(uint size, int level)
|
||||
{
|
||||
if (level < 0 || level >= levelSize.Length) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int segmentIndex = (int)size / levelSize[level];
|
||||
return Math.Min(2, segmentIndex); // Ensure not exceeding maximum segment index
|
||||
}
|
||||
|
||||
private void MergeEntry(Entry* remain, Entry* other)
|
||||
{
|
||||
if (other == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Determine merged starting position and size
|
||||
nuint newPosition = remain->Position < other->Position ? other->Position : other->Position;
|
||||
uint newSize = remain->BlockSize + other->BlockSize;
|
||||
|
||||
// Update current Entry
|
||||
remain->Position = newPosition;
|
||||
remain->BlockSize = newSize;
|
||||
}
|
||||
|
||||
private void RecycleEntry(Entry* entry)
|
||||
{
|
||||
if (entry is null) {
|
||||
return;
|
||||
}
|
||||
entry-> PreviousNear = EmptyHandle;
|
||||
entry-> Position = EmptyHandle;
|
||||
_nodes.Free((nuint)entry);
|
||||
}
|
||||
|
||||
private void ReleaseEntrySpinLock(Entry* entry)
|
||||
{
|
||||
if (entry == null) {
|
||||
return;
|
||||
}
|
||||
_ = Interlocked.CompareExchange(ref entry->SpinLock, 0, Environment.CurrentManagedThreadId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove node from position linked list
|
||||
/// </summary>
|
||||
private void RemoveFromPositionChain(Entry* entry)
|
||||
{
|
||||
Entry* prev = (Entry*)entry->PreviousNear;
|
||||
Entry* next = (Entry*)entry->NextNear;
|
||||
|
||||
if (prev != null) {
|
||||
prev->NextNear = entry->NextNear;
|
||||
}
|
||||
if (next != null) {
|
||||
next->PreviousNear = entry->PreviousNear;
|
||||
}
|
||||
|
||||
// Clear node pointers
|
||||
entry->NextNear = EmptyHandle;
|
||||
entry->PreviousNear = EmptyHandle;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private bool TryAcquireEntrySpinLock(Entry* entry)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
return entry != null &&
|
||||
(Volatile.Read(ref entry->SpinLock) == thread ||
|
||||
Interlocked.CompareExchange(ref entry->SpinLock, thread, 0) == 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used in Free operations, efficiently remove from buckets and merge adjacent blocks
|
||||
/// </summary>
|
||||
private Entry* TryMergeAndRemoveFromBuckets(Entry* entry)
|
||||
{
|
||||
if (entry == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Entry* result = entry;
|
||||
uint originalSize = entry->BlockSize;
|
||||
int originalLevel = GetLevelFromSize(originalSize);
|
||||
int originalSegment = DetermineSegmentIndex(originalSize, originalLevel);
|
||||
|
||||
// Forward merge: check predecessor nodes in position linked list
|
||||
Entry* prev = (Entry*)entry->PreviousNear;
|
||||
while (prev != null && prev != _spareMemory && prev->State == EntryState.Empty && result->IsAdjacentTo(prev))
|
||||
{
|
||||
// Try acquire spin lock for prev entry
|
||||
if (!TryAcquireEntrySpinLock(prev))
|
||||
{
|
||||
break; // Cannot acquire lock, might be operated by other thread
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// Double-check state after acquiring lock
|
||||
if (prev->State != EntryState.Empty || !result->IsAdjacentTo(prev))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// Calculate prev's bucket position
|
||||
uint prevSize = prev->BlockSize;
|
||||
int prevLevel = GetLevelFromSize(prevSize);
|
||||
int prevSegment = DetermineSegmentIndex(prevSize, prevLevel);
|
||||
|
||||
// Remove prev node from bucket (O(1) operation!)
|
||||
BucketNode* prevBucketNode = ValidateOrRepairBucketNode(prev);
|
||||
if (prevBucketNode != null && RemoveFromBucket(prevLevel, prevSegment, prevBucketNode))
|
||||
{
|
||||
// Merge into result
|
||||
result->MergeWith(prev);
|
||||
|
||||
// Remove prev from position linked list
|
||||
RemoveFromPositionChain(prev);
|
||||
|
||||
// Free prev's Entry node
|
||||
_nodes.Free((nuint)prev);
|
||||
|
||||
// Continue searching forward
|
||||
prev = (Entry*)result->PreviousNear;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseEntrySpinLock(prev);
|
||||
}
|
||||
|
||||
break; // Cannot remove, might be operated by other thread
|
||||
}
|
||||
|
||||
// Backward merge: check successor nodes in position linked list
|
||||
Entry* next = (Entry*)entry->NextNear;
|
||||
while (next != null && next->State == EntryState.Empty && result->IsAdjacentTo(next))
|
||||
{
|
||||
// Try acquire spin lock for next entry
|
||||
if (!TryAcquireEntrySpinLock(next))
|
||||
{
|
||||
break; // Cannot acquire lock, might be operated by other thread
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// Double-check state after acquiring lock
|
||||
if (next->State != EntryState.Empty || !result->IsAdjacentTo(next))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// Calculate next's bucket position
|
||||
uint nextSize = next->BlockSize;
|
||||
int nextLevel = GetLevelFromSize(nextSize);
|
||||
int nextSegment = DetermineSegmentIndex(nextSize, nextLevel);
|
||||
|
||||
// Remove next node from bucket (O(1) operation!)
|
||||
BucketNode* nextBucketNode = ValidateOrRepairBucketNode(next);
|
||||
if (nextBucketNode != null && RemoveFromBucket(nextLevel, nextSegment, nextBucketNode))
|
||||
{
|
||||
// Merge into result
|
||||
result->MergeWith(next);
|
||||
|
||||
// Remove next from position linked list
|
||||
RemoveFromPositionChain(next);
|
||||
|
||||
// Free next's Entry node
|
||||
_nodes.Free((nuint)next);
|
||||
|
||||
// Continue searching backward
|
||||
next = (Entry*)result->NextNear;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseEntrySpinLock(next);
|
||||
}
|
||||
|
||||
break; // Cannot remove, might be operated by other thread
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Entry structure - streamlined version (only position and state information) Stored in
|
||||
/// external SLAB
|
||||
/// </summary>
|
||||
[StructLayout(LayoutKind.Explicit, Size = 40)]
|
||||
internal struct Entry
|
||||
{
|
||||
|
||||
[FieldOffset(24)] internal int SpinLock; // Spin lock for thread safety protection
|
||||
[FieldOffset(28)] internal int State; // Node state
|
||||
[FieldOffset(32)] internal uint BlockSize; // Block size information
|
||||
[FieldOffset(36)] internal uint Reverse;
|
||||
[FieldOffset(8)] internal ulong NextNear; // Position linked list: next pointer
|
||||
[FieldOffset(16)] internal ulong PreviousNear; // Position linked list: previous pointer
|
||||
[FieldOffset(0)] public nuint Position; // Memory block position
|
||||
|
||||
/// <summary>
|
||||
/// Check if two Entries are adjacent in memory
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public readonly bool IsAdjacentTo(Entry* other)
|
||||
{
|
||||
if (other == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if this immediately follows other
|
||||
return other->Position + other->BlockSize == this.Position ||
|
||||
this.Position + this.BlockSize == other->Position;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static bool IsNullOrEmptyIndex(ulong index)
|
||||
{
|
||||
return index == EmptyHandle;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static bool IsNullOrEmptyIndex(Entry* entry)
|
||||
{
|
||||
return entry == null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Merge two adjacent Entries (caller must ensure they are adjacent and both Empty
|
||||
/// state)
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void MergeWith(Entry* other) { }
|
||||
|
||||
}
|
||||
|
||||
private static class EntryState
|
||||
{
|
||||
|
||||
public const int Allocated = 1; // Already allocated to user
|
||||
public const int Empty = 0; // Free, can be allocated
|
||||
public const int ThreadOccupied = 2; // Occupied by thread (being operated on)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-94
@@ -1,94 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.Level.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private const int MaxLevel = 9;
|
||||
|
||||
private static readonly int[] levelSize = [
|
||||
64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216
|
||||
];
|
||||
|
||||
public int AlignOfLevel(int bucketLevel)
|
||||
{
|
||||
int blockSize = levelSize[bucketLevel];
|
||||
return int.Min(blockSize, _align);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private int GetLevelFromSize(uint size)
|
||||
{
|
||||
/*
|
||||
rebuild by using binary operations
|
||||
*/
|
||||
|
||||
|
||||
// Ensure minimum size
|
||||
if (size <= 64)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
// Find the appropriate level for the given size
|
||||
for (int i = 0; i < levelSize.Length - 1; i++)
|
||||
{
|
||||
if (size <= levelSize[i]) {
|
||||
return i;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// If size is larger than all predefined levels, use the last level
|
||||
return levelSize.Length - 1;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public enum CommonMemoryAlign : int
|
||||
{
|
||||
|
||||
XMMLevel = 16,
|
||||
YMMLevel = 32,
|
||||
ZMMLevel = 64,
|
||||
|
||||
ArmNEONLevel = 16,
|
||||
|
||||
}
|
||||
}
|
||||
-157
@@ -1,157 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.Alloc.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using StgSharp.Threading;
|
||||
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using hlsfHandle = StgSharp.HighPerformance.Memory.HybridLayerSegregatedFitAllocationHandle;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private BufferExpansionLock _spareLock = new();
|
||||
|
||||
public hlsfHandle Alloc(uint size)
|
||||
{
|
||||
ArgumentOutOfRangeException.ThrowIfGreaterThan<nuint>(size, (nuint)levelSize[^1] * 2);
|
||||
int level = GetLevelFromSize(size);
|
||||
int segmentIndex = DetermineSegmentIndex(size, level);
|
||||
|
||||
int i = level, s = segmentIndex;
|
||||
if (TryPopLevelForAllocation(i, s, out Entry* handle))
|
||||
{
|
||||
handle->State = EntryState.Allocated;
|
||||
return new hlsfHandle(handle, size);
|
||||
}
|
||||
|
||||
fallback:
|
||||
i = level;
|
||||
s = segmentIndex;
|
||||
while (!TryPopLevelForAllocation(i, s, out handle))
|
||||
{
|
||||
if (++s >= 3)
|
||||
{
|
||||
s = 0;
|
||||
i++;
|
||||
}
|
||||
if (i >= levelSize.Length)
|
||||
{
|
||||
if (TryAllocateNew16MBBlock(out handle))
|
||||
{
|
||||
break;
|
||||
}
|
||||
Thread.Sleep(0);
|
||||
goto fallback;
|
||||
}
|
||||
}
|
||||
|
||||
if (handle != null)
|
||||
{
|
||||
SliceMemory(handle, (segmentIndex + 1) * levelSize[level]);
|
||||
handle->State = EntryState.Allocated;
|
||||
}
|
||||
|
||||
return new hlsfHandle(handle, size);
|
||||
}
|
||||
|
||||
private void SliceMemory(Entry* e, int offset) { }
|
||||
|
||||
/// <summary>
|
||||
/// Try to allocate a new 16MB block when all buckets are empty
|
||||
/// </summary>
|
||||
/// <param name="handle">
|
||||
/// Output handle to the allocated Entry
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// True if allocation succeeded
|
||||
/// </returns>
|
||||
private bool TryAllocateNew16MBBlock(out Entry* handle)
|
||||
{
|
||||
nuint pos = Volatile.Read(ref _spareMemory->Position);
|
||||
nuint blockSize = (nuint)levelSize[^1]; // Use last level size (16MB)
|
||||
nuint newPos = pos + blockSize;
|
||||
|
||||
|
||||
// Check if we have enough space
|
||||
if (newPos > ((nuint)m_Buffer) + _size)
|
||||
{
|
||||
handle = null;
|
||||
return false; // Out of memory
|
||||
}
|
||||
|
||||
// Try to allocate new Entry from slab allocator
|
||||
try
|
||||
{
|
||||
handle = (Entry*)_nodes.Allocate();
|
||||
handle->Position = pos;
|
||||
handle->BlockSize = (uint)blockSize;
|
||||
handle->State = EntryState.ThreadOccupied;
|
||||
handle->NextNear = EmptyHandle;
|
||||
handle->PreviousNear = EmptyHandle;
|
||||
handle->SpinLock = 0;
|
||||
|
||||
|
||||
// Update spare memory position
|
||||
_spareMemory->Position = newPos;
|
||||
|
||||
return true;
|
||||
}
|
||||
catch
|
||||
{
|
||||
handle = null;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Helper method for allocation - converts BucketNode to Entry
|
||||
/// </summary>
|
||||
private bool TryPopLevelForAllocation(int levelIndex, int sizeIndex, out Entry* entry)
|
||||
{
|
||||
if (TryPopLevel(levelIndex, sizeIndex, out BucketNode* bucketNode))
|
||||
{
|
||||
entry = bucketNode->EntryRef;
|
||||
return entry != null;
|
||||
}
|
||||
entry = null;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-307
@@ -1,307 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.SegmentEntry.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private static void AcquireEntrySpinLock(Entry* entry)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
if (entry != null && Volatile.Read(ref entry->SpinLock) != thread)
|
||||
{
|
||||
while (Interlocked.CompareExchange(ref entry->SpinLock, thread, 0) != 0) {
|
||||
Thread.Sleep(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determine segment index based on size and level
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private int DetermineSegmentIndex(uint size, int level)
|
||||
{
|
||||
if (level < 0 || level >= levelSize.Length) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int segmentIndex = (int)size / levelSize[level];
|
||||
return Math.Min(2, segmentIndex); // Ensure not exceeding maximum segment index
|
||||
}
|
||||
|
||||
private void MergeEntry(Entry* remain, Entry* other)
|
||||
{
|
||||
if (other == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Determine merged starting position and size
|
||||
nuint newPosition = remain->Position < other->Position ? other->Position : other->Position;
|
||||
uint newSize = remain->BlockSize + other->BlockSize;
|
||||
|
||||
// Update current Entry
|
||||
remain->Position = newPosition;
|
||||
remain->BlockSize = newSize;
|
||||
}
|
||||
|
||||
private void RecycleEntry(Entry* entry)
|
||||
{
|
||||
if (entry is null) {
|
||||
return;
|
||||
}
|
||||
entry-> PreviousNear = EmptyHandle;
|
||||
entry-> Position = EmptyHandle;
|
||||
_nodes.Free((nuint)entry);
|
||||
}
|
||||
|
||||
private static void ReleaseEntrySpinLock(Entry* entry)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
if (entry != null && Volatile.Read(ref entry->SpinLock) != 0) {
|
||||
_ = Interlocked.CompareExchange(ref entry->SpinLock, 0, thread);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove node from position linked list
|
||||
/// </summary>
|
||||
private void RemoveFromPositionChain(Entry* entry)
|
||||
{
|
||||
Entry* prev = (Entry*)entry->PreviousNear;
|
||||
Entry* next = (Entry*)entry->NextNear;
|
||||
|
||||
if (prev != null) {
|
||||
prev->NextNear = entry->NextNear;
|
||||
}
|
||||
if (next != null) {
|
||||
next->PreviousNear = entry->PreviousNear;
|
||||
}
|
||||
|
||||
// Clear node pointers
|
||||
entry->NextNear = EmptyHandle;
|
||||
entry->PreviousNear = EmptyHandle;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private static bool TryAcquireEntrySpinLock(Entry* entry)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
return entry == null ||
|
||||
(Interlocked.CompareExchange(ref entry->SpinLock, thread,
|
||||
0) == 0 ||
|
||||
Volatile.Read(ref entry->SpinLock) == thread);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used in Free operations, efficiently remove from buckets and merge adjacent blocks
|
||||
/// </summary>
|
||||
private Entry* TryMergeAndRemoveFromBuckets(Entry* entry)
|
||||
{
|
||||
if (entry == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Entry* result = entry;
|
||||
uint originalSize = entry->BlockSize;
|
||||
int originalLevel = GetLevelFromSize(originalSize);
|
||||
int originalSegment = DetermineSegmentIndex(originalSize, originalLevel);
|
||||
|
||||
// Forward merge: check predecessor nodes in position linked list
|
||||
Entry* prev = (Entry*)entry->PreviousNear;
|
||||
while (prev != null && prev != _spareMemory && prev->State == EntryState.Empty && result->IsAdjacentTo(prev))
|
||||
{
|
||||
// Try acquire spin lock for prev entry
|
||||
if (!TryAcquireEntrySpinLock(prev))
|
||||
{
|
||||
break; // Cannot acquire lock, might be operated by other thread
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// Double-check state after acquiring lock
|
||||
if (prev->State != EntryState.Empty || !result->IsAdjacentTo(prev))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// Calculate prev's bucket position
|
||||
uint prevSize = prev->BlockSize;
|
||||
int prevLevel = GetLevelFromSize(prevSize);
|
||||
int prevSegment = DetermineSegmentIndex(prevSize, prevLevel);
|
||||
|
||||
// Remove prev node from bucket (O(1) operation!)
|
||||
BucketNode* prevBucketNode = ValidateOrRepairBucketNode(prev);
|
||||
if (prevBucketNode != null && RemoveFromBucket(prevLevel, prevSegment, prevBucketNode))
|
||||
{
|
||||
// Merge into result
|
||||
result->MergeWith(prev);
|
||||
|
||||
// Remove prev from position linked list
|
||||
RemoveFromPositionChain(prev);
|
||||
|
||||
// Free prev's Entry node
|
||||
_nodes.Free((nuint)prev);
|
||||
|
||||
// Continue searching forward
|
||||
prev = (Entry*)result->PreviousNear;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseEntrySpinLock(prev);
|
||||
}
|
||||
|
||||
break; // Cannot remove, might be operated by other thread
|
||||
}
|
||||
|
||||
// Backward merge: check successor nodes in position linked list
|
||||
Entry* next = (Entry*)entry->NextNear;
|
||||
while (next != null && next->State == EntryState.Empty && result->IsAdjacentTo(next))
|
||||
{
|
||||
// Try acquire spin lock for next entry
|
||||
if (!TryAcquireEntrySpinLock(next))
|
||||
{
|
||||
break; // Cannot acquire lock, might be operated by other thread
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// Double-check state after acquiring lock
|
||||
if (next->State != EntryState.Empty || !result->IsAdjacentTo(next))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// Calculate next's bucket position
|
||||
uint nextSize = next->BlockSize;
|
||||
int nextLevel = GetLevelFromSize(nextSize);
|
||||
int nextSegment = DetermineSegmentIndex(nextSize, nextLevel);
|
||||
|
||||
// Remove next node from bucket (O(1) operation!)
|
||||
BucketNode* nextBucketNode = ValidateOrRepairBucketNode(next);
|
||||
if (nextBucketNode != null && RemoveFromBucket(nextLevel, nextSegment, nextBucketNode))
|
||||
{
|
||||
// Merge into result
|
||||
result->MergeWith(next);
|
||||
|
||||
// Remove next from position linked list
|
||||
RemoveFromPositionChain(next);
|
||||
|
||||
// Free next's Entry node
|
||||
_nodes.Free((nuint)next);
|
||||
|
||||
// Continue searching backward
|
||||
next = (Entry*)result->NextNear;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseEntrySpinLock(next);
|
||||
}
|
||||
|
||||
break; // Cannot remove, might be operated by other thread
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Entry structure - streamlined version (only position and state information) Stored in
|
||||
/// external SLAB
|
||||
/// </summary>
|
||||
[StructLayout(LayoutKind.Explicit, Size = 40)]
|
||||
internal struct Entry
|
||||
{
|
||||
|
||||
[FieldOffset(24)] internal int SpinLock; // Spin lock for thread safety protection
|
||||
[FieldOffset(28)] internal int State; // Node state
|
||||
[FieldOffset(32)] internal uint BlockSize; // Block size information
|
||||
[FieldOffset(36)] internal uint Reverse;
|
||||
[FieldOffset(8)] internal ulong NextNear; // Position linked list: next pointer
|
||||
[FieldOffset(16)] internal ulong PreviousNear; // Position linked list: previous pointer
|
||||
[FieldOffset(0)] public nuint Position; // Memory block position
|
||||
|
||||
/// <summary>
|
||||
/// Check if two Entries are adjacent in memory
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public readonly bool IsAdjacentTo(Entry* other)
|
||||
{
|
||||
if (other == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if this immediately follows other
|
||||
return other->Position + other->BlockSize == this.Position ||
|
||||
this.Position + this.BlockSize == other->Position;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static bool IsNullOrEmptyIndex(ulong index)
|
||||
{
|
||||
return index == EmptyHandle;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static bool IsNullOrEmptyIndex(Entry* entry)
|
||||
{
|
||||
return entry == null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Merge two adjacent Entries (caller must ensure they are adjacent and both Empty
|
||||
/// state)
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void MergeWith(Entry* other) { }
|
||||
|
||||
}
|
||||
|
||||
private static class EntryState
|
||||
{
|
||||
|
||||
public const int Allocated = 1; // Already allocated to user
|
||||
public const int Empty = 0; // Free, can be allocated
|
||||
public const int ThreadOccupied = 2; // Occupied by thread (being operated on)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-257
@@ -1,257 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.BucketNode.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private static void AcquireBucketNodeSpinLock(BucketNode* node)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
if (node != null && Volatile.Read(ref node->SpinLock) != thread)
|
||||
{
|
||||
while (Interlocked.CompareExchange(ref node->SpinLock, thread, 0) != 0) {
|
||||
Thread.Sleep(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initialize bucket system (called in constructor)
|
||||
/// </summary>
|
||||
private void InitializeBucketSystem()
|
||||
{
|
||||
_bucketHeads = new ulong[levelSize.Length * 3];
|
||||
}
|
||||
|
||||
private void PushLevel(int levelIndex, int sizeIndex, BucketNode* node)
|
||||
{
|
||||
if (node == null || node->EntryRef == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
int index = (3 * levelIndex) + sizeIndex;
|
||||
if (Interlocked.CompareExchange(ref _bucketHeads[index], (nuint)node, EmptyHandle) == EmptyHandle)
|
||||
{
|
||||
node->IsInBucket = true;
|
||||
node->Magic = BucketNode.MAGIC_NUMBER;
|
||||
return;
|
||||
} else
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
AcquireBucketNodeSpinLock(node);
|
||||
ulong head = Volatile.Read(ref _bucketHeads[index]);
|
||||
node->NextLevel = head;
|
||||
BucketNode* headNode = (BucketNode*)head;
|
||||
try
|
||||
{
|
||||
if (Interlocked.CompareExchange(ref _bucketHeads[index], (nuint)node, head) == head)
|
||||
{
|
||||
if (!TryAcquireBucketNodeSpinLock(headNode))
|
||||
{
|
||||
// reset state and retry
|
||||
_ = Interlocked.CompareExchange(ref _bucketHeads[index], head, (nuint)node);
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
try
|
||||
{
|
||||
node->IsInBucket = true;
|
||||
node->Magic = BucketNode.MAGIC_NUMBER;
|
||||
headNode->PreviousLevel = (ulong)node;
|
||||
return;
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(headNode);
|
||||
}
|
||||
} else
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void ReleaseBucketNodeSpinLock(BucketNode* node)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
if (node != null && Volatile.Read(ref node->SpinLock) != 0) {
|
||||
_ = Interlocked.CompareExchange(ref node->SpinLock, 0, thread);
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveFromBucket(int levelIndex, int sizeIndex, BucketNode* node)
|
||||
{
|
||||
int index = (3 * levelIndex) + sizeIndex;
|
||||
while (true)
|
||||
{
|
||||
// top of stack
|
||||
if ((BucketNode*)Volatile.Read(ref _bucketHeads[index]) == node && TryAcquireBucketNodeSpinLock(node))
|
||||
{
|
||||
_ = TryPopLevel(levelIndex, sizeIndex, out _);
|
||||
} else
|
||||
{
|
||||
AcquireBucketNodeSpinLock(node);
|
||||
ulong p = Volatile.Read(ref node->PreviousLevel), n = Volatile.Read(ref node->NextLevel);
|
||||
BucketNode* previous = (BucketNode*)p, next = (BucketNode*)n;
|
||||
try
|
||||
{
|
||||
if (next is null)
|
||||
{
|
||||
// bottom of stack
|
||||
if (!TryAcquireBucketNodeSpinLock(previous))
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
previous->NextLevel = EmptyHandle;
|
||||
node->PreviousLevel = EmptyHandle;
|
||||
return;
|
||||
}
|
||||
if (!(TryAcquireBucketNodeSpinLock(previous) && TryAcquireBucketNodeSpinLock(next)))
|
||||
{
|
||||
// middle of stack
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
previous ->NextLevel = n;
|
||||
next->PreviousLevel = p;
|
||||
node->NextLevel = EmptyHandle;
|
||||
node->PreviousLevel = EmptyHandle;
|
||||
return;
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(node);
|
||||
ReleaseBucketNodeSpinLock(previous);
|
||||
ReleaseBucketNodeSpinLock(next);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static bool TryAcquireBucketNodeSpinLock(BucketNode* node)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
return node == null ||
|
||||
(Interlocked.CompareExchange(ref node->SpinLock, thread,
|
||||
0) == 0 ||
|
||||
Volatile.Read(ref node->SpinLock) == thread);
|
||||
}
|
||||
|
||||
private bool TryPopLevel(int levelIndex, int sizeIndex, out BucketNode* node)
|
||||
{
|
||||
int index = (3 * levelIndex) + sizeIndex;
|
||||
while (true)
|
||||
{
|
||||
ulong h = Volatile.Read(ref _bucketHeads[index]);
|
||||
BucketNode* head = (BucketNode*)h;
|
||||
BucketNode* next = null;
|
||||
try
|
||||
{
|
||||
if (head == null)
|
||||
{
|
||||
node = null;
|
||||
return false;
|
||||
}
|
||||
if (!TryAcquireBucketNodeSpinLock(head))
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
ulong n = Volatile.Read(ref head->NextLevel);
|
||||
next = (BucketNode*)n;
|
||||
if (!TryAcquireBucketNodeSpinLock(next))
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
if (Interlocked.CompareExchange(ref _bucketHeads[index], head->NextLevel, h) == h)
|
||||
{
|
||||
node = head;
|
||||
node->IsInBucket = false;
|
||||
node->NextLevel = EmptyHandle;
|
||||
next->PreviousLevel = EmptyHandle;
|
||||
return true;
|
||||
} else
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(head);
|
||||
ReleaseBucketNodeSpinLock(next);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BucketNode structure - specialized node for bucket linked lists Stored in main
|
||||
/// allocation area (user-overwritable region)
|
||||
/// </summary>
|
||||
[StructLayout(LayoutKind.Explicit, Size = 36)]
|
||||
internal struct BucketNode
|
||||
{
|
||||
|
||||
public const uint MAGIC_NUMBER = 0xBEEFCAFE; // Magic number for node integrity verification
|
||||
|
||||
[FieldOffset(16)] internal Entry* EntryRef; // Pointer to corresponding Entry
|
||||
[FieldOffset(28)] internal bool IsInBucket; // Whether in bucket
|
||||
[FieldOffset(32)] internal int SpinLock; // Spin lock for bucket head operation
|
||||
[FieldOffset(24)] internal uint Magic; // Magic number verification
|
||||
[FieldOffset(0)] internal ulong NextLevel; // Bucket stack linked list: next pointer
|
||||
[FieldOffset(8)] internal ulong PreviousLevel; // Bucket stack linked list: previous pointer
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static bool IsNullOrEmpty(BucketNode* node)
|
||||
{
|
||||
return node == null || node->Magic != MAGIC_NUMBER;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-307
@@ -1,307 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.SegmentEntry.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private void AcquireEntrySpinLock(Entry* entry)
|
||||
{
|
||||
if (entry == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
while (Interlocked.CompareExchange(ref entry->SpinLock, Environment.CurrentManagedThreadId, 0) != 0) {
|
||||
Thread.Sleep(0);
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Determine segment index based on size and level
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private int DetermineSegmentIndex(uint size, int level)
|
||||
{
|
||||
if (level < 0 || level >= levelSize.Length) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int segmentIndex = (int)size / levelSize[level];
|
||||
return Math.Min(2, segmentIndex); // Ensure not exceeding maximum segment index
|
||||
}
|
||||
|
||||
private void MergeEntry(Entry* remain, Entry* other)
|
||||
{
|
||||
if (other == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Determine merged starting position and size
|
||||
nuint newPosition = remain->Position < other->Position ? other->Position : other->Position;
|
||||
uint newSize = remain->BlockSize + other->BlockSize;
|
||||
|
||||
// Update current Entry
|
||||
remain->Position = newPosition;
|
||||
remain->BlockSize = newSize;
|
||||
}
|
||||
|
||||
private void RecycleEntry(Entry* entry)
|
||||
{
|
||||
if (entry is null) {
|
||||
return;
|
||||
}
|
||||
entry-> PreviousNear = EmptyHandle;
|
||||
entry-> Position = EmptyHandle;
|
||||
_nodes.Free((nuint)entry);
|
||||
}
|
||||
|
||||
private void ReleaseEntrySpinLock(Entry* entry)
|
||||
{
|
||||
if (entry == null) {
|
||||
return;
|
||||
}
|
||||
_ = Interlocked.CompareExchange(ref entry->SpinLock, 0, Environment.CurrentManagedThreadId);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Remove node from position linked list
|
||||
/// </summary>
|
||||
private void RemoveFromPositionChain(Entry* entry)
|
||||
{
|
||||
Entry* prev = (Entry*)entry->PreviousNear;
|
||||
Entry* next = (Entry*)entry->NextNear;
|
||||
|
||||
if (prev != null) {
|
||||
prev->NextNear = entry->NextNear;
|
||||
}
|
||||
if (next != null) {
|
||||
next->PreviousNear = entry->PreviousNear;
|
||||
}
|
||||
|
||||
// Clear node pointers
|
||||
entry->NextNear = EmptyHandle;
|
||||
entry->PreviousNear = EmptyHandle;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private bool TryAcquireEntrySpinLock(Entry* entry)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
return entry != null &&
|
||||
(Volatile.Read(ref entry->SpinLock) == thread ||
|
||||
Interlocked.CompareExchange(ref entry->SpinLock, thread, 0) == 0);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Used in Free operations, efficiently remove from buckets and merge adjacent blocks
|
||||
/// </summary>
|
||||
private Entry* TryMergeAndRemoveFromBuckets(Entry* entry)
|
||||
{
|
||||
if (entry == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
Entry* result = entry;
|
||||
uint originalSize = entry->BlockSize;
|
||||
int originalLevel = GetLevelFromSize(originalSize);
|
||||
int originalSegment = DetermineSegmentIndex(originalSize, originalLevel);
|
||||
|
||||
// Forward merge: check predecessor nodes in position linked list
|
||||
Entry* prev = (Entry*)entry->PreviousNear;
|
||||
while (prev != null && prev != _spareMemory && prev->State == EntryState.Empty && result->IsAdjacentTo(prev))
|
||||
{
|
||||
// Try acquire spin lock for prev entry
|
||||
if (!TryAcquireEntrySpinLock(prev))
|
||||
{
|
||||
break; // Cannot acquire lock, might be operated by other thread
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// Double-check state after acquiring lock
|
||||
if (prev->State != EntryState.Empty || !result->IsAdjacentTo(prev))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// Calculate prev's bucket position
|
||||
uint prevSize = prev->BlockSize;
|
||||
int prevLevel = GetLevelFromSize(prevSize);
|
||||
int prevSegment = DetermineSegmentIndex(prevSize, prevLevel);
|
||||
|
||||
// Remove prev node from bucket (O(1) operation!)
|
||||
BucketNode* prevBucketNode = ValidateOrRepairBucketNode(prev);
|
||||
if (prevBucketNode != null && RemoveFromBucket(prevLevel, prevSegment, prevBucketNode))
|
||||
{
|
||||
// Merge into result
|
||||
result->MergeWith(prev);
|
||||
|
||||
// Remove prev from position linked list
|
||||
RemoveFromPositionChain(prev);
|
||||
|
||||
// Free prev's Entry node
|
||||
_nodes.Free((nuint)prev);
|
||||
|
||||
// Continue searching forward
|
||||
prev = (Entry*)result->PreviousNear;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseEntrySpinLock(prev);
|
||||
}
|
||||
|
||||
break; // Cannot remove, might be operated by other thread
|
||||
}
|
||||
|
||||
// Backward merge: check successor nodes in position linked list
|
||||
Entry* next = (Entry*)entry->NextNear;
|
||||
while (next != null && next->State == EntryState.Empty && result->IsAdjacentTo(next))
|
||||
{
|
||||
// Try acquire spin lock for next entry
|
||||
if (!TryAcquireEntrySpinLock(next))
|
||||
{
|
||||
break; // Cannot acquire lock, might be operated by other thread
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
// Double-check state after acquiring lock
|
||||
if (next->State != EntryState.Empty || !result->IsAdjacentTo(next))
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
// Calculate next's bucket position
|
||||
uint nextSize = next->BlockSize;
|
||||
int nextLevel = GetLevelFromSize(nextSize);
|
||||
int nextSegment = DetermineSegmentIndex(nextSize, nextLevel);
|
||||
|
||||
// Remove next node from bucket (O(1) operation!)
|
||||
BucketNode* nextBucketNode = ValidateOrRepairBucketNode(next);
|
||||
if (nextBucketNode != null && RemoveFromBucket(nextLevel, nextSegment, nextBucketNode))
|
||||
{
|
||||
// Merge into result
|
||||
result->MergeWith(next);
|
||||
|
||||
// Remove next from position linked list
|
||||
RemoveFromPositionChain(next);
|
||||
|
||||
// Free next's Entry node
|
||||
_nodes.Free((nuint)next);
|
||||
|
||||
// Continue searching backward
|
||||
next = (Entry*)result->NextNear;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseEntrySpinLock(next);
|
||||
}
|
||||
|
||||
break; // Cannot remove, might be operated by other thread
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Entry structure - streamlined version (only position and state information) Stored in
|
||||
/// external SLAB
|
||||
/// </summary>
|
||||
[StructLayout(LayoutKind.Explicit, Size = 40)]
|
||||
internal struct Entry
|
||||
{
|
||||
|
||||
[FieldOffset(24)] internal int SpinLock; // Spin lock for thread safety protection
|
||||
[FieldOffset(28)] internal int State; // Node state
|
||||
[FieldOffset(32)] internal uint BlockSize; // Block size information
|
||||
[FieldOffset(36)] internal uint Reverse;
|
||||
[FieldOffset(8)] internal ulong NextNear; // Position linked list: next pointer
|
||||
[FieldOffset(16)] internal ulong PreviousNear; // Position linked list: previous pointer
|
||||
[FieldOffset(0)] public nuint Position; // Memory block position
|
||||
|
||||
/// <summary>
|
||||
/// Check if two Entries are adjacent in memory
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public readonly bool IsAdjacentTo(Entry* other)
|
||||
{
|
||||
if (other == null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
// Check if this immediately follows other
|
||||
return other->Position + other->BlockSize == this.Position ||
|
||||
this.Position + this.BlockSize == other->Position;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static bool IsNullOrEmptyIndex(ulong index)
|
||||
{
|
||||
return index == EmptyHandle;
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static bool IsNullOrEmptyIndex(Entry* entry)
|
||||
{
|
||||
return entry == null;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Merge two adjacent Entries (caller must ensure they are adjacent and both Empty
|
||||
/// state)
|
||||
/// </summary>
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public void MergeWith(Entry* other) { }
|
||||
|
||||
}
|
||||
|
||||
private static class EntryState
|
||||
{
|
||||
|
||||
public const int Allocated = 1; // Already allocated to user
|
||||
public const int Empty = 0; // Free, can be allocated
|
||||
public const int ThreadOccupied = 2; // Occupied by thread (being operated on)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-256
@@ -1,256 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.BucketNode.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private static void AcquireBucketNodeSpinLock(BucketNode* node)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
if (node != null && Volatile.Read(ref node->SpinLock) != thread)
|
||||
{
|
||||
while (Interlocked.CompareExchange(ref node->SpinLock, thread, 0) != 0) {
|
||||
Thread.Sleep(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initialize bucket system (called in constructor)
|
||||
/// </summary>
|
||||
private void InitializeBucketSystem()
|
||||
{
|
||||
_bucketHeads = new ulong[levelSize.Length * 3];
|
||||
}
|
||||
|
||||
private void PushLevel(int levelIndex, int sizeIndex, BucketNode* node)
|
||||
{
|
||||
if (node == null || node->EntryRef == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
int index = (3 * levelIndex) + sizeIndex;
|
||||
if (Interlocked.CompareExchange(ref _bucketHeads[index], (nuint)node, EmptyHandle) == EmptyHandle)
|
||||
{
|
||||
node->IsInBucket = true;
|
||||
node->Magic = BucketNode.MAGIC_NUMBER;
|
||||
return;
|
||||
} else
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
AcquireBucketNodeSpinLock(node);
|
||||
ulong head = Volatile.Read(ref _bucketHeads[index]);
|
||||
node->NextLevel = head;
|
||||
BucketNode* headNode = (BucketNode*)head;
|
||||
try
|
||||
{
|
||||
if (Interlocked.CompareExchange(ref _bucketHeads[index], (nuint)node, head) == head)
|
||||
{
|
||||
if (!TryAcquireBucketNodeSpinLock(headNode))
|
||||
{
|
||||
// reset state and retry
|
||||
_ = Interlocked.CompareExchange(ref _bucketHeads[index], head, (nuint)node);
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
try
|
||||
{
|
||||
node->IsInBucket = true;
|
||||
node->Magic = BucketNode.MAGIC_NUMBER;
|
||||
headNode->PreviousLevel = (ulong)node;
|
||||
return;
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(headNode);
|
||||
}
|
||||
} else
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void ReleaseBucketNodeSpinLock(BucketNode* node)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
if (node != null && Volatile.Read(ref node->SpinLock) != 0) {
|
||||
_ = Interlocked.CompareExchange(ref node->SpinLock, 0, thread);
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveFromBucket(int levelIndex, int sizeIndex, BucketNode* node)
|
||||
{
|
||||
int index = (3 * levelIndex) + sizeIndex;
|
||||
while (true)
|
||||
{
|
||||
// top of stack
|
||||
if ((BucketNode*)Volatile.Read(ref _bucketHeads[index]) == node && TryAcquireBucketNodeSpinLock(node))
|
||||
{
|
||||
_ = TryPopLevel(levelIndex, sizeIndex, out _);
|
||||
} else
|
||||
{
|
||||
AcquireBucketNodeSpinLock(node);
|
||||
ulong p = Volatile.Read(ref node->PreviousLevel), n = Volatile.Read(ref node->NextLevel);
|
||||
BucketNode* previous = (BucketNode*)p, next = (BucketNode*)n;
|
||||
try
|
||||
{
|
||||
if (next is null)
|
||||
{
|
||||
// bottom of stack
|
||||
if (!TryAcquireBucketNodeSpinLock(previous))
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
previous->NextLevel = EmptyHandle;
|
||||
node->PreviousLevel = EmptyHandle;
|
||||
return;
|
||||
}
|
||||
if (!(TryAcquireBucketNodeSpinLock(previous) && TryAcquireBucketNodeSpinLock(next)))
|
||||
{
|
||||
// middle of stack
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
previous ->NextLevel = n;
|
||||
next->PreviousLevel = p;
|
||||
node->NextLevel = EmptyHandle;
|
||||
node->PreviousLevel = EmptyHandle;
|
||||
return;
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(node);
|
||||
ReleaseBucketNodeSpinLock(previous);
|
||||
ReleaseBucketNodeSpinLock(next);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static bool TryAcquireBucketNodeSpinLock(BucketNode* node)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
return node != null &&
|
||||
(Volatile.Read(ref node->SpinLock) == thread ||
|
||||
Interlocked.CompareExchange(ref node->SpinLock, thread, 0) == 0);
|
||||
}
|
||||
|
||||
private bool TryPopLevel(int levelIndex, int sizeIndex, out BucketNode* node)
|
||||
{
|
||||
int index = (3 * levelIndex) + sizeIndex;
|
||||
while (true)
|
||||
{
|
||||
ulong h = Volatile.Read(ref _bucketHeads[index]);
|
||||
BucketNode* head = (BucketNode*)h;
|
||||
BucketNode* next = null;
|
||||
try
|
||||
{
|
||||
if (head == null)
|
||||
{
|
||||
node = null;
|
||||
return false;
|
||||
}
|
||||
if (!TryAcquireBucketNodeSpinLock(head))
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
ulong n = Volatile.Read(ref head->NextLevel);
|
||||
next = (BucketNode*)n;
|
||||
if (!TryAcquireBucketNodeSpinLock(next))
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
if (Interlocked.CompareExchange(ref _bucketHeads[index], head->NextLevel, h) == h)
|
||||
{
|
||||
node = head;
|
||||
node->IsInBucket = false;
|
||||
node->NextLevel = EmptyHandle;
|
||||
next->PreviousLevel = EmptyHandle;
|
||||
return true;
|
||||
} else
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(head);
|
||||
ReleaseBucketNodeSpinLock(next);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BucketNode structure - specialized node for bucket linked lists Stored in main
|
||||
/// allocation area (user-overwritable region)
|
||||
/// </summary>
|
||||
[StructLayout(LayoutKind.Explicit, Size = 36)]
|
||||
internal struct BucketNode
|
||||
{
|
||||
|
||||
public const uint MAGIC_NUMBER = 0xBEEFCAFE; // Magic number for node integrity verification
|
||||
|
||||
[FieldOffset(16)] internal Entry* EntryRef; // Pointer to corresponding Entry
|
||||
[FieldOffset(28)] internal bool IsInBucket; // Whether in bucket
|
||||
[FieldOffset(32)] internal int SpinLock; // Spin lock for bucket head operation
|
||||
[FieldOffset(24)] internal uint Magic; // Magic number verification
|
||||
[FieldOffset(0)] internal ulong NextLevel; // Bucket stack linked list: next pointer
|
||||
[FieldOffset(8)] internal ulong PreviousLevel; // Bucket stack linked list: previous pointer
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static bool IsNullOrEmpty(BucketNode* node)
|
||||
{
|
||||
return node == null || node->Magic != MAGIC_NUMBER;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-256
@@ -1,256 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.BucketNode.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
using System.Threading;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private static void AcquireBucketNodeSpinLock(BucketNode* node)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
if (node != null && Volatile.Read(ref node->SpinLock) != thread)
|
||||
{
|
||||
while (Interlocked.CompareExchange(ref node->SpinLock, thread, 0) != 0) {
|
||||
Thread.Sleep(0);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Initialize bucket system (called in constructor)
|
||||
/// </summary>
|
||||
private void InitializeBucketSystem()
|
||||
{
|
||||
_bucketHeads = new ulong[levelSize.Length * 3];
|
||||
}
|
||||
|
||||
private void PushLevel(int levelIndex, int sizeIndex, BucketNode* node)
|
||||
{
|
||||
if (node == null || node->EntryRef == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
int index = (3 * levelIndex) + sizeIndex;
|
||||
if (Interlocked.CompareExchange(ref _bucketHeads[index], (nuint)node, EmptyHandle) == EmptyHandle)
|
||||
{
|
||||
node->IsInBucket = true;
|
||||
node->Magic = BucketNode.MAGIC_NUMBER;
|
||||
return;
|
||||
} else
|
||||
{
|
||||
while (true)
|
||||
{
|
||||
AcquireBucketNodeSpinLock(node);
|
||||
ulong head = Volatile.Read(ref _bucketHeads[index]);
|
||||
node->NextLevel = head;
|
||||
BucketNode* headNode = (BucketNode*)head;
|
||||
try
|
||||
{
|
||||
if (Interlocked.CompareExchange(ref _bucketHeads[index], (nuint)node, head) == head)
|
||||
{
|
||||
if (!TryAcquireBucketNodeSpinLock(headNode))
|
||||
{
|
||||
// reset state and retry
|
||||
_ = Interlocked.CompareExchange(ref _bucketHeads[index], head, (nuint)node);
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
try
|
||||
{
|
||||
node->IsInBucket = true;
|
||||
node->Magic = BucketNode.MAGIC_NUMBER;
|
||||
headNode->PreviousLevel = (ulong)node;
|
||||
return;
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(headNode);
|
||||
}
|
||||
} else
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(node);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static void ReleaseBucketNodeSpinLock(BucketNode* node)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
if (node != null && Volatile.Read(ref node->SpinLock) != 0) {
|
||||
_ = Interlocked.CompareExchange(ref node->SpinLock, 0, thread);
|
||||
}
|
||||
}
|
||||
|
||||
private void RemoveFromBucket(int levelIndex, int sizeIndex, BucketNode* node)
|
||||
{
|
||||
int index = (3 * levelIndex) + sizeIndex;
|
||||
while (true)
|
||||
{
|
||||
// top of stack
|
||||
if ((BucketNode*)Volatile.Read(ref _bucketHeads[index]) == node && TryAcquireBucketNodeSpinLock(node))
|
||||
{
|
||||
_ = TryPopLevel(levelIndex, sizeIndex, out _);
|
||||
} else
|
||||
{
|
||||
AcquireBucketNodeSpinLock(node);
|
||||
ulong p = Volatile.Read(ref node->PreviousLevel), n = Volatile.Read(ref node->NextLevel);
|
||||
BucketNode* previous = (BucketNode*)p, next = (BucketNode*)n;
|
||||
try
|
||||
{
|
||||
if (next is null)
|
||||
{
|
||||
// bottom of stack
|
||||
if (!TryAcquireBucketNodeSpinLock(previous))
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
previous->NextLevel = EmptyHandle;
|
||||
node->PreviousLevel = EmptyHandle;
|
||||
return;
|
||||
}
|
||||
if (!(TryAcquireBucketNodeSpinLock(previous) && TryAcquireBucketNodeSpinLock(next)))
|
||||
{
|
||||
// middle of stack
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
previous ->NextLevel = n;
|
||||
next->PreviousLevel = p;
|
||||
node->NextLevel = EmptyHandle;
|
||||
node->PreviousLevel = EmptyHandle;
|
||||
return;
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(node);
|
||||
ReleaseBucketNodeSpinLock(previous);
|
||||
ReleaseBucketNodeSpinLock(next);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static bool TryAcquireBucketNodeSpinLock(BucketNode* node)
|
||||
{
|
||||
int thread = Environment.CurrentManagedThreadId;
|
||||
return node != null &&
|
||||
(Volatile.Read(ref node->SpinLock) == thread ||
|
||||
Interlocked.CompareExchange(ref node->SpinLock, thread, 0) == 0);
|
||||
}
|
||||
|
||||
private bool TryPopLevel(int levelIndex, int sizeIndex, out BucketNode* node)
|
||||
{
|
||||
int index = (3 * levelIndex) + sizeIndex;
|
||||
while (true)
|
||||
{
|
||||
ulong h = Volatile.Read(ref _bucketHeads[index]);
|
||||
BucketNode* head = (BucketNode*)h;
|
||||
BucketNode* next = null;
|
||||
try
|
||||
{
|
||||
if (head == null)
|
||||
{
|
||||
node = null;
|
||||
return false;
|
||||
}
|
||||
if (!TryAcquireBucketNodeSpinLock(head))
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
ulong n = Volatile.Read(ref head->NextLevel);
|
||||
next = (BucketNode*)n;
|
||||
if (!TryAcquireBucketNodeSpinLock(next))
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
if (Interlocked.CompareExchange(ref _bucketHeads[index], head->NextLevel, h) == h)
|
||||
{
|
||||
node = head;
|
||||
node->IsInBucket = false;
|
||||
node->NextLevel = EmptyHandle;
|
||||
next->PreviousLevel = EmptyHandle;
|
||||
return true;
|
||||
} else
|
||||
{
|
||||
Thread.Sleep(0);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
ReleaseBucketNodeSpinLock(head);
|
||||
ReleaseBucketNodeSpinLock(next);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// BucketNode structure - specialized node for bucket linked lists Stored in main
|
||||
/// allocation area (user-overwritable region)
|
||||
/// </summary>
|
||||
[StructLayout(LayoutKind.Explicit, Size = 36)]
|
||||
internal struct BucketNode
|
||||
{
|
||||
|
||||
public const uint MAGIC_NUMBER = 0xBEEFCAFE; // Magic number for node integrity verification
|
||||
|
||||
[FieldOffset(16)] internal Entry* EntryRef; // Pointer to corresponding Entry
|
||||
[FieldOffset(28)] internal bool IsInBucket; // Whether in bucket
|
||||
[FieldOffset(32)] internal int SpinLock; // Spin lock for bucket head operation
|
||||
[FieldOffset(24)] internal uint Magic; // Magic number verification
|
||||
[FieldOffset(0)] internal ulong NextLevel; // Bucket stack linked list: next pointer
|
||||
[FieldOffset(8)] internal ulong PreviousLevel; // Bucket stack linked list: previous pointer
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
public static bool IsNullOrEmpty(BucketNode* node)
|
||||
{
|
||||
return node == null || node->Magic != MAGIC_NUMBER;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
-105
@@ -1,105 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.Level.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private const int MaxLevel = 9;
|
||||
|
||||
private static readonly int[] levelSize = [
|
||||
64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216
|
||||
];
|
||||
|
||||
public int AlignOfLevel(int bucketLevel)
|
||||
{
|
||||
int blockSize = levelSize[bucketLevel];
|
||||
return int.Min(blockSize, _align);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private int GetLevelFromSize(uint size)
|
||||
{
|
||||
// Ensure minimum size
|
||||
if (size <= 64)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Level sizes: [64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216]
|
||||
* Pattern: 64 * 4^level for levels 0,1,2,3...
|
||||
* So: level = Log4(size/64) = (Log2(size/64))/2 = (Log2(size) - 6)/2
|
||||
* We can implement Log2 by counting right shifts needed to reach 0
|
||||
*/
|
||||
|
||||
uint temp = size;
|
||||
int shifts = 0;
|
||||
|
||||
|
||||
// Count how many times we can divide by 2 (equivalent to log2)
|
||||
while (temp > 1)
|
||||
{
|
||||
temp >>= 1;
|
||||
shifts++;
|
||||
}
|
||||
|
||||
|
||||
// Convert log2 to level: level = (shifts - 6) / 2
|
||||
// But we need to handle the mapping properly for the specific level sizes
|
||||
int level = Math.Max(0, (shifts - 6) / 2);
|
||||
|
||||
|
||||
// Clamp to valid range
|
||||
return Math.Min(level, levelSize.Length - 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public enum CommonMemoryAlign : int
|
||||
{
|
||||
|
||||
XMMLevel = 16,
|
||||
YMMLevel = 32,
|
||||
ZMMLevel = 64,
|
||||
|
||||
ArmNEONLevel = 16,
|
||||
|
||||
}
|
||||
}
|
||||
-105
@@ -1,105 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.Level.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private const int MaxLevel = 9;
|
||||
|
||||
private static readonly int[] levelSize = [
|
||||
64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216
|
||||
];
|
||||
|
||||
public int AlignOfLevel(int bucketLevel)
|
||||
{
|
||||
int blockSize = levelSize[bucketLevel];
|
||||
return int.Min(blockSize, _align);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private int GetLevelFromSize(uint size)
|
||||
{
|
||||
// Ensure minimum size
|
||||
if (size <= 64)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* size = 64 * 4 ^ level
|
||||
* level = Log4(size/64)
|
||||
* level = Log4(size) - Log4(64)
|
||||
* level = Log4(size) - 3
|
||||
* Log4 is the same as count of >>=2 or /= 4;
|
||||
*/
|
||||
int level = -3;
|
||||
while (size > 0)
|
||||
{
|
||||
level++;
|
||||
size >>= 2;
|
||||
}
|
||||
return level;
|
||||
|
||||
// Find the position of the highest set bit (equivalent to floor(log2(size)))
|
||||
int msb = 31 - System.Numerics.BitOperations.LeadingZeroCount(size);
|
||||
|
||||
// Convert MSB position to level index using bit manipulation
|
||||
// MSB: 6->0, 7->0, 8->1, 9->1, 10->2, 11->2, 12->3, 13->3, etc.
|
||||
// Pattern: level = max(0, (msb - 6) >> 1)
|
||||
int level = Math.Max(0, (msb - 6) >> 1);
|
||||
|
||||
|
||||
// Clamp to valid range
|
||||
return Math.Min(level, levelSize.Length - 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public enum CommonMemoryAlign : int
|
||||
{
|
||||
|
||||
XMMLevel = 16,
|
||||
YMMLevel = 32,
|
||||
ZMMLevel = 64,
|
||||
|
||||
ArmNEONLevel = 16,
|
||||
|
||||
}
|
||||
}
|
||||
-105
@@ -1,105 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.Level.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private const int MaxLevel = 9;
|
||||
|
||||
private static readonly int[] levelSize = [
|
||||
64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216
|
||||
];
|
||||
|
||||
public int AlignOfLevel(int bucketLevel)
|
||||
{
|
||||
int blockSize = levelSize[bucketLevel];
|
||||
return int.Min(blockSize, _align);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private int GetLevelFromSize(uint size)
|
||||
{
|
||||
// Ensure minimum size
|
||||
if (size <= 64)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* size = 64 * 4 ^ level
|
||||
* level = Log4(size/64)
|
||||
* level = Log4(size) - Log4(64)
|
||||
* level = Log4(size) - 3
|
||||
* Log4 is the same as count of >>=2 or /= 4;
|
||||
*/
|
||||
int level = -3;
|
||||
while (size > 0)
|
||||
{
|
||||
level++;
|
||||
size >>= 2;
|
||||
}
|
||||
return level;
|
||||
|
||||
// Find the position of the highest set bit (equivalent to floor(log2(size)))
|
||||
int msb = 31 - System.Numerics.BitOperations.LeadingZeroCount(size);
|
||||
|
||||
// Convert MSB position to level index using bit manipulation
|
||||
// MSB: 6->0, 7->0, 8->1, 9->1, 10->2, 11->2, 12->3, 13->3, etc.
|
||||
// Pattern: level = max(0, (msb - 6) >> 1)
|
||||
int level = Math.Max(0, (msb - 6) >> 1);
|
||||
|
||||
|
||||
// Clamp to valid range
|
||||
return Math.Min(level, levelSize.Length - 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public enum CommonMemoryAlign : int
|
||||
{
|
||||
|
||||
XMMLevel = 16,
|
||||
YMMLevel = 32,
|
||||
ZMMLevel = 64,
|
||||
|
||||
ArmNEONLevel = 16,
|
||||
|
||||
}
|
||||
}
|
||||
-105
@@ -1,105 +0,0 @@
|
||||
//-----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
// file="HLSFAllocator.Level.cs"
|
||||
// Project: StgSharp
|
||||
// AuthorGroup: Nitload Space
|
||||
// Copyright (c) Nitload Space. All rights reserved.
|
||||
//
|
||||
// Permission is hereby granted, free of charge, to any person
|
||||
// obtaining a copy of this software and associated documentation
|
||||
// files (the “Software”), to deal in the Software without restriction,
|
||||
// including without limitation the rights to use, copy, modify, merge,
|
||||
// publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
// and to permit persons to whom the Software is furnished to do so,
|
||||
// subject to the following conditions:
|
||||
//
|
||||
// The above copyright notice and
|
||||
// this permission notice shall be included in all copies
|
||||
// or substantial portions of the Software.
|
||||
//
|
||||
// THE SOFTWARE IS PROVIDED “AS IS”,
|
||||
// WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
// INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
|
||||
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
// ARISING FROM, OUT OF OR IN CONNECTION WITH
|
||||
// THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
//
|
||||
// -----------------------------------------------------------------------
|
||||
// -----------------------------------------------------------------------
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace StgSharp.HighPerformance.Memory
|
||||
{
|
||||
public unsafe partial class HybridLayerSegregatedFitAllocator
|
||||
{
|
||||
|
||||
private const int MaxLevel = 9;
|
||||
|
||||
private static readonly int[] levelSize = [
|
||||
64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216
|
||||
];
|
||||
|
||||
public int AlignOfLevel(int bucketLevel)
|
||||
{
|
||||
int blockSize = levelSize[bucketLevel];
|
||||
return int.Min(blockSize, _align);
|
||||
}
|
||||
|
||||
[MethodImpl(MethodImplOptions.AggressiveInlining)]
|
||||
private int GetLevelFromSize(uint size)
|
||||
{
|
||||
// Ensure minimum size
|
||||
if (size <= 64)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Level sizes: [64, 256, 1024, 4096, 16384, 65536, 262144, 1048576, 4194304, 16777216]
|
||||
* Pattern: 64 * 4^level for levels 0,1,2,3...
|
||||
* So: level = Log4(size/64) = (Log2(size/64))/2 = (Log2(size) - 6)/2
|
||||
* We can implement Log2 by counting right shifts needed to reach 0
|
||||
*/
|
||||
|
||||
uint temp = size;
|
||||
int shifts = 0;
|
||||
|
||||
|
||||
// Count how many times we can divide by 2 (equivalent to log2)
|
||||
while (temp > 1)
|
||||
{
|
||||
temp >>= 1;
|
||||
shifts++;
|
||||
}
|
||||
|
||||
|
||||
// Convert log2 to level: level = (shifts - 6) / 2
|
||||
// But we need to handle the mapping properly for the specific level sizes
|
||||
int level = Math.Max(0, (shifts - 6) / 2);
|
||||
|
||||
|
||||
// Clamp to valid range
|
||||
return Math.Min(level, levelSize.Length - 1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public enum CommonMemoryAlign : int
|
||||
{
|
||||
|
||||
XMMLevel = 16,
|
||||
YMMLevel = 32,
|
||||
ZMMLevel = 64,
|
||||
|
||||
ArmNEONLevel = 16,
|
||||
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user