/// <summary> /// Initializes a new instance of the <see cref="InputImp"/> class. /// </summary> /// <param name="renderCanvas">The render canvas.</param> /// <exception cref="System.ArgumentNullException">renderCanvas</exception> /// <exception cref="System.ArgumentException">renderCanvas must be of type RenderCanvasImp;renderCanvas</exception> public InputImp(IRenderCanvasImp renderCanvas) { if (renderCanvas == null) throw new ArgumentNullException("renderCanvas"); if (!(renderCanvas is RenderCanvasImp)) throw new ArgumentException("renderCanvas must be of type RenderCanvasImp", "renderCanvas"); _gameWindow = ((RenderCanvasImp) renderCanvas)._gameWindow; if (_gameWindow != null) { _gameWindow.Keyboard.KeyDown += OnGameWinKeyDown; _gameWindow.Keyboard.KeyUp += OnGameWinKeyUp; _gameWindow.Mouse.ButtonDown += OnGameWinMouseDown; _gameWindow.Mouse.ButtonUp += OnGameWinMouseUp; _gameWindow.Mouse.Move += OnGameWinMouseMove; } else { // Todo } KeyMapper = new Keymapper(); }
/// <summary> /// Initializes a new instance of the <see cref="InputImp"/> class. /// </summary> /// <param name="renderCanvas">The render canvas.</param> /// <exception cref="System.ArgumentNullException">renderCanvas</exception> /// <exception cref="System.ArgumentException">renderCanvas must be of type RenderCanvasImp;renderCanvas</exception> public InputImp(IRenderCanvasImp renderCanvas) { if (renderCanvas == null) { throw new ArgumentNullException("renderCanvas"); } if (!(renderCanvas is RenderCanvasImp)) { throw new ArgumentException("renderCanvas must be of type RenderCanvasImp", "renderCanvas"); } _gameWindow = ((RenderCanvasImp)renderCanvas)._gameWindow; if (_gameWindow != null) { _gameWindow.Keyboard.KeyDown += OnGameWinKeyDown; _gameWindow.Keyboard.KeyUp += OnGameWinKeyUp; _gameWindow.Mouse.ButtonDown += OnGameWinMouseDown; _gameWindow.Mouse.ButtonUp += OnGameWinMouseUp; _gameWindow.Mouse.Move += OnGameWinMouseMove; } else { // Todo } KeyMapper = new Keymapper(); }
/// <summary> /// Constructor. Use this in platform specific application projects. /// </summary> /// <param name="renderCanvas">The render canvas to provide mouse and keyboard input for.</param> public RenderCanvasInputDriverImp(IRenderCanvasImp renderCanvas) { if (renderCanvas == null) { throw new ArgumentNullException(nameof(renderCanvas)); } if (!(renderCanvas is RenderCanvasImp)) { throw new ArgumentException("renderCanvas must be of type RenderCanvasImp", "renderCanvas"); } _gameWindow = ((RenderCanvasImp)renderCanvas)._gameWindow; if (_gameWindow == null) { throw new ArgumentNullException(nameof(_gameWindow)); } _keyboard = new KeyboardDeviceImp(_gameWindow); _mouse = new MouseDeviceImp(_gameWindow); _gamePad0 = new GamePadDeviceImp(_gameWindow, 0); _gamePad1 = new GamePadDeviceImp(_gameWindow, 1); _gamePad2 = new GamePadDeviceImp(_gameWindow, 2); _gamePad3 = new GamePadDeviceImp(_gameWindow, 3); }
/// <summary> /// Initializes a new instance of the <see cref="RenderContextImp"/> class. /// </summary> /// <param name="renderCanvas">The render canvas interface.</param> public RenderContextImp(IRenderCanvasImp renderCanvas) { _currentTextureUnit = 0; _shaderParam2TexUnit = new Dictionary<int, int>(); // Due to the right-handed nature of OpenGL and the left-handed design of FUSEE // the meaning of what's Front and Back of a face simply flips. // TODO - implement this in render states!!! GL.CullFace(CullFaceMode.Back); _sharpFont = new Library(); }
/// <summary> /// Initializes a new instance of the <see cref="WindowsSpaceMouseDriverImp"/> class. /// </summary> /// <param name="renderCanvas">The render canvas. Internally this must be a Windows canvas with a valid window handle.</param> /// <exception cref="System.ArgumentNullException"> /// </exception> /// <exception cref="System.ArgumentException">RenderCanvas must be of type <see cref="RenderCanvasImp"/></exception> /// <remarks> /// The current implementation does not fire the <see cref="NewDeviceConnected"/> and <see cref="DeviceDisconnected"/> /// events. This driver will always report one connected SpaceMouse no matter how many physical devices are connected /// to the machine. If no physical SpaceMouse is present all of its axes and buttons will return 0. /// </remarks> public WindowsSpaceMouseDriverImp(IRenderCanvasImp renderCanvas) { if (renderCanvas == null) { throw new ArgumentNullException(nameof(renderCanvas)); } if (!(renderCanvas is RenderCanvasImp)) { throw new ArgumentException($"renderCanvas must be of type {typeof(RenderCanvasImp).FullName}", nameof(renderCanvas)); } _gameWindow = ((RenderCanvasImp)renderCanvas)._gameWindow; if (_gameWindow == null) { throw new ArgumentNullException(nameof(_gameWindow)); } _SMI = new WindowsSpaceMouseInputDeviceImp(_gameWindow); }
/// <summary> /// Constructor. Use this in platform specific application projects. /// </summary> /// <param name="renderCanvas">The render canvas to provide mouse and keyboard input for.</param> public RenderCanvasInputDriverImp(IRenderCanvasImp renderCanvas) { if (renderCanvas == null) { throw new ArgumentNullException(nameof(renderCanvas)); } if (!(renderCanvas is RenderCanvasImp)) { throw new ArgumentException("renderCanvas must be of type RenderCanvasImp", "renderCanvas"); } _canvas = ((RenderCanvasImp)renderCanvas)._canvas; if (_canvas == null) { throw new ArgumentNullException(nameof(_canvas)); } _keyboard = new KeyboardDeviceImp(_canvas); _mouse = new MouseDeviceImp(_canvas); _touch = new TouchDeviceImp(_canvas); }
/// <summary> /// Constructor. Use this in platform specific application projects. /// </summary> /// <param name="renderCanvas">The render canvas to provide mouse and keyboard input for.</param> public RenderCanvasInputDriverImp(IRenderCanvasImp renderCanvas) { if (renderCanvas == null) { throw new ArgumentNullException(nameof(renderCanvas)); } if (!(renderCanvas is RenderCanvasImp)) { throw new ArgumentException($"renderCanvas must be of type {typeof(RenderCanvasImp).FullName}.", nameof(renderCanvas)); } _view = ((RenderCanvasImp)renderCanvas).View; if (_view == null) { throw new ArgumentNullException(nameof(_view)); } _touch = new TouchDeviceImp(_view); _keyboard = new KeyboardDeviceImp(_view); _mouse = new MouseDeviceImp(_view); }
public RenderContextImp(IRenderCanvasImp canvas) { throw new System.NotImplementedException(); }
/// <summary> /// Creates the render context implementation. /// </summary> /// <param name="rci">The RenderCanvas implementation interface derivate.</param> /// <returns>A new instance of <see cref="RenderContextImp" /></returns> public static IRenderContextImp CreateRenderContextImp(IRenderCanvasImp rci) { return new RenderContextImp(rci); }
/// <summary> /// Creates the input implementation. /// </summary> /// <param name="rci">The RenderCanvas implementation interface derivate.</param> /// <returns>A new instance of <see cref="InputImp" /></returns> public static IInputImp CreateInputImp(IRenderCanvasImp rci) { return new InputImp(rci); }
public static IRenderContextImp CreateIRenderContextImp(IRenderCanvasImp renderCanvas) { return (IRenderContextImp) CreateIImp(RenderingImplementor, "CreateRenderContextImp").Invoke(null, new object[] {renderCanvas}); }
/// <summary> /// The RenderCanvas constructor. Depending on the implementation this constructor instantiates a 3D viewing window or connects a 3D /// render context to an existing part of the application window. /// </summary> public void InitImplementors() { if (_canvasImp == null) _canvasImp = ImpFactory.CreateIRenderCanvasImp(); if (_renderContextImp == null) _renderContextImp = ImpFactory.CreateIRenderContextImp(_canvasImp); if (_inputImp == null) _inputImp = ImpFactory.CreateIInputImp(_canvasImp); if (_audioImp == null) _audioImp = ImpFactory.CreateIAudioImp(); if (_inputDriverImp == null) _inputDriverImp = ImpFactory.CreateIInputDriverImp(); if (_networkImp == null) _networkImp = ImpFactory.CreateINetworkImp(); }
public static IInputImp CreateIInputImp(IRenderCanvasImp renderCanvas) { return ((IInputImp)CreateIImp(RenderingImplementor, "CreateInputImp").Invoke(null, new object[] { renderCanvas })); }
/// <summary> /// Creates the input implementation. /// </summary> /// <param name="rci">The RenderCanvas implementation interface derivate.</param> /// <returns>A new instance of <see cref="InputImp" /></returns> public static IInputImp CreateInputImp(IRenderCanvasImp rci) { return(new InputImp(rci)); }
/// <summary> /// Creates the render context implementation. /// </summary> /// <param name="rci">The RenderCanvas implementation interface derivate.</param> /// <returns>A new instance of <see cref="RenderContextImp" /></returns> public static IRenderContextImp CreateRenderContextImp(IRenderCanvasImp rci) { return(new RenderContextImp(rci)); }
public RenderContextImp(IRenderCanvasImp renderCanvas) { _currentTextureUnit = 0; _shaderParam2TexUnit = new Dictionary <int, int>(); }