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

595 lines
32 KiB
C#

//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
// 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 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 GLFWerrorfun glfwSetErrorCallback(
GLFWerrorfun 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 GLFWmonitorfun glfwSetMonitorCallback(
GLFWmonitorfun 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 GLFWwindowposfun glfwSetWindowPosCallback(
IntPtr window,
IntPtr callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowSizeCallback" )]
internal static unsafe partial GLFWwindowsizefun glfwSetWindowSizeCallback(
IntPtr window,
GLFWwindowsizefun callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowCloseCallback" )]
internal static unsafe partial GLFWwindowclosefun glfwSetWindowCloseCallback(
IntPtr window,
GLFWwindowclosefun callback );
[LibraryImport(
SSC_libName,
EntryPoint = "glfwSetWindowRefreshCallback" )]
internal static unsafe partial GLFWwindowrefreshfun glfwSetWindowRefreshCallback(
IntPtr window,
GLFWwindowrefreshfun callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetWindowFocusCallback" )]
internal static unsafe partial GLFWwindowfocusfun glfwSetWindowFocusCallback(
IntPtr window,
GLFWwindowfocusfun callback );
[LibraryImport(
SSC_libName,
EntryPoint = "glfwSetWindowIconifyCallback" )]
internal static unsafe partial GLFWwindowiconifyfun glfwSetWindowIconifyCallback(
IntPtr window,
GLFWwindowiconifyfun callback );
[LibraryImport(
SSC_libName,
EntryPoint = "glfwSetWindowMaximizeCallback" )]
internal static unsafe partial GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(
IntPtr window,
GLFWwindowmaximizefun 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 GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(
IntPtr window,
GLFWwindowcontentscalefun 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 GLFWkeyfun glfwSetKeyCallback(
IntPtr window,
GLFWkeyfun callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetCharCallback" )]
internal static unsafe partial GLFWcharfun glfwSetCharCallback(
IntPtr window,
GLFWcharfun callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetCharModsCallback" )]
internal static unsafe partial GLFWcharmodsfun glfwSetCharModsCallback(
IntPtr window,
GLFWcharmodsfun callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetMouseButtonCallback" )]
internal static unsafe partial GLFWmousebuttonfun glfwSetMouseButtonCallback(
IntPtr window,
GLFWmousebuttonfun callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetCursorPosCallback" )]
internal static unsafe partial GLFWcursorposfun glfwSetCursorPosCallback(
IntPtr window,
GLFWcursorposfun callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetCursorEnterCallback" )]
internal static unsafe partial GLFWcursorenterfun glfwSetCursorEnterCallback(
IntPtr window,
GLFWcursorenterfun callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetScrollCallback" )]
internal static unsafe partial GLFWscrollfun glfwSetScrollCallback(
IntPtr window,
GLFWscrollfun callback );
[LibraryImport( SSC_libName, EntryPoint = "glfwSetDropCallback" )]
internal static unsafe partial GLFWdropfun glfwSetDropCallback(
IntPtr window,
GLFWdropfun 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 GLFWjoystickfun glfwSetJoystickCallback(
GLFWjoystickfun 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 GLFWvkproc 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
}
}