#ifndef XNA_DEFAULT_HPP #define XNA_DEFAULT_HPP #include #include #include #include #include #include #include #include #include #include #include #include #include "enumerations.hpp" #include "exception.hpp" #include "helpers.hpp" namespace xna { // //C# nameof // #define nameof(name) std::string(#name) // // C# standard types // using Sbyte = int8_t; using Byte = uint8_t; using Short = int16_t; using Ushort = uint16_t; using Int = int32_t; using Uint = uint32_t; using Long = int64_t; using Ulong = uint64_t; using Char = char16_t; // // C# Min and Max Value // constexpr Sbyte SbyteMaxValue = (std::numeric_limits::max)(); constexpr Sbyte SbyteMinValue = (std::numeric_limits::min)(); constexpr Byte ByteMaxValue = (std::numeric_limits::max)(); constexpr Byte ByteMinValue = (std::numeric_limits::min)(); constexpr Short ShortMaxValue = (std::numeric_limits::max)(); constexpr Short ShortMinValue = (std::numeric_limits::min)(); constexpr Ushort UshortMaxValue = (std::numeric_limits::max)(); constexpr Ushort UshortMinValue = (std::numeric_limits::min)(); constexpr Int IntMaxValue = (std::numeric_limits::max)(); constexpr Int IntMinValue = (std::numeric_limits::min)(); constexpr Uint UintMaxValue = (std::numeric_limits::max)(); constexpr Uint UintMinValue = (std::numeric_limits::min)(); constexpr Long LongMaxValue = (std::numeric_limits::max)(); constexpr Long LongMinValue = (std::numeric_limits::min)(); constexpr Ulong UlongMaxValue = (std::numeric_limits::max)(); constexpr Ulong UlongMinValue = (std::numeric_limits::min)(); constexpr Char CharMaxValue = (std::numeric_limits::max)(); constexpr Char CharMinValue = (std::numeric_limits::min)(); constexpr float FloatMaxValue = (std::numeric_limits::max)(); constexpr float FloatMinValue = (std::numeric_limits::min)(); constexpr double DoubleMaxValue = (std::numeric_limits::max)(); constexpr double DoubleMinValue = (std::numeric_limits::min)(); // // C# Object // //Same as std::any using Object = std::any; // // About strings: https://stackoverflow.com/questions/402283/stdwstring-vs-stdstring // //Same as std::string using String = std::string; //Same as std::wstring using WString = std::wstring; //Same as std::shared_ptr template using sptr = std::shared_ptr; //Same as std::weak_ptr template using wptr = std::weak_ptr; //Same as std::unique_ptr template using uptr = std::unique_ptr; //Same as std::make_shared template inline std::shared_ptr<_Ty> snew(_Types&&... _Args) { return std::make_shared<_Ty>(std::forward<_Types>(_Args)...); } //Same as std::make_unique template inline std::unique_ptr<_Ty> unew(_Types&&... _Args) { return std::make_unique<_Ty>(std::forward<_Types>(_Args)...); } // // Hash value // using HashValue = size_t; // // Forward // //Audio class SoundEffect; struct SoundEffectInstance; class AudioEngine; struct WaveFormat; //CShap struct TimeSpan; class Stream; class FileStream; class MemoryStream; class Type; //Content class ContentManager; class ContentReader; class ContentTypeReader; class ContentTypeReaderManager; //Common struct BoundingBox; struct BoundingFrustum; struct BoundingSphere; struct Color; struct Curve; struct CurveKey; struct CurveKeyCollection; struct Matrix; struct Plane; struct Point; struct Quaternion; struct Ray; struct Rectangle; struct Vector2; struct Vector3; struct Vector4; //Game class Game; class GameComponent; class GameClock; class GameTime; class GameWindow; struct GraphicsDeviceInformation; class GraphicsDeviceManager; class IGameTime; class IGameComponent; class GameServiceContainer; class GameComponentCollection; //Graphics class BlendState; class ConstantBuffer; class DataBuffer; class DepthStencilState; class DisplayMode; class DisplayModeCollection; class Effect; class GraphicsAdapter; class GraphicsDevice; struct PresentationParameters; class RenderTarget2D; class SwapChain; class Texture; class Texture2D; class Texture3D; class TextureCube; class RasterizerState; class SamplerState; class SamplerStateCollection; class Shader; class SpriteBatch; class SpriteFont; struct VertexPositionColor; class VertexShader; struct Viewport; //Input struct GamePadTriggers; struct GamePadThumbSticks; struct GamePadDPad; struct GamePadCapabilities; struct GamePadButtons; struct GamePadState; struct KeyboardState; struct MouseState; using P_BlendState = sptr; using P_DepthStencilState = sptr; using P_GraphicsAdapter = sptr; using P_GraphicsDevice = sptr; using P_FileStream = sptr; using P_MemoryStream = sptr; using P_PresentationParameters = sptr; using P_RenderTarget2D = sptr; using P_SamplerStateCollection = sptr; using P_Stream = sptr; using P_RasterizerState = sptr; using P_Type = sptr; using P_Texture = sptr; using P_Texture2D = sptr; } #endif