//============================================================================= // 入力処理の初期化 //============================================================================= HRESULT InitInput(HINSTANCE hInst, HWND hWnd) { HRESULT hr; if(!g_pDInput) { // DirectInputオブジェクトの作成 hr = DirectInput8Create(hInst, DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&g_pDInput, NULL); } // キーボードの初期化 InitKeyboard(hInst, hWnd); // マウスの初期化 InitializeMouse(hInst, hWnd); // パッドの初期化 InitializePad(); return S_OK; }
HRESULT CD3DInputWrapper::InitializeInput() { if( m_pDI ) m_pDI->Release(); HRESULT r = 0; // Create the IDirectInput8 object r = DirectInput8Create( GetModuleHandle(NULL), DIRECTINPUT_VERSION, IID_IDirectInput8, (void**)&m_pDI, NULL ); if( FAILED( r ) ) { CCageApp::DisplayDebugMsg( "Failed to create DirectInput" ); return E_FAIL; } // Initialize the keyboard r = InitializeKeyboard(); if( FAILED( r ) ) { CCageApp::DisplayDebugMsg( "Failed to initialize keyboard" ); return E_FAIL; } // Initialize the mouse r = InitializeMouse(); if( FAILED( r ) ) { CCageApp::DisplayDebugMsg( "Unable to initialize mouse" ); return E_FAIL; } // Set the initialization flag to true m_bInitialized = TRUE; return S_OK; }
void glutInit (int *argcp, char **argv) { int i, nomouse = 0, nokeyboard = 0, usestdin = 0; int RequiredWidth = 0, RequiredHeight; char *fbdev; stack_t stack; struct sigaction sa; /* parse out args */ for (i = 1; i < *argcp;) { if (!strcmp(argv[i], "-geometry")) { REQPARAM("geometry"); if(sscanf(argv[i+1], "%dx%d", &RequiredWidth, &RequiredHeight) != 2) { fprintf(stderr,"Please specify geometry as widthxheight\n"); exit(0); } removeArgs(argcp, &argv[i], 2); } else if (!strcmp(argv[i], "-bpp")) { REQPARAM("bpp"); if(sscanf(argv[i+1], "%d", &DesiredDepth) != 1) { fprintf(stderr, "Please specify a parameter for bpp\n"); exit(0); } removeArgs(argcp, &argv[i], 2); } else if (!strcmp(argv[i], "-vt")) { REQPARAM("vt"); if(sscanf(argv[i+1], "%d", &CurrentVT) != 1) { fprintf(stderr, "Please specify a parameter for vt\n"); exit(0); } removeArgs(argcp, &argv[i], 2); } else if (!strcmp(argv[i], "-mousespeed")) { REQPARAM("mousespeed"); if(sscanf(argv[i+1], "%lf", &MouseSpeed) != 1) { fprintf(stderr, "Please specify a mouse speed, eg: 2.5\n"); exit(0); } removeArgs(argcp, &argv[i], 2); } else if (!strcmp(argv[i], "-nomouse")) { nomouse = 1; removeArgs(argcp, &argv[i], 1); } else if (!strcmp(argv[i], "-nokeyboard")) { nokeyboard = 1; removeArgs(argcp, &argv[i], 1); } else if (!strcmp(argv[i], "-stdin")) { usestdin = 1; removeArgs(argcp, &argv[i], 1); } else if (!strcmp(argv[i], "-gpmmouse")) { #ifdef HAVE_GPM GpmMouse = 1; #else fprintf(stderr, "gpm support not compiled\n"); exit(0); #endif removeArgs(argcp, &argv[i], 1); } else if (!strcmp(argv[i], "--")) { removeArgs(argcp, &argv[i], 1); break; } else i++; } gettimeofday(&StartTime, 0); atexit(Cleanup); /* set up SIGSEGV to use alternate stack */ stack.ss_flags = 0; stack.ss_size = SIGSTKSZ; if(!(stack.ss_sp = malloc(SIGSTKSZ))) sprintf(exiterror, "Failed to allocate alternate stack for SIGSEGV!\n"); sigaltstack(&stack, NULL); sa.sa_handler = CrashHandler; sa.sa_flags = SA_ONSTACK; sigemptyset(&sa.sa_mask); sigaction(SIGSEGV, &sa, NULL); signal(SIGINT, CrashHandler); signal(SIGTERM, CrashHandler); signal(SIGABRT, CrashHandler); if(nomouse == 0) InitializeMouse(); if(nokeyboard == 0) InitializeVT(usestdin); fbdev = getenv("FRAMEBUFFER"); if(fbdev) { #ifdef MULTIHEAD if(!sscanf(fbdev, "/dev/fb%d", &FramebufferIndex)) if(!sscanf(fbdev, "/dev/fb/%d", &FramebufferIndex)) sprintf(exiterror, "Could not determine Framebuffer index!\n"); #endif } else { static char fb[128]; struct fb_con2fbmap confb; int fd = open("/dev/fb0", O_RDWR); FramebufferIndex = 0; confb.console = CurrentVT; if(ioctl(fd, FBIOGET_CON2FBMAP, &confb) != -1) FramebufferIndex = confb.framebuffer; sprintf(fb, "/dev/fb%d", FramebufferIndex); fbdev = fb; close(fd); } /* open the framebuffer device */ FrameBufferFD = open(fbdev, O_RDWR); if (FrameBufferFD < 0) { sprintf(exiterror, "Error opening %s: %s\n", fbdev, strerror(errno)); exit(0); } /* get the fixed screen info */ if (ioctl(FrameBufferFD, FBIOGET_FSCREENINFO, &FixedInfo)) { sprintf(exiterror, "error: ioctl(FBIOGET_FSCREENINFO) failed: %s\n", strerror(errno)); exit(0); } /* get the variable screen info */ if (ioctl(FrameBufferFD, FBIOGET_VSCREENINFO, &OrigVarInfo)) { sprintf(exiterror, "error: ioctl(FBIOGET_VSCREENINFO) failed: %s\n", strerror(errno)); exit(0); } /* operate on a copy */ VarInfo = OrigVarInfo; /* set the depth, resolution, etc */ if(RequiredWidth) if(!ParseFBModes(RequiredWidth, RequiredWidth, RequiredHeight, RequiredHeight, 0, MAX_VSYNC)) { sprintf(exiterror, "No mode (%dx%d) found in "FBMODES"\n", RequiredWidth, RequiredHeight); exit(0); } Initialized = 1; }
Mouse::Mouse(HWND argWindow) { hwnd = argWindow; InitializeMouse(); }