InputLayer.h
上传用户:sycq158
上传日期:2008-10-22
资源大小:15361k
文件大小:2k
源码类别:

游戏

开发平台:

Visual C++

  1. /*******************************************************************
  2.  *         Advanced 3D Game Programming using DirectX 7.0
  3.  * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  4.  *   Title: InputLayer.h
  5.  *    Desc: Manages DirectInput
  6.  *          Currently only has support for keyboard/mouse
  7.  * copyright (c) 1999 by Adrian Perez
  8.  * See license.txt for modification and distribution information
  9.  ******************************************************************/
  10. #ifndef _INPUTLAYER_H
  11. #define _INPUTLAYER_H
  12. #include <dinput.h>
  13. #include "Keyboard.h"
  14. #include "Mouse.h"
  15. class cInputLayer
  16. {
  17. cKeyboard* m_pKeyboard;
  18. cMouse* m_pMouse;
  19. // The DI7 object
  20. LPDIRECTINPUT8 m_pDI;
  21. static cInputLayer* m_pGlobalILayer;
  22. cInputLayer( 
  23. HINSTANCE hInst, 
  24. HWND hWnd, 
  25. bool bExclusive, 
  26. bool bUseKeyboard = true, 
  27. bool bUseMouse = true );
  28. public:
  29. static void Destroy();
  30. virtual ~cInputLayer();
  31. cKeyboard* GetKeyboard()
  32. {
  33. return m_pKeyboard;
  34. }
  35. cMouse* GetMouse()
  36. {
  37. return m_pMouse;
  38. }
  39. void UpdateDevices();
  40. static cInputLayer* GetInput()
  41. {
  42. return m_pGlobalILayer;
  43. }
  44. LPDIRECTINPUT8 GetDInput()
  45. {
  46. return m_pDI; 
  47. }
  48. void SetFocus(); // called when the app gains focus
  49. void KillFocus(); // called when the app must release focus
  50. static void Create( 
  51. HINSTANCE hInst, 
  52. HWND hWnd, 
  53. bool bExclusive, 
  54. bool bUseKeyboard = true, 
  55. bool bUseMouse = true )
  56. {
  57. // everything is taken care of in the constructor
  58. new cInputLayer( 
  59. hInst, 
  60. hWnd, 
  61. bExclusive, 
  62. bUseKeyboard, 
  63. bUseMouse );
  64. }
  65. };
  66. inline cInputLayer* Input()
  67. {
  68. return cInputLayer::GetInput();
  69. }
  70. #endif //_INPUTLAYER_H