Files
stgsharp/StgSharp.Common/Internal/glfw.cs
T

510 lines
28 KiB
C#

//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// file="glfw.cs"
// Project: StepVisualizer
// 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 partial class InternalIO
{
#region api call
[LibraryImport( SSC_libName, EntryPoint = "glfwInit" )]
internal static unsafe partial int glfwInit();
[LibraryImport( SSC_libName, EntryPoint = "glfwTerminate" )]
internal static unsafe partial void glfwTerminate();
[LibraryImport( SSC_libName, EntryPoint = "glfwInitHint" )]
internal static unsafe partial void glfwInitHint( int hint, int value );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetVersion" )]
internal static unsafe partial void glfwGetVersion( int* major, int* minor, int* rev );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetVersionString" )]
internal static unsafe partial byte* glfwGetVersionString();
[LibraryImport( SSC_libName, EntryPoint = "glfwGetError" )]
internal static unsafe partial int glfwGetError( byte** description );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetErrorCallback" )]
internal static unsafe partial delegate*<int,byte*,void> glfwSetErrorCallback(
delegate*<int,byte*,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetMonitors" )]
internal static unsafe partial IntPtr* glfwGetMonitors( int* count );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetPrimaryMonitor" )]
internal static unsafe partial IntPtr glfwGetPrimaryMonitor();
[LibraryImport( SSC_libName, EntryPoint = "glfwGetMonitorPos" )]
internal static unsafe partial void glfwGetMonitorPos(
IntPtr monitor,
int* xpos,
int* ypos );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetMonitorWorkarea" )]
internal static unsafe partial void glfwGetMonitorWorkarea(
IntPtr monitor,
int* xpos,
int* ypos,
int* width,
int* height );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetMonitorPhysicalSize" )]
internal static unsafe partial void glfwGetMonitorPhysicalSize(
IntPtr monitor,
int* widthMM,
int* heightMM );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetMonitorContentScale" )]
internal static unsafe partial void glfwGetMonitorContentScale(
IntPtr monitor,
float* xscale,
float* yscale );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetMonitorName" )]
internal static unsafe partial byte* glfwGetMonitorName( IntPtr monitor );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetMonitorUserPointer" )]
internal static unsafe partial void glfwSetMonitorUserPointer(
IntPtr monitor,
void* pointer );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetMonitorUserPointer" )]
internal static unsafe partial void* glfwGetMonitorUserPointer( IntPtr monitor );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetMonitorCallback" )]
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetMonitorCallback(
delegate*<glfwWindow*,int,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetVideoModes" )]
internal static unsafe partial glfwVideomode* glfwGetVideoModes(
IntPtr monitor,
int* count );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetVideoMode" )]
internal static unsafe partial glfwVideomode* glfwGetVideoMode( IntPtr monitor );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetGamma" )]
internal static unsafe partial void glfwSetGamma( IntPtr monitor, float gamma );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetGammaRamp" )]
internal static unsafe partial glfwGammaramp* glfwGetGammaRamp( IntPtr monitor );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetGammaRamp" )]
internal static unsafe partial void glfwSetGammaRamp( IntPtr monitor, glfwGammaramp* ramp );
[LibraryImport( SSC_libName, EntryPoint = "glfwDefaultWindowHints" )]
internal static unsafe partial void glfwDefaultWindowHints();
[LibraryImport( SSC_libName, EntryPoint = "glfwWindowHint" )]
internal static unsafe partial void glfwWindowHint( int hint, int value );
[LibraryImport( SSC_libName, EntryPoint = "glfwWindowHintString" )]
internal static unsafe partial void glfwWindowHintString( int hint, byte* value );
[LibraryImport( SSC_libName, EntryPoint = "glfwCreateWindow" )]
internal static unsafe partial IntPtr glfwCreateWindow(
int width,
int height,
byte[] title,
IntPtr monitor,
IntPtr share );
[LibraryImport( SSC_libName, EntryPoint = "glfwDestroyWindow" )]
internal static unsafe partial void glfwDestroyWindow( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwWindowShouldClose" )]
internal static unsafe partial int glfwWindowShouldClose( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowShouldClose" )]
internal static unsafe partial void glfwSetWindowShouldClose( IntPtr window, int value );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowTitle" )]
internal static unsafe partial void glfwSetWindowTitle( IntPtr window, byte* title );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowIcon" )]
internal static unsafe partial void glfwSetWindowIcon(
IntPtr window,
int count,
GLFWimage* images );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetWindowPos" )]
internal static unsafe partial void glfwGetWindowPos( IntPtr window, int* xpos, int* ypos );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowPos" )]
internal static unsafe partial void glfwSetWindowPos( IntPtr window, int xpos, int ypos );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetWindowSize" )]
internal static unsafe partial void glfwGetWindowSize(
IntPtr window,
int* width,
int* height );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowSizeLimits" )]
internal static unsafe partial void glfwSetWindowSizeLimits(
IntPtr window,
int minwidth,
int minheight,
int maxwidth,
int maxheight );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowAspectRatio" )]
internal static unsafe partial void glfwSetWindowAspectRatio(
IntPtr window,
int numer,
int denom );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowSize" )]
internal static unsafe partial void glfwSetWindowSize(
IntPtr window,
int width,
int height );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetFramebufferSize" )]
internal static unsafe partial void glfwGetFramebufferSize(
IntPtr window,
int* width,
int* height );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetWindowFrameSize" )]
internal static unsafe partial void glfwGetWindowFrameSize(
IntPtr window,
int* left,
int* top,
int* right,
int* bottom );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetWindowContentScale" )]
internal static unsafe partial void glfwGetWindowContentScale(
IntPtr window,
float* xscale,
float* yscale );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetWindowOpacity" )]
internal static unsafe partial float glfwGetWindowOpacity( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowOpacity" )]
internal static unsafe partial void glfwSetWindowOpacity( IntPtr window, float opacity );
[LibraryImport( SSC_libName, EntryPoint = "glfwIconifyWindow" )]
internal static unsafe partial void glfwIconifyWindow( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwRestoreWindow" )]
internal static unsafe partial void glfwRestoreWindow( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwMaximizeWindow" )]
internal static unsafe partial void glfwMaximizeWindow( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwShowWindow" )]
internal static unsafe partial void glfwShowWindow( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwHideWindow" )]
internal static unsafe partial void glfwHideWindow( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwFocusWindow" )]
internal static unsafe partial void glfwFocusWindow( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwRequestWindowAttention" )]
internal static unsafe partial void glfwRequestWindowAttention( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetWindowMonitor" )]
internal static unsafe partial IntPtr glfwGetWindowMonitor( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowMonitor" )]
internal static unsafe partial void glfwSetWindowMonitor(
IntPtr window,
IntPtr monitor,
int xpos,
int ypos,
int width,
int height,
int refreshRate );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetWindowAttrib" )]
internal static unsafe partial int glfwGetWindowAttrib( IntPtr window, int attrib );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowAttrib" )]
internal static unsafe partial void glfwSetWindowAttrib(
IntPtr window,
int attrib,
int value );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowUserPointer" )]
internal static unsafe partial void glfwSetWindowUserPointer( IntPtr window, void* pointer );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetWindowUserPointer" )]
internal static unsafe partial void* glfwGetWindowUserPointer( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowPosCallback" )]
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowPosCallback(
IntPtr window,
IntPtr callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowSizeCallback" )]
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetWindowSizeCallback(
IntPtr window,
delegate*<glfwWindow*,int,int,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowCloseCallback" )]
internal static unsafe partial delegate*<glfwWindow*,void> glfwSetWindowCloseCallback(
IntPtr window,
delegate*<glfwWindow*,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowRefreshCallback" )]
internal static unsafe partial delegate*<glfwWindow*, void> glfwSetWindowRefreshCallback(
IntPtr window,
delegate*<glfwWindow*, void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowFocusCallback" )]
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowFocusCallback(
IntPtr window,
delegate*<glfwWindow*,int,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowIconifyCallback" )]
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowIconifyCallback(
IntPtr window,
delegate*<glfwWindow*,int,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowMaximizeCallback" )]
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetWindowMaximizeCallback(
IntPtr window,
delegate*<glfwWindow*,int,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetFramebufferSizeCallback" )]
internal static unsafe partial FrameBufferSizeHandler glfwSetFramebufferSizeCallback(
IntPtr window,
IntPtr callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowContentScaleCallback" )]
internal static unsafe partial delegate*<glfwWindow*, float,float> glfwSetWindowContentScaleCallback(
IntPtr window,
delegate*<glfwWindow*, float,float> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwPollEvents" )]
internal static unsafe partial void glfwPollEvents();
[LibraryImport( SSC_libName, EntryPoint = "glfwWaitEvents" )]
internal static unsafe partial void glfwWaitEvents();
[LibraryImport( SSC_libName, EntryPoint = "glfwWaitEventsTimeout" )]
internal static unsafe partial void glfwWaitEventsTimeout( double timeout );
[LibraryImport( SSC_libName, EntryPoint = "glfwPostEmptyEvent" )]
internal static unsafe partial void glfwPostEmptyEvent();
[LibraryImport( SSC_libName, EntryPoint = "glfwGetInputMode" )]
internal static unsafe partial int glfwGetInputMode( IntPtr window, int mode );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetInputMode" )]
internal static unsafe partial void glfwSetInputMode( IntPtr window, int mode, int value );
[LibraryImport( SSC_libName, EntryPoint = "glfwRawMouseMotionSupported" )]
internal static unsafe partial int glfwRawMouseMotionSupported();
[LibraryImport( SSC_libName, EntryPoint = "glfwGetKeyName" )]
internal static unsafe partial byte* glfwGetKeyName( int key, int scancode );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetKeyScancode" )]
internal static unsafe partial int glfwGetKeyScancode( int key );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetKey" )]
internal static unsafe partial KeyStatus glfwGetKey( IntPtr window, int key );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetMouseButton" )]
internal static unsafe partial int glfwGetMouseButton( IntPtr window, int button );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetCursorPos" )]
internal static unsafe partial void glfwGetCursorPos(
IntPtr window,
double* xpos,
double* ypos );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetCursorPos" )]
internal static unsafe partial void glfwSetCursorPos(
IntPtr window,
double xpos,
double ypos );
[LibraryImport( SSC_libName, EntryPoint = "glfwCreateCursor" )]
internal static unsafe partial GLFWcursor* glfwCreateCursor(
GLFWimage* image,
int xhot,
int yhot );
[LibraryImport( SSC_libName, EntryPoint = "glfwCreateStandardCursor" )]
internal static unsafe partial GLFWcursor* glfwCreateStandardCursor( int shape );
[LibraryImport( SSC_libName, EntryPoint = "glfwDestroyCursor" )]
internal static unsafe partial void glfwDestroyCursor( GLFWcursor* cursor );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetCursor" )]
internal static unsafe partial void glfwSetCursor( IntPtr window, GLFWcursor* cursor );
[LibraryImport( SSC_libName, 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( SSC_libName, EntryPoint = "glfwSetCharCallback" )]
internal static unsafe partial delegate*<glfwWindow*,uint,void> glfwSetCharCallback(
IntPtr window,
delegate*<glfwWindow*,uint,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetCharModsCallback" )]
internal static unsafe partial delegate*<glfwWindow*,int,int,void> glfwSetCharModsCallback(
IntPtr window,
delegate*<glfwWindow*,int,int,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetMouseButtonCallback" )]
internal static unsafe partial delegate*<glfwWindow*,int,int,int,void> glfwSetMouseButtonCallback(
IntPtr window,
delegate*<glfwWindow*,int,int,int,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetCursorPosCallback" )]
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetCursorPosCallback(
IntPtr window,
delegate*<glfwWindow*,double,double,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetCursorEnterCallback" )]
internal static unsafe partial delegate*<glfwWindow*,int,void> glfwSetCursorEnterCallback(
IntPtr window,
delegate*<glfwWindow*,int,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetScrollCallback" )]
internal static unsafe partial delegate*<glfwWindow*,double,double,void> glfwSetScrollCallback(
IntPtr window,
delegate*<glfwWindow*,double,double,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetDropCallback" )]
internal static unsafe partial delegate*<glfwWindow*,int,byte**,void> glfwSetDropCallback(
IntPtr window,
delegate*<glfwWindow*,int,byte**,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwJoystickPresent" )]
internal static unsafe partial int glfwJoystickPresent( int jid );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetJoystickAxes" )]
internal static unsafe partial float* glfwGetJoystickAxes( int jid, int* count );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetJoystickButtons" )]
internal static unsafe partial byte* glfwGetJoystickButtons( int jid, int* count );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetJoystickHats" )]
internal static unsafe partial byte* glfwGetJoystickHats( int jid, int* count );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetJoystickName" )]
internal static unsafe partial byte* glfwGetJoystickName( int jid );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetJoystickGUID" )]
internal static unsafe partial byte* glfwGetJoystickGUID( int jid );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetJoystickUserPointer" )]
internal static unsafe partial void glfwSetJoystickUserPointer( int jid, void* pointer );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetJoystickUserPointer" )]
internal static unsafe partial void* glfwGetJoystickUserPointer( int jid );
[LibraryImport( SSC_libName, EntryPoint = "glfwJoystickIsGamepad" )]
internal static unsafe partial int glfwJoystickIsGamepad( int jid );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetJoystickCallback" )]
internal static unsafe partial delegate*<int,int,void> glfwSetJoystickCallback(
delegate*<int,int,void> callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwUpdateGamepadMappings" )]
internal static unsafe partial int glfwUpdateGamepadMappings( byte* str );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetGamepadName" )]
internal static unsafe partial byte* glfwGetGamepadName( int jid );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetGamepadState" )]
internal static unsafe partial int glfwGetGamepadState( int jid, GLFWgamepadstate* state );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetClipboardString" )]
internal static unsafe partial void glfwSetClipboardString( IntPtr window, byte* str );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetClipboardString" )]
internal static unsafe partial byte* glfwGetClipboardString( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetTime" )]
internal static unsafe partial double glfwGetTime();
[LibraryImport( SSC_libName, EntryPoint = "glfwSetTime" )]
internal static unsafe partial void glfwSetTime( double time );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetTimerValue" )]
internal static unsafe partial ulong* glfwGetTimerValue();
[LibraryImport( SSC_libName, EntryPoint = "glfwGetTimerFrequency" )]
internal static unsafe partial ulong* glfwGetTimerFrequency();
[LibraryImport( SSC_libName, EntryPoint = "glfwMakeContextCurrent" )]
internal static unsafe partial void glfwMakeContextCurrent( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwGetCurrentContext" )]
internal static unsafe partial IntPtr glfwGetCurrentContext();
[LibraryImport( SSC_libName, EntryPoint = "glfwSwapBuffers" )]
internal static unsafe partial void glfwSwapBuffers( IntPtr window );
[LibraryImport( SSC_libName, EntryPoint = "glfwSwapInterval" )]
internal static unsafe partial void glfwSwapInterval( int interval );
[LibraryImport( SSC_libName, EntryPoint = "glfwExtensionSupported" )]
internal static unsafe partial int glfwExtensionSupported( byte* extension );
[LibraryImport(
SSC_libName,
EntryPoint = "glfwGetProcAddress",
StringMarshalling = StringMarshalling.Utf8 )]
internal static unsafe partial IntPtr glfwGetProcAddress( string procname );
[LibraryImport( SSC_libName, EntryPoint = "glfwVulkanSupported" )]
internal static unsafe partial int glfwVulkanSupported();
[LibraryImport( SSC_libName, EntryPoint = "glfwGetRequiredInstanceExtensions" )]
internal static unsafe partial byte** glfwGetRequiredInstanceExtensions( uint* count );
//[LibraryImport(InternalIO.SSC_libname, EntryPoint = "glfwGetInstanceProcAddress")] internal unsafe partial static delegate*<void> glfwGetInstanceProcAddress(VkInstance instance, byte* procname);
//[LibraryImport(InternalIO.SSC_libname, EntryPoint = "glfwGetPhysicalDevicePresentationSupport")] internal unsafe partial static int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint* queuefamily);
//[LibraryImport(InternalIO.SSC_libname, EntryPoint = "glfwCreateWindowSurface")] internal unsafe partial static VkResult glfwCreateWindowSurface(VkInstance instance, glfwWindow* window, VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);
#endregion api call
}
}