/// <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();
        }
Exemplo n.º 2
0
        /// <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();
        }
Exemplo n.º 3
0
        /// <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();
        }
Exemplo n.º 5
0
        /// <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);
        }
Exemplo n.º 6
0
        /// <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);
        }
Exemplo n.º 7
0
        /// <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);
        }
Exemplo n.º 8
0
 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();
        }
Exemplo n.º 13
0
 public static IInputImp CreateIInputImp(IRenderCanvasImp renderCanvas)
 {
     return
         ((IInputImp)CreateIImp(RenderingImplementor, "CreateInputImp").Invoke(null, new object[] { renderCanvas }));
 }
Exemplo n.º 14
0
 /// <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));
 }
Exemplo n.º 15
0
 /// <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));
 }
Exemplo n.º 16
0
 public RenderContextImp(IRenderCanvasImp renderCanvas)
 {
     _currentTextureUnit  = 0;
     _shaderParam2TexUnit = new Dictionary <int, int>();
 }