initial commit
						commit
						a72fa440a4
					
				|  | @ -0,0 +1,2 @@ | |||
| bin/ | ||||
| obj/ | ||||
|  | @ -0,0 +1,425 @@ | |||
| /* Refresh - C# bindings for the Refresh graphics Library | ||||
|  * | ||||
|  * Copyright (c) 2020 Evan Hemsley | ||||
|  * | ||||
|  * 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. | ||||
|  * | ||||
|  * Evan "cosmonaut" Hemsley <evan@moonside.games> | ||||
|  * | ||||
|  */ | ||||
| 
 | ||||
| using System; | ||||
| using System.IO; | ||||
| using System.Runtime.InteropServices; | ||||
| 
 | ||||
| namespace RefreshSharp | ||||
| { | ||||
|     public static class Refresh | ||||
|     { | ||||
|         private const string nativeLibName = "Refresh"; | ||||
| 
 | ||||
|         /* Enums */ | ||||
| 
 | ||||
|         public enum PresentMode | ||||
|         { | ||||
|             Immediate, | ||||
|             Mailbox, | ||||
|             FIFO, | ||||
|             FIFORelaxed | ||||
|         } | ||||
| 
 | ||||
|         public enum PrimitiveType | ||||
|         { | ||||
|             PointList, | ||||
|             LineList, | ||||
|             LineStrip, | ||||
|             TriangleList, | ||||
|             TriangleStrip | ||||
|         } | ||||
| 
 | ||||
|         public enum LoadOp | ||||
|         { | ||||
|             Load, | ||||
|             Clear, | ||||
|             DontCare | ||||
|         } | ||||
| 
 | ||||
|         public enum StoreOp | ||||
|         { | ||||
|             Store, | ||||
|             DontCare | ||||
|         } | ||||
| 
 | ||||
|         public enum ClearOptions | ||||
|         { | ||||
|             Color = 1, | ||||
|             Depth = 2, | ||||
|             Stencil = 4 | ||||
|         } | ||||
| 
 | ||||
|         public enum IndexElementSize | ||||
|         { | ||||
|             Sixteen, | ||||
|             ThirtyTwo | ||||
|         } | ||||
| 
 | ||||
|         public enum ColorFormat | ||||
|         { | ||||
|             R8G8B8A8, | ||||
|             R5G6B5, | ||||
|             A1R5G5B5, | ||||
|             B4G4R4A4, | ||||
|             BC1, | ||||
|             BC2, | ||||
|             BC3, | ||||
|             R8G8_SNORM, | ||||
|             R8G8B8A8_SNORM, | ||||
|             A2R10G10B10, | ||||
|             R16G16, | ||||
|             R16G16B16A16, | ||||
|             R8, | ||||
|             R32_SFLOAT, | ||||
|             R32G32_SFLOAT, | ||||
|             R32G32B32A32_SFLOAT, | ||||
|             R16_SFLOAT, | ||||
|             R16G16_SFLOAT, | ||||
|             R16G16B16A16_SFLOAT | ||||
|         } | ||||
| 
 | ||||
|         public enum DepthFormat | ||||
|         { | ||||
|             Depth16, | ||||
|             Depth32, | ||||
|             Depth16Stencil8, | ||||
|             Depth32Stencil8 | ||||
|         } | ||||
| 
 | ||||
|         public enum TextureUsageFlagBits | ||||
|         { | ||||
|             SamplerBit = 1, | ||||
|             ColorTargetBit = 2 | ||||
|         } | ||||
| 
 | ||||
|         public enum SampleCount | ||||
|         { | ||||
|             One, | ||||
|             Two, | ||||
|             Four, | ||||
|             Eight, | ||||
|             Sixteen, | ||||
|             ThirtyTwo, | ||||
|             SixtyFour | ||||
|         } | ||||
| 
 | ||||
|         public enum CubeMapFace | ||||
|         { | ||||
|             PositiveX, | ||||
|             NegativeX, | ||||
|             PositiveY, | ||||
|             NegativeY, | ||||
|             PositiveZ, | ||||
|             NegativeZ | ||||
|         } | ||||
| 
 | ||||
|         public enum VertexElementFormat | ||||
|         { | ||||
|             Single, | ||||
|             Vector2, | ||||
|             Vector3, | ||||
|             Vector4, | ||||
|             Color, | ||||
|             Byte4, | ||||
|             Short2, | ||||
|             Short4, | ||||
|             NormalizedShort2, | ||||
|             NormalizedShort4, | ||||
|             HalfVector2, | ||||
|             HalfVector4 | ||||
|         } | ||||
| 
 | ||||
|         public enum VertexInputRate | ||||
|         { | ||||
|             Vertex, | ||||
|             Instance | ||||
|         } | ||||
| 
 | ||||
|         public enum FillMode | ||||
|         { | ||||
|             Fill, | ||||
|             Line, | ||||
|             Point | ||||
|         } | ||||
| 
 | ||||
|         public enum CullMode | ||||
|         { | ||||
|             None, | ||||
|             Front, | ||||
|             Back, | ||||
|             FrontAndBack | ||||
|         } | ||||
| 
 | ||||
|         public enum FrontFace | ||||
|         { | ||||
|             CounterClockwise, | ||||
|             Clockwise | ||||
|         } | ||||
| 
 | ||||
|         public enum CompareOp | ||||
|         { | ||||
|             Never, | ||||
|             Less, | ||||
|             Equal, | ||||
|             LessOrEqual, | ||||
|             Greater, | ||||
|             NotEqual, | ||||
|             GreaterOrEqual, | ||||
|             Always | ||||
|         } | ||||
| 
 | ||||
|         public enum StencilOp | ||||
|         { | ||||
|             Keep, | ||||
|             Zero, | ||||
|             Replace, | ||||
|             IncrementAndClamp, | ||||
|             DecrementAndClamp, | ||||
|             Invert, | ||||
|             IncrementAndWrap, | ||||
|             DecrementAndWrap | ||||
|         } | ||||
| 
 | ||||
|         public enum BlendOp | ||||
|         { | ||||
|             Add, | ||||
|             Subtract, | ||||
|             ReverseSubtract, | ||||
|             Min, | ||||
|             Max | ||||
|         } | ||||
| 
 | ||||
|         public enum LogicOp | ||||
|         { | ||||
|             Clear, | ||||
|             And, | ||||
|             AndReverse, | ||||
|             Copy, | ||||
|             AndInverted, | ||||
|             NoOp, | ||||
|             Xor, | ||||
|             Or, | ||||
|             Nor, | ||||
|             Equivalent, | ||||
|             Invert, | ||||
|             OrReverse, | ||||
|             CopyInverted, | ||||
|             OrInverted, | ||||
|             Nand, | ||||
|             Set | ||||
|         } | ||||
| 
 | ||||
|         public enum BlendFactor | ||||
|         { | ||||
|             Zero, | ||||
|             One, | ||||
|             SourceColor, | ||||
|             OneMinusSourceColor, | ||||
|             DestinationColor, | ||||
|             OneMinusDestinationColor, | ||||
|             SourceAlpha, | ||||
|             OneMinusSourceAlpha, | ||||
|             DestinationAlpha, | ||||
|             OneMinusDestinationAlpha, | ||||
|             ConstantColor, | ||||
|             OneMinusConstantColor, | ||||
|             ConstantAlpha, | ||||
|             OneMinusConstantAlpha, | ||||
|             SourceAlphaSaturate, | ||||
|             SourceOneColor, | ||||
|             OneMinusSourceOneColor, | ||||
|             SourceOneAlpha, | ||||
|             OneMinusSourceOneAlpha | ||||
|         } | ||||
| 
 | ||||
|         public enum ColorComponentFlagBits | ||||
|         { | ||||
|             R = 1, | ||||
|             G = 2, | ||||
|             B = 4, | ||||
|             A = 8 | ||||
|         } | ||||
| 
 | ||||
|         public enum ShaderStageType | ||||
|         { | ||||
|             Vertex, | ||||
|             Fragment | ||||
|         } | ||||
| 
 | ||||
|         public enum Filter | ||||
|         { | ||||
|             Nearest, | ||||
|             Linear, | ||||
|             Cubic | ||||
|         } | ||||
| 
 | ||||
|         public enum SamplerMipmapMode | ||||
|         { | ||||
|             Nearest, | ||||
|             Linear | ||||
|         } | ||||
| 
 | ||||
|         public enum SamplerAddressMode | ||||
|         { | ||||
|             Repeat, | ||||
|             MirroredRepeat, | ||||
|             ClampToEdge, | ||||
|             ClampToBorder | ||||
|         } | ||||
| 
 | ||||
|         public enum BorderColor | ||||
|         { | ||||
|             FloatTransparentBlack, | ||||
|             IntTransparentBlack, | ||||
|             FloatOpaqueBlack, | ||||
|             IntOpaqueBlack, | ||||
|             FloatOpaqueWhite, | ||||
|             IntOpaqueWhite | ||||
|         } | ||||
| 
 | ||||
|         /* Native Structures */ | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct Color | ||||
|         { | ||||
|             public byte r; | ||||
|             public byte g; | ||||
|             public byte b; | ||||
|             public byte a; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct DepthStencilValue | ||||
|         { | ||||
|             public float depth; | ||||
|             public uint stencil; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct Rect | ||||
|         { | ||||
|             public int x; | ||||
|             public int y; | ||||
|             public int w; | ||||
|             public int h; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct Vec4 | ||||
|         { | ||||
|             public float x; | ||||
|             public float y; | ||||
|             public float z; | ||||
|             public float w; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct Viewport | ||||
|         { | ||||
|             public float x; | ||||
|             public float y; | ||||
|             public float w; | ||||
|             public float h; | ||||
|             public float minDepth; | ||||
|             public float maxDepth; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct TextureSlice | ||||
|         { | ||||
|             public IntPtr texture; | ||||
|             public Rect rectangle; | ||||
|             public uint depth; | ||||
|             public uint layer; | ||||
|             public uint level; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct PresentationParameters | ||||
|         { | ||||
|             public IntPtr deviceWindowHandle; | ||||
|             public PresentMode presentMode; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct SamplerStateCreateInfo | ||||
|         { | ||||
|             public Filter minFilter; | ||||
|             public Filter magFilter; | ||||
|             public SamplerMipmapMode mipmapMode; | ||||
|             public SamplerAddressMode addressModeU; | ||||
|             public SamplerAddressMode addressModeV; | ||||
|             public SamplerAddressMode addressModeW; | ||||
|             public float mipLodBias; | ||||
|             public byte anisotropyEnable; | ||||
|             public float maxAnisotropy; | ||||
|             public byte compareEnable; | ||||
|             public CompareOp compareOp; | ||||
|             public float minLod; | ||||
|             public float maxLod; | ||||
|             public BorderColor borderColor; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct VertexBinding | ||||
|         { | ||||
|             public uint binding; | ||||
|             public uint stride; | ||||
|             public VertexInputRate inputRate; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct VertexAttribute | ||||
|         { | ||||
|             public uint location; | ||||
|             public uint binding; | ||||
|             public VertexElementFormat format; | ||||
|             public uint offset; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public unsafe struct VertexInputState | ||||
|         { | ||||
|             public VertexBinding* vertexBindings; | ||||
|             public uint vertexBindingCount; | ||||
|             public VertexAttribute* vertexAttributes; | ||||
|             public uint vertexAttributeCount; | ||||
|         } | ||||
| 
 | ||||
|         [StructLayout(LayoutKind.Sequential)] | ||||
|         public struct StencilOpState | ||||
|         { | ||||
|             public StencilOp failOp; | ||||
|             public StencilOp passOp; | ||||
|             public StencilOp depthFailOp; | ||||
|             public CompareOp compareOp; | ||||
|             public uint compareMask; | ||||
|             public uint writeMask; | ||||
|             public uint reference; | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | @ -0,0 +1,10 @@ | |||
| <Project Sdk="Microsoft.NET.Sdk"> | ||||
| 
 | ||||
|   <PropertyGroup> | ||||
|     <TargetFramework>net461</TargetFramework> | ||||
|     <RootNamespace>RefreshCS</RootNamespace> | ||||
|     <Platform>x64</Platform> | ||||
|     <AllowUnsafeBlocks>true</AllowUnsafeBlocks> | ||||
|   </PropertyGroup> | ||||
| 
 | ||||
| </Project> | ||||
|  | @ -0,0 +1,22 @@ | |||
|  | ||||
| Microsoft Visual Studio Solution File, Format Version 12.00 | ||||
| # Visual Studio 15 | ||||
| VisualStudioVersion = 15.0.26124.0 | ||||
| MinimumVisualStudioVersion = 15.0.26124.0 | ||||
| Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RefreshCS", "RefreshCS.csproj", "{D1F73A01-A7D5-4958-99DF-6F5157C0A4FB}" | ||||
| EndProject | ||||
| Global | ||||
| 	GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||||
| 		Debug|x64 = Debug|x64 | ||||
| 		Release|x64 = Release|x64 | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(SolutionProperties) = preSolution | ||||
| 		HideSolutionNode = FALSE | ||||
| 	EndGlobalSection | ||||
| 	GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||||
| 		{D1F73A01-A7D5-4958-99DF-6F5157C0A4FB}.Debug|x64.ActiveCfg = Debug|x64 | ||||
| 		{D1F73A01-A7D5-4958-99DF-6F5157C0A4FB}.Debug|x64.Build.0 = Debug|x64 | ||||
| 		{D1F73A01-A7D5-4958-99DF-6F5157C0A4FB}.Release|x64.ActiveCfg = Release|x64 | ||||
| 		{D1F73A01-A7D5-4958-99DF-6F5157C0A4FB}.Release|x64.Build.0 = Release|x64 | ||||
| 	EndGlobalSection | ||||
| EndGlobal | ||||
		Loading…
	
		Reference in New Issue