From 9a001ca20d51ab90f15e10ae918e1ab3e45df87c Mon Sep 17 00:00:00 2001 From: jpbruyere Date: Thu, 21 Jul 2016 06:11:45 +0200 Subject: [PATCH] clean up master --- CrowGdk/CrowGdk.csproj | 45 - GLCrow/GLCrow.csproj | 76 - GLCrow/Pencil.Gaming.dll.config | 12 - GLCrow/Shader.cs | 330 - GLCrow/Window.cs | 519 -- GLCrow/packages.config | 4 - GLCrow/vaoMesh.cs | 599 -- GOMLViewer/GOMLViewer.csproj | 60 - GOMLViewer/Properties/AddinInfo.cs | 15 - GOMLViewer/Properties/AssemblyInfo.cs | 47 - GOMLViewer/Properties/Manifest.addin.xml | 17 - GOMLViewer/packages.config | 4 - GOMLViewer/src/DisplayBinding.cs | 79 - GOMLViewer/src/GOLibGtkHost.cs | 550 -- GOMLViewer/src/GOLibNodeExtension.cs | 83 - GOMLViewer/src/GOLibView.cs | 95 - GtkCrow/CrowContainer.cs | 164 - GtkCrow/GtkCrow.csproj | 67 - MonoDevelop.GOLib/MonoDevelop.GOLib.addin.xml | 19 - MonoDevelop.GOLib/MonoDevelop.GOLib.csproj | 118 - MonoDevelop.GOLib/MyClass.cs | 12 - MonoDevelop.GOLib/Properties/AddinInfo.cs | 16 - MonoDevelop.GOLib/Properties/AssemblyInfo.cs | 27 - MonoDevelop.GOLib/src/DisplayBinding.cs | 81 - MonoDevelop.GOLib/src/GOLibGtkHost.cs | 586 -- MonoDevelop.GOLib/src/GOLibNodeExtension.cs | 135 - MonoDevelop.GOLib/src/GOLibView.cs | 161 - SDL2Crow/LPUtf8StrMarshaler.cs | 106 - SDL2Crow/SDL2.cs | 6058 ----------------- SDL2Crow/SDL2Crow.csproj | 80 - SDL2Crow/main.cs | 97 - SDL2Crow/packages.config | 5 - magic3d.png | Bin 554698 -> 0 bytes screenshot1.png | Bin 72755 -> 0 bytes screenshot2.png | Bin 53011 -> 0 bytes 35 files changed, 10267 deletions(-) delete mode 100644 CrowGdk/CrowGdk.csproj delete mode 100644 GLCrow/GLCrow.csproj delete mode 100644 GLCrow/Pencil.Gaming.dll.config delete mode 100644 GLCrow/Shader.cs delete mode 100644 GLCrow/Window.cs delete mode 100644 GLCrow/packages.config delete mode 100644 GLCrow/vaoMesh.cs delete mode 100644 GOMLViewer/GOMLViewer.csproj delete mode 100644 GOMLViewer/Properties/AddinInfo.cs delete mode 100644 GOMLViewer/Properties/AssemblyInfo.cs delete mode 100644 GOMLViewer/Properties/Manifest.addin.xml delete mode 100644 GOMLViewer/packages.config delete mode 100644 GOMLViewer/src/DisplayBinding.cs delete mode 100644 GOMLViewer/src/GOLibGtkHost.cs delete mode 100644 GOMLViewer/src/GOLibNodeExtension.cs delete mode 100644 GOMLViewer/src/GOLibView.cs delete mode 100644 GtkCrow/CrowContainer.cs delete mode 100644 GtkCrow/GtkCrow.csproj delete mode 100644 MonoDevelop.GOLib/MonoDevelop.GOLib.addin.xml delete mode 100644 MonoDevelop.GOLib/MonoDevelop.GOLib.csproj delete mode 100644 MonoDevelop.GOLib/MyClass.cs delete mode 100644 MonoDevelop.GOLib/Properties/AddinInfo.cs delete mode 100644 MonoDevelop.GOLib/Properties/AssemblyInfo.cs delete mode 100644 MonoDevelop.GOLib/src/DisplayBinding.cs delete mode 100644 MonoDevelop.GOLib/src/GOLibGtkHost.cs delete mode 100644 MonoDevelop.GOLib/src/GOLibNodeExtension.cs delete mode 100644 MonoDevelop.GOLib/src/GOLibView.cs delete mode 100644 SDL2Crow/LPUtf8StrMarshaler.cs delete mode 100644 SDL2Crow/SDL2.cs delete mode 100644 SDL2Crow/SDL2Crow.csproj delete mode 100644 SDL2Crow/main.cs delete mode 100644 SDL2Crow/packages.config delete mode 100644 magic3d.png delete mode 100644 screenshot1.png delete mode 100644 screenshot2.png diff --git a/CrowGdk/CrowGdk.csproj b/CrowGdk/CrowGdk.csproj deleted file mode 100644 index 57a3f0cf..00000000 --- a/CrowGdk/CrowGdk.csproj +++ /dev/null @@ -1,45 +0,0 @@ - - - - Debug - Linux_x86 - 8.0.30703 - 2.0 - {90D93DD6-ADBD-4BB6-AE62-20DBF83F7185} - Exe - CrowGdk - CrowGdk - v4.5 - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - - - full - true - bin\Release - prompt - 4 - false - - - - - {C2980F9B-4798-4C05-99E2-E174810F7C7B} - Crow - - - - - - - - - \ No newline at end of file diff --git a/GLCrow/GLCrow.csproj b/GLCrow/GLCrow.csproj deleted file mode 100644 index 8c1cd3c7..00000000 --- a/GLCrow/GLCrow.csproj +++ /dev/null @@ -1,76 +0,0 @@ - - - - Debug - Linux_x86 - 8.0.30703 - 2.0 - {66376B95-9351-4A63-B920-F4BB53FEF0E2} - Library - GLC - GLCrow - $(SolutionDir)/build/$(Configuration) - $(SolutionDir)/build/obj/$(Configuration) - v4.5 - 0.4 - - - true - full - false - DEBUG; - prompt - 4 - false - - - - - - $(SolutionDir)\build\obj\$(Configuration) - $(SolutionDir)\build\$(Configuration) - - - true - prompt - 4 - false - $(SolutionDir)\build\obj\$(Configuration) - $(SolutionDir)\build\$(Configuration) - - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\cairo-sharp.dll - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gdk-sharp.dll - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gio-sharp.dll - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\glib-sharp.dll - - - - - - - - PreserveNewest - - - - - {C2980F9B-4798-4C05-99E2-E174810F7C7B} - Crow - - - - - - - - - - \ No newline at end of file diff --git a/GLCrow/Pencil.Gaming.dll.config b/GLCrow/Pencil.Gaming.dll.config deleted file mode 100644 index 4361512f..00000000 --- a/GLCrow/Pencil.Gaming.dll.config +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - \ No newline at end of file diff --git a/GLCrow/Shader.cs b/GLCrow/Shader.cs deleted file mode 100644 index 86395779..00000000 --- a/GLCrow/Shader.cs +++ /dev/null @@ -1,330 +0,0 @@ -using System; -using System.Diagnostics; -using System.IO; -using System.Reflection; -using System.Collections.Generic; -using Crow; -using Pencil.Gaming.Graphics; -using Pencil.Gaming.MathUtils; - -namespace Tetra -{ - public class Shader : IDisposable - { - static List registeredShaders = new List(); - - public static List RegisteredShaders { - get { return registeredShaders; } - } - - #region CTOR - public Shader () - { - Init (); - } - public Shader (string vertResPath, string fragResPath = null, string geomResPath = null) - { - VertSourcePath = vertResPath; - FragSourcePath = fragResPath; - GeomSourcePath = geomResPath; - - loadSourcesFiles (); - - Init (); - } - ~Shader(){ - RegisteredShaders.Remove (this); - } - #endregion - - public string VertSourcePath, - FragSourcePath, - GeomSourcePath; - #region Sources - protected string _vertSource = @" - #version 330 - precision lowp float; - - uniform mat4 mvp; - - layout(location = 0) in vec3 in_position; - layout(location = 1) in vec2 in_tex; - - out vec2 texCoord; - - void main(void) - { - texCoord = in_tex; - gl_Position = mvp * vec4(in_position, 1.0); - }"; - - protected string _fragSource = @" - #version 330 - precision lowp float; - - uniform sampler2D tex; - - in vec2 texCoord; - out vec4 out_frag_color; - - void main(void) - { - out_frag_color = texture( tex, texCoord); - }"; - string _geomSource = @""; -// #version 330 -// layout(triangles) in; -// layout(triangle_strip, max_vertices=3) out; -// void main() -// { -// for(int i=0; i<3; i++) -// { -// gl_Position = gl_in[i].gl_Position; -// EmitVertex(); -// } -// EndPrimitive(); -// }"; - #endregion - - #region Private and protected fields - public uint vsId, fsId, gsId, pgmId; - public int mvpLocation; - - Matrix mvp = Matrix.Identity; - #endregion - - - #region Public properties - public virtual string vertSource - { - get { return _vertSource;} - set { _vertSource = value; } - } - public virtual string fragSource - { - get { return _fragSource;} - set { _fragSource = value; } - } - public virtual string geomSource - { - get { return _geomSource; } - set { _geomSource = value; } - } - - public virtual Matrix MVP{ - set { mvp = value; } - get { return mvp; } - } - #endregion - - #region Public functions - /// - /// configure sources and compile - /// - public virtual void Init() - { - RegisteredShaders.Add (this); - Compile (); - } - public void Reload(){ - loadSourcesFiles (); - Compile (); - } - public void SetSource(ShaderType shaderType, string _source){ - switch (shaderType) { - case ShaderType.FragmentShader: - fragSource = _source; - return; - case ShaderType.VertexShader: - vertSource = _source; - return; - case ShaderType.GeometryShader: - geomSource = _source; - return; - } - } - public string GetSource(ShaderType shaderType){ - switch (shaderType) { - case ShaderType.FragmentShader: - return fragSource; - case ShaderType.VertexShader: - return vertSource; - case ShaderType.GeometryShader: - return geomSource; - } - return ""; - } - public string GetSourcePath(ShaderType shaderType){ - switch (shaderType) { - case ShaderType.FragmentShader: - return FragSourcePath; - case ShaderType.VertexShader: - return VertSourcePath; - case ShaderType.GeometryShader: - return GeomSourcePath; - } - return ""; - } - public virtual void Compile() - { - Dispose (); - - pgmId = GL.CreateProgram(); - - if (!string.IsNullOrEmpty(vertSource)) - { - vsId = GL.CreateShader(ShaderType.VertexShader); - compileShader(vsId, vertSource); - } - if (!string.IsNullOrEmpty(fragSource)) - { - fsId = GL.CreateShader(ShaderType.FragmentShader); - compileShader(fsId, fragSource); - - } - if (!string.IsNullOrEmpty(geomSource)) - { - gsId = GL.CreateShader(ShaderType.GeometryShader); - compileShader(gsId,geomSource); - } - - if (vsId != 0) - GL.AttachShader(pgmId, vsId); - if (fsId != 0) - GL.AttachShader(pgmId, fsId); - if (gsId != 0) - GL.AttachShader(pgmId, gsId); - - BindVertexAttributes (); - - string info; - GL.LinkProgram(pgmId); - GL.GetProgramInfoLog((int)pgmId, out info); - - if (!string.IsNullOrEmpty (info)) { - Debug.WriteLine ("Linkage:"); - Debug.WriteLine (info); - } - - info = null; - - GL.ValidateProgram(pgmId); - GL.GetProgramInfoLog((int)pgmId, out info); - if (!string.IsNullOrEmpty (info)) { - Debug.WriteLine ("Validation:"); - Debug.WriteLine (info); - } - - GL.UseProgram (pgmId); - - GetUniformLocations (); - BindSamplesSlots (); - - Disable (); - } - - protected virtual void BindVertexAttributes() - { - GL.BindAttribLocation(pgmId, 0, "in_position"); - GL.BindAttribLocation(pgmId, 1, "in_tex"); - GL.BindAttribLocation(pgmId, 4, "in_model"); - - } - protected virtual void GetUniformLocations() - { - mvpLocation = GL.GetUniformLocation(pgmId, "mvp"); - } - protected virtual void BindSamplesSlots(){ - GL.Uniform1(GL.GetUniformLocation (pgmId, "tex"), 0); - } - public void SetMVP(Matrix _mvp){ - GL.UniformMatrix4(mvpLocation, false, ref _mvp); - } - public virtual void Enable(){ - GL.UseProgram (pgmId); - } - public virtual void Disable(){ - GL.UseProgram (0); - } - public static void Enable(Shader s) - { - if (s == null) - return; - s.Enable (); - } - public static void Disable(Shader s) - { - if (s == null) - return; - s.Disable (); - } - #endregion - - void loadSourcesFiles(){ - Stream s; - - if (!string.IsNullOrEmpty (VertSourcePath)) { - s = Interface.GetStreamFromPath (VertSourcePath); - if (s != null) { - using (StreamReader sr = new StreamReader (s)) { - vertSource = sr.ReadToEnd (); - } - } - } - - if (!string.IsNullOrEmpty (FragSourcePath)) { - s = Interface.GetStreamFromPath (FragSourcePath); - if (s != null) { - using (StreamReader sr = new StreamReader (s)) { - fragSource = sr.ReadToEnd (); - } - } - } - - if (!string.IsNullOrEmpty (GeomSourcePath)) { - s = Interface.GetStreamFromPath (GeomSourcePath); - if (s != null) { - using (StreamReader sr = new StreamReader (s)) { - geomSource = sr.ReadToEnd (); - } - } - } - } - void compileShader(uint shader, string source) - { - GL.ShaderSource(shader, source); - GL.CompileShader(shader); - - string info; - GL.GetShaderInfoLog((int)shader, out info); - Debug.WriteLine(info); - - int compileResult; - GL.GetShader(shader, ShaderParameter.CompileStatus, out compileResult); - if (compileResult != 1) - { - Debug.WriteLine("Compile Error!"); - Debug.WriteLine(source); - } - } - public override string ToString () - { - return string.Format ("{0} {1} {2}", VertSourcePath, FragSourcePath, GeomSourcePath); - } - #region IDisposable implementation - public virtual void Dispose () - { - if (GL.IsProgram (pgmId)) - GL.DeleteProgram (pgmId); - - if (GL.IsShader (vsId)) - GL.DeleteShader (vsId); - if (GL.IsShader (fsId)) - GL.DeleteShader (fsId); - if (GL.IsShader (gsId)) - GL.DeleteShader (gsId); - } - #endregion - } -} - diff --git a/GLCrow/Window.cs b/GLCrow/Window.cs deleted file mode 100644 index 19bf0db5..00000000 --- a/GLCrow/Window.cs +++ /dev/null @@ -1,519 +0,0 @@ -// -// OpenTKGameWindow.cs -// -// Author: -// Jean-Philippe Bruyère -// -// Copyright (c) 2016 jp -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . -using System; -using System.Runtime.InteropServices; -using System.Threading; -using Crow; -using Pencil.Gaming; -using Pencil.Gaming.Graphics; -using System.Diagnostics; - -namespace GLC -{ - public class Window: IValueChange, IDisposable - { - #region IValueChange implementation - public event EventHandler ValueChanged; - public virtual void NotifyValueChanged(string MemberName, object _value) - { - if (ValueChanged != null) - ValueChanged.Invoke(this, new ValueChangeEventArgs(MemberName, _value)); - } - #endregion - - GlfwWindowPtr winPtr; - - public Interface CrowInterface; - public Rectangle ClientRectangle; - - public string Title { - set { - Glfw.SetWindowTitle(winPtr, value); - } - } - - #region FPS & GPU info - int frameCpt = 0; - float elapsed = 0f, frameElapsed = 0f; - - int _fps = 0; - - public int fps { - get { return _fps; } - set { - if (_fps == value) - return; - - _fps = value; - - if (_fps > fpsMax) { - fpsMax = _fps; - ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMax", fpsMax)); - } - if (_fps < fpsMin) { - fpsMin = _fps; - ValueChanged.Raise(this, new ValueChangeEventArgs ("fpsMin", fpsMin)); - } - - ValueChanged.Raise(this, new ValueChangeEventArgs ("fps", _fps)); - #if MEASURE_TIME - ValueChanged.Raise (this, new ValueChangeEventArgs ("update", - this.CrowInterface.clippingTime.ElapsedTicks.ToString () + " ticks")); - ValueChanged.Raise (this, new ValueChangeEventArgs ("layouting", - this.CrowInterface.layoutTime.ElapsedTicks.ToString () + " ticks")); - ValueChanged.Raise (this, new ValueChangeEventArgs ("drawing", - this.CrowInterface.drawingTime.ElapsedTicks.ToString () + " ticks")); - #endif - } - } - - public int fpsMin = int.MaxValue; - public int fpsMax = 0; - float _frameTime; - float frameUpdateTime; - - public float frameTime - { - get { return _frameTime; } - set { - if (_frameTime == value) - return; - - _frameTime = value; - - if (_frameTime > frameMax) { - frameMax = _frameTime; - ValueChanged.Raise(this, new ValueChangeEventArgs ("frameMax", frameMax)); - } else if (_frameTime < frameMin) { - frameMin = _frameTime; - ValueChanged.Raise(this, new ValueChangeEventArgs ("frameMin", frameMin)); - } - - ValueChanged.Raise(this, new ValueChangeEventArgs ("frameTime", frameTime)); - } - } - - public float frameMax = 0f, frameMin = float.MaxValue; - - void resetFpsAndFrameTime () - { - frameMax = 0f; - frameMin = float.MaxValue; - fpsMin = int.MaxValue; - fpsMax = 0; - _fps = 0; - } - public string update = ""; - public string drawing = ""; - public string layouting = ""; - public int gpuFreeMem, gpuTotalMem, gpuDedicatedMem; - - public void onUpdateGPUMemInfo (object sender, MouseButtonEventArgs e) - { - - //GL.GetInteger ((GetPName NvxGpuMemoryInfo.GpuMemoryInfoCurrentAvailableVidmemNvx, out gpuFreeMem); - //GL.GetInteger ((GetPName)NvxGpuMemoryInfo.GpuMemoryInfoTotalAvailableMemoryNvx, out gpuTotalMem); - //GL.GetInteger ((GetPName)NvxGpuMemoryInfo.GpuMemoryInfoDedicatedVidmemNvx, out gpuDedicatedMem); - //NotifyValueChanged ("gpuFreeMem", gpuFreeMem / 1024); - //NotifyValueChanged ("gpuTotalMem", gpuTotalMem / 1024); - //NotifyValueChanged ("gpuDedicatedMem", gpuDedicatedMem / 1024); - } - public void onResetTimes (object sender, MouseButtonEventArgs e) - { - resetFpsAndFrameTime (); - } - #endregion - - #region ctor - public Window(int _width, int _height, int colors, int depth, int stencil, int samples, string _title="Crow") - { - ClientRectangle.Width = _width; - ClientRectangle.Height = _height; - - - CrowInterface = new Interface (); - Thread t = new Thread (interfaceThread); - t.IsBackground = true; - t.Start (); - - initGlfw (); - - Title = _title; - - OnResize (winPtr, _width, _height); - - initCrow (); - - OnLoad (); - } - - void onGlfwError (GlfwError code, string desc) - { - Debug.WriteLine (desc); - } - - #endregion - - void initGlfw(){ - if (!Glfw.Init ()) { - Console.Error.WriteLine ("ERROR: Could not initialize GLFW, shutting down."); - Environment.Exit (1); - } - Debug.WriteLine("GLFW: " + Glfw.GetVersionString ()); - // Create GLFW window. - - Glfw.WindowHint(WindowHint.Samples, 1); - Glfw.WindowHint(WindowHint.ContextVersionMajor, 3 ); - Glfw.WindowHint(WindowHint.ContextVersionMinor, 3); - Glfw.WindowHint (WindowHint.OpenGLProfile, (int)OpenGLProfile.Core); - - Glfw.SetErrorCallback(onGlfwError); - - winPtr = Glfw.CreateWindow (ClientRectangle.Width, ClientRectangle.Height, - "", GlfwMonitorPtr.Null, GlfwWindowPtr.Null); - - Glfw.SetKeyCallback (winPtr, OnKeyEvent); - Glfw.SetCursorPosCallback (winPtr, OnMouseMove); - Glfw.SetMouseButtonCallback (winPtr, OnMouseButton); - Glfw.SetFramebufferSizeCallback (winPtr, OnResize); - Glfw.SetScrollCallback (winPtr, OnScroll); - - // Enable the OpenGL context for the current window - Glfw.MakeContextCurrent (winPtr); - - Glfw.SwapInterval (0); - - GL.Enable (EnableCap.Blend); - GL.BlendFunc(BlendingFactorSrc.SrcAlpha, BlendingFactorDest.OneMinusSrcAlpha); - } - - - void updateFrameTimes(){ - frameTime = (float)Glfw.GetTime (); - - Glfw.SetTime (0.0); - - elapsed += _frameTime; - frameElapsed += _frameTime; - - if (frameElapsed >= frameUpdateTime) { - frameElapsed -= frameUpdateTime; - OnUpdateFrame (); - } - frameCpt++; - } - - #region Crow - #region graphic context - protected int texID; - Tetra.Shader shader; - public static GGL.vaoMesh quad; - - int[] pbos = new int[2]; - bool evenCycle = false; - Rectangle dirtyR; - - void createContext() - { - if (GL.IsTexture(texID)) - GL.DeleteTexture (texID); - GL.GenTextures(1, out texID); - GL.BindTexture(TextureTarget.Texture2D, texID); - - GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, - ClientRectangle.Width, ClientRectangle.Height, 0, - PixelFormat.Bgra, PixelType.UnsignedByte, CrowInterface.bmp); - - GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Nearest); - GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Nearest); - - initPBOs (); - } - void initPBOs(){ - if (GL.IsBuffer (pbos [0])) - GL.DeleteBuffers (2, pbos); - GL.GenBuffers (2, pbos); - GL.BindBuffer (BufferTarget.PixelUnpackBuffer, pbos [0]); - GL.BufferData (BufferTarget.PixelUnpackBuffer, (IntPtr)(ClientRectangle.Width * ClientRectangle.Height*4), - IntPtr.Zero, BufferUsageHint.StreamDraw); - GL.BindBuffer (BufferTarget.PixelUnpackBuffer, pbos [1]); - GL.BufferData (BufferTarget.PixelUnpackBuffer, (IntPtr)(ClientRectangle.Width * ClientRectangle.Height*4), - IntPtr.Zero, BufferUsageHint.StreamDraw); - GL.BindBuffer (BufferTarget.PixelUnpackBuffer, 0); - } - - void updatePBOs() - { - int pboMapped, pboDraw; - if (evenCycle) { - pboMapped = pbos [0]; - pboDraw = pbos [1]; - } else { - pboMapped = pbos [1]; - pboDraw = pbos [0]; - } - - GL.ActiveTexture (TextureUnit.Texture0); - GL.BindBuffer (BufferTarget.PixelUnpackBuffer, pboDraw); - - GL.TexSubImage2D (TextureTarget.Texture2D, 0, - dirtyR.Left, dirtyR.Top, - dirtyR.Width, dirtyR.Height, - PixelFormat.Bgra, PixelType.UnsignedByte, IntPtr.Zero); - - GL.BindBuffer (BufferTarget.PixelUnpackBuffer, pboMapped); - IntPtr ptrTexData = GL.MapBuffer (BufferTarget.PixelUnpackBuffer, BufferAccess.WriteOnly); - if (ptrTexData != IntPtr.Zero) { - dirtyR = CrowInterface.DirtyRect; - Marshal.Copy (CrowInterface.dirtyBmp, 0, ptrTexData, CrowInterface.dirtyBmp.Length); - GL.UnmapBuffer (BufferTarget.PixelUnpackBuffer); - } - - GL.BindBuffer (BufferTarget.PixelUnpackBuffer, 0); - evenCycle = !evenCycle; - } - #endregion - void interfaceThread() - { - CrowInterface.Quit += Quit; - CrowInterface.MouseCursorChanged += CrowInterface_MouseCursorChanged; - - while (true) { - CrowInterface.Update (); - Thread.Sleep (1); - } - } - void initCrow(){ - shader = new Tetra.Shader (); - shader.Enable(); - shader.SetMVP(Pencil.Gaming.MathUtils.Matrix.CreateOrthographicOffCenter (-0.5f, 0.5f, -0.5f, 0.5f, 1, -1)); - GL.UseProgram(0); - quad = new GGL.vaoMesh (0, 0, 0, 1, 1, 1, -1); - } - void updateCrow(){ - if (!Monitor.TryEnter (CrowInterface.RenderMutex)) - return; - GL.ActiveTexture (TextureUnit.Texture0); - GL.BindTexture (TextureTarget.Texture2D, texID); - if (CrowInterface.IsDirty) { - GL.TexSubImage2D (TextureTarget.Texture2D, 0, - CrowInterface.DirtyRect.Left, CrowInterface.DirtyRect.Top, - CrowInterface.DirtyRect.Width, CrowInterface.DirtyRect.Height, - PixelFormat.Bgra, PixelType.UnsignedByte, CrowInterface.dirtyBmp); - //TODO:use pbo - //updatePBOs (); - CrowInterface.IsDirty = false; - } - Monitor.Exit (CrowInterface.RenderMutex); - } - void drawCrow(){ - //bool blend = GL.GetBoolean (GetPName.Blend); - // bool depthTest = GL.GetBoolean (GetPName.DepthTest); - GL.ActiveTexture (TextureUnit.Texture0); - GL.BindTexture (TextureTarget.Texture2D, texID); - GL.Enable (EnableCap.Blend); - GL.Disable (EnableCap.DepthTest); - shader.Enable (); - quad.Render (BeginMode.TriangleStrip); - GL.BindTexture(TextureTarget.Texture2D, 0); - shader.Disable (); - - // if (!blend) - // GL.Disable (EnableCap.Blend); - // if (depthTest) - // GL.Enable (EnableCap.DepthTest); - - } - #endregion - - public void Quit (object sender, EventArgs e) - { - //this.Exit (); - } - void CrowInterface_MouseCursorChanged (object sender, MouseCursorChangedEventArgs e) - { - - //this.Cursor = new MouseCursor( - // (int)e.NewCursor.Xhot, - // (int)e.NewCursor.Yhot, - // (int)e.NewCursor.Width, - // (int)e.NewCursor.Height, - // e.NewCursor.data); - } - - - - public virtual void Run (int targetFrameRate) { - frameUpdateTime = 1f / (float)targetFrameRate; - - Glfw.SetTime (0.0); - while (!Glfw.WindowShouldClose (winPtr)) { - Glfw.PollEvents (); - - updateFrameTimes (); - - if (Glfw.GetKey (winPtr, Pencil.Gaming.Key.Escape)) { - Glfw.SetWindowShouldClose (winPtr, true); - } - - GLClear (); - - OnRender (); - - drawCrow (); - - // Swap the front and back buffer, displaying the scene - Glfw.SwapBuffers (winPtr); - } - } - - public virtual void GLClear() - { - GL.ClearColor (0.1f,0.1f,0.1f,0.1f); - GL.Clear (ClearBufferMask.ColorBufferBit|ClearBufferMask.DepthBufferBit); - } - public virtual void OnLoad() - { - } - public virtual void OnRender () - { - } - - - protected virtual void OnUpdateFrame() - { - if (elapsed >= 1f) { - fps = frameCpt; - elapsed -= 1f; - frameCpt = 0; - } - //resetFpsAndFrameTime (); - - updateCrow (); - } - protected virtual void OnResize (GlfwWindowPtr wnd, int width, int height) - { - ClientRectangle.Width = width; - ClientRectangle.Height = height; - - CrowInterface.ProcessResize ( - new Rectangle ( - this.ClientRectangle.X, - this.ClientRectangle.Y, - this.ClientRectangle.Width, - this.ClientRectangle.Height)); - createContext (); - GL.Viewport (0, 0, ClientRectangle.Width, ClientRectangle.Height); - } - - public virtual void Dispose () - { - if (GL.IsTexture (texID)) - GL.DeleteTexture (texID); - if (GL.IsBuffer (pbos [0])) - GL.DeleteBuffers (2, pbos); - - // Finally, clean up Glfw, and close the window - Glfw.Terminate (); - } - - #region Mouse Handling - protected virtual void OnMouseMove (GlfwWindowPtr wnd, double x, double y) - { - CrowInterface.ProcessMouseMove ((int)x, (int)y); - } - - protected virtual void OnMouseButton (GlfwWindowPtr wnd, Pencil.Gaming.MouseButton btn, KeyAction action) - { - switch (action) { - case KeyAction.Release: - CrowInterface.ProcessMouseButtonUp ((int)btn); - break; - case KeyAction.Press: - CrowInterface.ProcessMouseButtonDown ((int)btn); - break; - case KeyAction.Repeat: - break; - } - } - protected virtual void OnScroll (GlfwWindowPtr wnd, double xoffset, double yoffset) - { - CrowInterface.ProcessMouseWheelChanged ((float)yoffset); - } - - //void update_mouseButtonStates(ref MouseState e, OpenTK.Input.MouseState otk_e){ - // for (int i = 0; i < MouseState.MaxButtons; i++) { - // if (otk_e.IsButtonDown ((OpenTK.Input.MouseButton)i)) - // e.EnableBit (i); - // } - //} - //void Mouse_Move(object sender, OpenTK.Input.MouseMoveEventArgs otk_e) - // { - // if (!CrowInterface.ProcessMouseMove (otk_e.X, otk_e.Y)) - // MouseMove.Raise (sender, otk_e); - // } - //void Mouse_ButtonUp(object sender, OpenTK.Input.MouseButtonEventArgs otk_e) - // { - // if (!CrowInterface.ProcessMouseButtonUp ((int)otk_e.Button)) - // MouseButtonUp.Raise (sender, otk_e); - // } - //void Mouse_ButtonDown(object sender, OpenTK.Input.MouseButtonEventArgs otk_e) - //{ - // if (!CrowInterface.ProcessMouseButtonDown ((int)otk_e.Button)) - // MouseButtonDown.Raise (sender, otk_e); - // } - //void Mouse_WheelChanged(object sender, OpenTK.Input.MouseWheelEventArgs otk_e) - // { - // if (!CrowInterface.ProcessMouseWheelChanged (otk_e.DeltaPrecise)) - // MouseWheelChanged.Raise (sender, otk_e); - // } - #endregion - - #region keyboard Handling - - protected virtual void OnKeyEvent (GlfwWindowPtr wnd,Pencil.Gaming.Key key,int scanCode,KeyAction action,Pencil.Gaming.KeyModifiers mods) - { - switch (action) { - case KeyAction.Release: - CrowInterface.ProcessKeyUp ((int)key); - break; - case KeyAction.Press: - CrowInterface.ProcessKeyDown ((int)key); - break; - } - } - //void Keyboard_KeyDown(object sender, OpenTK.Input.KeyboardKeyEventArgs otk_e) - //{ - // if (!CrowInterface.ProcessKeyDown((int)otk_e.Key)) - // KeyboardKeyDown.Raise (this, otk_e); - // } - //void Keyboard_KeyUp(object sender, OpenTK.Input.KeyboardKeyEventArgs otk_e) - //{ - // if (!CrowInterface.ProcessKeyUp((int)otk_e.Key)) - // KeyboardKeyUp.Raise (this, otk_e); - //} - //void OpenTKGameWindow_KeyPress (object sender, OpenTK.KeyPressEventArgs e) - //{ - // CrowInterface.ProcessKeyPress (e.KeyChar); - //} - #endregion - } -} diff --git a/GLCrow/packages.config b/GLCrow/packages.config deleted file mode 100644 index d77cff2a..00000000 --- a/GLCrow/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/GLCrow/vaoMesh.cs b/GLCrow/vaoMesh.cs deleted file mode 100644 index 05288d8c..00000000 --- a/GLCrow/vaoMesh.cs +++ /dev/null @@ -1,599 +0,0 @@ -using System; -using System.Runtime.InteropServices; -using System.Collections.Generic; -using System.IO; -using System.Threading; -using System.Diagnostics; -using System.Linq; -using Pencil.Gaming.MathUtils; -using Pencil.Gaming.Graphics; - -namespace GGL -{ - public class vaoMesh : IDisposable - { - public int vaoHandle, - positionVboHandle, - normalsVboHandle, - texVboHandle, - matVboHandle, - eboHandle; - - public Vector3[] positions; - public Vector3[] normals; - public Vector2[] texCoords; - public Matrix[] modelMats; - public int[] indices; - - public string Name = "Unamed"; - - public vaoMesh() - { - } - - public vaoMesh (Vector3[] _positions, Vector2[] _texCoord, int[] _indices) - { - positions = _positions; - texCoords = _texCoord; - indices = _indices; - - CreateVBOs (); - CreateVAOs (); - } - - public vaoMesh (Vector3[] _positions, Vector2[] _texCoord, Vector3[] _normales, int[] _indices, Matrix[] _modelMats = null) - { - positions = _positions; - texCoords = _texCoord; - normals = _normales; - indices = _indices; - modelMats = _modelMats; - - - CreateVBOs (); - CreateVAOs (); - } - - public vaoMesh (float x, float y, float z, float width, float height, float TileX = 1f, float TileY = 1f) - { - positions = - new Vector3[] { - new Vector3 (x - width / 2, y + height / 2, z), - new Vector3 (x - width / 2, y - height / 2, z), - new Vector3 (x + width / 2, y + height / 2, z), - new Vector3 (x + width / 2, y - height / 2, z) - }; - texCoords = new Vector2[] { - new Vector2 (0, TileY), - new Vector2 (0, 0), - new Vector2 (TileX, TileY), - new Vector2 (TileX, 0) - }; - normals = new Vector3[] { - Vector3.UnitZ, - Vector3.UnitZ, - Vector3.UnitZ, - Vector3.UnitZ - }; - indices = new int[] { 0, 1, 2, 3 }; - - CreateVBOs (); - CreateVAOs (); - } - public void CreateBuffers(){ - CreateVBOs (); - CreateVAOs (); - } - protected void CreateVBOs() - { - positionVboHandle = GL.GenBuffer(); - GL.BindBuffer(BufferTarget.ArrayBuffer, positionVboHandle); - GL.BufferData(BufferTarget.ArrayBuffer, - new IntPtr(positions.Length * Vector3.SizeInBytes), - positions, BufferUsageHint.StaticDraw); - - if (normals != null) { - normalsVboHandle = GL.GenBuffer (); - GL.BindBuffer (BufferTarget.ArrayBuffer, normalsVboHandle); - GL.BufferData (BufferTarget.ArrayBuffer, - new IntPtr (normals.Length * Vector3.SizeInBytes), - normals, BufferUsageHint.StaticDraw); - } - - if (texCoords != null) { - texVboHandle = GL.GenBuffer (); - GL.BindBuffer (BufferTarget.ArrayBuffer, texVboHandle); - GL.BufferData (BufferTarget.ArrayBuffer, - new IntPtr (texCoords.Length * Vector2.SizeInBytes), - texCoords, BufferUsageHint.StaticDraw); - } - - if (modelMats != null) { - matVboHandle = GL.GenBuffer (); - GL.BindBuffer (BufferTarget.ArrayBuffer, matVboHandle); - GL.BufferData (BufferTarget.ArrayBuffer, - new IntPtr (modelMats.Length * Vector4.SizeInBytes * 4), - modelMats, BufferUsageHint.DynamicDraw); - } - - GL.BindBuffer(BufferTarget.ArrayBuffer, 0); - - if (indices != null) { - eboHandle = GL.GenBuffer (); - GL.BindBuffer (BufferTarget.ElementArrayBuffer, eboHandle); - GL.BufferData (BufferTarget.ElementArrayBuffer, - new IntPtr (sizeof(uint) * indices.Length), - indices, BufferUsageHint.StaticDraw); - GL.BindBuffer(BufferTarget.ElementArrayBuffer, 0); - } - } - protected void CreateVAOs() - { - vaoHandle = GL.GenVertexArray(); - GL.BindVertexArray(vaoHandle); - - GL.EnableVertexAttribArray(0); - GL.BindBuffer(BufferTarget.ArrayBuffer, positionVboHandle); - GL.VertexAttribPointer(0, 3, VertexAttribPointerType.Float, true, Vector3.SizeInBytes, 0); - - if (texCoords != null) { - GL.EnableVertexAttribArray (1); - GL.BindBuffer (BufferTarget.ArrayBuffer, texVboHandle); - GL.VertexAttribPointer (1, 2, VertexAttribPointerType.Float, true, Vector2.SizeInBytes, 0); - } - if (normals != null) { - GL.EnableVertexAttribArray (2); - GL.BindBuffer (BufferTarget.ArrayBuffer, normalsVboHandle); - GL.VertexAttribPointer (2, 3, VertexAttribPointerType.Float, true, Vector3.SizeInBytes, 0); - } -// if (modelMats != null) { -// GL.VertexAttribDivisor (4, 1); -// for (int i = 0; i < 4; i++) { -// GL.EnableVertexAttribArray (4 + i); -// GL.VertexAttribBinding (4+i, 4); -// GL.VertexAttribFormat(4+i, 4, VertexAttribType.Float, false, Vector4.SizeInBytes * i); -// } -// GL.BindVertexBuffer (4, matVboHandle, IntPtr.Zero, Vector4.SizeInBytes*4); -// } - - if (indices != null) - GL.BindBuffer(BufferTarget.ElementArrayBuffer, eboHandle); - - GL.BindVertexArray(0); - } - - public void Render( BeginMode _primitiveType){ - GL.BindVertexArray(vaoHandle); - if (indices == null) - GL.DrawArrays (_primitiveType, 0, positions.Length); - else - GL.DrawElements(_primitiveType, indices.Length, - DrawElementsType.UnsignedInt, IntPtr.Zero); - GL.BindVertexArray (0); - } - public void Render(BeginMode _primitiveType, int[] _customIndices){ - GL.BindVertexArray(vaoHandle); - GL.DrawElements(_primitiveType, _customIndices.Length, - DrawElementsType.UnsignedInt, _customIndices); - GL.BindVertexArray (0); - } - public void Render(BeginMode _primitiveType, int instances){ - - GL.BindVertexArray(vaoHandle); - GL.DrawElementsInstanced(_primitiveType, indices.Length, - DrawElementsType.UnsignedInt, IntPtr.Zero, instances); - GL.BindVertexArray (0); - } - - public static vaoMesh operator +(vaoMesh m1, vaoMesh m2){ - if (m1 == null) - return m2; - if (m2 == null) - return m1; - - vaoMesh res = new vaoMesh (); - - m1.Dispose (); - m2.Dispose (); - - if (m1.positions == null) { - res.positions = m2.positions; - res.texCoords = m2.texCoords; - res.normals = m2.normals; - res.indices = m2.indices; - } else { - int offset = m1.positions.Length; - - res.positions = new Vector3[m1.positions.Length + m2.positions.Length]; - m1.positions.CopyTo (res.positions, 0); - m2.positions.CopyTo (res.positions, m1.positions.Length); - - if (m1.texCoords != null) { - res.texCoords = new Vector2[m1.texCoords.Length + m2.texCoords.Length]; - m1.texCoords.CopyTo (res.texCoords, 0); - m2.texCoords.CopyTo (res.texCoords, m1.texCoords.Length); - } - - if (m1.normals != null) { - res.normals = new Vector3[m1.normals.Length + m2.normals.Length]; - m1.normals.CopyTo (res.normals, 0); - m2.normals.CopyTo (res.normals, m1.normals.Length); - } - - res.indices = new int[m1.indices.Length + m2.indices.Length]; - m1.indices.CopyTo (res.indices, 0); - for (int i = 0; i < m2.indices.Length; i++) { - if (m2.indices [i] == int.MaxValue) - res.indices [i + m1.indices.Length] = int.MaxValue; - else - res.indices [i + m1.indices.Length] = m2.indices [i] + offset; - } - } - return res; - } - - #region IDisposable implementation - public void Dispose () - { - GL.DeleteBuffer (positionVboHandle); - GL.DeleteBuffer (normalsVboHandle); - GL.DeleteBuffer (texVboHandle); - GL.DeleteBuffer (matVboHandle); - GL.DeleteBuffer (eboHandle); - GL.DeleteVertexArray (vaoHandle); - } - #endregion - - public static vaoMesh CreateGrid(int gridSize) - { - const float z = 0.0f; - const int IdxPrimitiveRestart = int.MaxValue; - - Vector3[] positionVboData; - int[] indicesVboData; - Vector2[] texVboData; - - positionVboData = new Vector3[gridSize * gridSize]; - texVboData = new Vector2[gridSize * gridSize]; - indicesVboData = new int[(gridSize * 2 + 1) * gridSize]; - - for (int y = 0; y < gridSize; y++) { - for (int x = 0; x < gridSize; x++) { - positionVboData [gridSize * y + x] = new Vector3 (x, y, z); - texVboData [gridSize * y + x] = new Vector2 ((float)x*0.5f, (float)y*0.5f); - - if (y < gridSize-1) { - indicesVboData [(gridSize * 2 + 1) * y + x*2] = gridSize * y + x; - indicesVboData [(gridSize * 2 + 1) * y + x*2 + 1] = gridSize * (y+1) + x; - } - - if (x == gridSize-1) { - indicesVboData [(gridSize * 2 + 1) * y + x*2 + 2] = IdxPrimitiveRestart; - } - } - } - return new vaoMesh (positionVboData, texVboData, null,indicesVboData); -// vaoMesh tmp = new vaoMesh (positionVboData, texVboData, null); -// tmp.indices = indicesVboData; -// return tmp; - } - - static List objPositions; - static List objNormals; - static List objTexCoords; - static List lPositions; - static List lNormals; - static List lTexCoords; - static List lIndices; - - public static vaoMesh Load(string fileName) - { - objPositions = new List(); - objNormals = new List(); - objTexCoords = new List(); - lPositions = new List(); - lNormals = new List(); - lTexCoords = new List(); - lIndices = new List (); - - string name = "unamed"; - using (StreamReader Reader = new StreamReader(fileName)) - { - System.Globalization.CultureInfo savedCulture = Thread.CurrentThread.CurrentCulture; - Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; - - string line; - while ((line = Reader.ReadLine()) != null) - { - line = line.Trim(splitCharacters); - line = line.Replace(" ", " "); - - string[] parameters = line.Split(splitCharacters); - - switch (parameters[0]) - { - case "o": - name = parameters[1]; - break; - case "p": // Point - break; - case "v": // Vertex - float x = float.Parse(parameters[1]); - float y = float.Parse(parameters[2]); - float z = float.Parse(parameters[3]); - - objPositions.Add(new Vector3(x, y, z)); - break; - case "vt": // TexCoord - float u = float.Parse(parameters[1]); - float v = float.Parse(parameters[2]); - objTexCoords.Add(new Vector2(u, v)); - break; - - case "vn": // Normal - float nx = float.Parse(parameters[1]); - float ny = float.Parse(parameters[2]); - float nz = float.Parse(parameters[3]); - objNormals.Add(new Vector3(nx, ny, nz)); - break; - - case "f": - switch (parameters.Length) - { - case 4: - - lIndices.Add(ParseFaceParameter(parameters[1])); - lIndices.Add(ParseFaceParameter(parameters[2])); - lIndices.Add(ParseFaceParameter(parameters[3])); - break; - - case 5: - lIndices.Add(ParseFaceParameter(parameters[1])); - lIndices.Add(ParseFaceParameter(parameters[2])); - lIndices.Add(ParseFaceParameter(parameters[3])); - lIndices.Add(ParseFaceParameter(parameters[4])); - break; - } - break; - - case "usemtl": - Debug.WriteLine ("usemtl: {0}", parameters [1]); -// if (parameters.Length > 1) -// name = parameters[1]; -// -// currentFaceGroup.material = model.materials.Find( -// delegate(Material m) -// { -// return m.Name == name; -// }); - - break; - case "mtllib": - Debug.WriteLine ("usemtl: {0}", parameters [1]); -// model.mtllib = parameters[1]; -// string mtlPath = System.IO.Path.GetDirectoryName(fileName) -// + System.IO.Path.DirectorySeparatorChar -// + model.mtllib; -// -// if (System.IO.File.Exists(mtlPath)) -// { -// model.materials = ObjMeshLoader.LoadMtl(mtlPath); -// -// //mesh.materials[0].InitMaterial(); -// } - break; - case "#": -// if (parameters.Length > 1) -// { -// if (parameters[1] == "object") -// { -// if (currentMesh != null) -// { -// if (currentFaceGroup != null) -// { -// currentFaceGroup.Triangles = triangles.ToArray(); -// currentFaceGroup.Quads = quads.ToArray(); -// -// currentMesh.Faces.Add(currentFaceGroup); -// } -// -// currentMesh.Vertices = objVertices.ToArray(); -// objVertices.Clear(); -// -// faces.Add(currentMesh); -// } -// currentMesh = new Mesh(); -// currentMesh.name = parameters[2]; -// } -// } - break; - } - } - -// if (currentFaceGroup != null) -// { -// currentFaceGroup.Triangles = triangles.ToArray(); -// currentFaceGroup.Quads = quads.ToArray(); -// currentMesh.Faces.Add(currentFaceGroup); -// } -// if (currentMesh != null) -// { -// currentMesh.Vertices = objVertices.ToArray(); -// faces.Add(currentMesh); -// } -// model.meshes.Add(faces.ToArray()); - Thread.CurrentThread.CurrentCulture = savedCulture; - } - - vaoMesh tmp = new vaoMesh(lPositions.ToArray (),lTexCoords.ToArray (), - lNormals.ToArray (),lIndices.ToArray ()); - - tmp.Name = name; - - objPositions.Clear(); - objNormals.Clear(); - objTexCoords.Clear(); - lPositions.Clear(); - lNormals.Clear(); - lTexCoords.Clear(); - lIndices.Clear(); - - return tmp; - } - -// public static List LoadMtl(string fileName) -// { -// using (StreamReader streamReader = new StreamReader(fileName)) -// { -// return LoadMtl(streamReader); -// } -// } - - static char[] splitCharacters = new char[] { ' ' }; - - - - static int ParseFaceParameter(string faceParameter) - { - Vector3 vertex = new Vector3(); - Vector2 texCoord = new Vector2(); - Vector3 normal = new Vector3(); - - string[] parameters = faceParameter.Split(faceParamaterSplitter); - - int vertexIndex = int.Parse(parameters[0]); - if (vertexIndex < 0) vertexIndex = objPositions.Count + vertexIndex; - else vertexIndex = vertexIndex - 1; - vertex = objPositions[vertexIndex]; - - if (parameters.Length > 1) - { - int texCoordIndex; - if (int.TryParse(parameters[1], out texCoordIndex)) - { - if (texCoordIndex < 0) texCoordIndex = objTexCoords.Count + texCoordIndex; - else texCoordIndex = texCoordIndex - 1; - texCoord = objTexCoords[texCoordIndex]; - } - } - - if (parameters.Length > 2) - { - int normalIndex; - if (int.TryParse(parameters[2], out normalIndex)) - { - if (normalIndex < 0) normalIndex = objNormals.Count + normalIndex; - else normalIndex = normalIndex - 1; - normal = objNormals[normalIndex]; - } - } - - - lPositions.Add(vertex); - lTexCoords.Add(texCoord); - lNormals.Add(normal); - - - int index = lPositions.Count-1; - return index; - - //if (objVerticesIndexDictionary.TryGetValue(newObjVertex, out index)) - //{ - // return index; - //} - //else - //{ - // objVertices.Add(newObjVertex); - // objVerticesIndexDictionary[newObjVertex] = objVertices.Count - 1; - // return objVertices.Count - 1; - //} - } -// static List LoadMtl(TextReader textReader) -// { -// Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture; -// List Materials = new List(); -// Material currentMat = null; -// -// string line; -// while ((line = textReader.ReadLine()) != null) -// { -// line = line.Trim(splitCharacters); -// line = line.Replace(" ", " "); -// -// string[] parameters = line.Split(splitCharacters); -// -// switch (parameters[0]) -// { -// case "newmtl": -// if (currentMat != null) -// Materials.Add(currentMat); -// currentMat = new Material(); -// if (parameters.Length > 1) -// currentMat.Name = parameters[1]; -// break; -// case "Ka": -// currentMat.Ambient = new Color ( -// float.Parse(parameters[1]), -// float.Parse(parameters[2]), -// float.Parse(parameters[3]),1.0f -// ); -// break; -// case "Kd": -// currentMat.Diffuse = new Color ( -// float.Parse(parameters[1]), -// float.Parse(parameters[2]), -// float.Parse(parameters[3]),1.0f -// ); -// break; -// case "Ks": -// currentMat.Specular = new Color ( -// float.Parse(parameters[1]), -// float.Parse(parameters[2]), -// float.Parse(parameters[3]),1.0f -// ); -// break; -// case "d": -// case "Tr": -// currentMat.Transparency = float.Parse(parameters[1]); -// break; -// case "map_Ka": -// currentMat.AmbientMap = new Texture(parameters[parameters.Length - 1]); -// break; -// case "map_Kd": -// currentMat.DiffuseMap = new Texture(parameters[parameters.Length - 1]); -// break; -// case "map_Ks": -// currentMat.SpecularMap = new Texture(parameters[parameters.Length - 1]); -// break; -// case "map_Ns": -// currentMat.SpecularHighlightMap = new Texture(parameters[parameters.Length - 1]); -// break; -// case "map_d": -// currentMat.AlphaMap = new Texture(parameters[parameters.Length - 1]); -// break; -// case "map_bump": -// case "bump": -// currentMat.BumpMap = new Texture(parameters[parameters.Length - 1]); -// break; -// case "disp": -// currentMat.DisplacementMap = new Texture(parameters[parameters.Length - 1]); -// break; -// case "decal": -// currentMat.StencilDecalMap = new Texture(parameters[parameters.Length - 1]); -// break; -// } -// -// } -// -// if (currentMat != null) -// Materials.Add(currentMat); -// -// return Materials; -// } -// - - static char[] faceParamaterSplitter = new char[] { '/' }; - - } - -} diff --git a/GOMLViewer/GOMLViewer.csproj b/GOMLViewer/GOMLViewer.csproj deleted file mode 100644 index 51e9f7ab..00000000 --- a/GOMLViewer/GOMLViewer.csproj +++ /dev/null @@ -1,60 +0,0 @@ - - - - Debug - AnyCPU - {86F6BF2A-E449-4B3E-813B-9ACC37E5545F};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} - 8.0.30703 - 2.0 - {2FB6DD19-817A-476D-A99D-7750798944A6} - Library - GOMLViewer - GOMLViewer - /usr/local/lib/monodevelop/bin - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - - - full - true - bin\Release - prompt - 4 - false - - - - - - - - - - - - - - - - - - - - {C2980F9B-4798-4C05-99E2-E174810F7C7B} - GOLib - - - - - ..\..\opentk\Binaries\OpenTK\Release\OpenTK.dll - - - \ No newline at end of file diff --git a/GOMLViewer/Properties/AddinInfo.cs b/GOMLViewer/Properties/AddinInfo.cs deleted file mode 100644 index b95864e0..00000000 --- a/GOMLViewer/Properties/AddinInfo.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using Mono.Addins; -using Mono.Addins.Description; - -[assembly:Addin ( - "GOMLViewer", - Namespace = "GOMLViewer", - Version = "1.0" -)] - -[assembly:AddinName ("GOMLViewer")] -[assembly:AddinCategory ("IDE extensions")] -[assembly:AddinDescription ("GOMLViewer")] -[assembly:AddinAuthor ("Jean-Philippe Bruyère")] - diff --git a/GOMLViewer/Properties/AssemblyInfo.cs b/GOMLViewer/Properties/AssemblyInfo.cs deleted file mode 100644 index 6f7ee5bf..00000000 --- a/GOMLViewer/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,47 +0,0 @@ -// -// AssemblyInfo.cs -// -// Author: -// Jean-Philippe Bruyère -// -// Copyright (c) 2015 jp -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . -using System.Reflection; -using System.Runtime.CompilerServices; - -// Information about this assembly is defined by the following attributes. -// Change them to the values specific to your project. - -[assembly: AssemblyTitle ("GOMLViewer")] -[assembly: AssemblyDescription ("")] -[assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("")] -[assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("jp")] -[assembly: AssemblyTrademark ("")] -[assembly: AssemblyCulture ("")] - -// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". -// The form "{Major}.{Minor}.*" will automatically update the build and revision, -// and "{Major}.{Minor}.{Build}.*" will update just the revision. - -[assembly: AssemblyVersion ("1.0.*")] - -// The following attributes are used to specify the signing key for the assembly, -// if desired. See the Mono documentation for more information about signing. - -//[assembly: AssemblyDelaySign(false)] -//[assembly: AssemblyKeyFile("")] - diff --git a/GOMLViewer/Properties/Manifest.addin.xml b/GOMLViewer/Properties/Manifest.addin.xml deleted file mode 100644 index 3644a146..00000000 --- a/GOMLViewer/Properties/Manifest.addin.xml +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - diff --git a/GOMLViewer/packages.config b/GOMLViewer/packages.config deleted file mode 100644 index f853e235..00000000 --- a/GOMLViewer/packages.config +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/GOMLViewer/src/DisplayBinding.cs b/GOMLViewer/src/DisplayBinding.cs deleted file mode 100644 index 7749fb60..00000000 --- a/GOMLViewer/src/DisplayBinding.cs +++ /dev/null @@ -1,79 +0,0 @@ -// -// DisplayBinding.cs -// -// Author: -// Jean-Philippe Bruyère -// -// Copyright (c) 2015 jp -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with this program. If not, see . - -// -// DisplayBinding.cs -// -// Author: -// Mike Krüger -// -// Copyright (c) 2009 Novell, Inc (http://www.novell.com) -// -// 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.IO; -using MonoDevelop.Core; -using MonoDevelop.Ide.Gui; -using MonoDevelop.Projects; -using System.Globalization; -using System.Diagnostics; - -namespace MonoDevelop.GOLib -{ - class GOLibDisplayBinding : IViewDisplayBinding - { - bool canHandle = false; - - public string Name { - get { - return GettextCatalog.GetString ("GOLib designer"); - } - } - public bool CanUseAsDefault - { get { return canHandle; } } - - public IViewContent CreateContent (FilePath fileName, string mimeType, Project ownerProject) - { - return new GOLibView (); - } - public bool CanHandle (FilePath fileName, string mimeType, Project ownerProject) - { - canHandle = mimeType.StartsWith("text/x-goml"); - return true; - } - } -} diff --git a/GOMLViewer/src/GOLibGtkHost.cs b/GOMLViewer/src/GOLibGtkHost.cs deleted file mode 100644 index d820327c..00000000 --- a/GOMLViewer/src/GOLibGtkHost.cs +++ /dev/null @@ -1,550 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using go; -using MonoDevelop.Core; -using MonoDevelop.Ide; -using MonoDevelop.Projects; -using System.Diagnostics; -using OpenTK.Input; -using MonoDevelop.DesignerSupport; - -namespace MonoDevelop.GOLib -{ - public class GOLibGtkHost : Gtk.DrawingArea, ILayoutable, IGOLibHost, IPropertyPadProvider - { - #region IPropertyPadProvider implementation - - public object GetActiveComponent () - { - return activeWidget; - } - public object GetProvider () - { - return activeWidget; - } - public void OnEndEditing (object obj) - { - - } - public void OnChanged (object obj) - { - - } - #endregion - - #region Events - //those events are raised only if mouse isn't in a graphic object - public event EventHandler MouseWheelChanged; - public event EventHandler MouseButtonUp; - public event EventHandler MouseButtonDown; - public event EventHandler MouseClick; - public event EventHandler MouseMove; - #endregion - - string _path; - GraphicObject goWidget; - - public GOLibGtkHost () - { - this.Drawn += onExpose; - this.ButtonPressEvent += GOLibGtkHost_ButtonPressEvent; - this.ButtonReleaseEvent += GOLibGtkHost_ButtonReleaseEvent; - this.MotionNotifyEvent += GOLibGtkHost_MotionNotifyEvent; - - this.Events |= Gdk.EventMask.ButtonPressMask | Gdk.EventMask.ButtonReleaseMask | - Gdk.EventMask.PointerMotionMask | Gdk.EventMask.PointerMotionHintMask; - } - static double[] dashed = {2.0}; - - void onExpose(object o, Gtk.DrawnArgs args) - { - Gtk.DrawingArea area = (Gtk.DrawingArea) o; - - Cairo.Context cr = args.Cr; - _redrawClip.AddRectangle (this.ClientRectangle); - update (cr); - - if (_hoverWidget != null) { - cr.Rectangle (_hoverWidget.ScreenCoordinates(_hoverWidget.getSlot ())); - cr.LineWidth = 1; - cr.SetDash (dashed, 0); - cr.Color = go.Color.Yellow; - cr.Stroke (); - } - ((IDisposable) cr.Target).Dispose(); - ((IDisposable) cr).Dispose(); - } - // TODO: should find a more safer way to link gtk button to otk. - void GOLibGtkHost_ButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) - { - MouseButtonEventArgs e = new MouseButtonEventArgs - ((int)args.Event.X, (int)args.Event.Y, - gtkButtonIdToOpenTkButton(args.Event.Button), true); - activeWidget = hoverWidget; - DesignerSupport.DesignerSupport.Service.SetPadContent (this); - } - void GOLibGtkHost_ButtonReleaseEvent (object o, Gtk.ButtonReleaseEventArgs args) - { - MouseButtonEventArgs e = new MouseButtonEventArgs - ((int)args.Event.X, (int)args.Event.Y, - gtkButtonIdToOpenTkButton(args.Event.Button), false); - } - int lastX,LastY; - void GOLibGtkHost_MotionNotifyEvent (object o, Gtk.MotionNotifyEventArgs args) - { - - Mouse_Move(this, new MouseMoveEventArgs ( - (int)args.Event.X,(int)args.Event.Y, - (int)args.Event.X-lastX, (int)args.Event.Y-LastY - )); - lastX = (int)args.Event.X; - LastY = (int)args.Event.Y; - - QueueDraw (); - } - - MouseButton gtkButtonIdToOpenTkButton(uint gtkMouseButton) - { - switch (gtkMouseButton) { - case 1: - return MouseButton.Left; - case 2: - return MouseButton.Middle; - case 3: - return MouseButton.Right; - case 4: - return MouseButton.Button4; - case 5: - return MouseButton.Button5; - } - return MouseButton.LastButton; - } - - - - public void Load(string path) - { - goWidget = Interface.Load (path); - this.AddWidget (goWidget); - } - - - - public List GraphicObjects = new List(); - public Color Background = Color.Transparent; - - Rectangles _redrawClip = new Rectangles();//should find another way to access it from child - List _gobjsToRedraw = new List(); - - public Rectangles redrawClip { - get { - return _redrawClip; - } - set { - _redrawClip = value; - } - } - public List gobjsToRedraw { - get { - return _gobjsToRedraw; - } - set { - _gobjsToRedraw = value; - } - } - - #region focus - - GraphicObject _activeWidget; //button is pressed on widget - GraphicObject _hoverWidget; //mouse is over - GraphicObject _focusedWidget; //has keyboard (or other perif) focus - - public GraphicObject activeWidget - { - get { return _activeWidget; } - set - { - if (_activeWidget == value) - return; - - _activeWidget = value; - } - } - public GraphicObject hoverWidget - { - get { return _hoverWidget; } - set { _hoverWidget = value; } - } - public GraphicObject FocusedWidget { - get { return _focusedWidget; } - set { - if (_focusedWidget == value) - return; - if (_focusedWidget != null) - _focusedWidget.onUnfocused (this, null); - _focusedWidget = value; - _focusedWidget.onFocused (this, null); - } - } - - #endregion - - Rectangle dirtyZone = Rectangle.Empty; - - #region Chrono's - public Stopwatch updateTime = new Stopwatch (); - public Stopwatch layoutTime = new Stopwatch (); - public Stopwatch guTime = new Stopwatch (); - public Stopwatch drawingTime = new Stopwatch (); - #endregion - - #region update - void update (Cairo.Context ctx) - { - updateTime.Restart (); - layoutTime.Reset (); - guTime.Reset (); - drawingTime.Reset (); - - GraphicObject[] invGOList = new GraphicObject[GraphicObjects.Count]; - GraphicObjects.CopyTo (invGOList,0); - invGOList = invGOList.Reverse ().ToArray (); - - //Debug.WriteLine ("======= Layouting queue start ======="); - while (Interface.LayoutingQueue.Count > 0) { - LayoutingQueueItem lqi = Interface.LayoutingQueue.Dequeue (); - lqi.ProcessLayouting (); - } - - //Debug.WriteLine ("otd:" + gobjsToRedraw.Count.ToString () + "-"); - //final redraw clips should be added only when layout is completed among parents, - //that's why it take place in a second pass - GraphicObject[] gotr = new GraphicObject[gobjsToRedraw.Count]; - gobjsToRedraw.CopyTo (gotr); - gobjsToRedraw.Clear (); - foreach (GraphicObject p in gotr) { - p.registerClipRect (); - } - - - lock (redrawClip) { - if (redrawClip.count > 0) { - // #if DEBUG_CLIP_RECTANGLE - // redrawClip.stroke (ctx, new Color(1.0,0,0,0.3)); - // #endif - redrawClip.clearAndClip (ctx);//rajouté après, tester si utile - - //Link.draw (ctx); - foreach (GraphicObject p in invGOList) { - if (p.Visible) { - drawingTime.Start (); - - ctx.Save (); - if (redrawClip.count > 0) { - Rectangles clip = redrawClip.intersectingRects (p.Slot); - - if (clip.count > 0) - p.Paint (ref ctx, clip); - } - ctx.Restore (); - - drawingTime.Stop (); - } - } - ctx.ResetClip (); - dirtyZone = redrawClip.Bounds; - // #if DEBUG_CLIP_RECTANGLE - // redrawClip.stroke (ctx, Color.Red.AdjustAlpha(0.1)); - // #endif - redrawClip.Reset (); - } - } - //surf.WriteToPng (@"/mnt/data/test.png"); - - // if (ToolTip.isVisible) { - // ToolTip.panel.processkLayouting(); - // if (ToolTip.panel.layoutIsValid) - // ToolTip.panel.Paint(ref ctx); - // } - // Debug.WriteLine("INTERFACE: layouting: {0} ticks \t graphical update {1} ticks \t drawing {2} ticks", - // layoutTime.ElapsedTicks, - // guTime.ElapsedTicks, - // drawingTime.ElapsedTicks); - // Debug.WriteLine("INTERFACE: layouting: {0} ms \t graphical update {1} ms \t drawing {2} ms", - // layoutTime.ElapsedMilliseconds, - // guTime.ElapsedMilliseconds, - // drawingTime.ElapsedMilliseconds); - updateTime.Stop (); - // Debug.WriteLine("UPDATE: {0} ticks \t, {1} ms", - // updateTime.ElapsedTicks, - // updateTime.ElapsedMilliseconds); - } - #endregion - - - public void AddWidget(GraphicObject g) - { - g.Parent = this; - GraphicObjects.Add (g); - } - public void DeleteWidget(GraphicObject g) - { - g.Visible = false;//trick to ensure clip is added to refresh zone - GraphicObjects.Remove (g); - } - -// public void LoadInterface(string path, out T result) -// { -// GraphicObject.Load (path, out result, this); -// AddWidget (result as GraphicObject); -// } -// public T LoadInterface (string Path) -// { -// T result; -// GraphicObject.Load (Path, out result, this); -// AddWidget (result as GraphicObject); -// return result; -// } - - - - public void PutOnTop(GraphicObject g) - { - if (GraphicObjects.IndexOf(g) > 0) - { - GraphicObjects.Remove(g); - GraphicObjects.Insert(0, g); - } - } - - #region Mouse Handling - void Mouse_Move(object sender, MouseMoveEventArgs e) - { - if (_activeWidget != null) { - //send move evt even if mouse move outside bounds - _activeWidget.onMouseMove (_activeWidget, e); - return; - } - - if (_hoverWidget != null) { - //check topmost graphicobject first - GraphicObject tmp = _hoverWidget; - GraphicObject topc = null; - while (tmp is GraphicObject) { - topc = tmp; - tmp = tmp.Parent as GraphicObject; - } - int idxhw = GraphicObjects.IndexOf (topc); - if (idxhw != 0) { - int i = 0; - while (i < idxhw) { - if (GraphicObjects [i].MouseIsIn (e.Position)) { - _hoverWidget.onMouseLeave (this, e); - GraphicObjects [i].checkHoverWidget (e); - return; - } - i++; - } - } - - - if (_hoverWidget.MouseIsIn (e.Position)) { - _hoverWidget.checkHoverWidget (e); - return; - } else { - _hoverWidget.onMouseLeave (this, e); - //seek upward from last focused graph obj's - while (_hoverWidget.Parent as GraphicObject!=null) { - _hoverWidget = _hoverWidget.Parent as GraphicObject; - if (_hoverWidget.MouseIsIn (e.Position)) { - _hoverWidget.checkHoverWidget (e); - return; - } else - _hoverWidget.onMouseLeave (this, e); - } - } - } - - //top level graphic obj's parsing - for (int i = 0; i < GraphicObjects.Count; i++) { - GraphicObject g = GraphicObjects[i]; - if (g.MouseIsIn (e.Position)) { - g.checkHoverWidget (e); - PutOnTop (g); - return; - } - } - _hoverWidget = null; - MouseMove.Raise (this, e); - } - void Mouse_ButtonUp(object sender, MouseButtonEventArgs e) - { - if (_activeWidget == null) - return; - - _activeWidget.onMouseButtonUp (this, e); - _activeWidget = null; - MouseButtonUp.Raise (this, e); - } - void Mouse_ButtonDown(object sender, MouseButtonEventArgs e) - { - if (_hoverWidget == null) { - MouseButtonDown.Raise (this, e); - return; - } - - GraphicObject g = _hoverWidget; - while (!g.Focusable) { - g = g.Parent as GraphicObject; - if (g == null) { - return; - } - } - - _activeWidget = g; - _activeWidget.onMouseButtonDown (this, e); - } - - void Mouse_WheelChanged(object sender, MouseWheelEventArgs e) - { - if (_hoverWidget == null) { - MouseWheelChanged.Raise (this, e); - return; - } - _hoverWidget.onMouseWheel (this, e); - } - #endregion - - #region keyboard Handling - void Keyboard_KeyDown(object sender, KeyboardKeyEventArgs e) - { - if (_focusedWidget == null) - return; - _focusedWidget.onKeyDown (sender, e); - } - #endregion - - public void Quit () - { - throw new NotImplementedException (); - } - - - #region ILayoutable implementation - - public Rectangle ContextCoordinates (Rectangle r) - { - return r; - } - public Rectangle ScreenCoordinates (Rectangle r) - { - return r; - } - - public ILayoutable Parent { - get { - return null; - } - set { - throw new NotImplementedException (); - } - } - - public bool SizeIsValid { - get { return true; } - set { throw new NotImplementedException (); } - } - - public void RegisterForLayouting (int layoutType) - { - throw new NotImplementedException (); - } - - - public void UpdateLayout (LayoutingType layoutType) - { - throw new NotImplementedException (); - } - - public bool PositionIsValid { - get { - return true; - } - set { - throw new NotImplementedException (); - } - } - public bool LayoutIsValid { - get { - return true;//tester tout les enfants a mon avis - } - set { - throw new NotImplementedException (); - } - } - - public Rectangle ClientRectangle { - get { - return new go.Size(Allocation.Width,Allocation.Height); - } - } - - public IGOLibHost TopContainer { - get { return this as IGOLibHost; } - } - - public Rectangle getSlot () - { - return ClientRectangle; - } - public Rectangle getBounds ()//redundant but fill ILayoutable implementation - { - return ClientRectangle; - } - - public bool WIsValid { - get { - return true; - } - set { - throw new NotImplementedException (); - } - } - public bool HIsValid { - get { - return true; - } - set { - throw new NotImplementedException (); - } - } - public bool XIsValid { - get { - return true; - } - set { - throw new NotImplementedException (); - } - } - public bool YIsValid { - get { - return true; - } - set { - throw new NotImplementedException (); - } - } - - public virtual void InvalidateLayout () - { - // foreach (GraphicObject g in GraphicObjects) { - // g.InvalidateLayout (); - // } - } - - #endregion - } -} - diff --git a/GOMLViewer/src/GOLibNodeExtension.cs b/GOMLViewer/src/GOLibNodeExtension.cs deleted file mode 100644 index 0d0a42b5..00000000 --- a/GOMLViewer/src/GOLibNodeExtension.cs +++ /dev/null @@ -1,83 +0,0 @@ -// -// ImageViewerNodeExtension.cs -// -// Author: -// Mike Krüger -// -// Copyright (c) 2010 Novell, Inc (http://www.novell.com) -// -// 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 MonoDevelop.Projects; -using MonoDevelop.Ide.Gui.Components; -using MonoDevelop.Components; -using MonoDevelop.Components.Commands; -using MonoDevelop.Ide; - -namespace MonoDevelop.GOLib -{ - enum Commands { - ShowGOLibViewer - } - - class GOLibNodeExtension : NodeBuilderExtension - { - public override Type CommandHandlerType { - get { return typeof(GOLibCommandHandler); } - } - public override bool CanBuildNode (Type dataType) - { - return typeof(ProjectFile).IsAssignableFrom (dataType); - } - public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo) - { - ProjectFile pf = dataObject as ProjectFile; - -// string mimeType = DesktopService.GetMimeTypeForUri (pf.FilePath); -// if (mimeType.StartsWith ("image/", StringComparison.CurrentCultureIgnoreCase)) { -// Image i; -// if (pf != null) { -// i = Image.FromFile (pf.FilePath); -// nodeInfo.Icon = i.Scale (16.0 / i.Width, 16.0 / i.Height); -// } -// } - - base.BuildNode (treeBuilder, dataObject, nodeInfo); - } - } - - class GOLibCommandHandler: NodeCommandHandler - { - [CommandHandler (Commands.ShowGOLibViewer)] - protected void OnShowGOLibViewer () - { - - GOLibView view = new GOLibView (); - - ProjectFile file = CurrentNode.DataItem as ProjectFile; - if (file != null) - view.Load (file.FilePath); - - IdeApp.Workbench.OpenDocument (view, true); - } - } - -} - diff --git a/GOMLViewer/src/GOLibView.cs b/GOMLViewer/src/GOLibView.cs deleted file mode 100644 index 5c3d8f23..00000000 --- a/GOMLViewer/src/GOLibView.cs +++ /dev/null @@ -1,95 +0,0 @@ -// -// ImageViewer.cs -// -// Author: -// Jean-Philippe Bruyère -// -// Copyright (c) 2015 jp -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with this program. If not, see . - -// -// HexEditorView.cs -// -// Author: -// Mike Krüger -// -// Copyright (c) 2009 Novell, Inc (http://www.novell.com) -// -// 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.IO; -using MonoDevelop.Ide.Gui; -using MonoDevelop.Ide.Gui.Content; -using MonoDevelop.Ide.Fonts; -using Mono.Addins; -using MonoDevelop.Core; -using MonoDevelop.Ide; -using go; -using MonoDevelop.DesignerSupport; - -namespace MonoDevelop.GOLib -{ - class GOLibView : AbstractViewContent - { - GOLibGtkHost gtkGoWidgetHost; - - - double zoom = 1.0; - - public override Gtk.Widget Control { - get { - return gtkGoWidgetHost; - } - } - - public GOLibView () - { - gtkGoWidgetHost = new GOLibGtkHost (); - } - - public override void Load (string fileName) - { - gtkGoWidgetHost.Load (fileName); - ContentName = fileName; - this.IsDirty = false; - gtkGoWidgetHost.Show (); - } - public override bool CanReuseView (string fileName) - { - return base.CanReuseView (fileName); - } - public override void RedrawContent () - { - base.RedrawContent (); - } - } -} diff --git a/GtkCrow/CrowContainer.cs b/GtkCrow/CrowContainer.cs deleted file mode 100644 index d404d622..00000000 --- a/GtkCrow/CrowContainer.cs +++ /dev/null @@ -1,164 +0,0 @@ -// -// OpenTKGameWindow.cs -// -// Author: -// Jean-Philippe Bruyère -// -// Copyright (c) 2016 jp -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . -using System; -using System.Collections.Generic; -using System.Diagnostics; -using System.IO; -using System.Linq; -using System.Threading; -using System.Xml; -using Cairo; - - -namespace Crow -{ - public class OpenTKGameWindow : Gtk.Window - { - public Interface CrowInterface; - - - #region ctor - public OpenTKGameWindow(int _width, int _height, string _title="Crow") - : base(Gtk.WindowType.Toplevel) - { - CrowInterface = new Interface (); - CrowInterface.Quit += Quit; - - - Decorated = false; - this.AddEvents ((int)Gdk.EventMask.PointerMotionMask); - this.DeleteEvent += Win_DeleteEvent; - this.Drawn += Win_Drawn; - this.OverrideBackgroundColor (Gtk.StateFlags.Normal, Gdk.RGBA.Zero); - this.Visual = Gdk.Global.DefaultRootWindow.Screen.RgbaVisual; - - this.ButtonPressEvent += OpenTKGameWindow_ButtonPressEvent; - this.ButtonReleaseEvent += OpenTKGameWindow_ButtonReleaseEvent; - this.MotionNotifyEvent += OpenTKGameWindow_MotionNotifyEvent; - this.KeyPressEvent += OpenTKGameWindow_KeyPressEvent; - this.SizeAllocated += OpenTKGameWindow_SizeAllocated; - - this.Show (); - this.Maximize (); - - GLib.Idle.Add (new GLib.IdleHandler (idleHandler)); - GLib.Timeout.Add (10, new GLib.TimeoutHandler (updateHandler)); - } - #endregion - - - - #region Timers - bool updateHandler(){ - CrowInterface.Update(); - return true; - } - bool idleHandler(){ - if (CrowInterface.IsDirty) { - QueueDrawArea (CrowInterface.DirtyRect.X, CrowInterface.DirtyRect.Y, CrowInterface.DirtyRect.Width, CrowInterface.DirtyRect.Height); - return false; - } - return true; - } - #endregion - - protected void Quit (object sender, EventArgs e) - { - Gtk.Application.Quit (); - } - - void Win_Drawn (object o, Gtk.DrawnArgs args) - { - if (CrowInterface.IsDirty) { - using (ImageSurface img = new ImageSurface (CrowInterface.dirtyBmp, Format.Argb32, CrowInterface.DirtyRect.Width, CrowInterface.DirtyRect.Height, 4 * CrowInterface.DirtyRect.Width)) { - args.Cr.SetSourceSurface (img, CrowInterface.DirtyRect.X, CrowInterface.DirtyRect.Y); - args.Cr.Paint(); - } - - CrowInterface.IsDirty = false; - GLib.Idle.Add (new GLib.IdleHandler (idleHandler)); - return; - } - if (CrowInterface.bmp != null) { - using (ImageSurface img = new ImageSurface (CrowInterface.bmp, Format.Argb32, CrowInterface.ClientRectangle.Width, CrowInterface.ClientRectangle.Height, 4 * CrowInterface.ClientRectangle.Width)) { - args.Cr.SetSourceSurface (img, CrowInterface.ClientRectangle.X, CrowInterface.ClientRectangle.Y); - args.Cr.Paint (); - } - } - } - void Win_DeleteEvent (object o, Gtk.DeleteEventArgs args) - { - Gtk.Application.Quit (); - } - void OpenTKGameWindow_SizeAllocated (object o, Gtk.SizeAllocatedArgs args) - { - CrowInterface.ProcessResize (new Rectangle (args.Allocation.X, args.Allocation.Y, args.Allocation.Width, args.Allocation.Height)); - } - void OpenTKGameWindow_MotionNotifyEvent (object o, Gtk.MotionNotifyEventArgs args) - { - CrowInterface.ProcessMouseMove ((int)args.Event.X, (int)args.Event.Y); - } - - void OpenTKGameWindow_ButtonReleaseEvent (object o, Gtk.ButtonReleaseEventArgs args) - { - CrowInterface.ProcessMouseButtonUp ((int)args.Event.Button - 1); - } - void OpenTKGameWindow_ButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) - { - CrowInterface.ProcessMouseButtonDown ((int)args.Event.Button - 1); - } - -// void Mouse_WheelChanged(object sender, OpenTK.Input.MouseWheelEventArgs otk_e) -// { -// MouseWheelEventArgs e = new MouseWheelEventArgs (otk_e.X, otk_e.Y, otk_e.Value, otk_e.Delta); -// MouseState ms = e.Mouse; -// update_mouseButtonStates (ref ms, otk_e.Mouse); -// e.Mouse = ms; -// -// if (hoverWidget == null) { -// MouseWheelChanged.Raise (this, otk_e); -// return; -// } -// hoverWidget.onMouseWheel (this, e); -// } - - - - #region keyboard Handling -// KeyboardState Keyboad = new KeyboardState (); -// void Keyboard_KeyDown(object sender, OpenTK.Input.KeyboardKeyEventArgs otk_e) -// { -//// if (_focusedWidget == null) { -// KeyboardKeyDown.Raise (this, otk_e); -//// return; -//// } -// Keyboad.SetKeyState ((Crow.Key)otk_e.Key, true); -// KeyboardKeyEventArgs e = new KeyboardKeyEventArgs((Crow.Key)otk_e.Key, otk_e.IsRepeat,Keyboad); -// _focusedWidget.onKeyDown (sender, e); -// } - void OpenTKGameWindow_KeyPressEvent (object o, Gtk.KeyPressEventArgs args) - { - - } - - #endregion - } -} diff --git a/GtkCrow/GtkCrow.csproj b/GtkCrow/GtkCrow.csproj deleted file mode 100644 index e9305eb5..00000000 --- a/GtkCrow/GtkCrow.csproj +++ /dev/null @@ -1,67 +0,0 @@ - - - - Debug - Linux_x86 - 8.0.30703 - 2.0 - {D6F98B08-56B8-405C-9212-F9D26097E35F} - Library - GtkCrow - GtkCrow - 0.4 - v4.5 - - - true - full - false - bin\Debug - DEBUG;MEASURE_TIME - prompt - 4 - false - - - full - true - bin\Release - prompt - 4 - false - - - - - {C2980F9B-4798-4C05-99E2-E174810F7C7B} - Crow - - - - - - - - - gtk-sharp-3.0 - - - gtk-sharp-3.0 - - - gdk-sharp-3.0 - - - gio-sharp-3.0 - - - glib-sharp-3.0 - - - gtk-sharp-3.0 - - - - - - \ No newline at end of file diff --git a/MonoDevelop.GOLib/MonoDevelop.GOLib.addin.xml b/MonoDevelop.GOLib/MonoDevelop.GOLib.addin.xml deleted file mode 100644 index fe15b3e9..00000000 --- a/MonoDevelop.GOLib/MonoDevelop.GOLib.addin.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/MonoDevelop.GOLib/MonoDevelop.GOLib.csproj b/MonoDevelop.GOLib/MonoDevelop.GOLib.csproj deleted file mode 100644 index b09de992..00000000 --- a/MonoDevelop.GOLib/MonoDevelop.GOLib.csproj +++ /dev/null @@ -1,118 +0,0 @@ - - - - Debug - AnyCPU - 8.0.30703 - 2.0 - {E9E14DB5-3C67-4E01-B5C3-4D90D7E31A2E} - Library - MonoDevelop.GOLib - MonoDevelop.GOLib - v4.5 - build - - - - - - - - - - - - - 0.4 - - - true - full - false - DEBUG; - prompt - 4 - false - - - - - - - - none - true - prompt - 4 - false - - - - - - - - - - \usr\local\lib\monodevelop\bin\ICSharpCode.NRefactory.dll - - - mono-addins - - - \usr\local\lib\monodevelop\bin\MonoDevelop.Ide.dll - - - \usr\local\lib\monodevelop\bin\MonoDevelop.Core.dll - - - \usr\local\lib\monodevelop\AddIns\MonoDevelop.DesignerSupport\MonoDevelop.DesignerSupport.dll - - - - gtk-sharp-2.0 - - - gtk-sharp-2.0 - - - gtk-sharp-2.0 - - - glib-sharp-2.0 - - - - - - ..\..\opentk\Binaries\OpenTK\Release\OpenTK.dll - - - ..\..\..\..\..\usr\local\lib\monodevelop\AddIns\DisplayBindings\SourceEditor\MonoDevelop.SourceEditor2.dll - - - ..\..\..\..\..\usr\local\lib\monodevelop\bin\Mono.TextEditor.dll - - - - - - - - - - - - - - - - - - - - {C2980F9B-4798-4C05-99E2-E174810F7C7B} - Crow - - - \ No newline at end of file diff --git a/MonoDevelop.GOLib/MyClass.cs b/MonoDevelop.GOLib/MyClass.cs deleted file mode 100644 index 4ffb796b..00000000 --- a/MonoDevelop.GOLib/MyClass.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; - -namespace MonoDevelop.GOLib -{ - public class MyClass - { - public MyClass () - { - } - } -} - diff --git a/MonoDevelop.GOLib/Properties/AddinInfo.cs b/MonoDevelop.GOLib/Properties/AddinInfo.cs deleted file mode 100644 index f5af5b8d..00000000 --- a/MonoDevelop.GOLib/Properties/AddinInfo.cs +++ /dev/null @@ -1,16 +0,0 @@ - -using System; -using Mono.Addins; -using Mono.Addins.Description; - -[assembly:Addin ("GOLib", - Namespace = "MonoDevelop", - Version = MonoDevelop.BuildInfo.Version, - Category = "IDE extensions")] - -[assembly:AddinName ("MonoDevelop GOLib interface designer")] -[assembly:AddinDescription ("")] - -[assembly:AddinDependency ("Core", MonoDevelop.BuildInfo.Version)] -[assembly:AddinDependency ("Ide", MonoDevelop.BuildInfo.Version)] -[assembly:AddinDependency ("Debugger", MonoDevelop.BuildInfo.Version)] diff --git a/MonoDevelop.GOLib/Properties/AssemblyInfo.cs b/MonoDevelop.GOLib/Properties/AssemblyInfo.cs deleted file mode 100644 index 117b1534..00000000 --- a/MonoDevelop.GOLib/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// Information about this assembly is defined by the following attributes. -// Change them to the values specific to your project. - -[assembly: AssemblyTitle ("MonoDevelop.GOLib")] -[assembly: AssemblyDescription ("GOLib interface designer for MonoDevelop")] -[assembly: AssemblyConfiguration ("")] -[assembly: AssemblyCompany ("")] -[assembly: AssemblyProduct ("")] -[assembly: AssemblyCopyright ("jp")] -[assembly: AssemblyTrademark ("")] -[assembly: AssemblyCulture ("")] - -// The assembly version has the format "{Major}.{Minor}.{Build}.{Revision}". -// The form "{Major}.{Minor}.*" will automatically update the build and revision, -// and "{Major}.{Minor}.{Build}.*" will update just the revision. - -[assembly: AssemblyVersion ("1.0.*")] - -// The following attributes are used to specify the signing key for the assembly, -// if desired. See the Mono documentation for more information about signing. - -//[assembly: AssemblyDelaySign(false)] -//[assembly: AssemblyKeyFile("")] - diff --git a/MonoDevelop.GOLib/src/DisplayBinding.cs b/MonoDevelop.GOLib/src/DisplayBinding.cs deleted file mode 100644 index 1898f16b..00000000 --- a/MonoDevelop.GOLib/src/DisplayBinding.cs +++ /dev/null @@ -1,81 +0,0 @@ -// -// DisplayBinding.cs -// -// Author: -// Jean-Philippe Bruyère -// -// Copyright (c) 2015 jp -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with this program. If not, see . - -// -// DisplayBinding.cs -// -// Author: -// Mike Krüger -// -// Copyright (c) 2009 Novell, Inc (http://www.novell.com) -// -// 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.IO; -using MonoDevelop.Core; -using MonoDevelop.Ide.Gui; -using MonoDevelop.Projects; -using System.Globalization; -using System.Diagnostics; - -namespace MonoDevelop.GOLib -{ - class GOLibDisplayBinding : IViewDisplayBinding - { - bool canHandle = false; - - public string Name { - get { - return GettextCatalog.GetString ("GOLib designer"); - } - } - public bool CanUseAsDefault - { get { return true; }} - - public IViewContent CreateContent (FilePath fileName, string mimeType, Project ownerProject) - { - return new GOLibView (); - - - } - public bool CanHandle (FilePath fileName, string mimeType, Project ownerProject) - { - canHandle = mimeType.StartsWith("text/x-goml"); - return canHandle; - } - } -} diff --git a/MonoDevelop.GOLib/src/GOLibGtkHost.cs b/MonoDevelop.GOLib/src/GOLibGtkHost.cs deleted file mode 100644 index 0069e3e7..00000000 --- a/MonoDevelop.GOLib/src/GOLibGtkHost.cs +++ /dev/null @@ -1,586 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using Crow; -using MonoDevelop.Core; -using MonoDevelop.Ide; -using MonoDevelop.Projects; -using System.Diagnostics; -using OpenTK.Input; -using MonoDevelop.DesignerSupport; -using System.IO; -using MonoDevelop.Components.Commands; - -namespace MonoDevelop.GOLib -{ - public class GOLibGtkHost : Gtk.DrawingArea, ILayoutable, IGOLibHost, IPropertyPadProvider,ICommandDelegator - { - #region ICommandDelegator implementation - - public object GetDelegatedCommandTarget () - { - return hoverWidget; - } - - #endregion - - #region IPropertyPadProvider implementation - - public object GetActiveComponent () - { - return activeWidget; - } - public object GetProvider () - { - return activeWidget; - } - public void OnEndEditing (object obj) - { - - } - public void OnChanged (object obj) - { - (obj as GraphicObject).RegisterForGraphicUpdate (); - QueueDraw (); - } - #endregion - - #region Events - //those events are raised only if mouse isn't in a graphic object - public event EventHandler MouseWheelChanged; - public event EventHandler MouseButtonUp; - public event EventHandler MouseButtonDown; - public event EventHandler MouseClick; - public event EventHandler MouseMove; - #endregion - - string _path; - GraphicObject goWidget; - - public GOLibGtkHost () - { - this.ExposeEvent += onExpose; - this.ButtonPressEvent += GOLibGtkHost_ButtonPressEvent; - this.ButtonReleaseEvent += GOLibGtkHost_ButtonReleaseEvent; - this.MotionNotifyEvent += GOLibGtkHost_MotionNotifyEvent; - - this.Events |= Gdk.EventMask.ButtonPressMask | Gdk.EventMask.ButtonReleaseMask | - Gdk.EventMask.PointerMotionMask | Gdk.EventMask.PointerMotionHintMask; - } - static double[] dashed = {2.0}; - - void onExpose(object o, Gtk.ExposeEventArgs args) - { - Gtk.DrawingArea area = (Gtk.DrawingArea) o; - Cairo.Context cr = Gdk.CairoHelper.Create(area.GdkWindow); - _redrawClip.AddRectangle (this.ClientRectangle); - - //LoggingService.LogInfo ("expose event"); - - update (cr); - - if (_hoverWidget != null) { - cr.Rectangle (_hoverWidget.ScreenCoordinates(_hoverWidget.getSlot ())); - cr.LineWidth = 1; - cr.SetDash (dashed, 0); - cr.Color = Crow.Color.Yellow; - cr.Stroke (); - } - ((IDisposable) cr.Target).Dispose(); - ((IDisposable) cr).Dispose(); - } - // TODO: should find a more safer way to link gtk button to otk. - void GOLibGtkHost_ButtonPressEvent (object o, Gtk.ButtonPressEventArgs args) - { - MouseButtonEventArgs e = new MouseButtonEventArgs - ((int)args.Event.X, (int)args.Event.Y, - gtkButtonIdToOpenTkButton(args.Event.Button), true); - Mouse_ButtonDown (o, e); - - DesignerSupport.DesignerSupport.Service.SetPadContent (this, this); - } - void GOLibGtkHost_ButtonReleaseEvent (object o, Gtk.ButtonReleaseEventArgs args) - { - MouseButtonEventArgs e = new MouseButtonEventArgs - ((int)args.Event.X, (int)args.Event.Y, - gtkButtonIdToOpenTkButton(args.Event.Button), false); - Mouse_ButtonUp (o, e); - } - int lastX,LastY; - void GOLibGtkHost_MotionNotifyEvent (object o, Gtk.MotionNotifyEventArgs args) - { - - Mouse_Move(this, new MouseMoveEventArgs ( - (int)args.Event.X,(int)args.Event.Y, - (int)args.Event.X-lastX, (int)args.Event.Y-LastY - )); - lastX = (int)args.Event.X; - LastY = (int)args.Event.Y; - - QueueDraw (); - } - - MouseButton gtkButtonIdToOpenTkButton(uint gtkMouseButton) - { - switch (gtkMouseButton) { - case 1: - return MouseButton.Left; - case 2: - return MouseButton.Middle; - case 3: - return MouseButton.Right; - case 4: - return MouseButton.Button4; - case 5: - return MouseButton.Button5; - } - return MouseButton.LastButton; - } - - - - public void Load(string path) - { - load(Interface.Load (path)); - } - - public void Load(Stream stream) - { - GraphicObject tmp = null; - try { - tmp = Interface.Load (stream, Interface.GetTopContainerOfGOMLStream (stream)); - } catch (Exception ex) { - return; - } - load (tmp); - QueueDraw (); - } - - void load(GraphicObject go) - { - if (goWidget != null) - DeleteWidget (goWidget); - goWidget = go; - this.AddWidget (goWidget); - } - - public void AddWidget(GraphicObject g) - { - g.Parent = this; - GraphicObjects.Insert (0, g); - - g.RegisterForLayouting (LayoutingType.Sizing); - } - public void DeleteWidget(GraphicObject g) - { - g.Visible = false;//trick to ensure clip is added to refresh zone - g.ClearBinding(); - GraphicObjects.Remove (g); - } - - public List GraphicObjects = new List(); - public Color Background = Color.Transparent; - - Rectangles _redrawClip = new Rectangles();//should find another way to access it from child - List _gobjsToRedraw = new List(); - - public Rectangles redrawClip { - get { - return _redrawClip; - } - set { - _redrawClip = value; - } - } - public List gobjsToRedraw { - get { - return _gobjsToRedraw; - } - set { - _gobjsToRedraw = value; - } - } - - #region focus - - GraphicObject _activeWidget; //button is pressed on widget - GraphicObject _hoverWidget; //mouse is over - GraphicObject _focusedWidget; //has keyboard (or other perif) focus - - public GraphicObject activeWidget - { - get { return _activeWidget; } - set - { - if (_activeWidget == value) - return; - - _activeWidget = value; - } - } - public GraphicObject hoverWidget - { - get { return _hoverWidget; } - set { _hoverWidget = value; } - } - public GraphicObject FocusedWidget { - get { return _focusedWidget; } - set { - if (_focusedWidget == value) - return; - if (_focusedWidget != null) - _focusedWidget.onUnfocused (this, null); - _focusedWidget = value; - _focusedWidget.onFocused (this, null); - } - } - - #endregion - - Rectangle dirtyZone = Rectangle.Empty; - - #region Chrono's - public Stopwatch updateTime = new Stopwatch (); - public Stopwatch layoutTime = new Stopwatch (); - public Stopwatch guTime = new Stopwatch (); - public Stopwatch drawingTime = new Stopwatch (); - #endregion - - #region update - void update (Cairo.Context ctx) - { - updateTime.Restart (); - layoutTime.Reset (); - guTime.Reset (); - drawingTime.Reset (); - - GraphicObject[] invGOList = new GraphicObject[GraphicObjects.Count]; - GraphicObjects.CopyTo (invGOList,0); - invGOList = invGOList.Reverse ().ToArray (); - - Crow.Size newSize = this.ClientRectangle.Size; - if (lastSize != newSize) { - foreach (GraphicObject g in GraphicObjects) - g.RegisterForLayouting (LayoutingType.All); - lastSize = newSize; - } - - //Debug.WriteLine ("======= Layouting queue start ======="); - while (Interface.CurrentInterface.LayoutingQueue.Count > 0) { - LayoutingQueueItem lqi = Interface.CurrentInterface.LayoutingQueue.Dequeue (); - lqi.ProcessLayouting (); - } - - //Debug.WriteLine ("otd:" + gobjsToRedraw.Count.ToString () + "-"); - //final redraw clips should be added only when layout is completed among parents, - //that's why it take place in a second pass - GraphicObject[] gotr = new GraphicObject[gobjsToRedraw.Count]; - gobjsToRedraw.CopyTo (gotr); - gobjsToRedraw.Clear (); - foreach (GraphicObject p in gotr) { - p.registerClipRect (); - } - - - lock (redrawClip) { - if (redrawClip.count > 0) { - // #if DEBUG_CLIP_RECTANGLE - // redrawClip.stroke (ctx, new Color(1.0,0,0,0.3)); - // #endif - redrawClip.clearAndClip (ctx);//rajouté après, tester si utile - - //Link.draw (ctx); - foreach (GraphicObject p in invGOList) { - if (p.Visible) { - drawingTime.Start (); - - ctx.Save (); - if (redrawClip.count > 0) { - Rectangles clip = redrawClip.intersectingRects (p.Slot); - - if (clip.count > 0) - p.Paint (ref ctx, clip); - } - ctx.Restore (); - - drawingTime.Stop (); - } - } - ctx.ResetClip (); - dirtyZone = redrawClip.Bounds; - // #if DEBUG_CLIP_RECTANGLE - // redrawClip.stroke (ctx, Color.Red.AdjustAlpha(0.1)); - // #endif - redrawClip.Reset (); - } - } - //surf.WriteToPng (@"/mnt/data/test.png"); - - // if (ToolTip.isVisible) { - // ToolTip.panel.processkLayouting(); - // if (ToolTip.panel.layoutIsValid) - // ToolTip.panel.Paint(ref ctx); - // } - // Debug.WriteLine("INTERFACE: layouting: {0} ticks \t graphical update {1} ticks \t drawing {2} ticks", - // layoutTime.ElapsedTicks, - // guTime.ElapsedTicks, - // drawingTime.ElapsedTicks); - // Debug.WriteLine("INTERFACE: layouting: {0} ms \t graphical update {1} ms \t drawing {2} ms", - // layoutTime.ElapsedMilliseconds, - // guTime.ElapsedMilliseconds, - // drawingTime.ElapsedMilliseconds); - updateTime.Stop (); - // Debug.WriteLine("UPDATE: {0} ticks \t, {1} ms", - // updateTime.ElapsedTicks, - // updateTime.ElapsedMilliseconds); - } - #endregion - - -// public void LoadInterface(string path, out T result) -// { -// GraphicObject.Load (path, out result, this); -// AddWidget (result as GraphicObject); -// } -// public T LoadInterface (string Path) -// { -// T result; -// GraphicObject.Load (Path, out result, this); -// AddWidget (result as GraphicObject); -// return result; -// } - - - - public void PutOnTop(GraphicObject g) - { - if (GraphicObjects.IndexOf(g) > 0) - { - GraphicObjects.Remove(g); - GraphicObjects.Insert(0, g); - } - } - - #region Mouse Handling - void Mouse_Move(object sender, MouseMoveEventArgs e) - { -// if (_activeWidget != null) { -// //send move evt even if mouse move outside bounds -// _activeWidget.onMouseMove (_activeWidget, e); -// return; -// } - - if (_hoverWidget != null) { - //check topmost graphicobject first - GraphicObject tmp = _hoverWidget; - GraphicObject topc = null; - while (tmp is GraphicObject) { - topc = tmp; - tmp = tmp.Parent as GraphicObject; - } - int idxhw = GraphicObjects.IndexOf (topc); - if (idxhw != 0) { - int i = 0; - while (i < idxhw) { - if (GraphicObjects [i].MouseIsIn (e.Position)) { - _hoverWidget.onMouseLeave (this, e); - GraphicObjects [i].checkHoverWidget (e); - return; - } - i++; - } - } - - - if (_hoverWidget.MouseIsIn (e.Position)) { - _hoverWidget.checkHoverWidget (e); - return; - } else { - _hoverWidget.onMouseLeave (this, e); - //seek upward from last focused graph obj's - while (_hoverWidget.Parent as GraphicObject!=null) { - _hoverWidget = _hoverWidget.Parent as GraphicObject; - if (_hoverWidget.MouseIsIn (e.Position)) { - _hoverWidget.checkHoverWidget (e); - return; - } else - _hoverWidget.onMouseLeave (this, e); - } - } - } - - //top level graphic obj's parsing - for (int i = 0; i < GraphicObjects.Count; i++) { - GraphicObject g = GraphicObjects[i]; - if (g.MouseIsIn (e.Position)) { - g.checkHoverWidget (e); - PutOnTop (g); - return; - } - } - _hoverWidget = null; - MouseMove.Raise (this, e); - } - void Mouse_ButtonUp(object sender, MouseButtonEventArgs e) - { -// if (_activeWidget == null) -// return; - - //_activeWidget.onMouseButtonUp (this, e); - //_activeWidget = null; - MouseButtonUp.Raise (this, e); - } - void Mouse_ButtonDown(object sender, MouseButtonEventArgs e) - { - if (_hoverWidget == null) { - MouseButtonDown.Raise (this, e); - return; - } - - _activeWidget = _hoverWidget; - //_activeWidget.onMouseButtonDown (this, e); - } - - void Mouse_WheelChanged(object sender, MouseWheelEventArgs e) - { - if (_hoverWidget == null) { - MouseWheelChanged.Raise (this, e); - return; - } - _hoverWidget.onMouseWheel (this, e); - } - #endregion - - #region keyboard Handling - void Keyboard_KeyDown(object sender, KeyboardKeyEventArgs e) - { - if (_focusedWidget == null) - return; - _focusedWidget.onKeyDown (sender, e); - } - #endregion - - public void Quit () - { - throw new NotImplementedException (); - } - - - #region ILayoutable implementation - - public Rectangle ContextCoordinates (Rectangle r) - { - return r; - } - public Rectangle ScreenCoordinates (Rectangle r) - { - return r; - } - - public ILayoutable Parent { - get { - return null; - } - set { - throw new NotImplementedException (); - } - } - - public bool SizeIsValid { - get { return true; } - set { throw new NotImplementedException (); } - } - - public void EnqueueForLayouting (int layoutType) - { - throw new NotImplementedException (); - } - - - public void UpdateLayout (LayoutingType layoutType) - { - throw new NotImplementedException (); - } - - public bool PositionIsValid { - get { - return true; - } - set { - throw new NotImplementedException (); - } - } - public bool LayoutIsValid { - get { - return true;//tester tout les enfants a mon avis - } - set { - throw new NotImplementedException (); - } - } - Size lastSize; - public Rectangle ClientRectangle { - get { - Crow.Size newSize = new Crow.Size (Allocation.Width, Allocation.Height); - return newSize; - } - } - - public IGOLibHost HostContainer { - get { return this as IGOLibHost; } - } - - public Rectangle getSlot () - { - return ClientRectangle; - } - public Rectangle getBounds ()//redundant but fill ILayoutable implementation - { - return ClientRectangle; - } - - public bool WIsValid { - get { - return true; - } - set { - throw new NotImplementedException (); - } - } - public bool HIsValid { - get { - return true; - } - set { - throw new NotImplementedException (); - } - } - public bool XIsValid { - get { - return true; - } - set { - throw new NotImplementedException (); - } - } - public bool YIsValid { - get { - return true; - } - set { - throw new NotImplementedException (); - } - } - - public virtual void InvalidateLayout () - { - // foreach (GraphicObject g in GraphicObjects) { - // g.InvalidateLayout (); - // } - } - - #endregion - } -} - diff --git a/MonoDevelop.GOLib/src/GOLibNodeExtension.cs b/MonoDevelop.GOLib/src/GOLibNodeExtension.cs deleted file mode 100644 index 8c68d4cf..00000000 --- a/MonoDevelop.GOLib/src/GOLibNodeExtension.cs +++ /dev/null @@ -1,135 +0,0 @@ -// -// ImageViewerNodeExtension.cs -// -// Author: -// Mike Krüger -// -// Copyright (c) 2010 Novell, Inc (http://www.novell.com) -// -// 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 MonoDevelop.Projects; -using MonoDevelop.Ide.Gui.Components; -using MonoDevelop.Components; -using MonoDevelop.Components.Commands; -using MonoDevelop.Ide; -using System.Linq; -using MonoDevelop.DesignerSupport; - -namespace MonoDevelop.GOLib -{ - enum Commands { - ShowGOLibViewer - } - - class GOLibNodeExtension : NodeBuilderExtension - { - public override Type CommandHandlerType { - get { return typeof(GOLibCommandHandler); } - } - public override bool CanBuildNode (Type dataType) - { - return typeof(ProjectFile).IsAssignableFrom (dataType); - } - public override void BuildNode (ITreeBuilder treeBuilder, object dataObject, NodeInfo nodeInfo) - { - ProjectFile pf = dataObject as ProjectFile; - -// string mimeType = DesktopService.GetMimeTypeForUri (pf.FilePath); -// if (mimeType.StartsWith ("image/", StringComparison.CurrentCultureIgnoreCase)) { -// Image i; -// if (pf != null) { -// i = Image.FromFile (pf.FilePath); -// nodeInfo.Icon = i.Scale (16.0 / i.Width, 16.0 / i.Height); -// } -// } - - base.BuildNode (treeBuilder, dataObject, nodeInfo); - } - } - - class GOLibCommandHandler: NodeCommandHandler //, IPropertyPadProvider - { - [CommandHandler (Commands.ShowGOLibViewer)] - protected void OnShowGOLibViewer () - { - - GOLibView view = new GOLibView (); - - ProjectFile file = CurrentNode.DataItem as ProjectFile; - - if (file != null) - view.Load (file.FilePath); - - - IdeApp.Workbench.OpenDocument (view, true); - //IdeApp.Workbench.Documents.Where (d => d.FileName == file.FilePath); - } - -// public override void ActivateItem () -// { -// ProjectFile o = this.CurrentNode.DataItem as ProjectFile; -// -// Ide.Gui.Document[] doc = IdeApp.Workbench.Documents.Where (d => d.FileName == o.FilePath).ToArray(); -// var tmp = MonoDevelop.Ide.Gui.DisplayBindingService.GetFileViewers (o.FilePath, o.Project).ToList(); -// -// OnShowGOLibViewer (); -// } - -// #region IPropertyPadProvider implementation -// public object GetActiveComponent () -// { -// if (CurrentNodes.Length == 1) -// return CurrentNode.DataItem; -// else -// return null; -// } -// public object GetProvider () -// { -// return null; -// } -// public void OnEndEditing (object obj) -// { -// throw new NotImplementedException (); -// } -// public void OnChanged (object obj) -// { -// -// } -// #endregion - } - -// class GOLibItemPropertyProvider : IPropertyProvider -// { -// #region IPropertyProvider implementation -// public object CreateProvider (object obj) -// { -// var projectFile = obj as ProjectFile; -// return projectFile; -// } -// -// public bool SupportsObject (object obj) -// { -// return obj is ProjectFile; -// } -// #endregion -// } -} - diff --git a/MonoDevelop.GOLib/src/GOLibView.cs b/MonoDevelop.GOLib/src/GOLibView.cs deleted file mode 100644 index 52dbf2cb..00000000 --- a/MonoDevelop.GOLib/src/GOLibView.cs +++ /dev/null @@ -1,161 +0,0 @@ -// -// ImageViewer.cs -// -// Author: -// Jean-Philippe Bruyère -// -// Copyright (c) 2015 jp -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU Lesser General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU Lesser General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with this program. If not, see . - -// -// HexEditorView.cs -// -// Author: -// Mike Krüger -// -// Copyright (c) 2009 Novell, Inc (http://www.novell.com) -// -// 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.IO; -using MonoDevelop.Ide.Gui; -using MonoDevelop.Ide.Gui.Content; -using MonoDevelop.Ide.Fonts; -using Mono.Addins; -using MonoDevelop.Core; -using MonoDevelop.Ide; -using Crow; -using MonoDevelop.DesignerSupport; -using MonoDevelop.SourceEditor; - -namespace MonoDevelop.GOLib -{ - class CustomVPaned : Gtk.VPaned, IPropertyPadProvider - { - #region IPropertyPadProvider implementation - public object GetActiveComponent () - { - return this.Child1 == null ? this as object: (this.Child1 as GOLibGtkHost).activeWidget as object; - } - public object GetProvider () - { - return null; - //throw new NotImplementedException (); - } - public void OnEndEditing (object obj) - { - //throw new NotImplementedException (); - } - public void OnChanged (object obj) - { - //throw new NotImplementedException (); - } - #endregion - - } - class GOLibView : SourceEditorView - { - GOLibGtkHost gtkGoWidgetHost; - CustomVPaned gtkGOMLWidget; - - - double zoom = 1.0; - - public override Gtk.Widget Control { - get { - return gtkGOMLWidget; - } - } - - public GOLibView () : base() - { - gtkGoWidgetHost = new GOLibGtkHost (); - gtkGOMLWidget = new CustomVPaned (); - gtkGOMLWidget.CanFocus = true; - gtkGOMLWidget.Name = "vpaned1"; - gtkGOMLWidget.Add (gtkGoWidgetHost); - gtkGOMLWidget.Add (base.Control); - gtkGOMLWidget.SizeAllocated += GtkGOMLWidget_SizeAllocated; - - this.Document.DocumentUpdated += Document_DocumentUpdated; - //this.DirtyChanged += GOLibView_DirtyChanged; - } - - void Document_DocumentUpdated (object sender, EventArgs e) - { - reloadGOML (); - } - - void GOLibView_DirtyChanged (object sender, EventArgs e) - { - - } - - void reloadGOML() - { - using (MemoryStream stream = new MemoryStream ()) { - using (StreamWriter writer = new StreamWriter (stream)) { - writer.Write (this.Document.Text); - writer.Flush (); - - stream.Position = 0; - gtkGoWidgetHost.Load (stream); - } - } - } - - void GtkGOMLWidget_SizeAllocated (object o, Gtk.SizeAllocatedArgs args) - { - gtkGoWidgetHost.SetSizeRequest (-1, args.Allocation.Height / 2); - } - - public override void Load (string fileName) - { - gtkGoWidgetHost.Load (fileName); - //ContentName = fileName; - //this.IsDirty = false; - gtkGOMLWidget.ShowAll (); - gtkGOMLWidget.Show (); - - base.Load (fileName); - } -// public override bool CanReuseView (string fileName) -// { -// return base.CanReuseView (fileName); -// } -// public override void RedrawContent () -// { -// base.RedrawContent (); -// } - - } -} diff --git a/SDL2Crow/LPUtf8StrMarshaler.cs b/SDL2Crow/LPUtf8StrMarshaler.cs deleted file mode 100644 index 385c11f3..00000000 --- a/SDL2Crow/LPUtf8StrMarshaler.cs +++ /dev/null @@ -1,106 +0,0 @@ -/* SDL2# - C# Wrapper for SDL2 - * - * Copyright (c) 2013-2016 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ - -using System; -using System.Text; -using System.Runtime.InteropServices; - -namespace SDL2 -{ - internal unsafe class LPUtf8StrMarshaler : ICustomMarshaler - { - public const string LeaveAllocated = "LeaveAllocated"; - - private static ICustomMarshaler - _leaveAllocatedInstance = new LPUtf8StrMarshaler(true), - _defaultInstance = new LPUtf8StrMarshaler(false); - - public static ICustomMarshaler GetInstance(string cookie) - { - switch (cookie) - { - case "LeaveAllocated": - return _leaveAllocatedInstance; - default: - return _defaultInstance; - } - } - - private bool _leaveAllocated; - - public LPUtf8StrMarshaler(bool leaveAllocated) - { - _leaveAllocated = leaveAllocated; - } - - public object MarshalNativeToManaged(IntPtr pNativeData) - { - if (pNativeData == IntPtr.Zero) - return null; - var ptr = (byte*)pNativeData; - while (*ptr != 0) - { - ptr++; - } - var bytes = new byte[ptr - (byte*)pNativeData]; - Marshal.Copy(pNativeData, bytes, 0, bytes.Length); - return Encoding.UTF8.GetString(bytes); - } - - public IntPtr MarshalManagedToNative(object ManagedObj) - { - if (ManagedObj == null) - return IntPtr.Zero; - var str = ManagedObj as string; - if (str == null) - { - throw new ArgumentException("ManagedObj must be a string.", "ManagedObj"); - } - var bytes = Encoding.UTF8.GetBytes(str); - var mem = SDL.SDL_malloc((IntPtr) (bytes.Length + 1)); - Marshal.Copy(bytes, 0, mem, bytes.Length); - ((byte*)mem)[bytes.Length] = 0; - return mem; - } - - public void CleanUpManagedData(object ManagedObj) - { - } - - public void CleanUpNativeData(IntPtr pNativeData) - { - if (!_leaveAllocated) - { - SDL.SDL_free(pNativeData); - } - } - - public int GetNativeDataSize () - { - return -1; - } - } -} diff --git a/SDL2Crow/SDL2.cs b/SDL2Crow/SDL2.cs deleted file mode 100644 index f9a64fb5..00000000 --- a/SDL2Crow/SDL2.cs +++ /dev/null @@ -1,6058 +0,0 @@ -#region License -/* SDL2# - C# Wrapper for SDL2 - * - * Copyright (c) 2013-2016 Ethan Lee. - * - * This software is provided 'as-is', without any express or implied warranty. - * In no event will the authors be held liable for any damages arising from - * the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software in a - * product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - * - * Ethan "flibitijibibo" Lee - * - */ -#endregion - -using System; -using System.Runtime.InteropServices; - -namespace SDL2 -{ -public static class SDL - { - #region SDL2# Variables - /// - /// Used by DllImport to load the native library. - /// - private const string nativeLibName = "SDL2.dll"; - - #endregion - - #region SDL_stdinc.h - - public static uint SDL_FOURCC(byte A, byte B, byte C, byte D) - { - return (uint) (A | (B << 8) | (C << 16) | (D << 24)); - } - - public enum SDL_bool - { - SDL_FALSE = 0, - SDL_TRUE = 1 - } - - /* malloc/free are used by the marshaler! -flibit */ - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr SDL_malloc(IntPtr size); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - internal static extern void SDL_free(IntPtr memblock); - - #endregion - - #region SDL_rwops.h - - /* Note about SDL2# and Internal RWops: - * These functions are currently not supported for public use. - * They are only meant to be used internally in functions marked with - * the phrase "THIS IS AN RWops FUNCTION!" - */ - - /// - /// Use this function to create a new SDL_RWops structure for reading from and/or writing to a named file. - /// - /// a UTF-8 string representing the filename to open - /// an ASCII string representing the mode to be used for opening the file; see Remarks for details - /// Returns a pointer to the SDL_RWops structure that is created, or NULL on failure; call SDL_GetError() for more information. - [DllImport(nativeLibName, EntryPoint = "SDL_RWFromFile", CallingConvention = CallingConvention.Cdecl)] - internal static extern IntPtr INTERNAL_SDL_RWFromFile( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string file, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string mode - ); - - /* These are the public RWops functions. They should be used by - * functions marked with the phrase "THIS IS A PUBLIC RWops FUNCTION!" - */ - - /* IntPtr refers to an SDL_RWops */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_RWFromMem(byte[] mem, int size); - - #endregion - - #region SDL_main.h - - /// - /// Use this function to circumvent failure of SDL_Init() when not using SDL_main() as an entry point. - /// - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetMainReady(); - - #endregion - - #region SDL.h - - public const uint SDL_INIT_TIMER = 0x00000001; - public const uint SDL_INIT_AUDIO = 0x00000010; - public const uint SDL_INIT_VIDEO = 0x00000020; - public const uint SDL_INIT_JOYSTICK = 0x00000200; - public const uint SDL_INIT_HAPTIC = 0x00001000; - public const uint SDL_INIT_GAMECONTROLLER = 0x00002000; - public const uint SDL_INIT_NOPARACHUTE = 0x00100000; - public const uint SDL_INIT_EVERYTHING = ( - SDL_INIT_TIMER | SDL_INIT_AUDIO | SDL_INIT_VIDEO | - SDL_INIT_JOYSTICK | SDL_INIT_HAPTIC | - SDL_INIT_GAMECONTROLLER - ); - - /// - /// Use this function to initialize the SDL library. - /// This must be called before using any other SDL function. - /// - /// subsystem initialization flags; see Remarks for details - /// Returns 0 on success or a negative error code on failure. - /// Call for more information. - /// The Event Handling, File I/O, and Threading subsystems are initialized by default. - /// You must specifically initialize other subsystems if you use them in your application. - /// Unless the SDL_INIT_NOPARACHUTE flag is set, it will install cleanup signal handlers - /// for some commonly ignored fatal signals (like SIGSEGV). - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_Init(uint flags); - - /// - /// Use this function to initialize specific SDL subsystems. - /// - /// any of the flags used by SDL_Init(); see Remarks for details - /// Returns 0 on success or a negative error code on failure. - /// Call for more information. - /// After SDL has been initialized with you may initialize - /// uninitialized subsystems with . - /// If you want to initialize subsystems separately you would call - /// followed by with the desired subsystem flag. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_InitSubSystem(uint flags); - - /// - /// Use this function to clean up all initialized subsystems. - /// You should call it upon all exit conditions. - /// - /// You should call this function even if you have already shutdown each initialized - /// subsystem with . - /// If you start a subsystem using a call to that subsystem's init function (for example - /// ) instead of or , - /// then you must use that subsystem's quit function () to shut it down - /// before calling . - /// You can use this function with atexit() to ensure that it is run when your application is - /// shutdown, but it is not wise to do this from a library or other dynamically loaded code. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_Quit(); - - /// - /// Use this function to shut down specific SDL subsystems. - /// - /// any of the flags used by ; see Remarks for details - /// If you start a subsystem using a call to that subsystem's init function (for example - /// ) instead of or , - /// then you must use that subsystem's quit function () to shut it down - /// before calling . - /// You can use this function with atexit() to en - /// You still need to call even if you close all open subsystems with SDL_QuitSubSystem(). - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_QuitSubSystem(uint flags); - - /// - /// Use this function to return a mask of the specified subsystems which have previously been initialized. - /// - /// any of the flags used by ; see Remarks for details - /// If flags is 0 it returns a mask of all initialized subsystems, otherwise it returns the - /// initialization status of the specified subsystems. The return value does not include SDL_INIT_NOPARACHUTE. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_WasInit(uint flags); - - #endregion - - #region SDL_platform.h - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetPlatform(); - - #endregion - - #region SDL_hints.h - - public const string SDL_HINT_FRAMEBUFFER_ACCELERATION = - "SDL_FRAMEBUFFER_ACCELERATION"; - public const string SDL_HINT_RENDER_DRIVER = - "SDL_RENDER_DRIVER"; - public const string SDL_HINT_RENDER_OPENGL_SHADERS = - "SDL_RENDER_OPENGL_SHADERS"; - public const string SDL_HINT_RENDER_DIRECT3D_THREADSAFE = - "SDL_RENDER_DIRECT3D_THREADSAFE"; - public const string SDL_HINT_RENDER_VSYNC = - "SDL_RENDER_VSYNC"; - public const string SDL_HINT_VIDEO_X11_XVIDMODE = - "SDL_VIDEO_X11_XVIDMODE"; - public const string SDL_HINT_VIDEO_X11_XINERAMA = - "SDL_VIDEO_X11_XINERAMA"; - public const string SDL_HINT_VIDEO_X11_XRANDR = - "SDL_VIDEO_X11_XRANDR"; - public const string SDL_HINT_GRAB_KEYBOARD = - "SDL_GRAB_KEYBOARD"; - public const string SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS = - "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"; - public const string SDL_HINT_IDLE_TIMER_DISABLED = - "SDL_IOS_IDLE_TIMER_DISABLED"; - public const string SDL_HINT_ORIENTATIONS = - "SDL_IOS_ORIENTATIONS"; - public const string SDL_HINT_XINPUT_ENABLED = - "SDL_XINPUT_ENABLED"; - public const string SDL_HINT_GAMECONTROLLERCONFIG = - "SDL_GAMECONTROLLERCONFIG"; - public const string SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS = - "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"; - public const string SDL_HINT_ALLOW_TOPMOST = - "SDL_ALLOW_TOPMOST"; - public const string SDL_HINT_TIMER_RESOLUTION = - "SDL_TIMER_RESOLUTION"; - public const string SDL_HINT_RENDER_SCALE_QUALITY = - "SDL_RENDER_SCALE_QUALITY"; - - /* Only available in SDL 2.0.1 or higher */ - public const string SDL_HINT_VIDEO_HIGHDPI_DISABLED = - "SDL_VIDEO_HIGHDPI_DISABLED"; - - /* Only available in SDL 2.0.2 or higher */ - public const string SDL_HINT_CTRL_CLICK_EMULATE_RIGHT_CLICK = - "SDL_CTRL_CLICK_EMULATE_RIGHT_CLICK"; - public const string SDL_HINT_VIDEO_WIN_D3DCOMPILER = - "SDL_VIDEO_WIN_D3DCOMPILER"; - public const string SDL_HINT_MOUSE_RELATIVE_MODE_WARP = - "SDL_MOUSE_RELATIVE_MODE_WARP"; - public const string SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT = - "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT"; - public const string SDL_HINT_VIDEO_ALLOW_SCREENSAVER = - "SDL_VIDEO_ALLOW_SCREENSAVER"; - public const string SDL_HINT_ACCELEROMETER_AS_JOYSTICK = - "SDL_ACCELEROMETER_AS_JOYSTICK"; - public const string SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES = - "SDL_VIDEO_MAC_FULLSCREEN_SPACES"; - - /* Only available in SDL 2.0.4 or higher */ - public const string SDL_HINT_NO_SIGNAL_HANDLERS = - "SDL_NO_SIGNAL_HANDLERS"; - public const string SDL_HINT_IME_INTERNAL_EDITING = - "SDL_IME_INTERNAL_EDITING"; - public const string SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH = - "SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH"; - public const string SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT = - "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"; - public const string SDL_HINT_THREAD_STACK_SIZE = - "SDL_THREAD_STACK_SIZE"; - public const string SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN = - "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"; - public const string SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP = - "SDL_WINDOWS_ENABLE_MESSAGELOOP"; - public const string SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 = - "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4"; - public const string SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING = - "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING"; - public const string SDL_HINT_MAC_BACKGROUND_APP = - "SDL_MAC_BACKGROUND_APP"; - public const string SDL_HINT_VIDEO_X11_NET_WM_PING = - "SDL_VIDEO_X11_NET_WM_PING"; - public const string SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION = - "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION"; - public const string SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION = - "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION"; - - public enum SDL_HintPriority - { - SDL_HINT_DEFAULT, - SDL_HINT_NORMAL, - SDL_HINT_OVERRIDE - } - - /// - /// Use this function to clear all hints. - /// - /// This function is automatically called during . - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_ClearHints(); - - /// - /// Use this function to get the value of a hint. - /// - /// the hint to query; see the list of hints on - /// CategoryHints for details - /// Returns the string value of a hint or NULL if the hint isn't set. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetHint( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string name - ); - - /// - /// Use this function to set a hint with normal priority. - /// - /// the hint to query; see the list of hints on - /// CategoryHints for details - /// the value of the hint variable - /// Returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. - /// Hints will not be set if there is an existing override hint or environment - /// variable that takes precedence. You can use to set the hint with - /// override priority instead. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_SetHint( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string name, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string value - ); - - /// - /// Use this function to set a hint with a specific priority. - /// - /// the hint to query; see the list of hints on - /// CategoryHints for details - /// the value of the hint variable - /// the level for the hint - /// Returns SDL_TRUE if the hint was set, SDL_FALSE otherwise. - /// The priority controls the behavior when setting a hint that already has a value. - /// Hints will replace existing hints of their priority and lower. Environment variables are - /// considered to have override priority. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_SetHintWithPriority( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string name, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string value, - SDL_HintPriority priority - ); - - #endregion - - #region SDL_error.h - - /// - /// Use this function to clear any previous error message. - /// - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_ClearError(); - - /// - /// Use this function to retrieve a message about the last error that occurred. - /// - /// Returns a message with information about the specific error that occurred, - /// or an empty string if there hasn't been an error since the last call to . - /// Without calling , the message is only applicable when an SDL function - /// has signaled an error. You must check the return values of SDL function calls to determine - /// when to appropriately call . - /// This string is statically allocated and must not be freed by the application. - /// It is possible for multiple errors to occur before calling SDL_GetError(). Only the last error is returned. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetError(); - - /// - /// Use this function to set the SDL error string. - /// - /// a printf() style message format string - /// additional parameters matching % tokens in the fmt string, if any - /// Calling this function will replace any previous error message that was set. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetError( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string fmt, - __arglist - ); - - #endregion - - #region SDL_log.h - - /* Begin nameless enum SDL_LOG_CATEGORY */ - public const int SDL_LOG_CATEGORY_APPLICATION = 0; - public const int SDL_LOG_CATEGORY_ERROR = 1; - public const int SDL_LOG_CATEGORY_ASSERT = 2; - public const int SDL_LOG_CATEGORY_SYSTEM = 3; - public const int SDL_LOG_CATEGORY_AUDIO = 4; - public const int SDL_LOG_CATEGORY_VIDEO = 5; - public const int SDL_LOG_CATEGORY_RENDER = 6; - public const int SDL_LOG_CATEGORY_INPUT = 7; - public const int SDL_LOG_CATEGORY_TEST = 8; - - /* Reserved for future SDL library use */ - public const int SDL_LOG_CATEGORY_RESERVED1 = 9; - public const int SDL_LOG_CATEGORY_RESERVED2 = 10; - public const int SDL_LOG_CATEGORY_RESERVED3 = 11; - public const int SDL_LOG_CATEGORY_RESERVED4 = 12; - public const int SDL_LOG_CATEGORY_RESERVED5 = 13; - public const int SDL_LOG_CATEGORY_RESERVED6 = 14; - public const int SDL_LOG_CATEGORY_RESERVED7 = 15; - public const int SDL_LOG_CATEGORY_RESERVED8 = 16; - public const int SDL_LOG_CATEGORY_RESERVED9 = 17; - public const int SDL_LOG_CATEGORY_RESERVED10 = 18; - - /* Beyond this point is reserved for application use, e.g. - enum { - LOG_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM, - LOG_CATEGORY_AWESOME2, - LOG_CATEGORY_AWESOME3, - ... - }; - */ - public const int SDL_LOG_CATEGORY_CUSTOM = 19; - /* End nameless enum SDL_LOG_CATEGORY */ - - /// - /// An enumeration of the predefined log priorities. - /// - public enum SDL_LogPriority - { - SDL_LOG_PRIORITY_VERBOSE = 1, - SDL_LOG_PRIORITY_DEBUG, - SDL_LOG_PRIORITY_INFO, - SDL_LOG_PRIORITY_WARN, - SDL_LOG_PRIORITY_ERROR, - SDL_LOG_PRIORITY_CRITICAL, - SDL_NUM_LOG_PRIORITIES - } - - /// - /// Used as a callback for and - /// - /// what was passed as userdata to - /// the category of the message; see Remarks for details - /// the priority of the message; see Remarks for details - /// the message being output - /// The category can be one of SDL_LOG_CATEGORY* - /// The priority can be one of SDL_LOG_PRIORITY* - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void SDL_LogOutputFunction( - IntPtr userdata, // void* - int category, - SDL_LogPriority priority, - IntPtr message // const char* - ); - - /// - /// Use this function to log a message with SDL_LOG_CATEGORY_APPLICATION and SDL_LOG_PRIORITY_INFO. - /// - /// a printf() style message format string - /// additional parameters matching % tokens in the fmt string, if any - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_Log( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string fmt, - __arglist - ); - - /// - /// Use this function to log a message with SDL_LOG_PRIORITY_VERBOSE. - /// - /// the category of the message; see Remarks for details - /// a printf() style message format string - /// additional parameters matching % tokens in the fmt string, if any - /// The category can be one of SDL_LOG_CATEGORY* - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogVerbose( - int category, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string fmt, - __arglist - ); - - /// - /// Use this function to log a message with SDL_LOG_PRIORITY_DEBUG. - /// - /// the category of the message; see Remarks for details - /// a printf() style message format string - /// additional parameters matching % tokens in the fmt string, if any - /// The category can be one of SDL_LOG_CATEGORY* - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogDebug( - int category, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string fmt, - __arglist - ); - - /// - /// Use this function to log a message with SDL_LOG_PRIORITY_INFO. - /// - /// the category of the message; see Remarks for details - /// a printf() style message format string - /// additional parameters matching % tokens in the fmt string, if any - /// The category can be one of SDL_LOG_CATEGORY* - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogInfo( - int category, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string fmt, - __arglist - ); - - /// - /// Use this function to log a message with SDL_LOG_PRIORITY_WARN. - /// - /// the category of the message; see Remarks for details - /// a printf() style message format string - /// additional parameters matching % tokens in the fmt string, if any - /// The category can be one of SDL_LOG_CATEGORY* - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogWarn( - int category, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string fmt, - __arglist - ); - - /// - /// Use this function to log a message with SDL_LOG_PRIORITY_ERROR. - /// - /// the category of the message; see Remarks for details - /// a printf() style message format string - /// additional parameters matching % tokens in the fmt string, if any - /// The category can be one of SDL_LOG_CATEGORY* - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogError( - int category, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string fmt, - __arglist - ); - - /// - /// Use this function to log a message with SDL_LOG_PRIORITY_CRITICAL. - /// - /// the category of the message; see Remarks for details - /// a printf() style message format string - /// additional parameters matching % tokens in the fmt string, if any - /// The category can be one of SDL_LOG_CATEGORY* - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogCritical( - int category, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string fmt, - __arglist - ); - - /// - /// Use this function to log a message with the specified category and priority. - /// - /// the category of the message; see Remarks for details - /// the priority of the message; see Remarks for details - /// a printf() style message format string - /// additional parameters matching % tokens in the fmt string, if any - /// The category can be one of SDL_LOG_CATEGORY* - /// The priority can be one of SDL_LOG_PRIORITY* - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogMessage( - int category, - SDL_LogPriority priority, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string fmt, - __arglist - ); - - /// - /// Use this function to log a message with the specified category and priority. - /// This version of uses a stdarg variadic argument list. - /// - /// the category of the message; see Remarks for details - /// the priority of the message; see Remarks for details - /// a printf() style message format string - /// additional parameters matching % tokens in the fmt string, if any - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogMessageV( - int category, - SDL_LogPriority priority, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string fmt, - __arglist - ); - - /// - /// Use this function to get the priority of a particular log category. - /// - /// the category to query; see Remarks for details - /// Returns the for the requested category; see Remarks for details. - /// The category can be one of SDL_LOG_CATEGORY* - /// The returned priority will be one of SDL_LOG_PRIORITY* - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_LogPriority SDL_LogGetPriority( - int category - ); - - /// - /// Use this function to set the priority of a particular log category. - /// - /// the category to query; see Remarks for details - /// the of the message; see Remarks for details - /// The category can be one of SDL_LOG_CATEGORY* - /// The priority can be one of SDL_LOG_PRIORITY* - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogSetPriority( - int category, - SDL_LogPriority priority - ); - - /// - /// Use this function to set the priority of all log categories. - /// - /// the of the message; see Remarks for details - /// The priority can be one of SDL_LOG_PRIORITY* - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogSetAllPriority( - SDL_LogPriority priority - ); - - /// - /// Use this function to reset all priorities to default. - /// - /// This is called in . - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogResetPriorities(); - - /// - /// Use this function to get the current log output function. - /// - /// a pointer filled in with the current log callback; see Remarks for details - /// a pointer filled in with the pointer that is passed to callback (refers to void*) - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogGetOutputFunction( - out SDL_LogOutputFunction callback, - out IntPtr userdata - ); - - /* userdata refers to a void* */ - /// - /// Use this function to replace the default log output function with one of your own. - /// - /// the function to call instead of the default; see Remarks for details - /// a pointer that is passed to callback (refers to void*) - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LogSetOutputFunction( - SDL_LogOutputFunction callback, - IntPtr userdata - ); - - #endregion - - #region SDL_messagebox.h - - [Flags] - public enum SDL_MessageBoxFlags : uint - { - SDL_MESSAGEBOX_ERROR = 0x00000010, - SDL_MESSAGEBOX_WARNING = 0x00000020, - SDL_MESSAGEBOX_INFORMATION = 0x00000040 - } - - [Flags] - public enum SDL_MessageBoxButtonFlags : uint - { - SDL_MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT = 0x00000001, - SDL_MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT = 0x00000002 - } - - [StructLayout(LayoutKind.Sequential)] - private struct INTERNAL_SDL_MessageBoxButtonData - { - public SDL_MessageBoxButtonFlags flags; - public int buttonid; - public IntPtr text; /* The UTF-8 button text */ - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MessageBoxButtonData - { - public SDL_MessageBoxButtonFlags flags; - public int buttonid; - public string text; /* The UTF-8 button text */ - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MessageBoxColor - { - public byte r, g, b; - } - - public enum SDL_MessageBoxColorType - { - SDL_MESSAGEBOX_COLOR_BACKGROUND, - SDL_MESSAGEBOX_COLOR_TEXT, - SDL_MESSAGEBOX_COLOR_BUTTON_BORDER, - SDL_MESSAGEBOX_COLOR_BUTTON_BACKGROUND, - SDL_MESSAGEBOX_COLOR_BUTTON_SELECTED, - SDL_MESSAGEBOX_COLOR_MAX - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MessageBoxColorScheme - { - [MarshalAs(UnmanagedType.ByValArray, ArraySubType = UnmanagedType.Struct, SizeConst = (int)SDL_MessageBoxColorType.SDL_MESSAGEBOX_COLOR_MAX)] - public SDL_MessageBoxColor[] colors; - } - - [StructLayout(LayoutKind.Sequential)] - private struct INTERNAL_SDL_MessageBoxData - { - public SDL_MessageBoxFlags flags; - public IntPtr window; /* Parent window, can be NULL */ - public IntPtr title; /* UTF-8 title */ - public IntPtr message; /* UTF-8 message text */ - public int numbuttons; - public IntPtr buttons; - public IntPtr colorScheme; /* Can be NULL to use system settings */ - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MessageBoxData - { - public SDL_MessageBoxFlags flags; - public IntPtr window; /* Parent window, can be NULL */ - public string title; /* UTF-8 title */ - public string message; /* UTF-8 message text */ - public int numbuttons; - public SDL_MessageBoxButtonData[] buttons; - public SDL_MessageBoxColorScheme? colorScheme; /* Can be NULL to use system settings */ - } - - /// - /// - /// - /// - /// - /// - [DllImport(nativeLibName, EntryPoint = "SDL_ShowMessageBox", CallingConvention = CallingConvention.Cdecl)] - private static extern int INTERNAL_SDL_ShowMessageBox([In()] ref INTERNAL_SDL_MessageBoxData messageboxdata, out int buttonid); - - /// - /// - /// - /// - /// - /// - public static unsafe int SDL_ShowMessageBox([In()] ref SDL_MessageBoxData messageboxdata, out int buttonid) - { - var utf8 = LPUtf8StrMarshaler.GetInstance(null); - - var data = new INTERNAL_SDL_MessageBoxData() - { - flags = messageboxdata.flags, - window = messageboxdata.window, - title = utf8.MarshalManagedToNative(messageboxdata.title), - message = utf8.MarshalManagedToNative(messageboxdata.message), - numbuttons = messageboxdata.numbuttons, - }; - - var buttons = new INTERNAL_SDL_MessageBoxButtonData[messageboxdata.numbuttons]; - for (int i = 0; i < messageboxdata.numbuttons; i++) - { - buttons[i] = new INTERNAL_SDL_MessageBoxButtonData() - { - flags = messageboxdata.buttons[i].flags, - buttonid = messageboxdata.buttons[i].buttonid, - text = utf8.MarshalManagedToNative(messageboxdata.buttons[i].text), - }; - } - - if (messageboxdata.colorScheme != null) - { - data.colorScheme = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(SDL_MessageBoxColorScheme))); - Marshal.StructureToPtr(messageboxdata.colorScheme.Value, data.colorScheme, false); - } - - int result; - fixed (INTERNAL_SDL_MessageBoxButtonData* buttonsPtr = &buttons[0]) - { - data.buttons = (IntPtr)buttonsPtr; - result = INTERNAL_SDL_ShowMessageBox(ref data, out buttonid); - } - - Marshal.FreeHGlobal(data.colorScheme); - for (int i = 0; i < messageboxdata.numbuttons; i++) - { - utf8.CleanUpNativeData(buttons[i].text); - } - utf8.CleanUpNativeData(data.message); - utf8.CleanUpNativeData(data.title); - - return result; - } - - /// - /// Use this function to display a simple message box. - /// - /// An ; see Remarks for details; - /// UTF-8 title text - /// UTF-8 message text - /// the parent window, or NULL for no parent (refers to a - /// 0 on success or a negative error code on failure; call SDL_GetError() for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_ShowSimpleMessageBox( - SDL_MessageBoxFlags flags, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string title, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string message, - IntPtr window - ); - - #endregion - - #region SDL_version.h, SDL_revision.h - - /* Similar to the headers, this is the version we're expecting to be - * running with. You will likely want to check this somewhere in your - * program! - */ - public const int SDL_MAJOR_VERSION = 2; - public const int SDL_MINOR_VERSION = 0; - public const int SDL_PATCHLEVEL = 4; - - public static readonly int SDL_COMPILEDVERSION = SDL_VERSIONNUM( - SDL_MAJOR_VERSION, - SDL_MINOR_VERSION, - SDL_PATCHLEVEL - ); - - /// - /// A structure that contains information about the version of SDL in use. - /// - /// Represents the library's version as three levels: - /// major revision (increments with massive changes, additions, and enhancements) - /// minor revision (increments with backwards-compatible changes to the major revision), and - /// patchlevel (increments with fixes to the minor revision) - /// can be used to populate this structure with information - [StructLayout(LayoutKind.Sequential)] - public struct SDL_version - { - public byte major; - public byte minor; - public byte patch; - } - - /// - /// Use this macro to determine the SDL version your program was compiled against. - /// - /// an structure to initialize - public static void SDL_VERSION(out SDL_version x) - { - x.major = SDL_MAJOR_VERSION; - x.minor = SDL_MINOR_VERSION; - x.patch = SDL_PATCHLEVEL; - } - - /// - /// Use this macro to convert separate version components into a single numeric value. - /// - /// major version; reported in thousands place - /// minor version; reported in hundreds place - /// update version (patchlevel); reported in tens and ones places - /// - /// This assumes that there will never be more than 100 patchlevels. - /// Example: SDL_VERSIONNUM(1,2,3) -> (1203) - public static int SDL_VERSIONNUM(int X, int Y, int Z) - { - return (X * 1000) + (Y * 100) + Z; - } - - /// - /// Use this macro to determine whether the SDL version compiled against is at least as new as the specified version. - /// - /// major version - /// minor version - /// update version (patchlevel) - /// This macro will evaluate to true if compiled with SDL version at least X.Y.Z. - public static bool SDL_VERSION_ATLEAST(int X, int Y, int Z) - { - return (SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z)); - } - - /// - /// Use this function to get the version of SDL that is linked against your program. - /// - /// the structure that contains the version information - /// This function may be called safely at any time, even before SDL_Init(). - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetVersion(out SDL_version ver); - - /// - /// Use this function to get the code revision of SDL that is linked against your program. - /// - /// Returns an arbitrary string, uniquely identifying the exact revision - /// of the SDL library in use. - /// The revision is a string including sequential revision number that is - /// incremented with each commit, and a hash of the last code change. - /// Example: hg-5344:94189aa89b54 - /// This value is the revision of the code you are linked with and may be - /// different from the code you are compiling with, which is found in the constant SDL_REVISION. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetRevision(); - - /// - /// Use this function to get the revision number of SDL that is linked against your program. - /// - /// Returns a number uniquely identifying the exact revision of the SDL library in use. - /// This is an incrementing number based on commits to hg.libsdl.org. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRevisionNumber(); - - #endregion - - #region SDL_video.h - - /* Actually, this is from SDL_blendmode.h */ - /// - /// An enumeration of blend modes used in SDL_RenderCopy() and drawing operations. - /// - [Flags] - public enum SDL_BlendMode - { - SDL_BLENDMODE_NONE = 0x00000000, - SDL_BLENDMODE_BLEND = 0x00000001, - SDL_BLENDMODE_ADD = 0x00000002, - SDL_BLENDMODE_MOD = 0x00000004 - } - - /// - /// An enumeration of OpenGL configuration attributes. - /// - public enum SDL_GLattr - { - SDL_GL_RED_SIZE, - SDL_GL_GREEN_SIZE, - SDL_GL_BLUE_SIZE, - SDL_GL_ALPHA_SIZE, - SDL_GL_BUFFER_SIZE, - SDL_GL_DOUBLEBUFFER, - SDL_GL_DEPTH_SIZE, - SDL_GL_STENCIL_SIZE, - SDL_GL_ACCUM_RED_SIZE, - SDL_GL_ACCUM_GREEN_SIZE, - SDL_GL_ACCUM_BLUE_SIZE, - SDL_GL_ACCUM_ALPHA_SIZE, - SDL_GL_STEREO, - SDL_GL_MULTISAMPLEBUFFERS, - SDL_GL_MULTISAMPLESAMPLES, - SDL_GL_ACCELERATED_VISUAL, - SDL_GL_RETAINED_BACKING, - SDL_GL_CONTEXT_MAJOR_VERSION, - SDL_GL_CONTEXT_MINOR_VERSION, - SDL_GL_CONTEXT_EGL, - SDL_GL_CONTEXT_FLAGS, - SDL_GL_CONTEXT_PROFILE_MASK, - SDL_GL_SHARE_WITH_CURRENT_CONTEXT, - SDL_GL_FRAMEBUFFER_SRGB_CAPABLE, - SDL_GL_CONTEXT_RELEASE_BEHAVIOR - } - - /// - /// An enumeration of OpenGL profiles. - /// - [Flags] - public enum SDL_GLprofile - { - SDL_GL_CONTEXT_PROFILE_CORE = 0x0001, - SDL_GL_CONTEXT_PROFILE_COMPATIBILITY = 0x0002, - SDL_GL_CONTEXT_PROFILE_ES = 0x0004 - } - - /// - /// This enumeration is used in conjunction with SDL_GL_SetAttribute - /// and SDL_GL_CONTEXT_FLAGS. Multiple flags can be OR'd together. - /// - [Flags] - public enum SDL_GLcontext - { - SDL_GL_CONTEXT_DEBUG_FLAG = 0x0001, - SDL_GL_CONTEXT_FORWARD_COMPATIBLE_FLAG = 0x0002, - SDL_GL_CONTEXT_ROBUST_ACCESS_FLAG = 0x0004, - SDL_GL_CONTEXT_RESET_ISOLATION_FLAG = 0x0008 - } - - /// - /// An enumeration of window events. - /// - public enum SDL_WindowEventID : byte - { - SDL_WINDOWEVENT_NONE, - SDL_WINDOWEVENT_SHOWN, - SDL_WINDOWEVENT_HIDDEN, - SDL_WINDOWEVENT_EXPOSED, - SDL_WINDOWEVENT_MOVED, - SDL_WINDOWEVENT_RESIZED, - SDL_WINDOWEVENT_SIZE_CHANGED, - SDL_WINDOWEVENT_MINIMIZED, - SDL_WINDOWEVENT_MAXIMIZED, - SDL_WINDOWEVENT_RESTORED, - SDL_WINDOWEVENT_ENTER, - SDL_WINDOWEVENT_LEAVE, - SDL_WINDOWEVENT_FOCUS_GAINED, - SDL_WINDOWEVENT_FOCUS_LOST, - SDL_WINDOWEVENT_CLOSE, - } - - /// - /// An enumeration of window states. - /// - [Flags] - public enum SDL_WindowFlags : uint - { - SDL_WINDOW_FULLSCREEN = 0x00000001, - SDL_WINDOW_OPENGL = 0x00000002, - SDL_WINDOW_SHOWN = 0x00000004, - SDL_WINDOW_HIDDEN = 0x00000008, - SDL_WINDOW_BORDERLESS = 0x00000010, - SDL_WINDOW_RESIZABLE = 0x00000020, - SDL_WINDOW_MINIMIZED = 0x00000040, - SDL_WINDOW_MAXIMIZED = 0x00000080, - SDL_WINDOW_INPUT_GRABBED = 0x00000100, - SDL_WINDOW_INPUT_FOCUS = 0x00000200, - SDL_WINDOW_MOUSE_FOCUS = 0x00000400, - SDL_WINDOW_FULLSCREEN_DESKTOP = - (SDL_WINDOW_FULLSCREEN | 0x00001000), - SDL_WINDOW_FOREIGN = 0x00000800, - SDL_WINDOW_ALLOW_HIGHDPI = 0x00002000, /* Only available in 2.0.1 */ - SDL_WINDOW_MOUSE_CAPTURE = 0x00004000, /* Only available in 2.0.4 */ - } - - /// - /// Possible return values from the SDL_HitTest callback. - /// This is only available in 2.0.4. - /// - public enum SDL_HitTestResult - { - SDL_HITTEST_NORMAL, /* Region is normal. No special properties. */ - SDL_HITTEST_DRAGGABLE, /* Region can drag entire window. */ - SDL_HITTEST_RESIZE_TOPLEFT, - SDL_HITTEST_RESIZE_TOP, - SDL_HITTEST_RESIZE_TOPRIGHT, - SDL_HITTEST_RESIZE_RIGHT, - SDL_HITTEST_RESIZE_BOTTOMRIGHT, - SDL_HITTEST_RESIZE_BOTTOM, - SDL_HITTEST_RESIZE_BOTTOMLEFT, - SDL_HITTEST_RESIZE_LEFT - } - - public const int SDL_WINDOWPOS_UNDEFINED_MASK = 0x1FFF0000; - public const int SDL_WINDOWPOS_CENTERED_MASK = 0x2FFF0000; - public const int SDL_WINDOWPOS_UNDEFINED = 0x1FFF0000; - public const int SDL_WINDOWPOS_CENTERED = 0x2FFF0000; - - public static int SDL_WINDOWPOS_UNDEFINED_DISPLAY(int X) - { - return (SDL_WINDOWPOS_UNDEFINED_MASK | X); - } - - public static bool SDL_WINDOWPOS_ISUNDEFINED(int X) - { - return (X & 0xFFFF0000) == SDL_WINDOWPOS_UNDEFINED_MASK; - } - - public static int SDL_WINDOWPOS_CENTERED_DISPLAY(int X) - { - return (SDL_WINDOWPOS_CENTERED_MASK | X); - } - - public static bool SDL_WINDOWPOS_ISCENTERED(int X) - { - return (X & 0xFFFF0000) == SDL_WINDOWPOS_CENTERED_MASK; - } - - /// - /// A structure that describes a display mode. - /// - [StructLayout(LayoutKind.Sequential)] - public struct SDL_DisplayMode - { - public uint format; - public int w; - public int h; - public int refresh_rate; - public IntPtr driverdata; // void* - } - - /* win refers to an SDL_Window*, area to a cosnt SDL_Point*, data to a void* */ - /* Only available in 2.0.4 */ - public delegate SDL_HitTestResult SDL_HitTest(IntPtr win, IntPtr area, IntPtr data); - - /// - /// Use this function to create a window with the specified position, dimensions, and flags. - /// - /// the title of the window, in UTF-8 encoding - /// the x position of the window, SDL_WINDOWPOS_CENTERED, or SDL_WINDOWPOS_UNDEFINED - /// the y position of the window, SDL_WINDOWPOS_CENTERED, or SDL_WINDOWPOS_UNDEFINED - /// the width of the window - /// the height of the window - /// 0, or one or more OR'd together; - /// see Remarks for details - /// Returns the window that was created or NULL on failure; call - /// for more information. (refers to an ) - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateWindow( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string title, - int x, - int y, - int w, - int h, - SDL_WindowFlags flags - ); - - /// - /// Use this function to create a window and default renderer. - /// - /// The width of the window - /// The height of the window - /// The flags used to create the window (see ) - /// A pointer filled with the window, or NULL on error () - /// A pointer filled with the renderer, or NULL on error - /// Returns 0 on success, or -1 on error; call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_CreateWindowAndRenderer( - int width, - int height, - SDL_WindowFlags window_flags, - out IntPtr window, - out IntPtr renderer - ); - - /// - /// Use this function to create an SDL window from an existing native window. - /// - /// a pointer to driver-dependent window creation data, typically your native window cast to a void* - /// Returns the window () that was created or NULL on failure; - /// call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateWindowFrom(IntPtr data); - - /// - /// Use this function to destroy a window. - /// - /// the window to destroy () - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_DestroyWindow(IntPtr window); - - /// - /// Use this function to prevent the screen from being blanked by a screen saver. - /// - /// If you disable the screensaver, it is automatically re-enabled when SDL quits. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_DisableScreenSaver(); - - /// - /// Use this function to allow the screen to be blanked by a screen saver. - /// - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_EnableScreenSaver(); - - /* IntPtr refers to an SDL_DisplayMode. Just use closest. */ - /// - /// Use this function to get the closest match to the requested display mode. - /// - /// the index of the display to query - /// an structure containing the desired display mode - /// an structure filled in with - /// the closest match of the available display modes - /// Returns the passed in value closest or NULL if no matching video mode was available; - /// (refers to a ) - /// call for more information. - /// The available display modes are scanned and closest is filled in with the closest mode - /// matching the requested mode and returned. The mode format and refresh rate default to the desktop - /// mode if they are set to 0. The modes are scanned with size being first priority, format being - /// second priority, and finally checking the refresh rate. If all the available modes are too small, - /// then NULL is returned. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetClosestDisplayMode( - int displayIndex, - ref SDL_DisplayMode mode, - out SDL_DisplayMode closest - ); - - /// - /// Use this function to get information about the current display mode. - /// - /// the index of the display to query - /// an structure filled in with the current display mode - /// Returns 0 on success or a negative error code on failure; - /// call for more information. - /// There's a difference between this function and when SDL - /// runs fullscreen and has changed the resolution. In that case this function will return the - /// current display mode, and not the previous native display mode. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetCurrentDisplayMode( - int displayIndex, - out SDL_DisplayMode mode - ); - - /// - /// Use this function to return the name of the currently initialized video driver. - /// - /// Returns the name of the current video driver or NULL if no driver has been initialized. - /// There's a difference between this function and when SDL - /// runs fullscreen and has changed the resolution. In that case this function will return the - /// previous native display mode, and not the current display mode. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetCurrentVideoDriver(); - - /// - /// Use this function to get information about the desktop display mode. - /// - /// the index of the display to query - /// an structure filled in with the current display mode - /// Returns 0 on success or a negative error code on failure; - /// call for more information. - /// There's a difference between this function and when SDL - /// runs fullscreen and has changed the resolution. In that case this function will return the - /// previous native display mode, and not the current display mode. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetDesktopDisplayMode( - int displayIndex, - out SDL_DisplayMode mode - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetDisplayName(int index); - - /// - /// Use this function to get the desktop area represented by a display, with the primary display located at 0,0. - /// - /// the index of the display to query - /// the structure filled in with the display bounds - /// Returns 0 on success or a negative error code on failure; - /// call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetDisplayBounds( - int displayIndex, - out SDL_Rect rect - ); - - /* This function is only available in 2.0.4 or higher */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetDisplayDPI( - int displayIndex, - out float ddpi, - out float hdpi, - out float vdpi - ); - - /// - /// Use this function to get information about a specific display mode. - /// - /// the index of the display to query - /// the index of the display mode to query - /// an structure filled in with the mode at modeIndex - /// Returns 0 on success or a negative error code on failure; - /// call for more information. - /// The display modes are sorted in this priority: - /// bits per pixel -> more colors to fewer colors - /// width -> largest to smallest - /// height -> largest to smallest - /// refresh rate -> highest to lowest - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetDisplayMode( - int displayIndex, - int modeIndex, - out SDL_DisplayMode mode - ); - - /// - /// Use this function to return the number of available display modes. - /// - /// the index of the display to query - /// Returns a number >= 1 on success or a negative error code on failure; - /// call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumDisplayModes( - int displayIndex - ); - - /// - /// Use this function to return the number of available video displays. - /// - /// Returns a number >= 1 or a negative error code on failure; - /// call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumVideoDisplays(); - - /// - /// Use this function to get the number of video drivers compiled into SDL. - /// - /// Returns a number >= 1 on success or a negative error code on failure; - /// call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumVideoDrivers(); - - /// - /// Use this function to get the name of a built in video driver. - /// - /// the index of a video driver - /// Returns the name of the video driver with the given index. - /// The video drivers are presented in the order in which they are normally checked during initialization. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetVideoDriver( - int index - ); - - /// - /// Use this function to get the brightness (gamma correction) for a window. - /// - /// the window to query () - /// Returns the brightness for the window where 0.0 is completely dark and 1.0 is normal brightness. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern float SDL_GetWindowBrightness( - IntPtr window - ); - - /// - /// Use this function to retrieve the data pointer associated with a window. - /// - /// the window to query () - /// the name of the pointer - /// Returns the value associated with name. (void*) - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetWindowData( - IntPtr window, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string name - ); - - /// - /// Use this function to get the index of the display associated with a window. - /// - /// the window to query () - /// Returns the index of the display containing the center of the window - /// on success or a negative error code on failure; - /// call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetWindowDisplayIndex( - IntPtr window - ); - - /// - /// Use this function to fill in information about the display mode to use when a window is visible at fullscreen. - /// - /// the window to query () - /// an structure filled in with the fullscreen display mode - /// Returns 0 on success or a negative error code on failure; - /// call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetWindowDisplayMode( - IntPtr window, - out SDL_DisplayMode mode - ); - - /// - /// Use this function to get the window flags. - /// - /// the window to query () - /// Returns a mask of the associated with window; see Remarks for details. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_GetWindowFlags(IntPtr window); - - /// - /// Use this function to get a window from a stored ID. - /// - /// the ID of the window - /// Returns the window associated with id or NULL if it doesn't exist (); - /// call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetWindowFromID(uint id); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetWindowGammaRamp( - IntPtr window, - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] red, - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] green, - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] blue - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GetWindowGrab(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_GetWindowID(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_GetWindowPixelFormat( - IntPtr window - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetWindowMaximumSize( - IntPtr window, - out int max_w, - out int max_h - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetWindowMinimumSize( - IntPtr window, - out int min_w, - out int min_h - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetWindowPosition( - IntPtr window, - out int x, - out int y - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetWindowSize( - IntPtr window, - out int w, - out int h - ); - - /* IntPtr refers to an SDL_Surface*, window to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetWindowSurface(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetWindowTitle( - IntPtr window - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_BindTexture( - IntPtr texture, - out float texw, - out float texh - ); - - /* IntPtr and window refer to an SDL_GLContext and SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GL_CreateContext(IntPtr window); - - /* context refers to an SDL_GLContext */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GL_DeleteContext(IntPtr context); - - /* IntPtr refers to a function pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GL_GetProcAddress( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string proc - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GL_ExtensionSupported( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string extension - ); - - /* Only available in SDL 2.0.2 or higher */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GL_ResetAttributes(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_GetAttribute( - SDL_GLattr attr, - out int value - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_GetSwapInterval(); - - /* window and context refer to an SDL_Window* and SDL_GLContext */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_MakeCurrent( - IntPtr window, - IntPtr context - ); - - /* IntPtr refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GL_GetCurrentWindow(); - - /* IntPtr refers to an SDL_Context */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GL_GetCurrentContext(); - - /* window refers to an SDL_Window*, This function is only available in SDL 2.0.1 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GL_GetDrawableSize( - IntPtr window, - out int w, - out int h - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_SetAttribute( - SDL_GLattr attr, - int value - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_SetSwapInterval(int interval); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GL_SwapWindow(IntPtr window); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GL_UnbindTexture(IntPtr texture); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_HideWindow(IntPtr window); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsScreenSaverEnabled(); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_MaximizeWindow(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_MinimizeWindow(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RaiseWindow(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RestoreWindow(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowBrightness( - IntPtr window, - float brightness - ); - - /* IntPtr and userdata are void*, window is an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_SetWindowData( - IntPtr window, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string name, - IntPtr userdata - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowDisplayMode( - IntPtr window, - ref SDL_DisplayMode mode - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowFullscreen( - IntPtr window, - uint flags - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowGammaRamp( - IntPtr window, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] red, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] green, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] blue - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowGrab( - IntPtr window, - SDL_bool grabbed - ); - - /* window refers to an SDL_Window*, icon to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowIcon( - IntPtr window, - IntPtr icon - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowMaximumSize( - IntPtr window, - int max_w, - int max_h - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowMinimumSize( - IntPtr window, - int min_w, - int min_h - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowPosition( - IntPtr window, - int x, - int y - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowSize( - IntPtr window, - int w, - int h - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowBordered( - IntPtr window, - SDL_bool bordered - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetWindowTitle( - IntPtr window, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string title - ); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_ShowWindow(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpdateWindowSurface(IntPtr window); - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpdateWindowSurfaceRects( - IntPtr window, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeParamIndex = 2)] - SDL_Rect[] rects, - int numrects - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_VideoInit( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string driver_name - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_VideoQuit(); - - /* window refers to an SDL_Window*, callback_data to a void* */ - /* Only available in 2.0.4 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetWindowHitTest( - IntPtr window, - SDL_HitTest callback, - IntPtr callback_data - ); - - /* IntPtr refers to an SDL_Window* */ - /* Only available in 2.0.4 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetGrabbedWindow(); - - #endregion - - #region SDL_render.h - - [Flags] - public enum SDL_RendererFlags : uint - { - SDL_RENDERER_SOFTWARE = 0x00000001, - SDL_RENDERER_ACCELERATED = 0x00000002, - SDL_RENDERER_PRESENTVSYNC = 0x00000004, - SDL_RENDERER_TARGETTEXTURE = 0x00000008 - } - - [Flags] - public enum SDL_RendererFlip - { - SDL_FLIP_NONE = 0x00000000, - SDL_FLIP_HORIZONTAL = 0x00000001, - SDL_FLIP_VERTICAL = 0x00000002 - } - - public enum SDL_TextureAccess - { - SDL_TEXTUREACCESS_STATIC, - SDL_TEXTUREACCESS_STREAMING, - SDL_TEXTUREACCESS_TARGET - } - - [Flags] - public enum SDL_TextureModulate - { - SDL_TEXTUREMODULATE_NONE = 0x00000000, - SDL_TEXTUREMODULATE_HORIZONTAL = 0x00000001, - SDL_TEXTUREMODULATE_VERTICAL = 0x00000002 - } - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_RendererInfo - { - public IntPtr name; // const char* - public uint flags; - public uint num_texture_formats; - public fixed uint texture_formats[16]; - public int max_texture_width; - public int max_texture_height; - } - - /* IntPtr refers to an SDL_Renderer*, window to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateRenderer( - IntPtr window, - int index, - SDL_RendererFlags flags - ); - - /* IntPtr refers to an SDL_Renderer*, surface to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateSoftwareRenderer(IntPtr surface); - - /* IntPtr refers to an SDL_Texture*, renderer to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateTexture( - IntPtr renderer, - uint format, - int access, - int w, - int h - ); - - /* IntPtr refers to an SDL_Texture* - * renderer refers to an SDL_Renderer* - * surface refers to an SDL_Surface* - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateTextureFromSurface( - IntPtr renderer, - IntPtr surface - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_DestroyRenderer(IntPtr renderer); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_DestroyTexture(IntPtr texture); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumRenderDrivers(); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRenderDrawBlendMode( - IntPtr renderer, - out SDL_BlendMode blendMode - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRenderDrawColor( - IntPtr renderer, - out byte r, - out byte g, - out byte b, - out byte a - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRenderDriverInfo( - int index, - out SDL_RendererInfo info - ); - - /* IntPtr refers to an SDL_Renderer*, window to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetRenderer(IntPtr window); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRendererInfo( - IntPtr renderer, - out SDL_RendererInfo info - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetRendererOutputSize( - IntPtr renderer, - out int w, - out int h - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetTextureAlphaMod( - IntPtr texture, - out byte alpha - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetTextureBlendMode( - IntPtr texture, - out SDL_BlendMode blendMode - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetTextureColorMod( - IntPtr texture, - out byte r, - out byte g, - out byte b - ); - - /// - /// Use this function to lock a portion of the texture for write-only pixel access. - /// - /// the texture to lock for access, which was created with - /// SDL_TEXTUREACCESS_STREAMING (refers to a SDL_Texture*) - /// an SDL_Rect structure representing the area to lock for access; - /// NULL to lock the entire texture - /// this is filled in with a pointer to the locked pixels, appropriately - /// offset by the locked area (refers to a void*) - /// this is filled in with the pitch of the locked pixels - /// Returns 0 on success or a negative error code if the texture is not valid or - /// was not created with SDL_TEXTUREACCESS_STREAMING; call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LockTexture( - IntPtr texture, - ref SDL_Rect rect, - out IntPtr pixels, - out int pitch - ); - - /// - /// Use this function to lock a portion of the texture for write-only pixel access. This overload - /// allows for passing an IntPtr.Zero (null) rect value to lock the entire texture. - /// - /// the texture to lock for access, which was created with - /// SDL_TEXTUREACCESS_STREAMING (refers to a SDL_Texture*) - /// an SDL_Rect structure representing the area to lock for access; - /// NULL to lock the entire texture - /// this is filled in with a pointer to the locked pixels, appropriately - /// offset by the locked area (refers to a void*) - /// this is filled in with the pitch of the locked pixels - /// Returns 0 on success or a negative error code if the texture is not valid or - /// was not created with SDL_TEXTUREACCESS_STREAMING; call for more information. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LockTexture( - IntPtr texture, - IntPtr rect, - out IntPtr pixels, - out int pitch - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_QueryTexture( - IntPtr texture, - out uint format, - out int access, - out int w, - out int h - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderClear(IntPtr renderer); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopy( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - ref SDL_Rect dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for srcrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopy( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - ref SDL_Rect dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for dstrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopy( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - IntPtr dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both SDL_Rects. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopy( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - IntPtr dstrect - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - ref SDL_Rect dstrect, - double angle, - ref SDL_Point center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for srcrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - ref SDL_Rect dstrect, - double angle, - ref SDL_Point center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for dstrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - IntPtr dstrect, - double angle, - ref SDL_Point center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for center. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - ref SDL_Rect dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both - * srcrect and dstrect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - IntPtr dstrect, - double angle, - ref SDL_Point center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both - * srcrect and center. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - ref SDL_Rect dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both - * dstrect and center. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - ref SDL_Rect srcrect, - IntPtr dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture*. - * Internally, this function contains logic to use default values when - * source, destination, and/or center are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for all - * three parameters. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderCopyEx( - IntPtr renderer, - IntPtr texture, - IntPtr srcrect, - IntPtr dstrect, - double angle, - IntPtr center, - SDL_RendererFlip flip - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawLine( - IntPtr renderer, - int x1, - int y1, - int x2, - int y2 - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawLines( - IntPtr renderer, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeParamIndex = 2)] - SDL_Point[] points, - int count - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawPoint( - IntPtr renderer, - int x, - int y - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawPoints( - IntPtr renderer, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeParamIndex = 2)] - SDL_Point[] points, - int count - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawRect( - IntPtr renderer, - ref SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer*, rect to an SDL_Rect*. - * This overload allows for IntPtr.Zero (null) to be passed for rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawRect( - IntPtr renderer, - IntPtr rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderDrawRects( - IntPtr renderer, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeParamIndex = 2)] - SDL_Rect[] rects, - int count - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderFillRect( - IntPtr renderer, - ref SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer*, rect to an SDL_Rect*. - * This overload allows for IntPtr.Zero (null) to be passed for rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderFillRect( - IntPtr renderer, - IntPtr rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderFillRects( - IntPtr renderer, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeParamIndex = 2)] - SDL_Rect[] rects, - int count - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RenderGetClipRect( - IntPtr renderer, - out SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RenderGetLogicalSize( - IntPtr renderer, - out int w, - out int h - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RenderGetScale( - IntPtr renderer, - out float scaleX, - out float scaleY - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderGetViewport( - IntPtr renderer, - out SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_RenderPresent(IntPtr renderer); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderReadPixels( - IntPtr renderer, - ref SDL_Rect rect, - uint format, - IntPtr pixels, - int pitch - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetClipRect( - IntPtr renderer, - ref SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer* - * This overload allows for IntPtr.Zero (null) to be passed for rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetClipRect( - IntPtr renderer, - IntPtr rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetLogicalSize( - IntPtr renderer, - int w, - int h - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetScale( - IntPtr renderer, - float scaleX, - float scaleY - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_RenderSetViewport( - IntPtr renderer, - ref SDL_Rect rect - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetRenderDrawBlendMode( - IntPtr renderer, - SDL_BlendMode blendMode - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetRenderDrawColor( - IntPtr renderer, - byte r, - byte g, - byte b, - byte a - ); - - /* renderer refers to an SDL_Renderer*, texture to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetRenderTarget( - IntPtr renderer, - IntPtr texture - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetTextureAlphaMod( - IntPtr texture, - byte alpha - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetTextureBlendMode( - IntPtr texture, - SDL_BlendMode blendMode - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetTextureColorMod( - IntPtr texture, - byte r, - byte g, - byte b - ); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnlockTexture(IntPtr texture); - - /* texture refers to an SDL_Texture* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpdateTexture( - IntPtr texture, - ref SDL_Rect rect, - IntPtr pixels, - int pitch - ); - - /* renderer refers to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_RenderTargetSupported( - IntPtr renderer - ); - - /* IntPtr refers to an SDL_Texture*, renderer to an SDL_Renderer* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetRenderTarget(IntPtr renderer); - - /* renderer refers to an SDL_Renderer* */ - /* Only available in 2.0.4 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_RenderIsClipEnabled(IntPtr renderer); - - #endregion - - #region SDL_pixels.h - - public static uint SDL_DEFINE_PIXELFOURCC(byte A, byte B, byte C, byte D) - { - return SDL_FOURCC(A, B, C, D); - } - - public static uint SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM type, - SDL_PIXELORDER_ENUM order, - SDL_PACKEDLAYOUT_ENUM layout, - byte bits, - byte bytes - ) { - return (uint) ( - (1 << 28) | - (((byte) type) << 24) | - (((byte) order) << 20) | - (((byte) layout) << 16) | - (bits << 8) | - (bytes) - ); - } - - public static byte SDL_PIXELFLAG(uint X) - { - return (byte) ((X >> 28) & 0x0F); - } - - public static byte SDL_PIXELTYPE(uint X) - { - return (byte) ((X >> 24) & 0x0F); - } - - public static byte SDL_PIXELORDER(uint X) - { - return (byte) ((X >> 20) & 0x0F); - } - - public static byte SDL_PIXELLAYOUT(uint X) - { - return (byte) ((X >> 16) & 0x0F); - } - - public static byte SDL_BITSPERPIXEL(uint X) - { - return (byte) ((X >> 8) & 0x0F); - } - - public static byte SDL_BYTESPERPIXEL(uint X) - { - if (SDL_ISPIXELFORMAT_FOURCC(X)) - { - if ( (X == SDL_PIXELFORMAT_YUY2) || - (X == SDL_PIXELFORMAT_UYVY) || - (X == SDL_PIXELFORMAT_YVYU) ) - { - return 2; - } - return 1; - } - return (byte) (X & 0xFF); - } - - public static bool SDL_ISPIXELFORMAT_INDEXED(uint format) - { - if (SDL_ISPIXELFORMAT_FOURCC(format)) - { - return false; - } - SDL_PIXELTYPE_ENUM pType = - (SDL_PIXELTYPE_ENUM) SDL_PIXELTYPE(format); - return ( - pType == SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_INDEX1 || - pType == SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_INDEX4 || - pType == SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_INDEX8 - ); - } - - public static bool SDL_ISPIXELFORMAT_ALPHA(uint format) - { - if (SDL_ISPIXELFORMAT_FOURCC(format)) - { - return false; - } - SDL_PIXELORDER_ENUM pOrder = - (SDL_PIXELORDER_ENUM) SDL_PIXELORDER(format); - return ( - pOrder == SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_ARGB || - pOrder == SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_RGBA || - pOrder == SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_ABGR || - pOrder == SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_BGRA - ); - } - - public static bool SDL_ISPIXELFORMAT_FOURCC(uint format) - { - return (format == 0) && (SDL_PIXELFLAG(format) != 1); - } - - public enum SDL_PIXELTYPE_ENUM - { - SDL_PIXELTYPE_UNKNOWN, - SDL_PIXELTYPE_INDEX1, - SDL_PIXELTYPE_INDEX4, - SDL_PIXELTYPE_INDEX8, - SDL_PIXELTYPE_PACKED8, - SDL_PIXELTYPE_PACKED16, - SDL_PIXELTYPE_PACKED32, - SDL_PIXELTYPE_ARRAYU8, - SDL_PIXELTYPE_ARRAYU16, - SDL_PIXELTYPE_ARRAYU32, - SDL_PIXELTYPE_ARRAYF16, - SDL_PIXELTYPE_ARRAYF32 - } - - public enum SDL_PIXELORDER_ENUM - { - /* BITMAPORDER */ - SDL_BITMAPORDER_NONE, - SDL_BITMAPORDER_4321, - SDL_BITMAPORDER_1234, - /* PACKEDORDER */ - SDL_PACKEDORDER_NONE = 0, - SDL_PACKEDORDER_XRGB, - SDL_PACKEDORDER_RGBX, - SDL_PACKEDORDER_ARGB, - SDL_PACKEDORDER_RGBA, - SDL_PACKEDORDER_XBGR, - SDL_PACKEDORDER_BGRX, - SDL_PACKEDORDER_ABGR, - SDL_PACKEDORDER_BGRA, - /* ARRAYORDER */ - SDL_ARRAYORDER_NONE = 0, - SDL_ARRAYORDER_RGB, - SDL_ARRAYORDER_RGBA, - SDL_ARRAYORDER_ARGB, - SDL_ARRAYORDER_BGR, - SDL_ARRAYORDER_BGRA, - SDL_ARRAYORDER_ABGR - } - - public enum SDL_PACKEDLAYOUT_ENUM - { - SDL_PACKEDLAYOUT_NONE, - SDL_PACKEDLAYOUT_332, - SDL_PACKEDLAYOUT_4444, - SDL_PACKEDLAYOUT_1555, - SDL_PACKEDLAYOUT_5551, - SDL_PACKEDLAYOUT_565, - SDL_PACKEDLAYOUT_8888, - SDL_PACKEDLAYOUT_2101010, - SDL_PACKEDLAYOUT_1010102 - } - - public static readonly uint SDL_PIXELFORMAT_UNKNOWN = 0; - public static readonly uint SDL_PIXELFORMAT_INDEX1LSB = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_INDEX1, - SDL_PIXELORDER_ENUM.SDL_BITMAPORDER_4321, - 0, - 1, 0 - ); - public static readonly uint SDL_PIXELFORMAT_INDEX1MSB = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_INDEX1, - SDL_PIXELORDER_ENUM.SDL_BITMAPORDER_1234, - 0, - 1, 0 - ); - public static readonly uint SDL_PIXELFORMAT_INDEX4LSB = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_INDEX4, - SDL_PIXELORDER_ENUM.SDL_BITMAPORDER_4321, - 0, - 4, 0 - ); - public static readonly uint SDL_PIXELFORMAT_INDEX4MSB = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_INDEX4, - SDL_PIXELORDER_ENUM.SDL_BITMAPORDER_1234, - 0, - 4, 0 - ); - public static readonly uint SDL_PIXELFORMAT_INDEX8 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_INDEX8, - 0, - 0, - 8, 1 - ); - public static readonly uint SDL_PIXELFORMAT_RGB332 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED8, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_332, - 8, 1 - ); - public static readonly uint SDL_PIXELFORMAT_RGB444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_4444, - 12, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGB555 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_1555, - 15, 2 - ); - public static readonly uint SDL_PIXELFORMAT_BGR555 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_INDEX1, - SDL_PIXELORDER_ENUM.SDL_BITMAPORDER_4321, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_1555, - 15, 2 - ); - public static readonly uint SDL_PIXELFORMAT_ARGB4444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_4444, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGBA4444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_4444, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_ABGR4444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_4444, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_BGRA4444 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_4444, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_ARGB1555 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_1555, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGBA5551 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_5551, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_ABGR1555 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_1555, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_BGRA5551 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_5551, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGB565 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_565, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_BGR565 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED16, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_565, - 16, 2 - ); - public static readonly uint SDL_PIXELFORMAT_RGB24 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_ARRAYU8, - SDL_PIXELORDER_ENUM.SDL_ARRAYORDER_RGB, - 0, - 24, 3 - ); - public static readonly uint SDL_PIXELFORMAT_BGR24 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_ARRAYU8, - SDL_PIXELORDER_ENUM.SDL_ARRAYORDER_BGR, - 0, - 24, 3 - ); - public static readonly uint SDL_PIXELFORMAT_RGB888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED32, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_XRGB, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_8888, - 24, 4 - ); - public static readonly uint SDL_PIXELFORMAT_RGBX8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED32, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_RGBX, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_8888, - 24, 4 - ); - public static readonly uint SDL_PIXELFORMAT_BGR888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED32, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_XBGR, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_8888, - 24, 4 - ); - public static readonly uint SDL_PIXELFORMAT_BGRX8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED32, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_BGRX, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_8888, - 24, 4 - ); - public static readonly uint SDL_PIXELFORMAT_ARGB8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED32, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_8888, - 32, 4 - ); - public static readonly uint SDL_PIXELFORMAT_RGBA8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED32, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_RGBA, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_8888, - 32, 4 - ); - public static readonly uint SDL_PIXELFORMAT_ABGR8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED32, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_ABGR, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_8888, - 32, 4 - ); - public static readonly uint SDL_PIXELFORMAT_BGRA8888 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED32, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_BGRA, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_8888, - 32, 4 - ); - public static readonly uint SDL_PIXELFORMAT_ARGB2101010 = - SDL_DEFINE_PIXELFORMAT( - SDL_PIXELTYPE_ENUM.SDL_PIXELTYPE_PACKED32, - SDL_PIXELORDER_ENUM.SDL_PACKEDORDER_ARGB, - SDL_PACKEDLAYOUT_ENUM.SDL_PACKEDLAYOUT_2101010, - 32, 4 - ); - public static readonly uint SDL_PIXELFORMAT_YV12 = - SDL_DEFINE_PIXELFOURCC( - (byte) 'Y', (byte) 'V', (byte) '1', (byte) '2' - ); - public static readonly uint SDL_PIXELFORMAT_IYUV = - SDL_DEFINE_PIXELFOURCC( - (byte) 'I', (byte) 'Y', (byte) 'U', (byte) 'V' - ); - public static readonly uint SDL_PIXELFORMAT_YUY2 = - SDL_DEFINE_PIXELFOURCC( - (byte) 'Y', (byte) 'U', (byte) 'Y', (byte) '2' - ); - public static readonly uint SDL_PIXELFORMAT_UYVY = - SDL_DEFINE_PIXELFOURCC( - (byte) 'U', (byte) 'Y', (byte) 'V', (byte) 'Y' - ); - public static readonly uint SDL_PIXELFORMAT_YVYU = - SDL_DEFINE_PIXELFOURCC( - (byte) 'Y', (byte) 'V', (byte) 'Y', (byte) 'U' - ); - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Color - { - public byte r; - public byte g; - public byte b; - public byte a; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Palette - { - public int ncolors; - public IntPtr colors; - public int version; - public int refcount; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_PixelFormat - { - public uint format; - public IntPtr palette; // SDL_Palette* - public byte BitsPerPixel; - public byte BytesPerPixel; - public uint Rmask; - public uint Gmask; - public uint Bmask; - public uint Amask; - public byte Rloss; - public byte Gloss; - public byte Bloss; - public byte Aloss; - public byte Rshift; - public byte Gshift; - public byte Bshift; - public byte Ashift; - public int refcount; - public IntPtr next; // SDL_PixelFormat* - } - - /* IntPtr refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_AllocFormat(uint pixel_format); - - /* IntPtr refers to an SDL_Palette* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_AllocPalette(int ncolors); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_CalculateGammaRamp( - float gamma, - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U2, SizeConst = 256)] - ushort[] ramp - ); - - /* format refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreeFormat(IntPtr format); - - /* palette refers to an SDL_Palette* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreePalette(IntPtr palette); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetPixelFormatName( - uint format - ); - - /* format refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetRGB( - uint pixel, - IntPtr format, - out byte r, - out byte g, - out byte b - ); - - /* format refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetRGBA( - uint pixel, - IntPtr format, - out byte r, - out byte g, - out byte b, - out byte a - ); - - /* format refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_MapRGB( - IntPtr format, - byte r, - byte g, - byte b - ); - - /* format refers to an SDL_PixelFormat* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_MapRGBA( - IntPtr format, - byte r, - byte g, - byte b, - byte a - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_MasksToPixelFormatEnum( - int bpp, - uint Rmask, - uint Gmask, - uint Bmask, - uint Amask - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_PixelFormatEnumToMasks( - uint format, - out int bpp, - out uint Rmask, - out uint Gmask, - out uint Bmask, - out uint Amask - ); - - /* palette refers to an SDL_Palette* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetPaletteColors( - IntPtr palette, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct)] - SDL_Color[] colors, - int firstcolor, - int ncolors - ); - - /* format and palette refer to an SDL_PixelFormat* and SDL_Palette* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetPixelFormatPalette( - IntPtr format, - IntPtr palette - ); - - #endregion - - #region SDL_rect.h - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Point - { - public int x; - public int y; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Rect - { - public int x; - public int y; - public int w; - public int h; - } - - /* Only available in 2.0.4 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_PointInRect(ref SDL_Point p, ref SDL_Rect r); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_EnclosePoints( - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeParamIndex = 1)] - SDL_Point[] points, - int count, - ref SDL_Rect clip, - out SDL_Rect result - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasIntersection( - ref SDL_Rect A, - ref SDL_Rect B - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IntersectRect( - ref SDL_Rect A, - ref SDL_Rect B, - out SDL_Rect result - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IntersectRectAndLine( - ref SDL_Rect rect, - ref int X1, - ref int Y1, - ref int X2, - ref int Y2 - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_RectEmpty(ref SDL_Rect rect); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_RectEquals( - ref SDL_Rect A, - ref SDL_Rect B - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnionRect( - ref SDL_Rect A, - ref SDL_Rect B, - out SDL_Rect result - ); - - #endregion - - #region SDL_surface.h - - public const uint SDL_SWSURFACE = 0x00000000; - public const uint SDL_PREALLOC = 0x00000001; - public const uint SDL_RLEACCEL = 0x00000002; - public const uint SDL_DONTFREE = 0x00000004; - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Surface - { - public uint flags; - public IntPtr format; // SDL_PixelFormat* - public int w; - public int h; - public int pitch; - public IntPtr pixels; // void* - public IntPtr userdata; // void* - public int locked; - public IntPtr lock_data; // void* - public SDL_Rect clip_rect; - public IntPtr map; // SDL_BlitMap* - public int refcount; - } - - /* surface refers to an SDL_Surface* */ - public static bool SDL_MUSTLOCK(IntPtr surface) - { - SDL_Surface sur; - sur = (SDL_Surface) Marshal.PtrToStructure( - surface, - typeof(SDL_Surface) - ); - return (sur.flags & SDL_RLEACCEL) != 0; - } - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlit", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitSurface( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for srcrect. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlit", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitSurface( - IntPtr src, - IntPtr srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for dstrect. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlit", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitSurface( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - IntPtr dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both SDL_Rects. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlit", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitSurface( - IntPtr src, - IntPtr srcrect, - IntPtr dst, - IntPtr dstrect - ); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlitScaled", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitScaled( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for srcrect. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlitScaled", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitScaled( - IntPtr src, - IntPtr srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for dstrect. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlitScaled", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitScaled( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - IntPtr dstrect - ); - - /* src and dst refer to an SDL_Surface* - * Internally, this function contains logic to use default values when - * source and destination rectangles are passed as NULL. - * This overload allows for IntPtr.Zero (null) to be passed for both SDL_Rects. - */ - [DllImport(nativeLibName, EntryPoint = "SDL_UpperBlitScaled", CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_BlitScaled( - IntPtr src, - IntPtr srcrect, - IntPtr dst, - IntPtr dstrect - ); - - /* src and dst are void* pointers */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_ConvertPixels( - int width, - int height, - uint src_format, - IntPtr src, - int src_pitch, - uint dst_format, - IntPtr dst, - int dst_pitch - ); - - /* IntPtr refers to an SDL_Surface* - * src refers to an SDL_Surface* - * fmt refers to an SDL_PixelFormat* - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_ConvertSurface( - IntPtr src, - IntPtr fmt, - uint flags - ); - - /* IntPtr refers to an SDL_Surface*, src to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_ConvertSurfaceFormat( - IntPtr src, - uint pixel_format, - uint flags - ); - - /* IntPtr refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateRGBSurface( - uint flags, - int width, - int height, - int depth, - uint Rmask, - uint Gmask, - uint Bmask, - uint Amask - ); - - /* IntPtr refers to an SDL_Surface*, pixels to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateRGBSurfaceFrom( - IntPtr pixels, - int width, - int height, - int depth, - int pitch, - uint Rmask, - uint Gmask, - uint Bmask, - uint Amask - ); - - /* dst refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_FillRect( - IntPtr dst, - ref SDL_Rect rect, - uint color - ); - - /* dst refers to an SDL_Surface*. - * This overload allows passing NULL to rect. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_FillRect( - IntPtr dst, - IntPtr rect, - uint color - ); - - /* dst refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_FillRects( - IntPtr dst, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeParamIndex = 2)] - SDL_Rect[] rects, - int count, - uint color - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreeSurface(IntPtr surface); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GetClipRect( - IntPtr surface, - out SDL_Rect rect - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetColorKey( - IntPtr surface, - out uint key - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetSurfaceAlphaMod( - IntPtr surface, - out byte alpha - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetSurfaceBlendMode( - IntPtr surface, - out SDL_BlendMode blendMode - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetSurfaceColorMod( - IntPtr surface, - out byte r, - out byte g, - out byte b - ); - - /* These are for SDL_LoadBMP, which is a macro in the SDL headers. */ - /* IntPtr refers to an SDL_Surface* */ - /* THIS IS AN RWops FUNCTION! */ - [DllImport(nativeLibName, EntryPoint = "SDL_LoadBMP_RW", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_LoadBMP_RW( - IntPtr src, - int freesrc - ); - public static IntPtr SDL_LoadBMP(string file) - { - IntPtr rwops = INTERNAL_SDL_RWFromFile(file, "rb"); - return INTERNAL_SDL_LoadBMP_RW(rwops, 1); - } - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LockSurface(IntPtr surface); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LowerBlit( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_LowerBlitScaled( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* These are for SDL_SaveBMP, which is a macro in the SDL headers. */ - /* IntPtr refers to an SDL_Surface* */ - /* THIS IS AN RWops FUNCTION! */ - [DllImport(nativeLibName, EntryPoint = "SDL_SaveBMP_RW", CallingConvention = CallingConvention.Cdecl)] - private static extern int INTERNAL_SDL_SaveBMP_RW( - IntPtr surface, - IntPtr src, - int freesrc - ); - public static int SDL_SaveBMP(IntPtr surface, string file) - { - IntPtr rwops = INTERNAL_SDL_RWFromFile(file, "wb"); - return INTERNAL_SDL_SaveBMP_RW(surface, rwops, 1); - } - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_SetClipRect( - IntPtr surface, - ref SDL_Rect rect - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetColorKey( - IntPtr surface, - int flag, - uint key - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetSurfaceAlphaMod( - IntPtr surface, - byte alpha - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetSurfaceBlendMode( - IntPtr surface, - SDL_BlendMode blendMode - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetSurfaceColorMod( - IntPtr surface, - byte r, - byte g, - byte b - ); - - /* surface refers to an SDL_Surface*, palette to an SDL_Palette* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetSurfacePalette( - IntPtr surface, - IntPtr palette - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetSurfaceRLE( - IntPtr surface, - int flag - ); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SoftStretch( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* surface refers to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnlockSurface(IntPtr surface); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpperBlit( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - /* src and dst refer to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_UpperBlitScaled( - IntPtr src, - ref SDL_Rect srcrect, - IntPtr dst, - ref SDL_Rect dstrect - ); - - #endregion - - #region SDL_clipboard.h - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasClipboardText(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetClipboardText(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetClipboardText( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string text - ); - - #endregion - - #region SDL_events.h - - /* General keyboard/mouse state definitions. */ - public const byte SDL_PRESSED = 1; - public const byte SDL_RELEASED = 0; - - /* Default size is according to SDL2 default. */ - public const int SDL_TEXTEDITINGEVENT_TEXT_SIZE = 32; - public const int SDL_TEXTINPUTEVENT_TEXT_SIZE = 32; - - /* The types of events that can be delivered. */ - public enum SDL_EventType : uint - { - SDL_FIRSTEVENT = 0, - - /* Application events */ - SDL_QUIT = 0x100, - - /* Window events */ - SDL_WINDOWEVENT = 0x200, - SDL_SYSWMEVENT, - - /* Keyboard events */ - SDL_KEYDOWN = 0x300, - SDL_KEYUP, - SDL_TEXTEDITING, - SDL_TEXTINPUT, - - /* Mouse events */ - SDL_MOUSEMOTION = 0x400, - SDL_MOUSEBUTTONDOWN, - SDL_MOUSEBUTTONUP, - SDL_MOUSEWHEEL, - - /* Joystick events */ - SDL_JOYAXISMOTION = 0x600, - SDL_JOYBALLMOTION, - SDL_JOYHATMOTION, - SDL_JOYBUTTONDOWN, - SDL_JOYBUTTONUP, - SDL_JOYDEVICEADDED, - SDL_JOYDEVICEREMOVED, - - /* Game controller events */ - SDL_CONTROLLERAXISMOTION = 0x650, - SDL_CONTROLLERBUTTONDOWN, - SDL_CONTROLLERBUTTONUP, - SDL_CONTROLLERDEVICEADDED, - SDL_CONTROLLERDEVICEREMOVED, - SDL_CONTROLLERDEVICEREMAPPED, - - /* Touch events */ - SDL_FINGERDOWN = 0x700, - SDL_FINGERUP, - SDL_FINGERMOTION, - - /* Gesture events */ - SDL_DOLLARGESTURE = 0x800, - SDL_DOLLARRECORD, - SDL_MULTIGESTURE, - - /* Clipboard events */ - SDL_CLIPBOARDUPDATE = 0x900, - - /* Drag and drop events */ - SDL_DROPFILE = 0x1000, - - /* Audio hotplug events */ - /* Only available in SDL 2.0.4 or higher */ - SDL_AUDIODEVICEADDED = 0x1100, - SDL_AUDIODEVICEREMOVED, - - /* Render events */ - /* Only available in SDL 2.0.2 or higher */ - SDL_RENDER_TARGETS_RESET = 0x2000, - /* Only available in SDL 2.0.4 or higher */ - SDL_RENDER_DEVICE_RESET, - - /* Events SDL_USEREVENT through SDL_LASTEVENT are for - * your use, and should be allocated with - * SDL_RegisterEvents() - */ - SDL_USEREVENT = 0x8000, - - /* The last event, used for bouding arrays. */ - SDL_LASTEVENT = 0xFFFF - } - - /* Only available in 2.0.4 or higher */ - public enum SDL_MouseWheelDirection : uint - { - SDL_MOUSEHWEEL_NORMAL, - SDL_MOUSEWHEEL_FLIPPED - } - - /* Fields shared by every event */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_GenericEvent - { - public SDL_EventType type; - public UInt32 timestamp; - } - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Window state change event data (event.window.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_WindowEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public SDL_WindowEventID windowEvent; // event, lolC# - private byte padding1; - private byte padding2; - private byte padding3; - public Int32 data1; - public Int32 data2; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Keyboard button event structure (event.key.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_KeyboardEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public byte state; - public byte repeat; /* non-zero if this is a repeat */ - private byte padding2; - private byte padding3; - public SDL_Keysym keysym; - } -#pragma warning restore 0169 - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_TextEditingEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public fixed byte text[SDL_TEXTEDITINGEVENT_TEXT_SIZE]; - public Int32 start; - public Int32 length; - } - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_TextInputEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public fixed byte text[SDL_TEXTINPUTEVENT_TEXT_SIZE]; - } - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Mouse motion event structure (event.motion.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MouseMotionEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public UInt32 which; - public byte state; /* bitmask of buttons */ - private byte padding1; - private byte padding2; - private byte padding3; - public Int32 x; - public Int32 y; - public Int32 xrel; - public Int32 yrel; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Mouse button event structure (event.button.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MouseButtonEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public UInt32 which; - public byte button; /* button id */ - public byte state; /* SDL_PRESSED or SDL_RELEASED */ - public byte clicks; /* 1 for single-click, 2 for double-click, etc. */ - private byte padding1; - public Int32 x; - public Int32 y; - } -#pragma warning restore 0169 - - /* Mouse wheel event structure (event.wheel.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MouseWheelEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public UInt32 windowID; - public UInt32 which; - public Int32 x; /* amount scrolled horizontally */ - public Int32 y; /* amount scrolled vertically */ - public UInt32 direction; /* Set to one of the SDL_MOUSEWHEEL_* defines */ - } - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Joystick axis motion event structure (event.jaxis.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_JoyAxisEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte axis; - private byte padding1; - private byte padding2; - private byte padding3; - public Int16 axisValue; /* value, lolC# */ - public UInt16 padding4; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Joystick trackball motion event structure (event.jball.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_JoyBallEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte ball; - private byte padding1; - private byte padding2; - private byte padding3; - public Int16 xrel; - public Int16 yrel; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Joystick hat position change event struct (event.jhat.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_JoyHatEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte hat; /* index of the hat */ - public byte hatValue; /* value, lolC# */ - private byte padding1; - private byte padding2; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Joystick button event structure (event.jbutton.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_JoyButtonEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte button; - public byte state; /* SDL_PRESSED or SDL_RELEASED */ - private byte padding1; - private byte padding2; - } -#pragma warning restore 0169 - - /* Joystick device event structure (event.jdevice.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_JoyDeviceEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - } - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Game controller axis motion event (event.caxis.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_ControllerAxisEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte axis; - private byte padding1; - private byte padding2; - private byte padding3; - public Int16 axisValue; /* value, lolC# */ - private UInt16 padding4; - } -#pragma warning restore 0169 - -// Ignore private members used for padding in this struct -#pragma warning disable 0169 - /* Game controller button event (event.cbutton.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_ControllerButtonEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* SDL_JoystickID */ - public byte button; - public byte state; - private byte padding1; - private byte padding2; - } -#pragma warning restore 0169 - - /* Game controller device event (event.cdevice.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_ControllerDeviceEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public Int32 which; /* joystick id for ADDED, - * else instance id - */ - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_TouchFingerEvent - { - public UInt32 type; - public UInt32 timestamp; - public Int64 touchId; // SDL_TouchID - public Int64 fingerId; // SDL_GestureID - public float x; - public float y; - public float dx; - public float dy; - public float pressure; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_MultiGestureEvent - { - public UInt32 type; - public UInt32 timestamp; - public Int64 touchId; // SDL_TouchID - public float dTheta; - public float dDist; - public float x; - public float y; - public UInt16 numFingers; - public UInt16 padding; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_DollarGestureEvent - { - public UInt32 type; - public UInt32 timestamp; - public Int64 touchId; // SDL_TouchID - public Int64 gestureId; // SDL_GestureID - public UInt32 numFingers; - public float error; - public float x; - public float y; - } - - /* File open request by system (event.drop.*), disabled by - * default - */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_DropEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public IntPtr file; /* char* filename, to be freed */ - } - - /* The "quit requested" event */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_QuitEvent - { - public SDL_EventType type; - public UInt32 timestamp; - } - - /* A user defined event (event.user.*) */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_UserEvent - { - public UInt32 type; - public UInt32 timestamp; - public UInt32 windowID; - public Int32 code; - public IntPtr data1; /* user-defined */ - public IntPtr data2; /* user-defined */ - } - - /* A video driver dependent event (event.syswm.*), disabled */ - [StructLayout(LayoutKind.Sequential)] - public struct SDL_SysWMEvent - { - public SDL_EventType type; - public UInt32 timestamp; - public IntPtr msg; /* SDL_SysWMmsg*, system-dependent*/ - } - - /* General event structure */ - // C# doesn't do unions, so we do this ugly thing. */ - [StructLayout(LayoutKind.Explicit)] - public struct SDL_Event - { - [FieldOffset(0)] - public SDL_EventType type; - [FieldOffset(0)] - public SDL_WindowEvent window; - [FieldOffset(0)] - public SDL_KeyboardEvent key; - [FieldOffset(0)] - public SDL_TextEditingEvent edit; - [FieldOffset(0)] - public SDL_TextInputEvent text; - [FieldOffset(0)] - public SDL_MouseMotionEvent motion; - [FieldOffset(0)] - public SDL_MouseButtonEvent button; - [FieldOffset(0)] - public SDL_MouseWheelEvent wheel; - [FieldOffset(0)] - public SDL_JoyAxisEvent jaxis; - [FieldOffset(0)] - public SDL_JoyBallEvent jball; - [FieldOffset(0)] - public SDL_JoyHatEvent jhat; - [FieldOffset(0)] - public SDL_JoyButtonEvent jbutton; - [FieldOffset(0)] - public SDL_JoyDeviceEvent jdevice; - [FieldOffset(0)] - public SDL_ControllerAxisEvent caxis; - [FieldOffset(0)] - public SDL_ControllerButtonEvent cbutton; - [FieldOffset(0)] - public SDL_ControllerDeviceEvent cdevice; - [FieldOffset(0)] - public SDL_QuitEvent quit; - [FieldOffset(0)] - public SDL_UserEvent user; - [FieldOffset(0)] - public SDL_SysWMEvent syswm; - [FieldOffset(0)] - public SDL_TouchFingerEvent tfinger; - [FieldOffset(0)] - public SDL_MultiGestureEvent mgesture; - [FieldOffset(0)] - public SDL_DollarGestureEvent dgesture; - [FieldOffset(0)] - public SDL_DropEvent drop; - } - - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate int SDL_EventFilter( - IntPtr userdata, // void* - IntPtr sdlevent // SDL_Event* event, lolC# - ); - - /* Pump the event loop, getting events from the input devices*/ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_PumpEvents(); - - public enum SDL_eventaction - { - SDL_ADDEVENT, - SDL_PEEKEVENT, - SDL_GETEVENT - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_PeepEvents( - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.Struct, SizeParamIndex = 1)] - SDL_Event[] events, - int numevents, - SDL_eventaction action, - SDL_EventType minType, - SDL_EventType maxType - ); - - /* Checks to see if certain events are in the event queue */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasEvent(SDL_EventType type); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasEvents( - SDL_EventType minType, - SDL_EventType maxType - ); - - /* Clears events from the event queue */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FlushEvent(SDL_EventType type); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FlushEvents( - SDL_EventType min, - SDL_EventType max - ); - - /* Polls for currently pending events */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_PollEvent(out SDL_Event _event); - - /* Waits indefinitely for the next event */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_WaitEvent(out SDL_Event _event); - - /* Waits until the specified timeout (in ms) for the next event - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_WaitEventTimeout(out SDL_Event _event, int timeout); - - /* Add an event to the event queue */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_PushEvent(ref SDL_Event _event); - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetEventFilter( - SDL_EventFilter filter, - IntPtr userdata - ); - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GetEventFilter( - out SDL_EventFilter filter, - out IntPtr userdata - ); - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_AddEventWatch( - SDL_EventFilter filter, - IntPtr userdata - ); - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_DelEventWatch( - SDL_EventFilter filter, - IntPtr userdata - ); - - /* userdata refers to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FilterEvents( - SDL_EventFilter filter, - IntPtr userdata - ); - - /* These are for SDL_EventState() */ - public const int SDL_QUERY = -1; - public const int SDL_IGNORE = 0; - public const int SDL_DISABLE = 0; - public const int SDL_ENABLE = 1; - - /* This function allows you to enable/disable certain events */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern byte SDL_EventState(SDL_EventType type, int state); - - /* Get the state of an event */ - public static byte SDL_GetEventState(SDL_EventType type) - { - return SDL_EventState(type, SDL_QUERY); - } - - /* Allocate a set of user-defined events */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_RegisterEvents(int numevents); - #endregion - - #region SDL_scancode.h - - /* Scancodes based off USB keyboard page (0x07) */ - public enum SDL_Scancode - { - SDL_SCANCODE_UNKNOWN = 0, - - SDL_SCANCODE_A = 4, - SDL_SCANCODE_B = 5, - SDL_SCANCODE_C = 6, - SDL_SCANCODE_D = 7, - SDL_SCANCODE_E = 8, - SDL_SCANCODE_F = 9, - SDL_SCANCODE_G = 10, - SDL_SCANCODE_H = 11, - SDL_SCANCODE_I = 12, - SDL_SCANCODE_J = 13, - SDL_SCANCODE_K = 14, - SDL_SCANCODE_L = 15, - SDL_SCANCODE_M = 16, - SDL_SCANCODE_N = 17, - SDL_SCANCODE_O = 18, - SDL_SCANCODE_P = 19, - SDL_SCANCODE_Q = 20, - SDL_SCANCODE_R = 21, - SDL_SCANCODE_S = 22, - SDL_SCANCODE_T = 23, - SDL_SCANCODE_U = 24, - SDL_SCANCODE_V = 25, - SDL_SCANCODE_W = 26, - SDL_SCANCODE_X = 27, - SDL_SCANCODE_Y = 28, - SDL_SCANCODE_Z = 29, - - SDL_SCANCODE_1 = 30, - SDL_SCANCODE_2 = 31, - SDL_SCANCODE_3 = 32, - SDL_SCANCODE_4 = 33, - SDL_SCANCODE_5 = 34, - SDL_SCANCODE_6 = 35, - SDL_SCANCODE_7 = 36, - SDL_SCANCODE_8 = 37, - SDL_SCANCODE_9 = 38, - SDL_SCANCODE_0 = 39, - - SDL_SCANCODE_RETURN = 40, - SDL_SCANCODE_ESCAPE = 41, - SDL_SCANCODE_BACKSPACE = 42, - SDL_SCANCODE_TAB = 43, - SDL_SCANCODE_SPACE = 44, - - SDL_SCANCODE_MINUS = 45, - SDL_SCANCODE_EQUALS = 46, - SDL_SCANCODE_LEFTBRACKET = 47, - SDL_SCANCODE_RIGHTBRACKET = 48, - SDL_SCANCODE_BACKSLASH = 49, - SDL_SCANCODE_NONUSHASH = 50, - SDL_SCANCODE_SEMICOLON = 51, - SDL_SCANCODE_APOSTROPHE = 52, - SDL_SCANCODE_GRAVE = 53, - SDL_SCANCODE_COMMA = 54, - SDL_SCANCODE_PERIOD = 55, - SDL_SCANCODE_SLASH = 56, - - SDL_SCANCODE_CAPSLOCK = 57, - - SDL_SCANCODE_F1 = 58, - SDL_SCANCODE_F2 = 59, - SDL_SCANCODE_F3 = 60, - SDL_SCANCODE_F4 = 61, - SDL_SCANCODE_F5 = 62, - SDL_SCANCODE_F6 = 63, - SDL_SCANCODE_F7 = 64, - SDL_SCANCODE_F8 = 65, - SDL_SCANCODE_F9 = 66, - SDL_SCANCODE_F10 = 67, - SDL_SCANCODE_F11 = 68, - SDL_SCANCODE_F12 = 69, - - SDL_SCANCODE_PRINTSCREEN = 70, - SDL_SCANCODE_SCROLLLOCK = 71, - SDL_SCANCODE_PAUSE = 72, - SDL_SCANCODE_INSERT = 73, - SDL_SCANCODE_HOME = 74, - SDL_SCANCODE_PAGEUP = 75, - SDL_SCANCODE_DELETE = 76, - SDL_SCANCODE_END = 77, - SDL_SCANCODE_PAGEDOWN = 78, - SDL_SCANCODE_RIGHT = 79, - SDL_SCANCODE_LEFT = 80, - SDL_SCANCODE_DOWN = 81, - SDL_SCANCODE_UP = 82, - - SDL_SCANCODE_NUMLOCKCLEAR = 83, - SDL_SCANCODE_KP_DIVIDE = 84, - SDL_SCANCODE_KP_MULTIPLY = 85, - SDL_SCANCODE_KP_MINUS = 86, - SDL_SCANCODE_KP_PLUS = 87, - SDL_SCANCODE_KP_ENTER = 88, - SDL_SCANCODE_KP_1 = 89, - SDL_SCANCODE_KP_2 = 90, - SDL_SCANCODE_KP_3 = 91, - SDL_SCANCODE_KP_4 = 92, - SDL_SCANCODE_KP_5 = 93, - SDL_SCANCODE_KP_6 = 94, - SDL_SCANCODE_KP_7 = 95, - SDL_SCANCODE_KP_8 = 96, - SDL_SCANCODE_KP_9 = 97, - SDL_SCANCODE_KP_0 = 98, - SDL_SCANCODE_KP_PERIOD = 99, - - SDL_SCANCODE_NONUSBACKSLASH = 100, - SDL_SCANCODE_APPLICATION = 101, - SDL_SCANCODE_POWER = 102, - SDL_SCANCODE_KP_EQUALS = 103, - SDL_SCANCODE_F13 = 104, - SDL_SCANCODE_F14 = 105, - SDL_SCANCODE_F15 = 106, - SDL_SCANCODE_F16 = 107, - SDL_SCANCODE_F17 = 108, - SDL_SCANCODE_F18 = 109, - SDL_SCANCODE_F19 = 110, - SDL_SCANCODE_F20 = 111, - SDL_SCANCODE_F21 = 112, - SDL_SCANCODE_F22 = 113, - SDL_SCANCODE_F23 = 114, - SDL_SCANCODE_F24 = 115, - SDL_SCANCODE_EXECUTE = 116, - SDL_SCANCODE_HELP = 117, - SDL_SCANCODE_MENU = 118, - SDL_SCANCODE_SELECT = 119, - SDL_SCANCODE_STOP = 120, - SDL_SCANCODE_AGAIN = 121, - SDL_SCANCODE_UNDO = 122, - SDL_SCANCODE_CUT = 123, - SDL_SCANCODE_COPY = 124, - SDL_SCANCODE_PASTE = 125, - SDL_SCANCODE_FIND = 126, - SDL_SCANCODE_MUTE = 127, - SDL_SCANCODE_VOLUMEUP = 128, - SDL_SCANCODE_VOLUMEDOWN = 129, - /* not sure whether there's a reason to enable these */ - /* SDL_SCANCODE_LOCKINGCAPSLOCK = 130, */ - /* SDL_SCANCODE_LOCKINGNUMLOCK = 131, */ - /* SDL_SCANCODE_LOCKINGSCROLLLOCK = 132, */ - SDL_SCANCODE_KP_COMMA = 133, - SDL_SCANCODE_KP_EQUALSAS400 = 134, - - SDL_SCANCODE_INTERNATIONAL1 = 135, - SDL_SCANCODE_INTERNATIONAL2 = 136, - SDL_SCANCODE_INTERNATIONAL3 = 137, - SDL_SCANCODE_INTERNATIONAL4 = 138, - SDL_SCANCODE_INTERNATIONAL5 = 139, - SDL_SCANCODE_INTERNATIONAL6 = 140, - SDL_SCANCODE_INTERNATIONAL7 = 141, - SDL_SCANCODE_INTERNATIONAL8 = 142, - SDL_SCANCODE_INTERNATIONAL9 = 143, - SDL_SCANCODE_LANG1 = 144, - SDL_SCANCODE_LANG2 = 145, - SDL_SCANCODE_LANG3 = 146, - SDL_SCANCODE_LANG4 = 147, - SDL_SCANCODE_LANG5 = 148, - SDL_SCANCODE_LANG6 = 149, - SDL_SCANCODE_LANG7 = 150, - SDL_SCANCODE_LANG8 = 151, - SDL_SCANCODE_LANG9 = 152, - - SDL_SCANCODE_ALTERASE = 153, - SDL_SCANCODE_SYSREQ = 154, - SDL_SCANCODE_CANCEL = 155, - SDL_SCANCODE_CLEAR = 156, - SDL_SCANCODE_PRIOR = 157, - SDL_SCANCODE_RETURN2 = 158, - SDL_SCANCODE_SEPARATOR = 159, - SDL_SCANCODE_OUT = 160, - SDL_SCANCODE_OPER = 161, - SDL_SCANCODE_CLEARAGAIN = 162, - SDL_SCANCODE_CRSEL = 163, - SDL_SCANCODE_EXSEL = 164, - - SDL_SCANCODE_KP_00 = 176, - SDL_SCANCODE_KP_000 = 177, - SDL_SCANCODE_THOUSANDSSEPARATOR = 178, - SDL_SCANCODE_DECIMALSEPARATOR = 179, - SDL_SCANCODE_CURRENCYUNIT = 180, - SDL_SCANCODE_CURRENCYSUBUNIT = 181, - SDL_SCANCODE_KP_LEFTPAREN = 182, - SDL_SCANCODE_KP_RIGHTPAREN = 183, - SDL_SCANCODE_KP_LEFTBRACE = 184, - SDL_SCANCODE_KP_RIGHTBRACE = 185, - SDL_SCANCODE_KP_TAB = 186, - SDL_SCANCODE_KP_BACKSPACE = 187, - SDL_SCANCODE_KP_A = 188, - SDL_SCANCODE_KP_B = 189, - SDL_SCANCODE_KP_C = 190, - SDL_SCANCODE_KP_D = 191, - SDL_SCANCODE_KP_E = 192, - SDL_SCANCODE_KP_F = 193, - SDL_SCANCODE_KP_XOR = 194, - SDL_SCANCODE_KP_POWER = 195, - SDL_SCANCODE_KP_PERCENT = 196, - SDL_SCANCODE_KP_LESS = 197, - SDL_SCANCODE_KP_GREATER = 198, - SDL_SCANCODE_KP_AMPERSAND = 199, - SDL_SCANCODE_KP_DBLAMPERSAND = 200, - SDL_SCANCODE_KP_VERTICALBAR = 201, - SDL_SCANCODE_KP_DBLVERTICALBAR = 202, - SDL_SCANCODE_KP_COLON = 203, - SDL_SCANCODE_KP_HASH = 204, - SDL_SCANCODE_KP_SPACE = 205, - SDL_SCANCODE_KP_AT = 206, - SDL_SCANCODE_KP_EXCLAM = 207, - SDL_SCANCODE_KP_MEMSTORE = 208, - SDL_SCANCODE_KP_MEMRECALL = 209, - SDL_SCANCODE_KP_MEMCLEAR = 210, - SDL_SCANCODE_KP_MEMADD = 211, - SDL_SCANCODE_KP_MEMSUBTRACT = 212, - SDL_SCANCODE_KP_MEMMULTIPLY = 213, - SDL_SCANCODE_KP_MEMDIVIDE = 214, - SDL_SCANCODE_KP_PLUSMINUS = 215, - SDL_SCANCODE_KP_CLEAR = 216, - SDL_SCANCODE_KP_CLEARENTRY = 217, - SDL_SCANCODE_KP_BINARY = 218, - SDL_SCANCODE_KP_OCTAL = 219, - SDL_SCANCODE_KP_DECIMAL = 220, - SDL_SCANCODE_KP_HEXADECIMAL = 221, - - SDL_SCANCODE_LCTRL = 224, - SDL_SCANCODE_LSHIFT = 225, - SDL_SCANCODE_LALT = 226, - SDL_SCANCODE_LGUI = 227, - SDL_SCANCODE_RCTRL = 228, - SDL_SCANCODE_RSHIFT = 229, - SDL_SCANCODE_RALT = 230, - SDL_SCANCODE_RGUI = 231, - - SDL_SCANCODE_MODE = 257, - - /* These come from the USB consumer page (0x0C) */ - SDL_SCANCODE_AUDIONEXT = 258, - SDL_SCANCODE_AUDIOPREV = 259, - SDL_SCANCODE_AUDIOSTOP = 260, - SDL_SCANCODE_AUDIOPLAY = 261, - SDL_SCANCODE_AUDIOMUTE = 262, - SDL_SCANCODE_MEDIASELECT = 263, - SDL_SCANCODE_WWW = 264, - SDL_SCANCODE_MAIL = 265, - SDL_SCANCODE_CALCULATOR = 266, - SDL_SCANCODE_COMPUTER = 267, - SDL_SCANCODE_AC_SEARCH = 268, - SDL_SCANCODE_AC_HOME = 269, - SDL_SCANCODE_AC_BACK = 270, - SDL_SCANCODE_AC_FORWARD = 271, - SDL_SCANCODE_AC_STOP = 272, - SDL_SCANCODE_AC_REFRESH = 273, - SDL_SCANCODE_AC_BOOKMARKS = 274, - - /* These come from other sources, and are mostly mac related */ - SDL_SCANCODE_BRIGHTNESSDOWN = 275, - SDL_SCANCODE_BRIGHTNESSUP = 276, - SDL_SCANCODE_DISPLAYSWITCH = 277, - SDL_SCANCODE_KBDILLUMTOGGLE = 278, - SDL_SCANCODE_KBDILLUMDOWN = 279, - SDL_SCANCODE_KBDILLUMUP = 280, - SDL_SCANCODE_EJECT = 281, - SDL_SCANCODE_SLEEP = 282, - - SDL_SCANCODE_APP1 = 283, - SDL_SCANCODE_APP2 = 284, - - /* This is not a key, simply marks the number of scancodes - * so that you know how big to make your arrays. */ - SDL_NUM_SCANCODES = 512 - } - - #endregion - - #region SDL_keycode.h - - public const int SDLK_SCANCODE_MASK = (1 << 30); - public static SDL_Keycode SDL_SCANCODE_TO_KEYCODE(SDL_Scancode X) - { - return (SDL_Keycode)((int)X | SDLK_SCANCODE_MASK); - } - - /* So, in the C headers, SDL_Keycode is a typedef of Sint32 - * and all of the names are in an anonymous enum. Yeah... - * that's not going to cut it for C#. We'll just put them in an - * enum for now? */ - public enum SDL_Keycode - { - SDLK_UNKNOWN = 0, - - SDLK_RETURN = '\r', - SDLK_ESCAPE = 27, // '\033' - SDLK_BACKSPACE = '\b', - SDLK_TAB = '\t', - SDLK_SPACE = ' ', - SDLK_EXCLAIM = '!', - SDLK_QUOTEDBL = '"', - SDLK_HASH = '#', - SDLK_PERCENT = '%', - SDLK_DOLLAR = '$', - SDLK_AMPERSAND = '&', - SDLK_QUOTE = '\'', - SDLK_LEFTPAREN = '(', - SDLK_RIGHTPAREN = ')', - SDLK_ASTERISK = '*', - SDLK_PLUS = '+', - SDLK_COMMA = ',', - SDLK_MINUS = '-', - SDLK_PERIOD = '.', - SDLK_SLASH = '/', - SDLK_0 = '0', - SDLK_1 = '1', - SDLK_2 = '2', - SDLK_3 = '3', - SDLK_4 = '4', - SDLK_5 = '5', - SDLK_6 = '6', - SDLK_7 = '7', - SDLK_8 = '8', - SDLK_9 = '9', - SDLK_COLON = ':', - SDLK_SEMICOLON = ';', - SDLK_LESS = '<', - SDLK_EQUALS = '=', - SDLK_GREATER = '>', - SDLK_QUESTION = '?', - SDLK_AT = '@', - /* - Skip uppercase letters - */ - SDLK_LEFTBRACKET = '[', - SDLK_BACKSLASH = '\\', - SDLK_RIGHTBRACKET = ']', - SDLK_CARET = '^', - SDLK_UNDERSCORE = '_', - SDLK_BACKQUOTE = '`', - SDLK_a = 'a', - SDLK_b = 'b', - SDLK_c = 'c', - SDLK_d = 'd', - SDLK_e = 'e', - SDLK_f = 'f', - SDLK_g = 'g', - SDLK_h = 'h', - SDLK_i = 'i', - SDLK_j = 'j', - SDLK_k = 'k', - SDLK_l = 'l', - SDLK_m = 'm', - SDLK_n = 'n', - SDLK_o = 'o', - SDLK_p = 'p', - SDLK_q = 'q', - SDLK_r = 'r', - SDLK_s = 's', - SDLK_t = 't', - SDLK_u = 'u', - SDLK_v = 'v', - SDLK_w = 'w', - SDLK_x = 'x', - SDLK_y = 'y', - SDLK_z = 'z', - - SDLK_CAPSLOCK = (int)SDL_Scancode.SDL_SCANCODE_CAPSLOCK | SDLK_SCANCODE_MASK, - - SDLK_F1 = (int)SDL_Scancode.SDL_SCANCODE_F1 | SDLK_SCANCODE_MASK, - SDLK_F2 = (int)SDL_Scancode.SDL_SCANCODE_F2 | SDLK_SCANCODE_MASK, - SDLK_F3 = (int)SDL_Scancode.SDL_SCANCODE_F3 | SDLK_SCANCODE_MASK, - SDLK_F4 = (int)SDL_Scancode.SDL_SCANCODE_F4 | SDLK_SCANCODE_MASK, - SDLK_F5 = (int)SDL_Scancode.SDL_SCANCODE_F5 | SDLK_SCANCODE_MASK, - SDLK_F6 = (int)SDL_Scancode.SDL_SCANCODE_F6 | SDLK_SCANCODE_MASK, - SDLK_F7 = (int)SDL_Scancode.SDL_SCANCODE_F7 | SDLK_SCANCODE_MASK, - SDLK_F8 = (int)SDL_Scancode.SDL_SCANCODE_F8 | SDLK_SCANCODE_MASK, - SDLK_F9 = (int)SDL_Scancode.SDL_SCANCODE_F9 | SDLK_SCANCODE_MASK, - SDLK_F10 = (int)SDL_Scancode.SDL_SCANCODE_F10 | SDLK_SCANCODE_MASK, - SDLK_F11 = (int)SDL_Scancode.SDL_SCANCODE_F11 | SDLK_SCANCODE_MASK, - SDLK_F12 = (int)SDL_Scancode.SDL_SCANCODE_F12 | SDLK_SCANCODE_MASK, - - SDLK_PRINTSCREEN = (int)SDL_Scancode.SDL_SCANCODE_PRINTSCREEN | SDLK_SCANCODE_MASK, - SDLK_SCROLLLOCK = (int)SDL_Scancode.SDL_SCANCODE_SCROLLLOCK | SDLK_SCANCODE_MASK, - SDLK_PAUSE = (int)SDL_Scancode.SDL_SCANCODE_PAUSE | SDLK_SCANCODE_MASK, - SDLK_INSERT = (int)SDL_Scancode.SDL_SCANCODE_INSERT | SDLK_SCANCODE_MASK, - SDLK_HOME = (int)SDL_Scancode.SDL_SCANCODE_HOME | SDLK_SCANCODE_MASK, - SDLK_PAGEUP = (int)SDL_Scancode.SDL_SCANCODE_PAGEUP | SDLK_SCANCODE_MASK, - SDLK_DELETE = 127, - SDLK_END = (int)SDL_Scancode.SDL_SCANCODE_END | SDLK_SCANCODE_MASK, - SDLK_PAGEDOWN = (int)SDL_Scancode.SDL_SCANCODE_PAGEDOWN | SDLK_SCANCODE_MASK, - SDLK_RIGHT = (int)SDL_Scancode.SDL_SCANCODE_RIGHT | SDLK_SCANCODE_MASK, - SDLK_LEFT = (int)SDL_Scancode.SDL_SCANCODE_LEFT | SDLK_SCANCODE_MASK, - SDLK_DOWN = (int)SDL_Scancode.SDL_SCANCODE_DOWN | SDLK_SCANCODE_MASK, - SDLK_UP = (int)SDL_Scancode.SDL_SCANCODE_UP | SDLK_SCANCODE_MASK, - - SDLK_NUMLOCKCLEAR = (int)SDL_Scancode.SDL_SCANCODE_NUMLOCKCLEAR | SDLK_SCANCODE_MASK, - SDLK_KP_DIVIDE = (int)SDL_Scancode.SDL_SCANCODE_KP_DIVIDE | SDLK_SCANCODE_MASK, - SDLK_KP_MULTIPLY = (int)SDL_Scancode.SDL_SCANCODE_KP_MULTIPLY | SDLK_SCANCODE_MASK, - SDLK_KP_MINUS = (int)SDL_Scancode.SDL_SCANCODE_KP_MINUS | SDLK_SCANCODE_MASK, - SDLK_KP_PLUS = (int)SDL_Scancode.SDL_SCANCODE_KP_PLUS | SDLK_SCANCODE_MASK, - SDLK_KP_ENTER = (int)SDL_Scancode.SDL_SCANCODE_KP_ENTER | SDLK_SCANCODE_MASK, - SDLK_KP_1 = (int)SDL_Scancode.SDL_SCANCODE_KP_1 | SDLK_SCANCODE_MASK, - SDLK_KP_2 = (int)SDL_Scancode.SDL_SCANCODE_KP_2 | SDLK_SCANCODE_MASK, - SDLK_KP_3 = (int)SDL_Scancode.SDL_SCANCODE_KP_3 | SDLK_SCANCODE_MASK, - SDLK_KP_4 = (int)SDL_Scancode.SDL_SCANCODE_KP_4 | SDLK_SCANCODE_MASK, - SDLK_KP_5 = (int)SDL_Scancode.SDL_SCANCODE_KP_5 | SDLK_SCANCODE_MASK, - SDLK_KP_6 = (int)SDL_Scancode.SDL_SCANCODE_KP_6 | SDLK_SCANCODE_MASK, - SDLK_KP_7 = (int)SDL_Scancode.SDL_SCANCODE_KP_7 | SDLK_SCANCODE_MASK, - SDLK_KP_8 = (int)SDL_Scancode.SDL_SCANCODE_KP_8 | SDLK_SCANCODE_MASK, - SDLK_KP_9 = (int)SDL_Scancode.SDL_SCANCODE_KP_9 | SDLK_SCANCODE_MASK, - SDLK_KP_0 = (int)SDL_Scancode.SDL_SCANCODE_KP_0 | SDLK_SCANCODE_MASK, - SDLK_KP_PERIOD = (int)SDL_Scancode.SDL_SCANCODE_KP_PERIOD | SDLK_SCANCODE_MASK, - - SDLK_APPLICATION = (int)SDL_Scancode.SDL_SCANCODE_APPLICATION | SDLK_SCANCODE_MASK, - SDLK_POWER = (int)SDL_Scancode.SDL_SCANCODE_POWER | SDLK_SCANCODE_MASK, - SDLK_KP_EQUALS = (int)SDL_Scancode.SDL_SCANCODE_KP_EQUALS | SDLK_SCANCODE_MASK, - SDLK_F13 = (int)SDL_Scancode.SDL_SCANCODE_F13 | SDLK_SCANCODE_MASK, - SDLK_F14 = (int)SDL_Scancode.SDL_SCANCODE_F14 | SDLK_SCANCODE_MASK, - SDLK_F15 = (int)SDL_Scancode.SDL_SCANCODE_F15 | SDLK_SCANCODE_MASK, - SDLK_F16 = (int)SDL_Scancode.SDL_SCANCODE_F16 | SDLK_SCANCODE_MASK, - SDLK_F17 = (int)SDL_Scancode.SDL_SCANCODE_F17 | SDLK_SCANCODE_MASK, - SDLK_F18 = (int)SDL_Scancode.SDL_SCANCODE_F18 | SDLK_SCANCODE_MASK, - SDLK_F19 = (int)SDL_Scancode.SDL_SCANCODE_F19 | SDLK_SCANCODE_MASK, - SDLK_F20 = (int)SDL_Scancode.SDL_SCANCODE_F20 | SDLK_SCANCODE_MASK, - SDLK_F21 = (int)SDL_Scancode.SDL_SCANCODE_F21 | SDLK_SCANCODE_MASK, - SDLK_F22 = (int)SDL_Scancode.SDL_SCANCODE_F22 | SDLK_SCANCODE_MASK, - SDLK_F23 = (int)SDL_Scancode.SDL_SCANCODE_F23 | SDLK_SCANCODE_MASK, - SDLK_F24 = (int)SDL_Scancode.SDL_SCANCODE_F24 | SDLK_SCANCODE_MASK, - SDLK_EXECUTE = (int)SDL_Scancode.SDL_SCANCODE_EXECUTE | SDLK_SCANCODE_MASK, - SDLK_HELP = (int)SDL_Scancode.SDL_SCANCODE_HELP | SDLK_SCANCODE_MASK, - SDLK_MENU = (int)SDL_Scancode.SDL_SCANCODE_MENU | SDLK_SCANCODE_MASK, - SDLK_SELECT = (int)SDL_Scancode.SDL_SCANCODE_SELECT | SDLK_SCANCODE_MASK, - SDLK_STOP = (int)SDL_Scancode.SDL_SCANCODE_STOP | SDLK_SCANCODE_MASK, - SDLK_AGAIN = (int)SDL_Scancode.SDL_SCANCODE_AGAIN | SDLK_SCANCODE_MASK, - SDLK_UNDO = (int)SDL_Scancode.SDL_SCANCODE_UNDO | SDLK_SCANCODE_MASK, - SDLK_CUT = (int)SDL_Scancode.SDL_SCANCODE_CUT | SDLK_SCANCODE_MASK, - SDLK_COPY = (int)SDL_Scancode.SDL_SCANCODE_COPY | SDLK_SCANCODE_MASK, - SDLK_PASTE = (int)SDL_Scancode.SDL_SCANCODE_PASTE | SDLK_SCANCODE_MASK, - SDLK_FIND = (int)SDL_Scancode.SDL_SCANCODE_FIND | SDLK_SCANCODE_MASK, - SDLK_MUTE = (int)SDL_Scancode.SDL_SCANCODE_MUTE | SDLK_SCANCODE_MASK, - SDLK_VOLUMEUP = (int)SDL_Scancode.SDL_SCANCODE_VOLUMEUP | SDLK_SCANCODE_MASK, - SDLK_VOLUMEDOWN = (int)SDL_Scancode.SDL_SCANCODE_VOLUMEDOWN | SDLK_SCANCODE_MASK, - SDLK_KP_COMMA = (int)SDL_Scancode.SDL_SCANCODE_KP_COMMA | SDLK_SCANCODE_MASK, - SDLK_KP_EQUALSAS400 = - (int)SDL_Scancode.SDL_SCANCODE_KP_EQUALSAS400 | SDLK_SCANCODE_MASK, - - SDLK_ALTERASE = (int)SDL_Scancode.SDL_SCANCODE_ALTERASE | SDLK_SCANCODE_MASK, - SDLK_SYSREQ = (int)SDL_Scancode.SDL_SCANCODE_SYSREQ | SDLK_SCANCODE_MASK, - SDLK_CANCEL = (int)SDL_Scancode.SDL_SCANCODE_CANCEL | SDLK_SCANCODE_MASK, - SDLK_CLEAR = (int)SDL_Scancode.SDL_SCANCODE_CLEAR | SDLK_SCANCODE_MASK, - SDLK_PRIOR = (int)SDL_Scancode.SDL_SCANCODE_PRIOR | SDLK_SCANCODE_MASK, - SDLK_RETURN2 = (int)SDL_Scancode.SDL_SCANCODE_RETURN2 | SDLK_SCANCODE_MASK, - SDLK_SEPARATOR = (int)SDL_Scancode.SDL_SCANCODE_SEPARATOR | SDLK_SCANCODE_MASK, - SDLK_OUT = (int)SDL_Scancode.SDL_SCANCODE_OUT | SDLK_SCANCODE_MASK, - SDLK_OPER = (int)SDL_Scancode.SDL_SCANCODE_OPER | SDLK_SCANCODE_MASK, - SDLK_CLEARAGAIN = (int)SDL_Scancode.SDL_SCANCODE_CLEARAGAIN | SDLK_SCANCODE_MASK, - SDLK_CRSEL = (int)SDL_Scancode.SDL_SCANCODE_CRSEL | SDLK_SCANCODE_MASK, - SDLK_EXSEL = (int)SDL_Scancode.SDL_SCANCODE_EXSEL | SDLK_SCANCODE_MASK, - - SDLK_KP_00 = (int)SDL_Scancode.SDL_SCANCODE_KP_00 | SDLK_SCANCODE_MASK, - SDLK_KP_000 = (int)SDL_Scancode.SDL_SCANCODE_KP_000 | SDLK_SCANCODE_MASK, - SDLK_THOUSANDSSEPARATOR = - (int)SDL_Scancode.SDL_SCANCODE_THOUSANDSSEPARATOR | SDLK_SCANCODE_MASK, - SDLK_DECIMALSEPARATOR = - (int)SDL_Scancode.SDL_SCANCODE_DECIMALSEPARATOR | SDLK_SCANCODE_MASK, - SDLK_CURRENCYUNIT = (int)SDL_Scancode.SDL_SCANCODE_CURRENCYUNIT | SDLK_SCANCODE_MASK, - SDLK_CURRENCYSUBUNIT = - (int)SDL_Scancode.SDL_SCANCODE_CURRENCYSUBUNIT | SDLK_SCANCODE_MASK, - SDLK_KP_LEFTPAREN = (int)SDL_Scancode.SDL_SCANCODE_KP_LEFTPAREN | SDLK_SCANCODE_MASK, - SDLK_KP_RIGHTPAREN = (int)SDL_Scancode.SDL_SCANCODE_KP_RIGHTPAREN | SDLK_SCANCODE_MASK, - SDLK_KP_LEFTBRACE = (int)SDL_Scancode.SDL_SCANCODE_KP_LEFTBRACE | SDLK_SCANCODE_MASK, - SDLK_KP_RIGHTBRACE = (int)SDL_Scancode.SDL_SCANCODE_KP_RIGHTBRACE | SDLK_SCANCODE_MASK, - SDLK_KP_TAB = (int)SDL_Scancode.SDL_SCANCODE_KP_TAB | SDLK_SCANCODE_MASK, - SDLK_KP_BACKSPACE = (int)SDL_Scancode.SDL_SCANCODE_KP_BACKSPACE | SDLK_SCANCODE_MASK, - SDLK_KP_A = (int)SDL_Scancode.SDL_SCANCODE_KP_A | SDLK_SCANCODE_MASK, - SDLK_KP_B = (int)SDL_Scancode.SDL_SCANCODE_KP_B | SDLK_SCANCODE_MASK, - SDLK_KP_C = (int)SDL_Scancode.SDL_SCANCODE_KP_C | SDLK_SCANCODE_MASK, - SDLK_KP_D = (int)SDL_Scancode.SDL_SCANCODE_KP_D | SDLK_SCANCODE_MASK, - SDLK_KP_E = (int)SDL_Scancode.SDL_SCANCODE_KP_E | SDLK_SCANCODE_MASK, - SDLK_KP_F = (int)SDL_Scancode.SDL_SCANCODE_KP_F | SDLK_SCANCODE_MASK, - SDLK_KP_XOR = (int)SDL_Scancode.SDL_SCANCODE_KP_XOR | SDLK_SCANCODE_MASK, - SDLK_KP_POWER = (int)SDL_Scancode.SDL_SCANCODE_KP_POWER | SDLK_SCANCODE_MASK, - SDLK_KP_PERCENT = (int)SDL_Scancode.SDL_SCANCODE_KP_PERCENT | SDLK_SCANCODE_MASK, - SDLK_KP_LESS = (int)SDL_Scancode.SDL_SCANCODE_KP_LESS | SDLK_SCANCODE_MASK, - SDLK_KP_GREATER = (int)SDL_Scancode.SDL_SCANCODE_KP_GREATER | SDLK_SCANCODE_MASK, - SDLK_KP_AMPERSAND = (int)SDL_Scancode.SDL_SCANCODE_KP_AMPERSAND | SDLK_SCANCODE_MASK, - SDLK_KP_DBLAMPERSAND = - (int)SDL_Scancode.SDL_SCANCODE_KP_DBLAMPERSAND | SDLK_SCANCODE_MASK, - SDLK_KP_VERTICALBAR = - (int)SDL_Scancode.SDL_SCANCODE_KP_VERTICALBAR | SDLK_SCANCODE_MASK, - SDLK_KP_DBLVERTICALBAR = - (int)SDL_Scancode.SDL_SCANCODE_KP_DBLVERTICALBAR | SDLK_SCANCODE_MASK, - SDLK_KP_COLON = (int)SDL_Scancode.SDL_SCANCODE_KP_COLON | SDLK_SCANCODE_MASK, - SDLK_KP_HASH = (int)SDL_Scancode.SDL_SCANCODE_KP_HASH | SDLK_SCANCODE_MASK, - SDLK_KP_SPACE = (int)SDL_Scancode.SDL_SCANCODE_KP_SPACE | SDLK_SCANCODE_MASK, - SDLK_KP_AT = (int)SDL_Scancode.SDL_SCANCODE_KP_AT | SDLK_SCANCODE_MASK, - SDLK_KP_EXCLAM = (int)SDL_Scancode.SDL_SCANCODE_KP_EXCLAM | SDLK_SCANCODE_MASK, - SDLK_KP_MEMSTORE = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMSTORE | SDLK_SCANCODE_MASK, - SDLK_KP_MEMRECALL = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMRECALL | SDLK_SCANCODE_MASK, - SDLK_KP_MEMCLEAR = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMCLEAR | SDLK_SCANCODE_MASK, - SDLK_KP_MEMADD = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMADD | SDLK_SCANCODE_MASK, - SDLK_KP_MEMSUBTRACT = - (int)SDL_Scancode.SDL_SCANCODE_KP_MEMSUBTRACT | SDLK_SCANCODE_MASK, - SDLK_KP_MEMMULTIPLY = - (int)SDL_Scancode.SDL_SCANCODE_KP_MEMMULTIPLY | SDLK_SCANCODE_MASK, - SDLK_KP_MEMDIVIDE = (int)SDL_Scancode.SDL_SCANCODE_KP_MEMDIVIDE | SDLK_SCANCODE_MASK, - SDLK_KP_PLUSMINUS = (int)SDL_Scancode.SDL_SCANCODE_KP_PLUSMINUS | SDLK_SCANCODE_MASK, - SDLK_KP_CLEAR = (int)SDL_Scancode.SDL_SCANCODE_KP_CLEAR | SDLK_SCANCODE_MASK, - SDLK_KP_CLEARENTRY = (int)SDL_Scancode.SDL_SCANCODE_KP_CLEARENTRY | SDLK_SCANCODE_MASK, - SDLK_KP_BINARY = (int)SDL_Scancode.SDL_SCANCODE_KP_BINARY | SDLK_SCANCODE_MASK, - SDLK_KP_OCTAL = (int)SDL_Scancode.SDL_SCANCODE_KP_OCTAL | SDLK_SCANCODE_MASK, - SDLK_KP_DECIMAL = (int)SDL_Scancode.SDL_SCANCODE_KP_DECIMAL | SDLK_SCANCODE_MASK, - SDLK_KP_HEXADECIMAL = - (int)SDL_Scancode.SDL_SCANCODE_KP_HEXADECIMAL | SDLK_SCANCODE_MASK, - - SDLK_LCTRL = (int)SDL_Scancode.SDL_SCANCODE_LCTRL | SDLK_SCANCODE_MASK, - SDLK_LSHIFT = (int)SDL_Scancode.SDL_SCANCODE_LSHIFT | SDLK_SCANCODE_MASK, - SDLK_LALT = (int)SDL_Scancode.SDL_SCANCODE_LALT | SDLK_SCANCODE_MASK, - SDLK_LGUI = (int)SDL_Scancode.SDL_SCANCODE_LGUI | SDLK_SCANCODE_MASK, - SDLK_RCTRL = (int)SDL_Scancode.SDL_SCANCODE_RCTRL | SDLK_SCANCODE_MASK, - SDLK_RSHIFT = (int)SDL_Scancode.SDL_SCANCODE_RSHIFT | SDLK_SCANCODE_MASK, - SDLK_RALT = (int)SDL_Scancode.SDL_SCANCODE_RALT | SDLK_SCANCODE_MASK, - SDLK_RGUI = (int)SDL_Scancode.SDL_SCANCODE_RGUI | SDLK_SCANCODE_MASK, - - SDLK_MODE = (int)SDL_Scancode.SDL_SCANCODE_MODE | SDLK_SCANCODE_MASK, - - SDLK_AUDIONEXT = (int)SDL_Scancode.SDL_SCANCODE_AUDIONEXT | SDLK_SCANCODE_MASK, - SDLK_AUDIOPREV = (int)SDL_Scancode.SDL_SCANCODE_AUDIOPREV | SDLK_SCANCODE_MASK, - SDLK_AUDIOSTOP = (int)SDL_Scancode.SDL_SCANCODE_AUDIOSTOP | SDLK_SCANCODE_MASK, - SDLK_AUDIOPLAY = (int)SDL_Scancode.SDL_SCANCODE_AUDIOPLAY | SDLK_SCANCODE_MASK, - SDLK_AUDIOMUTE = (int)SDL_Scancode.SDL_SCANCODE_AUDIOMUTE | SDLK_SCANCODE_MASK, - SDLK_MEDIASELECT = (int)SDL_Scancode.SDL_SCANCODE_MEDIASELECT | SDLK_SCANCODE_MASK, - SDLK_WWW = (int)SDL_Scancode.SDL_SCANCODE_WWW | SDLK_SCANCODE_MASK, - SDLK_MAIL = (int)SDL_Scancode.SDL_SCANCODE_MAIL | SDLK_SCANCODE_MASK, - SDLK_CALCULATOR = (int)SDL_Scancode.SDL_SCANCODE_CALCULATOR | SDLK_SCANCODE_MASK, - SDLK_COMPUTER = (int)SDL_Scancode.SDL_SCANCODE_COMPUTER | SDLK_SCANCODE_MASK, - SDLK_AC_SEARCH = (int)SDL_Scancode.SDL_SCANCODE_AC_SEARCH | SDLK_SCANCODE_MASK, - SDLK_AC_HOME = (int)SDL_Scancode.SDL_SCANCODE_AC_HOME | SDLK_SCANCODE_MASK, - SDLK_AC_BACK = (int)SDL_Scancode.SDL_SCANCODE_AC_BACK | SDLK_SCANCODE_MASK, - SDLK_AC_FORWARD = (int)SDL_Scancode.SDL_SCANCODE_AC_FORWARD | SDLK_SCANCODE_MASK, - SDLK_AC_STOP = (int)SDL_Scancode.SDL_SCANCODE_AC_STOP | SDLK_SCANCODE_MASK, - SDLK_AC_REFRESH = (int)SDL_Scancode.SDL_SCANCODE_AC_REFRESH | SDLK_SCANCODE_MASK, - SDLK_AC_BOOKMARKS = (int)SDL_Scancode.SDL_SCANCODE_AC_BOOKMARKS | SDLK_SCANCODE_MASK, - - SDLK_BRIGHTNESSDOWN = - (int)SDL_Scancode.SDL_SCANCODE_BRIGHTNESSDOWN | SDLK_SCANCODE_MASK, - SDLK_BRIGHTNESSUP = (int)SDL_Scancode.SDL_SCANCODE_BRIGHTNESSUP | SDLK_SCANCODE_MASK, - SDLK_DISPLAYSWITCH = (int)SDL_Scancode.SDL_SCANCODE_DISPLAYSWITCH | SDLK_SCANCODE_MASK, - SDLK_KBDILLUMTOGGLE = - (int)SDL_Scancode.SDL_SCANCODE_KBDILLUMTOGGLE | SDLK_SCANCODE_MASK, - SDLK_KBDILLUMDOWN = (int)SDL_Scancode.SDL_SCANCODE_KBDILLUMDOWN | SDLK_SCANCODE_MASK, - SDLK_KBDILLUMUP = (int)SDL_Scancode.SDL_SCANCODE_KBDILLUMUP | SDLK_SCANCODE_MASK, - SDLK_EJECT = (int)SDL_Scancode.SDL_SCANCODE_EJECT | SDLK_SCANCODE_MASK, - SDLK_SLEEP = (int)SDL_Scancode.SDL_SCANCODE_SLEEP | SDLK_SCANCODE_MASK - } - - /* Key modifiers (bitfield) */ - [Flags] - public enum SDL_Keymod : ushort - { - KMOD_NONE = 0x0000, - KMOD_LSHIFT = 0x0001, - KMOD_RSHIFT = 0x0002, - KMOD_LCTRL = 0x0040, - KMOD_RCTRL = 0x0080, - KMOD_LALT = 0x0100, - KMOD_RALT = 0x0200, - KMOD_LGUI = 0x0400, - KMOD_RGUI = 0x0800, - KMOD_NUM = 0x1000, - KMOD_CAPS = 0x2000, - KMOD_MODE = 0x4000, - KMOD_RESERVED = 0x8000, - - /* These are defines in the SDL headers */ - KMOD_CTRL = (KMOD_LCTRL | KMOD_RCTRL), - KMOD_SHIFT = (KMOD_LSHIFT | KMOD_RSHIFT), - KMOD_ALT = (KMOD_LALT | KMOD_RALT), - KMOD_GUI = (KMOD_LGUI | KMOD_RGUI) - } - - #endregion - - #region SDL_keyboard.h - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_Keysym - { - public SDL_Scancode scancode; - public SDL_Keycode sym; - public SDL_Keymod mod; /* UInt16 */ - public UInt32 unicode; /* Deprecated */ - } - - /* Get the window which has kbd focus */ - /* Return type is an SDL_Window pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetKeyboardFocus(); - - /* Get a snapshot of the keyboard state. */ - /* Return value is a pointer to a UInt8 array */ - /* Numkeys returns the size of the array if non-null */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetKeyboardState(out int numkeys); - - /* Get the current key modifier state for the keyboard. */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_Keymod SDL_GetModState(); - - /* Set the current key modifier state */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetModState(SDL_Keymod modstate); - - /* Get the key code corresponding to the given scancode - * with the current keyboard layout. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_Keycode SDL_GetKeyFromScancode(SDL_Scancode scancode); - - /* Get the scancode for the given keycode */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_Scancode SDL_GetScancodeFromKey(SDL_Keycode key); - - /* Wrapper for SDL_GetScancodeName */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetScancodeName(SDL_Scancode scancode); - - /* Get a scancode from a human-readable name */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_Scancode SDL_GetScancodeFromName( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] string name - ); - - /* Wrapper for SDL_GetKeyName */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetKeyName(SDL_Keycode key); - - /* Get a key code from a human-readable name */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_Keycode SDL_GetKeyFromName( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] string name - ); - - /* Start accepting Unicode text input events, show keyboard */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_StartTextInput(); - - /* Check if unicode input events are enabled */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsTextInputActive(); - - /* Stop receiving any text input events, hide onscreen kbd */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_StopTextInput(); - - /* Set the rectangle used for text input, hint for IME */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetTextInputRect(ref SDL_Rect rect); - - /* Does the platform support an on-screen keyboard? */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_HasScreenKeyboardSupport(); - - /* Is the on-screen keyboard shown for a given window? */ - /* window is an SDL_Window pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsScreenKeyboardShown(IntPtr window); - - #endregion - - #region SDL_mouse.c - - /* Note: SDL_Cursor is a typedef normally. We'll treat it as - * an IntPtr, because C# doesn't do typedefs. Yay! - */ - - /* System cursor types */ - public enum SDL_SystemCursor - { - SDL_SYSTEM_CURSOR_ARROW, // Arrow - SDL_SYSTEM_CURSOR_IBEAM, // I-beam - SDL_SYSTEM_CURSOR_WAIT, // Wait - SDL_SYSTEM_CURSOR_CROSSHAIR, // Crosshair - SDL_SYSTEM_CURSOR_WAITARROW, // Small wait cursor (or Wait if not available) - SDL_SYSTEM_CURSOR_SIZENWSE, // Double arrow pointing northwest and southeast - SDL_SYSTEM_CURSOR_SIZENESW, // Double arrow pointing northeast and southwest - SDL_SYSTEM_CURSOR_SIZEWE, // Double arrow pointing west and east - SDL_SYSTEM_CURSOR_SIZENS, // Double arrow pointing north and south - SDL_SYSTEM_CURSOR_SIZEALL, // Four pointed arrow pointing north, south, east, and west - SDL_SYSTEM_CURSOR_NO, // Slashed circle or crossbones - SDL_SYSTEM_CURSOR_HAND, // Hand - SDL_NUM_SYSTEM_CURSORS - } - - /* Get the window which currently has mouse focus */ - /* Return value is an SDL_Window pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetMouseFocus(); - - /* Get the current state of the mouse */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetMouseState(out int x, out int y); - - /* Get the current state of the mouse */ - /* This overload allows for passing NULL to x */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetMouseState(IntPtr x, out int y); - - /* Get the current state of the mouse */ - /* This overload allows for passing NULL to y */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetMouseState(out int x, IntPtr y); - - /* Get the current state of the mouse */ - /* This overload allows for passing NULL to both x and y */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetMouseState(IntPtr x, IntPtr y); - - /* Get the current state of the mouse, in relation to the desktop */ - /* Only available in 2.0.4 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetGlobalMouseState(out int x, out int y); - - /* Get the current state of the mouse, in relation to the desktop */ - /* Only available in 2.0.4 */ - /* This overload allows for passing NULL to x */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetGlobalMouseState(IntPtr x, out int y); - - /* Get the current state of the mouse, in relation to the desktop */ - /* Only available in 2.0.4 */ - /* This overload allows for passing NULL to y */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetGlobalMouseState(out int x, IntPtr y); - - /* Get the current state of the mouse, in relation to the desktop */ - /* Only available in 2.0.4 */ - /* This overload allows for passing NULL to both x and y */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetGlobalMouseState(IntPtr x, IntPtr y); - - /* Get the mouse state with relative coords*/ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetRelativeMouseState(out int x, out int y); - - /* Set the mouse cursor's position (within a window) */ - /* window is an SDL_Window pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_WarpMouseInWindow(IntPtr window, int x, int y); - - /* Set the mouse cursor's position in global screen space */ - /* Only available in 2.0.4 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_WarpMouseGlobal(int x, int y); - - /* Enable/Disable relative mouse mode (grabs mouse, rel coords) */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_SetRelativeMouseMode(SDL_bool enabled); - - /* Capture the mouse, to track input outside an SDL window */ - /* Only available in 2.0.4 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_CaptureMouse(SDL_bool enabled); - - /* Query if the relative mouse mode is enabled */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GetRelativeMouseMode(); - - /* Create a cursor from bitmap data (amd mask) in MSB format */ - /* data and mask are byte arrays, and w must be a multiple of 8 */ - /* return value is an SDL_Cursor pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateCursor( - IntPtr data, - IntPtr mask, - int w, - int h, - int hot_x, - int hot_y - ); - - /* Create a cursor from an SDL_Surface */ - /* IntPtr refers to an SDL_Cursor*, surface to an SDL_Surface* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateColorCursor( - IntPtr surface, - int hot_x, - int hot_y - ); - - /* Create a cursor from a system cursor id */ - /* return value is an SDL_Cursor pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_CreateSystemCursor(SDL_SystemCursor id); - - /* Set the active cursor */ - /* cursor is an SDL_Cursor pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_SetCursor(IntPtr cursor); - - /* Return the active cursor */ - /* return value is an SDL_Cursor pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetCursor(); - - /* Frees a cursor created with one of the CreateCursor functions */ - /* cursor in an SDL_Cursor pointer */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreeCursor(IntPtr cursor); - - /* Toggle whether or not the cursor is shown */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_ShowCursor(int toggle); - - public static uint SDL_BUTTON(uint X) - { - // If only there were a better way of doing this in C# - return (uint) (1 << ((int) X - 1)); - } - - public const uint SDL_BUTTON_LEFT = 1; - public const uint SDL_BUTTON_MIDDLE = 2; - public const uint SDL_BUTTON_RIGHT = 3; - public const uint SDL_BUTTON_X1 = 4; - public const uint SDL_BUTTON_X2 = 5; - public static readonly UInt32 SDL_BUTTON_LMASK = SDL_BUTTON(SDL_BUTTON_LEFT); - public static readonly UInt32 SDL_BUTTON_MMASK = SDL_BUTTON(SDL_BUTTON_MIDDLE); - public static readonly UInt32 SDL_BUTTON_RMASK = SDL_BUTTON(SDL_BUTTON_RIGHT); - public static readonly UInt32 SDL_BUTTON_X1MASK = SDL_BUTTON(SDL_BUTTON_X1); - public static readonly UInt32 SDL_BUTTON_X2MASK = SDL_BUTTON(SDL_BUTTON_X2); - - #endregion - - #region SDL_touch.h - - public const uint SDL_TOUCH_MOUSEID = uint.MaxValue; - - public struct SDL_Finger - { - public long id; // SDL_FingerID - public float x; - public float y; - public float pressure; - } - - /** - * \brief Get the number of registered touch devices. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumTouchDevices(); - - /** - * \brief Get the touch ID with the given index, or 0 if the index is invalid. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern long SDL_GetTouchDevice(int index); - - /** - * \brief Get the number of active fingers for a given touch device. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumTouchFingers(long touchID); - - /** - * \brief Get the finger object of the given touch, with the given index. - * Returns pointer to SDL_Finger. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GetTouchFinger(long touchID, int index); - - #endregion - - #region SDL_joystick.h - - public const byte SDL_HAT_CENTERED = 0x00; - public const byte SDL_HAT_UP = 0x01; - public const byte SDL_HAT_RIGHT = 0x02; - public const byte SDL_HAT_DOWN = 0x04; - public const byte SDL_HAT_LEFT = 0x08; - public const byte SDL_HAT_RIGHTUP = SDL_HAT_RIGHT | SDL_HAT_UP; - public const byte SDL_HAT_RIGHTDOWN = SDL_HAT_RIGHT | SDL_HAT_DOWN; - public const byte SDL_HAT_LEFTUP = SDL_HAT_LEFT | SDL_HAT_UP; - public const byte SDL_HAT_LEFTDOWN = SDL_HAT_LEFT | SDL_HAT_DOWN; - - public enum SDL_JoystickPowerLevel - { - SDL_JOYSTICK_POWER_UNKNOWN = -1, - SDL_JOYSTICK_POWER_EMPTY, - SDL_JOYSTICK_POWER_LOW, - SDL_JOYSTICK_POWER_MEDIUM, - SDL_JOYSTICK_POWER_FULL, - SDL_JOYSTICK_POWER_WIRED, - SDL_JOYSTICK_POWER_MAX - } - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_JoystickClose(IntPtr joystick); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickEventState(int state); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern short SDL_JoystickGetAxis( - IntPtr joystick, - int axis - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickGetBall( - IntPtr joystick, - int ball, - out int dx, - out int dy - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern byte SDL_JoystickGetButton( - IntPtr joystick, - int button - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern byte SDL_JoystickGetHat( - IntPtr joystick, - int hat - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_JoystickName( - IntPtr joystick - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_JoystickNameForIndex( - int device_index - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickNumAxes(IntPtr joystick); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickNumBalls(IntPtr joystick); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickNumButtons(IntPtr joystick); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickNumHats(IntPtr joystick); - - /* IntPtr refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_JoystickOpen(int device_index); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickOpened(int device_index); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_JoystickUpdate(); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_NumJoysticks(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern Guid SDL_JoystickGetDeviceGUID( - int device_index - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern Guid SDL_JoystickGetGUID( - IntPtr joystick - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_JoystickGetGUIDString( - Guid guid, - byte[] pszGUID, - int cbGUID - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern Guid SDL_JoystickGetGUIDFromString( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string pchGUID - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_JoystickGetAttached(IntPtr joystick); - - /* int refers to an SDL_JoystickID, joystick to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickInstanceID(IntPtr joystick); - - /* joystick refers to an SDL_Joystick*. - * This function is only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_JoystickPowerLevel SDL_JoystickCurrentPowerLevel( - IntPtr joystick - ); - - /* int refers to an SDL_JoystickID, IntPtr to an SDL_Joystick*. - * This function is only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_JoystickFromInstanceID(int joyid); - - #endregion - - #region SDL_gamecontroller.h - - public enum SDL_GameControllerBindType - { - SDL_CONTROLLER_BINDTYPE_NONE, - SDL_CONTROLLER_BINDTYPE_BUTTON, - SDL_CONTROLLER_BINDTYPE_AXIS, - SDL_CONTROLLER_BINDTYPE_HAT - } - - public enum SDL_GameControllerAxis - { - SDL_CONTROLLER_AXIS_INVALID = -1, - SDL_CONTROLLER_AXIS_LEFTX, - SDL_CONTROLLER_AXIS_LEFTY, - SDL_CONTROLLER_AXIS_RIGHTX, - SDL_CONTROLLER_AXIS_RIGHTY, - SDL_CONTROLLER_AXIS_TRIGGERLEFT, - SDL_CONTROLLER_AXIS_TRIGGERRIGHT, - SDL_CONTROLLER_AXIS_MAX - } - - public enum SDL_GameControllerButton - { - SDL_CONTROLLER_BUTTON_INVALID = -1, - SDL_CONTROLLER_BUTTON_A, - SDL_CONTROLLER_BUTTON_B, - SDL_CONTROLLER_BUTTON_X, - SDL_CONTROLLER_BUTTON_Y, - SDL_CONTROLLER_BUTTON_BACK, - SDL_CONTROLLER_BUTTON_GUIDE, - SDL_CONTROLLER_BUTTON_START, - SDL_CONTROLLER_BUTTON_LEFTSTICK, - SDL_CONTROLLER_BUTTON_RIGHTSTICK, - SDL_CONTROLLER_BUTTON_LEFTSHOULDER, - SDL_CONTROLLER_BUTTON_RIGHTSHOULDER, - SDL_CONTROLLER_BUTTON_DPAD_UP, - SDL_CONTROLLER_BUTTON_DPAD_DOWN, - SDL_CONTROLLER_BUTTON_DPAD_LEFT, - SDL_CONTROLLER_BUTTON_DPAD_RIGHT, - SDL_CONTROLLER_BUTTON_MAX, - } - - // FIXME: I'd rather this somehow be private... - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_GameControllerButtonBind_hat - { - public int hat; - public int hat_mask; - } - - /* This struct has a union in it, hence the Explicit layout. */ - [StructLayout(LayoutKind.Explicit)] - public struct SDL_GameControllerButtonBind - { - /* Note: enum size is 4 bytes. */ - [FieldOffset(0)] - public SDL_GameControllerBindType bindType; - [FieldOffset(4)] - public int button; - [FieldOffset(4)] - public int axis; - [FieldOffset(4)] - public INTERNAL_GameControllerButtonBind_hat hat; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerAddMapping( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string mappingString - ); - - /* THIS IS AN RWops FUNCTION! */ - [DllImport(nativeLibName, EntryPoint = "SDL_GameControllerAddMappingsFromRW", CallingConvention = CallingConvention.Cdecl)] - private static extern int INTERNAL_SDL_GameControllerAddMappingsFromRW( - IntPtr rw, - int freerw - ); - public static int SDL_GameControllerAddMappingsFromFile(string file) - { - IntPtr rwops = INTERNAL_SDL_RWFromFile(file, "rb"); - return INTERNAL_SDL_GameControllerAddMappingsFromRW(rwops, 1); - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GameControllerMappingForGUID( - Guid guid - ); - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GameControllerMapping( - IntPtr gamecontroller - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_IsGameController(int joystick_index); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GameControllerNameForIndex( - int joystick_index - ); - - /* IntPtr refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GameControllerOpen(int joystick_index); - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GameControllerName( - IntPtr gamecontroller - ); - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GameControllerGetAttached( - IntPtr gamecontroller - ); - - /* IntPtr refers to an SDL_Joystick* - * gamecontroller refers to an SDL_GameController* - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GameControllerGetJoystick( - IntPtr gamecontroller - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GameControllerEventState(int state); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GameControllerUpdate(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_GameControllerAxis SDL_GameControllerGetAxisFromString( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string pchString - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GameControllerGetStringForAxis( - SDL_GameControllerAxis axis - ); - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_GameControllerButtonBind SDL_GameControllerGetBindForAxis( - IntPtr gamecontroller, - SDL_GameControllerAxis axis - ); - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern short SDL_GameControllerGetAxis( - IntPtr gamecontroller, - SDL_GameControllerAxis axis - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_GameControllerButton SDL_GameControllerGetButtonFromString( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string pchString - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GameControllerGetStringForButton( - SDL_GameControllerButton button - ); - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_GameControllerButtonBind SDL_GameControllerGetBindForButton( - IntPtr gamecontroller, - SDL_GameControllerButton button - ); - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern byte SDL_GameControllerGetButton( - IntPtr gamecontroller, - SDL_GameControllerButton button - ); - - /* gamecontroller refers to an SDL_GameController* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_GameControllerClose( - IntPtr gamecontroller - ); - - /* int refers to an SDL_JoystickID, IntPtr to an SDL_GameController*. - * This function is only available in 2.0.4 or higher. - */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_GameControllerFromInstanceID(int joyid); - - #endregion - - #region SDL_haptic.h - - /* SDL_HapticEffect type */ - public const ushort SDL_HAPTIC_CONSTANT = (1 << 0); - public const ushort SDL_HAPTIC_SINE = (1 << 1); - public const ushort SDL_HAPTIC_LEFTRIGHT = (1 << 2); - public const ushort SDL_HAPTIC_TRIANGLE = (1 << 3); - public const ushort SDL_HAPTIC_SAWTOOTHUP = (1 << 4); - public const ushort SDL_HAPTIC_SAWTOOTHDOWN = (1 << 5); - public const ushort SDL_HAPTIC_SPRING = (1 << 7); - public const ushort SDL_HAPTIC_DAMPER = (1 << 8); - public const ushort SDL_HAPTIC_INERTIA = (1 << 9); - public const ushort SDL_HAPTIC_FRICTION = (1 << 10); - public const ushort SDL_HAPTIC_CUSTOM = (1 << 11); - public const ushort SDL_HAPTIC_GAIN = (1 << 12); - public const ushort SDL_HAPTIC_AUTOCENTER = (1 << 13); - public const ushort SDL_HAPTIC_STATUS = (1 << 14); - public const ushort SDL_HAPTIC_PAUSE = (1 << 15); - - /* SDL_HapticDirection type */ - public const byte SDL_HAPTIC_POLAR = 0; - public const byte SDL_HAPTIC_CARTESIAN = 1; - public const byte SDL_HAPTIC_SPHERICAL = 2; - - /* SDL_HapticRunEffect */ - public const uint SDL_HAPTIC_INFINITY = 4292967295U; - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_HapticDirection - { - public byte type; - public fixed int dir[3]; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_HapticConstant - { - // Header - public ushort type; - public SDL_HapticDirection direction; - // Replay - public uint length; - public ushort delay; - // Trigger - public ushort button; - public ushort interval; - // Constant - public short level; - // Envelope - public ushort attack_length; - public ushort attack_level; - public ushort fade_length; - public ushort fade_level; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_HapticPeriodic - { - // Header - public ushort type; - public SDL_HapticDirection direction; - // Replay - public uint length; - public ushort delay; - // Trigger - public ushort button; - public ushort interval; - // Periodic - public ushort period; - public short magnitude; - public short offset; - public ushort phase; - // Envelope - public ushort attack_length; - public ushort attack_level; - public ushort fade_length; - public ushort fade_level; - } - - [StructLayout(LayoutKind.Sequential)] - public unsafe struct SDL_HapticCondition - { - // Header - public ushort type; - public SDL_HapticDirection direction; - // Replay - public uint length; - public ushort delay; - // Trigger - public ushort button; - public ushort interval; - // Condition - public fixed ushort right_sat[3]; - public fixed ushort left_sat[3]; - public fixed short right_coeff[3]; - public fixed short left_coeff[3]; - public fixed ushort deadband[3]; - public fixed short center[3]; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_HapticRamp - { - // Header - public ushort type; - public SDL_HapticDirection direction; - // Replay - public uint length; - public ushort delay; - // Trigger - public ushort button; - public ushort interval; - // Ramp - public short start; - public short end; - // Envelope - public ushort attack_length; - public ushort attack_level; - public ushort fade_length; - public ushort fade_level; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_HapticLeftRight - { - // Header - public ushort type; - // Replay - public uint length; - // Rumble - public ushort large_magnitude; - public ushort small_magnitude; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_HapticCustom - { - // Header - public ushort type; - public SDL_HapticDirection direction; - // Replay - public uint length; - public ushort delay; - // Trigger - public ushort button; - public ushort interval; - // Custom - public byte channels; - public ushort period; - public ushort samples; - public IntPtr data; // Uint16* - // Envelope - public ushort attack_length; - public ushort attack_level; - public ushort fade_length; - public ushort fade_level; - } - - [StructLayout(LayoutKind.Explicit)] - public struct SDL_HapticEffect - { - [FieldOffset(0)] - public ushort type; - [FieldOffset(0)] - public SDL_HapticConstant constant; - [FieldOffset(0)] - public SDL_HapticPeriodic periodic; - [FieldOffset(0)] - public SDL_HapticCondition condition; - [FieldOffset(0)] - public SDL_HapticRamp ramp; - [FieldOffset(0)] - public SDL_HapticLeftRight leftright; - [FieldOffset(0)] - public SDL_HapticCustom custom; - } - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_HapticClose(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_HapticDestroyEffect( - IntPtr haptic, - int effect - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticEffectSupported( - IntPtr haptic, - ref SDL_HapticEffect effect - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticGetEffectStatus( - IntPtr haptic, - int effect - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticIndex(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_HapticName(int device_index); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticNewEffect( - IntPtr haptic, - ref SDL_HapticEffect effect - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticNumAxes(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticNumEffects(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticNumEffectsPlaying(IntPtr haptic); - - /* IntPtr refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_HapticOpen(int device_index); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticOpened(int device_index); - - /* IntPtr refers to an SDL_Haptic*, joystick to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_HapticOpenFromJoystick( - IntPtr joystick - ); - - /* IntPtr refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern IntPtr SDL_HapticOpenFromMouse(); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticPause(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_HapticQuery(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticRumbleInit(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticRumblePlay( - IntPtr haptic, - float strength, - uint length - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticRumbleStop(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticRumbleSupported(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticRunEffect( - IntPtr haptic, - int effect, - uint iterations - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticSetAutocenter( - IntPtr haptic, - int autocenter - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticSetGain( - IntPtr haptic, - int gain - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticStopAll(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticStopEffect( - IntPtr haptic, - int effect - ); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticUnpause(IntPtr haptic); - - /* haptic refers to an SDL_Haptic* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_HapticUpdateEffect( - IntPtr haptic, - int effect, - ref SDL_HapticEffect data - ); - - /* joystick refers to an SDL_Joystick* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_JoystickIsHaptic(IntPtr joystick); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_MouseIsHaptic(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_NumHaptics(); - - #endregion - - #region SDL_audio.h - - public const ushort SDL_AUDIO_MASK_BITSIZE = 0xFF; - public const ushort SDL_AUDIO_MASK_DATATYPE = (1 << 8); - public const ushort SDL_AUDIO_MASK_ENDIAN = (1 << 12); - public const ushort SDL_AUDIO_MASK_SIGNED = (1 << 15); - - public static ushort SDL_AUDIO_BITSIZE(ushort x) - { - return (ushort) (x & SDL_AUDIO_MASK_BITSIZE); - } - - public static bool SDL_AUDIO_ISFLOAT(ushort x) - { - return (x & SDL_AUDIO_MASK_DATATYPE) != 0; - } - - public static bool SDL_AUDIO_ISBIGENDIAN(ushort x) - { - return (x & SDL_AUDIO_MASK_ENDIAN) != 0; - } - - public static bool SDL_AUDIO_ISSIGNED(ushort x) - { - return (x & SDL_AUDIO_MASK_SIGNED) != 0; - } - - public static bool SDL_AUDIO_ISINT(ushort x) - { - return (x & SDL_AUDIO_MASK_DATATYPE) == 0; - } - - public static bool SDL_AUDIO_ISLITTLEENDIAN(ushort x) - { - return (x & SDL_AUDIO_MASK_ENDIAN) == 0; - } - - public static bool SDL_AUDIO_ISUNSIGNED(ushort x) - { - return (x & SDL_AUDIO_MASK_SIGNED) == 0; - } - - public const ushort AUDIO_U8 = 0x0008; - public const ushort AUDIO_S8 = 0x8008; - public const ushort AUDIO_U16LSB = 0x0010; - public const ushort AUDIO_S16LSB = 0x8010; - public const ushort AUDIO_U16MSB = 0x1010; - public const ushort AUDIO_S16MSB = 0x9010; - public const ushort AUDIO_U16 = AUDIO_U16LSB; - public const ushort AUDIO_S16 = AUDIO_S16LSB; - public const ushort AUDIO_S32LSB = 0x8020; - public const ushort AUDIO_S32MSB = 0x9020; - public const ushort AUDIO_S32 = AUDIO_S32LSB; - public const ushort AUDIO_F32LSB = 0x8120; - public const ushort AUDIO_F32MSB = 0x9120; - public const ushort AUDIO_F32 = AUDIO_F32LSB; - - public static readonly ushort AUDIO_U16SYS = - BitConverter.IsLittleEndian ? AUDIO_U16LSB : AUDIO_U16MSB; - public static readonly ushort AUDIO_S16SYS = - BitConverter.IsLittleEndian ? AUDIO_S16LSB : AUDIO_S16MSB; - public static readonly ushort AUDIO_S32SYS = - BitConverter.IsLittleEndian ? AUDIO_S32LSB : AUDIO_S32MSB; - public static readonly ushort AUDIO_F32SYS = - BitConverter.IsLittleEndian ? AUDIO_F32LSB : AUDIO_F32MSB; - - public const uint SDL_AUDIO_ALLOW_FREQUENCY_CHANGE = 0x00000001; - public const uint SDL_AUDIO_ALLOW_FORMAT_CHANGE = 0x00000001; - public const uint SDL_AUDIO_ALLOW_CHANNELS_CHANGE = 0x00000001; - public const uint SDL_AUDIO_ALLOW_ANY_CHANGE = ( - SDL_AUDIO_ALLOW_FREQUENCY_CHANGE | - SDL_AUDIO_ALLOW_FORMAT_CHANGE | - SDL_AUDIO_ALLOW_CHANNELS_CHANGE - ); - - public const int SDL_MIX_MAXVOLUME = 128; - - public enum SDL_AudioStatus - { - SDL_AUDIO_STOPPED, - SDL_AUDIO_PLAYING, - SDL_AUDIO_PAUSED - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_AudioSpec - { - public int freq; - public ushort format; // SDL_AudioFormat - public byte channels; - public byte silence; - public ushort samples; - public uint size; - public SDL_AudioCallback callback; - public IntPtr userdata; // void* - } - - /* userdata refers to a void*, stream to a Uint8 */ - [UnmanagedFunctionPointer(CallingConvention.Cdecl)] - public delegate void SDL_AudioCallback( - IntPtr userdata, - IntPtr stream, - int len - ); - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_AudioDeviceConnected(uint dev); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_AudioInit( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string driver_name - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_AudioQuit(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_CloseAudio(); - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_CloseAudioDevice(uint dev); - - /* audio_buf refers to a malloc()'d buffer from SDL_LoadWAV */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_FreeWAV(IntPtr audio_buf); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetAudioDeviceName( - int index, - int iscapture - ); - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_AudioStatus SDL_GetAudioDeviceStatus( - uint dev - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetAudioDriver(int index); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_AudioStatus SDL_GetAudioStatus(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler), MarshalCookie = LPUtf8StrMarshaler.LeaveAllocated)] - public static extern string SDL_GetCurrentAudioDriver(); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumAudioDevices(int iscapture); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetNumAudioDrivers(); - - /* audio_buf will refer to a malloc()'d byte buffer */ - /* THIS IS AN RWops FUNCTION! */ - [DllImport(nativeLibName, EntryPoint = "SDL_LoadWAV_RW", CallingConvention = CallingConvention.Cdecl)] - private static extern IntPtr INTERNAL_SDL_LoadWAV_RW( - IntPtr src, - int freesrc, - ref SDL_AudioSpec spec, - out IntPtr audio_buf, - out uint audio_len - ); - public static SDL_AudioSpec SDL_LoadWAV( - string file, - ref SDL_AudioSpec spec, - out IntPtr audio_buf, - out uint audio_len - ) { - SDL_AudioSpec result; - IntPtr rwops = INTERNAL_SDL_RWFromFile(file, "rb"); - IntPtr result_ptr = INTERNAL_SDL_LoadWAV_RW( - rwops, - 1, - ref spec, - out audio_buf, - out audio_len - ); - result = (SDL_AudioSpec) Marshal.PtrToStructure( - result_ptr, - typeof(SDL_AudioSpec) - ); - return result; - } - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LockAudio(); - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_LockAudioDevice(uint dev); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_MixAudio( - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 2)] - byte[] dst, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 2)] - byte[] src, - uint len, - int volume - ); - - /* format refers to an SDL_AudioFormat */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_MixAudioFormat( - [Out()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 3)] - byte[] dst, - [In()] [MarshalAs(UnmanagedType.LPArray, ArraySubType = UnmanagedType.U1, SizeParamIndex = 3)] - byte[] src, - ushort format, - uint len, - int volume - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_OpenAudio( - ref SDL_AudioSpec desired, - out SDL_AudioSpec obtained - ); - - /* uint refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern uint SDL_OpenAudioDevice( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string device, - int iscapture, - ref SDL_AudioSpec desired, - out SDL_AudioSpec obtained, - int allowed_changes - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_PauseAudio(int pause_on); - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_PauseAudioDevice( - uint dev, - int pause_on - ); - - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnlockAudio(); - - /* dev refers to an SDL_AudioDeviceID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_UnlockAudioDevice(uint dev); - - /* dev refers to an SDL_AudioDeviceID, data to a void* */ - /* Only available in 2.0.4 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_QueueAudio( - uint dev, - IntPtr data, - UInt32 len - ); - - /* dev refers to an SDL_AudioDeviceID */ - /* Only available in 2.0.4 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetQueuedAudioSize(uint dev); - - /* dev refers to an SDL_AudioDeviceID */ - /* Only available in 2.0.4 */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_ClearQueuedAudio(uint dev); - - #endregion - - #region SDL_timer.h - - /* System timers rely on different OS mechanisms depending on - * which operating system SDL2 is compiled against. - */ - - /* Compare tick values, return true if A has passed B. Introduced in SDL 2.0.1, - * but does not require it (it was a macro). - */ - public static bool SDL_TICKS_PASSED(UInt32 A, UInt32 B) - { - return ((Int32)(B - A) <= 0); - } - - /* Delays the thread's processing based on the milliseconds parameter */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern void SDL_Delay(UInt32 ms); - - /* Returns the milliseconds that have passed since SDL was initialized */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt32 SDL_GetTicks(); - - /* Get the current value of the high resolution counter */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt64 SDL_GetPerformanceCounter(); - - /* Get the count per second of the high resolution counter */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern UInt64 SDL_GetPerformanceFrequency(); - - /* param refers to a void* */ - public delegate UInt32 SDL_TimerCallback(UInt32 interval, IntPtr param); - - /* int refers to an SDL_TimerID, param to a void* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_AddTimer( - UInt32 interval, - SDL_TimerCallback callback, - IntPtr param - ); - - /* id refers to an SDL_TimerID */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_RemoveTimer(int id); - - #endregion - - #region SDL_syswm.h - - public enum SDL_SYSWM_TYPE - { - SDL_SYSWM_UNKNOWN, - SDL_SYSWM_WINDOWS, - SDL_SYSWM_X11, - SDL_SYSWM_DIRECTFB, - SDL_SYSWM_COCOA, - SDL_SYSWM_UIKIT, - SDL_SYSWM_WAYLAND, - SDL_SYSWM_MIR, - SDL_SYSWM_WINRT, - SDL_SYSWM_ANDROID - } - - // FIXME: I wish these weren't public... - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_windows_wminfo - { - public IntPtr window; // Refers to an HWND - public IntPtr hdc; // Refers to an HDC - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_winrt_wminfo - { - public IntPtr window; // Refers to an IInspectable* - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_x11_wminfo - { - public IntPtr display; // Refers to a Display* - public IntPtr window; // Refers to a Window (XID, use ToInt64!) - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_directfb_wminfo - { - public IntPtr dfb; // Refers to an IDirectFB* - public IntPtr window; // Refers to an IDirectFBWindow* - public IntPtr surface; // Refers to an IDirectFBSurface* - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_cocoa_wminfo - { - public IntPtr window; // Refers to an NSWindow* - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_uikit_wminfo - { - public IntPtr window; // Refers to a UIWindow* - public uint framebuffer; - public uint colorbuffer; - public uint resolveFramebuffer; - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_wayland_wminfo - { - public IntPtr display; // Refers to a wl_display* - public IntPtr surface; // Refers to a wl_surface* - public IntPtr shell_surface; // Refers to a wl_shell_surface* - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_mir_wminfo - { - public IntPtr connection; // Refers to a MirConnection* - public IntPtr surface; // Refers to a MirSurface* - } - - [StructLayout(LayoutKind.Sequential)] - public struct INTERNAL_android_wminfo - { - public IntPtr window; // Refers to an ANativeWindow - public IntPtr surface; // Refers to an EGLSurface - } - - [StructLayout(LayoutKind.Explicit)] - public struct INTERNAL_SysWMDriverUnion - { - [FieldOffset(0)] - public INTERNAL_windows_wminfo win; - [FieldOffset(0)] - public INTERNAL_winrt_wminfo winrt; - [FieldOffset(0)] - public INTERNAL_x11_wminfo x11; - [FieldOffset(0)] - public INTERNAL_directfb_wminfo dfb; - [FieldOffset(0)] - public INTERNAL_cocoa_wminfo cocoa; - [FieldOffset(0)] - public INTERNAL_uikit_wminfo uikit; - [FieldOffset(0)] - public INTERNAL_wayland_wminfo wl; - [FieldOffset(0)] - public INTERNAL_mir_wminfo mir; - [FieldOffset(0)] - public INTERNAL_android_wminfo android; - // private int dummy; - } - - [StructLayout(LayoutKind.Sequential)] - public struct SDL_SysWMinfo - { - public SDL_version version; - public SDL_SYSWM_TYPE subsystem; - public INTERNAL_SysWMDriverUnion info; - } - - /* window refers to an SDL_Window* */ - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_bool SDL_GetWindowWMInfo( - IntPtr window, - ref SDL_SysWMinfo info - ); - - #endregion - - #region SDL_filesystem.h - - /// - /// Get the path where the application resides. - /// - /// Get the "base path". This is the directory where the application was run - /// from, which is probably the installation directory, and may or may not - /// be the process's current working directory. - /// - /// This returns an absolute path in UTF-8 encoding, and is garunteed to - /// end with a path separator ('\\' on Windows, '/' most other places). - /// - /// string of base dir in UTF-8 encoding - /// The underlying C string is owned by the application, - /// and can be NULL on some platforms. - /// - /// This function is not necessarily fast, so you should only - /// call it once and save the string if you need it. - /// - /// This function is only available in SDL 2.0.1 and later. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - public static extern string SDL_GetBasePath(); - - /// - /// Get the user-and-app-specific path where files can be written. - /// - /// Get the "pref dir". This is meant to be where users can write personal - /// files (preferences and save games, etc) that are specific to your - /// application. This directory is unique per user, per application. - /// - /// This function will decide the appropriate location in the native filesystem¸ - /// create the directory if necessary, and return a string of the absolute - /// path to the directory in UTF-8 encoding. - /// - /// The name of your organization. - /// The name of your application. - /// UTF-8 string of user dir in platform-dependent notation. NULL - /// if there's a problem (creating directory failed, etc). - /// The underlying C string is owned by the application, - /// and can be NULL on some platforms. .NET provides some similar functions. - /// - /// This function is not necessarily fast, so you should only - /// call it once and save the string if you need it. - /// - /// This function is only available in SDL 2.0.1 and later. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - [return : MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - public static extern string SDL_GetPrefPath( - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string org, - [In()] [MarshalAs(UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(LPUtf8StrMarshaler))] - string app - ); - - #endregion - - #region SDL_power.h - - /// - /// The basic state for the system's power supply. - /// - public enum SDL_PowerState - { - SDL_POWERSTATE_UNKNOWN = 0, - SDL_POWERSTATE_ON_BATTERY, - SDL_POWERSTATE_NO_BATTERY, - SDL_POWERSTATE_CHARGING, - SDL_POWERSTATE_CHARGED - } - - /// - /// Get the current power supply details. - /// - /// Seconds of battery life left. You can pass a NULL here if - /// you don't care. Will return -1 if we can't determine a - /// value, or we're not running on a battery. - /// Percentage of battery life left, between 0 and 100. You can - /// pass a NULL here if you don't care. Will return -1 if we - /// can't determine a value, or we're not running on a battery. - /// The state of the battery (if any). - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern SDL_PowerState SDL_GetPowerInfo( - out int secs, - out int pct - ); - - #endregion - - #region SDL_cpuinfo.h - - /// - /// This function returns the number of CPU cores available. - /// - /// The number of CPU cores available. - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetCPUCount(); - - /// - /// This function returns the amount of RAM configured in the system, in MB. - /// - /// The amount of RAM configured in the system, in MB. - /// - /// This function is only available in SDL 2.0.1 and later. - /// - [DllImport(nativeLibName, CallingConvention = CallingConvention.Cdecl)] - public static extern int SDL_GetSystemRAM(); - - #endregion - } -} diff --git a/SDL2Crow/SDL2Crow.csproj b/SDL2Crow/SDL2Crow.csproj deleted file mode 100644 index 941e426f..00000000 --- a/SDL2Crow/SDL2Crow.csproj +++ /dev/null @@ -1,80 +0,0 @@ - - - - Debug - Linux_x86 - 8.0.30703 - 2.0 - {E7C76053-6A59-4B72-8E78-F30147B2A05E} - Exe - SDL2Crow - SDL2Crow - v4.5 - 0.4 - - - true - full - false - bin\Debug - DEBUG; - prompt - 4 - false - true - - - true - bin\Release - prompt - 4 - false - true - - - - ..\packages\SDL2-CS.dll.2.0.0.0\lib\net20\SDL2-CS.dll - - - - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\atk-sharp.dll - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\cairo-sharp.dll - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gdk-sharp.dll - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gio-sharp.dll - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\glib-sharp.dll - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gtk-dotnet.dll - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\gtk-sharp.dll - - - ..\packages\gtk-sharp.Linux.3.14.3.14.7\lib\net40\pango-sharp.dll - - - - - - - - - - - {C2980F9B-4798-4C05-99E2-E174810F7C7B} - Crow - - - - - \ No newline at end of file diff --git a/SDL2Crow/main.cs b/SDL2Crow/main.cs deleted file mode 100644 index 3bc4d2ac..00000000 --- a/SDL2Crow/main.cs +++ /dev/null @@ -1,97 +0,0 @@ -// -// main.cs -// -// Author: -// Jean-Philippe Bruyère -// -// Copyright (c) 2016 jp -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see . -using System; -using System.Diagnostics; -using System.Runtime.InteropServices; -using SDL2; -using Cairo; - -namespace SDL2Crow -{ - public class SDL2Window : IDisposable - { - int width, height; - IntPtr win, rend; - SDL.SDL_Surface sdlSurface; - - public SDL2Window (int _width = 800, int _height = 600) { - width = _width; - height = _height; - - SDL.SDL_Init (SDL.SDL_INIT_VIDEO); - - - SDL.SDL_CreateWindowAndRenderer (width, height, - SDL.SDL_WindowFlags.SDL_WINDOW_BORDERLESS, out win, out rend); - - IntPtr sdlSurfPtr = SDL.SDL_GetWindowSurface (win); - sdlSurface = (SDL.SDL_Surface)Marshal.PtrToStructure (sdlSurfPtr, typeof (SDL.SDL_Surface)); - sdlSurface. - //uint colorkey = SDL.SDL_MapRGB (sdlSurface.format, 0xFF, 0x00, 0xFF); - //// Set all pixels of colour R(255), G(0), B(255) to be transparent - //SDL.SDL_SetColorKey (sdlSurfPtr, 4, colorkey); - - //using (Cairo.Surface surf = new Cairo.ImageSurface (sdlSurface.pixels, Cairo.Format.ARGB32, sdlSurface.w, sdlSurface.h, sdlSurface.pitch)) { - // using (Context ctx = new Context (surf)) { - // ctx.Rectangle (0, 0, width, height); - // ctx.SetSourceRGBA (1, 0, 0, 0); - // ctx.Fill (); - // } - //} - - //SDL.SDL_UpdateWindowSurface (win); - - } - void Run () { - SDL.SDL_Event e; - - while(true){ - SDL.SDL_PollEvent (out e); - - if (e.type == SDL.SDL_EventType.SDL_QUIT) - break; - - SDL.SDL_SetRenderDrawBlendMode (rend, SDL.SDL_BlendMode.SDL_BLENDMODE_BLEND); - SDL.SDL_SetRenderDrawColor (rend, 0xFF, 0x00, 0x00, 0x20); - SDL.SDL_RenderClear (rend); - - SDL.SDL_RenderPresent (rend); - } - - } - - [STAThread] - static void Main () - { - using (SDL2Window win = new SDL2Window ()) { - win.Run (); - } - } - - public void Dispose () - { - SDL.SDL_DestroyRenderer (rend); - SDL.SDL_DestroyWindow (win); - SDL.SDL_Quit (); - } - } -} - diff --git a/SDL2Crow/packages.config b/SDL2Crow/packages.config deleted file mode 100644 index 916a571c..00000000 --- a/SDL2Crow/packages.config +++ /dev/null @@ -1,5 +0,0 @@ - - - - - \ No newline at end of file diff --git a/magic3d.png b/magic3d.png deleted file mode 100644 index 767086d3dfe93265f8a830ab46e773d404923e82..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 554698 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%0DnAR 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τr) zgls;8qRzPn$6ZL>@nxUa=g1#F>;WUTZzlrOfGReC(}|Hp``d8u_2qHC4y0(}o58#q z5Z+&a-0)V}z}>R1uyuK#axSlkCUDm7T?8!v2I$St$9BS+>!)@dB$D!j$>=Z;;OYzl zUqpQqk@k0)rCc=>*?RiwdaaWGV5fiTh1f`Z5< zWoO6iVxIyWGLvb)l<9T|Xs;(%SI5NUnhxkW-&$zAJYd1RKX+x-q;;sH)&<^pg`*oX6LUmpQu zA_%c{EmkHk15Crt0bt0wd{V458zIzdbzubgI38)Be$>he-k5_4!u0!x#&ZE?dDwn1 zPPbHlj)9r^`WpL(4Jt!*$lS#x36G|5zS0=J`Zu>~tVK_cfueBhsj-I(1#vr$wih}A zB`X<4II4KH$YNDo7z7P}su?v3;+Fyu-@PIThO$|=yQ!=~t3{%B;vJtM8}UR5U!#5f z&F)TnQQo`0_`z!udH-Wcvi%KpppfXaskjuQiwwOkkqYN>n5t1csOQAEbz8*V_Fi#y zewW}EZe2X^>$9=5=b3WU{Qy}lc{J&A8K-&eMAN^xqfZ{YnK?*gQ|l`Rsf#mo{bYQ1 za6>qfZTqY>sg`655{eXJqbBA4@|$9gYs(YtB_@(YCgIn}NWo+bCjNn8TB@PcBR7H4 zwk4IMS^+*&L3$=8hcqUuds{(ew>cgEXmk|2@RXWM4LgWicocS8pw}p&{~)MJ36SK* z?+;&4_0v&M>@Zp{(+&BM9mkW2O9DB|zfc=y@)(7+eA!fM=RR?gZ6~((-WE@P-#F`N zms=Ilj6V>vE|tcQCW1(x6cUD_-ypDB(-cz=mrlvxdmRRYz8k`S8J=|dcb#|**Z;nN z>DBtvt$sWI>is9&C{)M3?`;`56nhEzug9xiOqD1aIu{}2i+`ducF*5QQ#nw1A}vUi zirF8daN7^So_<=II(DSl#Ez3bA+bGu<=Ma1d0rPbbTQ+zxAojY$oQl9&*c&y3S`<*du4b{IZPE!iZ z?gWeVcDq$WOdk>K+v^dI=Bq>OybiydzpesV12B#M0`#0Km=}%;KTip-yOFHE+|+O0 z=O?^@pxdf!^%|XMeeRQeWI(mxTj3xWKpdv*_K3rfg!Z&Ev%`vt2xavRY=c`sXz_vE zB;mLX7lxRUwW^Y=;pgrot|(Y`(}BzZUruXvbl2*I?lBD4Rx}E!Qay8nxy}oRY4bw} z?CoD>twYW(c8jB1Wr*qAiVl+{(MHD$$(8m)>YknsTtB}}TF=*<^IBbN!G&m4Ia|?V z;u8_94`kVyIXEC@2_5LcNJg!B;Fy`4(Qbz~Kb>*Pb9n;aQM@C{?`uLKgI&f4_=_zE zMA0Cf%20&CNYq4pt$%W#M<)hBl^vSzhbJB_Xq)avna^>RcswREYD$!< zZx$)qn1Gvx&C@)?kG`8VWE55oj_%(<5%U%6uPmILLFoR}5x5m*BbXO%A;78}<5)8| z^!lFZZ28G7dK`Sa;=&qgxidMIU*eLs0f%+Sb$Lw(%PjFO+C2#zIv z+SL?)ocU}S6wZvvsSZhh_19%OTqd1RTb$I)-v)VK(h@Q6T66VE0#&@icHOp+a7U6% z%5;jh|5b`JN5PgR4aqx)XTs)b^2&IXee!0BmWZ7n&@wAbcP$IBv#brM(9v1#`z{DI z1}{8*Oik`*EQi!rRaxL|#{-+*e(C(%AH&|K9RiXD6B7pu11df#rC0A#Sy5iIU+Ps- zn5zN;|3cuYB3q+(Ro-lwT@_NO;@1oX9u&k5+lVtkqF9~%Puh@Ax65tP=w!NS-`VG_ zZy!o(c6{p+I627yZ&;+kySgU9XoXFB|@l1Af&9!hO zhupX6qqfG?hBnLL-v#qa^BndGUekuzP$VfB4l^6c*qP*;@#UJE21waxnbgn}uow+? z<|1&~**Wh*Xgise1s`R(P+vpLoP6iTH^RV;EEE@#{T7N;Bi{C1W#N4>q4;m5w0eBj z{7cK!y7DI%AI}7A^qTsQ_jFj%vhQDuv5yj|O}TL(3jN8f_`?OE!~)tv6C=wBszWvA z7ct)77c9smOzu*$KPXWzqA&D%_3~mvVUT3C&)Pz-5zJ~`<3G+P;)6S5kOvbqRYa5Ry?qZ57X(2#uaPu3sH}do-b`d2!QY;n8~fFG9Wm`J-wg+xkaSwo9!?>v{FTMQS1&x}Xa$)urEt-uk^{ zB8^IIPa8-J5Ek`ye~_hTyCbV3O`7&!ncME50uzWH2Q@&9wKbal<+3joE;>U9ZeU#A z)Hh_=H6bobsWMYA^LRXI2?5YRL-34&M(4wnw6qQIq@5JX zsBU{ANvTIL(-1*fz1?&?;)(hSk81KKaBqJ5GF zwO|b`3rU~dO8;c>)+w<%uG(-}%47i}19@`93?$e)l4ioKHBfk*>eO7OYkU7r+&)8B z=?+K1QCS9L-1+7|q>RKWsiw?!M%&gL2@lQ>hrk-M7r?RLKo-)GA+%u?L+563;Irtr z5dCnB8?fkPkYLxkecsQ|&`o)P*~Dl4S-ftFJvOudS{P?6OU>3=N)AU}b5sn@3W9<^ zNLNBzch`$3m-*^qqwfANm2gRyPl}mrp@@+!RolDW!?+fg zlP0WXT4>ktCSw9i>Q4Rl@fXzT@ONcW0$^heQkr<5%+-T?6)?NWBx3$bHnILqd!8)} z91vCJ7p1(+WXapEqPW6@5a+I7dACdp`_+Ppu=F<4ai#N6?^f7?gV1w_J)#J*@PLTN2V6N0!t3FVjMNu{R))M|?TT-a5zLS1(9qBTxc&9-iFTdM zN`$DR+ToQJRbZLd(t`ktavvG0c#Mv|e>?}YM@@azXjbqCtp$-q?Nz0e~8 z_+j04ZO6JlT{ptc>q^_s&>&nFPuoH?S{`7O!oRfIv!e;Su6kF8znw+|o~OsO9xo{W zZo~ZPxq6*6wiyrYm}@pW@h0osNL^iB^=1!EZqwhl_ayf`dOw?&8;+F` zdmgZ7ZAwK844;>~b7tS|aDUy&Azi}L*SCaKS?E60NPYJH_HdmAx*-MLTB^Knsn7_q+h)-;-x$8p`@yw043hVHQ)KCIyB6I^cy3R>u{j5vLMJs2tnq{A+E^Jg| zD1{3Y)@8qj0d$nUl99;G=41FyH}c7!vC6hRGk+ShGJBTAh9@Kycc!Do8QeDML&LysXKk!`V{E+C{F;PE>POjD`d`x1@ zXPY#7!*?jyfRNnUzyE%X%&#HB$+j@y>-CS1qu;LHvxp(Mn=r>O7Nz`L2`goACyKb( z(rfkHT;6g(Wt=rVrwDO(rjLGhrI#Xc<}uIkA_{=TTeVX;Dqi2}#Slf(XwYm`XIyCT zbSaH1xS}9Gfmx-5%cgA)XnMoR-Cr^t@SToMQvs-2;#F5kvT=U$;hCfwR@w} z&#@S}cl)C*n&Y=V$=v=(DM+X=$olO&j3)l?fo*95v+L$6Svh&oKNPkyf?7&_sG$1!2PFm^-32@Lp>=fTZE9=wX8YB=7EV;KL{vJxONe*{Wu+ z9m}!uq;FQMM&2f!>0*fJAXOfH+>z@)nJ7X0&JeS1GkE25QWKn+P74g>9JY@}K@NA_ zj@?K`A1C+1V=b$N$PrY1NmI##(d_fXeV`T=^BjW$q8_Oh&?xkw=07p+g=!v6K4289 z=62!KYj(5xx@S+pA*%LXucSs{qze)5#99J>MMO!BorKduyl>Kh!L)IVxD^EBgXds=S}w|CQ^bwS)Z1Sl07=mi>eT-g&8=S490!4|TD@m5$-Sl9#5#SMm;D zXdN)8UGf;y6*zlt;=RD>b6A&1c9;oal7L9ozw(9&=d_-+e+j~~-!6zgKfu!Kvt7OC zx?OR8-@2QN{j`ko+W&yG8V~cabCp^9m7K)=4DzJ;nZNm5!Q64cRO74$Pf}w-=>p0rlQt;1|io0 zoTqy=jXm46jP2iOx`RWr#63+bmqH|Nd+-E|^aEVK@xHvKkNtt3(YhB&C+agaF$n~c zP1&X$pv?nWq!skry(BM|zqRJQ)mohTygt6MH9WT{NqJqX^!=@=5ui-=rkT562nt&@ zO-0fwQh!e0Uqe$1n*}>I==@Y(wW{5?C+;IJasV`4o5g~ei*v8N!^4Qwos|_mt6Bm8 zI-G0q;I`Il4F@Hg8#fG7g3t7DF)CI215$4{R^lxSoB#I$ob?PnoxGW9Tr)cdCs_#vxQ3E_eQ?!Z9G1_82MiZ#HqZ98-iO#K{(jvOpn;Ar(*XvOUE3!_6)cw&_@T|n7(K9}LqA;1!Uz6zhK zQz%gb8IKK3f3PNx+F!X<*k)X1U)65VD+oz5Bg|l?^`8kW6K;g;t9<blLqsO*&G;jm*I zT{rPqCG`B9$PPbm^>XdlnC8FNA2WmpJS@+_vTJ%u-FrFw@#abvM0PT7a?OlX-+q3Ti^ zwr>e4`NIeboT4#}!6+d}1q+2mz4t7q<%F4lhxtic%86E~Qpmx-aMv#jSGTv9JD1+c+*!9xVIEuyb#JdjDqQ84 z-ulZ6I1<(ge^DH{A>;`(R))?NGEuMJxl1RnGoyhRxsc%Ec_NYCS9DIBQRIWmh{RV|3pHax>&=D`cPU`rKME%;MFu>w&_YC7=#)AF!~wKf1o}0bFU6kK^&XD#?)0VRWW6q0^qaPkuY+>3qB*}v8neHzm12(K&jy9kBBrdMs z?qNPe^$G$G6jVjNI&nYrfdt;aiwO~$AAeKt_m=;}NAaDDe+8wEl~$ZK?O$sxP|+O! z1>rf&I?tXb3BNkFx(!fcd$_yy?F#idn`bE;7Z+)|PRjgrm^WQ=eSJnQ*Y25%m8#kY zlx%L$-Vy@lIgD%5mt#`zIy8iz438RkqxkMkXh3(%eNm1r1 zIH$-D4+ek8vIMR z+Hq)!*v5*``>_#nRINUKoNpy{bzSEqx`)aaMVgqXXFyNdlO~o9ke%SfhOzzJ-2L

dtyn3Cgkt%6`>W( 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

5%K_DQkU9?G|OhmF^Atk)t5q;F4@8JpE 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 z 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

h~>YcycES4rK%?jW6Du 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

ZQC?mltRrn#veukQOq(fRBoFDnvzb-qy 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 b@Lp5p|CK+d+LH^fBqBxblG5EET~cSR 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