Files
stgsharp/源代码/StgSharp/Graphics/SSG/SSGStruct.cs
T

148 lines
4.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using System.Text;
namespace StgSharp.Graphics
{
/// <summary>
/// A window struct that has nearly no differencr with GLFWwindow,
/// but only can be referred by pointers.
/// </summary>
[StructLayout(LayoutKind.Sequential)]
public unsafe struct SSGwindow
{
//struct _GLFWwindow* next in GLFW
internal SSGwindow* next;
internal bool resizable;
internal bool decorated;
internal bool autoIconify;
internal bool floating;
internal bool focusOnShow;
internal bool mousePassthrough;
internal bool shouldClose;
internal void* userPointer;
internal bool doublebuffer;
internal GLFWvidmode videoMode;
internal IntPtr monitor; //internal GLFWmonitor* monitor;
internal GLFWcursor* cursor;
internal int minwidth, minheight;
internal int maxwidth, maxheight;
internal int numer, denom;
internal bool stickyKeys;
internal bool stickyMouseButtons;
internal bool lockKeyMods;
internal int cursorMode;
internal long mouseButtons; //internal char[] mouseButtons = new char[8];
internal CharArray349 keys; //internal char[] keys = new char[349];
// Virtual cursor position when cursor is disabled
internal double virtualCursorPosX, virtualCursorPosY;
internal bool rawMouseMotion;
internal GLFWcontext context;
[StructLayout(LayoutKind.Sequential)]
internal struct CharArray349
{
internal long charGroup1;
internal long charGroup2;
internal long charGroup3;
internal long charGroup4;
internal long charGroup5;
internal long charGroup6;
internal long charGroup7;
internal long charGroup8;
internal long charGroup9;
internal long charGroup10;
internal long charGroup11;
internal long charGroup12;
internal long charGroup13;
internal long charGroup14;
internal long charGroup15;
internal long charGroup16;
internal long charGroup17;
internal long charGroup18;
internal long charGroup19;
internal long charGroup20;
internal long charGroup21;
internal long charGroup22;
internal long charGroup23;
internal long charGroup24;
internal long charGroup25;
internal long charGroup26;
internal long charGroup27;
internal long charGroup28;
internal long charGroup29;
internal long charGroup30;
internal long charGroup31;
internal long charGroup32;
internal long charGroup33;
internal long charGroup34;
internal long charGroup35;
internal long charGroup36;
internal long charGroup37;
internal long charGroup38;
internal long charGroup39;
internal long charGroup40;
internal long charGroup41;
internal long charGroup42;
internal long charGroup43;
internal byte char345;
internal byte char346;
internal byte char347;
internal byte char348;
internal byte char349;
}
public SSGwindow()
{
}
}
[StructLayout(LayoutKind.Sequential)]
public unsafe struct SSGmonitor
{
char[] name = new char[128];
void* userPointer;
// Physical dimensions in millimeters.
int widthMM, heightMM;
// The window whose video mode is current on this monitor
//_GLFWwindow* window;
IntPtr window;
//GLFWvidmode* modes;
IntPtr modes;
int modeCount;
GLFWvidmode currentMode;
GLFWgammaramp originalRamp;
GLFWgammaramp currentRamp;
// not transformed
//GLFW_PLATFORM_MONITOR_STATE;
[StructLayout(LayoutKind.Sequential)]
internal struct monitorName
{
internal int byte1to4;
internal int byte5to8;
internal int byte9to12;
internal int byte13to16;
}
public SSGmonitor() { }
}
}