#ifndef XNA_ENUMS_HPP #define XNA_ENUMS_HPP namespace xna { enum class AudioReverb { Off, Default, Generic, Forest, PaddedCell, Room, Bathroom, LivingRoom, StoneRoom, Auditorium, ConcertHall, Cave, Arena, Hangar, CarpetedHallway, Hallway, StoneCorridor, Alley, City, Mountains, Quarry, Plain, ParkingLot, SewerPipe, Underwater, SmallRoom, MediumRoom, LargeRoom, MediumHall, LargeHall, Plate, Max }; enum class Blend { Zero, One, SourceColor, InverseSourceColor, SourceAlpha, InverseSourceAlpha, DestinationAlpha, InverseDestinationAlpha, DestinationColor, InverseDestinationColor, SourceAlphaSaturation, BlendFactor, InverseBlendFactor, Source1Color, InverseSource1Color, Source1Alpha, InverseSource1Alpha }; enum class BlendFunction { Add = 0, Subtract = 1, ReverseSubtract = 2, Min = 3, Max = 4, }; using BlendOperation = BlendFunction; enum class BufferUsage { Default, Immutable, Dynamic, Static, }; enum class Buttons { A = 4096, // 0x00001000 B = 8192, // 0x00002000 X = 16384, // 0x00004000 Y = 32768, // 0x00008000 Back = 32, // 0x00000020 Start = 16, // 0x00000010 DPadUp = 1, DPadDown = 2, DPadLeft = 4, DPadRight = 8, LeftShoulder = 256, // 0x00000100 RightShoulder = 512, // 0x00000200 LeftStick = 64, // 0x00000040 RightStick = 128, // 0x00000080 BigButton = 2048, // 0x00000800 LeftThumbstickLeft = 2097152, // 0x00200000 LeftThumbstickRight = 1073741824, // 0x40000000 LeftThumbstickDown = 536870912, // 0x20000000 LeftThumbstickUp = 268435456, // 0x10000000 RightThumbstickLeft = 134217728, // 0x08000000 RightThumbstickRight = 67108864, // 0x04000000 RightThumbstickDown = 33554432, // 0x02000000 RightThumbstickUp = 16777216, // 0x01000000 LeftTrigger = 8388608, // 0x00800000 RightTrigger = 4194304, // 0x00400000 }; enum class ButtonState { Released, Pressed, }; enum class ColorWriteChannels { Red, Green, Blue, Alpha, All }; enum class ComparisonFunction { Never, Less, Equal, LessEquals, Greater, NotEqual, GreaterEqual, Always }; enum class CullMode { None, CullClockwiseFace, CullCounterClockwiseFace, }; enum class DepthFormat { None, Depth16, Depth24, Depth24Stencil8 }; enum class DepthWriteMask { Zero, All }; enum class DisplayOrientation { Default = 0, LandscapeLeft = 1, LandscapeRight = 2, Portrait = 4, }; enum class DisplayModeScanlineOrder { Unspecified = 0, Progressive = 1, UpperFieldFirst = 2, LowerFieldFirst = 3 }; enum class DisplayModeScaling { Unspecified = 0, Centered = 1, Stretched = 2 }; enum class FillMode { WireFrame, Solid, }; enum class GameComponentType { Updatable, Drawable, }; enum class GamePadCapabilitiesType { Unknown = 0, Gamepad, Wheel, ArdaceStick, FlightStick, DancePAd, Guitar, GuitarAlternate, DrumKit, GuitarBass = 11, ArcadePad = 19, }; enum class GamePadDeadZone { IndependentAxes, Circular, None, }; enum class GraphicsProfile { Reach, HiDef }; enum class Keys { None = 0, Back = 8, Tab = 9, Enter = 13, // 0x0000000D Pause = 19, // 0x00000013 CapsLock = 20, // 0x00000014 Kana = 21, // 0x00000015 Kanji = 25, // 0x00000019 Escape = 27, // 0x0000001B ImeConvert = 28, // 0x0000001C ImeNoConvert = 29, // 0x0000001D Space = 32, // 0x00000020 PageUp = 33, // 0x00000021 PageDown = 34, // 0x00000022 End = 35, // 0x00000023 Home = 36, // 0x00000024 Left = 37, // 0x00000025 Up = 38, // 0x00000026 Right = 39, // 0x00000027 Down = 40, // 0x00000028 Select = 41, // 0x00000029 Print = 42, // 0x0000002A Execute = 43, // 0x0000002B PrintScreen = 44, // 0x0000002C Insert = 45, // 0x0000002D Delete = 46, // 0x0000002E Help = 47, // 0x0000002F D0 = 48, // 0x00000030 D1 = 49, // 0x00000031 D2 = 50, // 0x00000032 D3 = 51, // 0x00000033 D4 = 52, // 0x00000034 D5 = 53, // 0x00000035 D6 = 54, // 0x00000036 D7 = 55, // 0x00000037 D8 = 56, // 0x00000038 D9 = 57, // 0x00000039 A = 65, // 0x00000041 B = 66, // 0x00000042 C = 67, // 0x00000043 D = 68, // 0x00000044 E = 69, // 0x00000045 F = 70, // 0x00000046 G = 71, // 0x00000047 H = 72, // 0x00000048 I = 73, // 0x00000049 J = 74, // 0x0000004A K = 75, // 0x0000004B L = 76, // 0x0000004C M = 77, // 0x0000004D N = 78, // 0x0000004E O = 79, // 0x0000004F P = 80, // 0x00000050 Q = 81, // 0x00000051 R = 82, // 0x00000052 S = 83, // 0x00000053 T = 84, // 0x00000054 U = 85, // 0x00000055 V = 86, // 0x00000056 W = 87, // 0x00000057 X = 88, // 0x00000058 Y = 89, // 0x00000059 Z = 90, // 0x0000005A LeftWindows = 91, // 0x0000005B RightWindows = 92, // 0x0000005C Apps = 93, // 0x0000005D Sleep = 95, // 0x0000005F NumPad0 = 96, // 0x00000060 NumPad1 = 97, // 0x00000061 NumPad2 = 98, // 0x00000062 NumPad3 = 99, // 0x00000063 NumPad4 = 100, // 0x00000064 NumPad5 = 101, // 0x00000065 NumPad6 = 102, // 0x00000066 NumPad7 = 103, // 0x00000067 NumPad8 = 104, // 0x00000068 NumPad9 = 105, // 0x00000069 Multiply = 106, // 0x0000006A Add = 107, // 0x0000006B Separator = 108, // 0x0000006C Subtract = 109, // 0x0000006D Decimal = 110, // 0x0000006E Divide = 111, // 0x0000006F F1 = 112, // 0x00000070 F2 = 113, // 0x00000071 F3 = 114, // 0x00000072 F4 = 115, // 0x00000073 F5 = 116, // 0x00000074 F6 = 117, // 0x00000075 F7 = 118, // 0x00000076 F8 = 119, // 0x00000077 F9 = 120, // 0x00000078 F10 = 121, // 0x00000079 F11 = 122, // 0x0000007A F12 = 123, // 0x0000007B F13 = 124, // 0x0000007C F14 = 125, // 0x0000007D F15 = 126, // 0x0000007E F16 = 127, // 0x0000007F F17 = 128, // 0x00000080 F18 = 129, // 0x00000081 F19 = 130, // 0x00000082 F20 = 131, // 0x00000083 F21 = 132, // 0x00000084 F22 = 133, // 0x00000085 F23 = 134, // 0x00000086 F24 = 135, // 0x00000087 NumLock = 144, // 0x00000090 Scroll = 145, // 0x00000091 LeftShift = 160, // 0x000000A0 RightShift = 161, // 0x000000A1 LeftControl = 162, // 0x000000A2 RightControl = 163, // 0x000000A3 LeftAlt = 164, // 0x000000A4 RightAlt = 165, // 0x000000A5 BrowserBack = 166, // 0x000000A6 BrowserForward = 167, // 0x000000A7 BrowserRefresh = 168, // 0x000000A8 BrowserStop = 169, // 0x000000A9 BrowserSearch = 170, // 0x000000AA BrowserFavorites = 171, // 0x000000AB BrowserHome = 172, // 0x000000AC VolumeMute = 173, // 0x000000AD VolumeDown = 174, // 0x000000AE VolumeUp = 175, // 0x000000AF MediaNextTrack = 176, // 0x000000B0 MediaPreviousTrack = 177, // 0x000000B1 MediaStop = 178, // 0x000000B2 MediaPlayPause = 179, // 0x000000B3 LaunchMail = 180, // 0x000000B4 SelectMedia = 181, // 0x000000B5 LaunchApplication1 = 182, // 0x000000B6 LaunchApplication2 = 183, // 0x000000B7 OemSemicolon = 186, // 0x000000BA OemPlus = 187, // 0x000000BB OemComma = 188, // 0x000000BC OemMinus = 189, // 0x000000BD OemPeriod = 190, // 0x000000BE OemQuestion = 191, // 0x000000BF OemTilde = 192, // 0x000000C0 ChatPadGreen = 202, // 0x000000CA ChatPadOrange = 203, // 0x000000CB OemOpenBrackets = 219, // 0x000000DB OemPipe = 220, // 0x000000DC OemCloseBrackets = 221, // 0x000000DD OemQuotes = 222, // 0x000000DE Oem8 = 223, // 0x000000DF OemBackslash = 226, // 0x000000E2 ProcessKey = 229, // 0x000000E5 OemCopy = 242, // 0x000000F2 OemAuto = 243, // 0x000000F3 OemEnlW = 244, // 0x000000F4 Attn = 246, // 0x000000F6 Crsel = 247, // 0x000000F7 Exsel = 248, // 0x000000F8 EraseEof = 249, // 0x000000F9 Play = 250, // 0x000000FA Zoom = 251, // 0x000000FB Pa1 = 253, // 0x000000FD OemClear = 254, // 0x000000FE }; enum class KeyState { Up, Down, }; enum class PlayerIndex { One, Two, Three, Four, }; enum class PresentInterval { Default, One, Two, Immediate }; enum RenderTargetUsage { DiscardContents, PreserveContents, PlatformContents }; enum class SeekOrigin { Begin, Current, End, }; enum class SpriteEffects { None = 0, FlipHorizontally = 1, FlipVertically = 2, Both = FlipHorizontally | FlipVertically }; enum class SpriteSortMode { Deferred, Immediate, Texture, BackToFront, FrontToBack, }; enum class StencilOperation { Keep, Zero, Replace, IncrementSaturation, DecrementSaturation, Invert, Increment, Decrement, }; enum class SurfaceFormat { Color = 0, Bgr565 = 1, Bgra5551 = 2, Bgra4444 = 3, Dxt1 = 4, Dxt3 = 5, Dxt5 = 6, NormalizedByte2 = 7, NormalizedByte4 = 8, Rgba1010102 = 9, Rg32 = 10, Rgba64 = 11, Alpha8 = 12, Single = 13, Vector2 = 14, Vector4 = 15, HalfSingle = 16, HalfVector2 = 17, HalfVector4 = 18, HdrBlendable = 19, Unknown, }; enum class SwapEffect { Discard, Sequential, FlipSequential, FlipDiscard }; enum class TextureAddressMode { Wrap, Mirror, Clamp, Border, MirrorOnce }; enum class TextureFilter { Linear, Point, Anisotropic, LinearMipPoint, PointMipLinear, MinLinearMagPointMipLinear, MinLinearMagPointMipPoint, MinPointMagLinearMipLinear, MinPointMagLinearMipPoint, }; constexpr int SURFACE_FORMAT_COUNT = 19; } #endif