void MyFrameHandler(unsigned long windowID, unsigned int viewport, void *) { ts->OpenGLDraw(s); // v += 0.1; // if (v > 1) // { // s = t; // ts->GetActions(t, moves); // TopSpinAction tmp = 0; // do { // tmp = moves[random()%moves.size()]; // } while (tmp == lastMove); // ts->ApplyAction(t, tmp); // lastMove = tmp; // ts->InvertAction(lastMove); // v = 0; // } // ts->OpenGLDraw(t, s, v); if (recording && viewport == GetNumPorts(windowID)-1) { static int cnt = 999; char fname[255]; sprintf(fname, "/Users/nathanst/Movies/tmp/%d%d%d%d", (cnt/1000)%10, (cnt/100)%10, (cnt/10)%10, cnt%10); SaveScreenshot(windowID, fname); printf("Saved %s\n", fname); cnt--; } return; }
void SaveSlot(const std::string &gameFilename, int slot, Callback callback, void *cbUserData) { std::string fn = GenerateSaveSlotFilename(gameFilename, slot, STATE_EXTENSION); std::string shot = GenerateSaveSlotFilename(gameFilename, slot, SCREENSHOT_EXTENSION); if (!fn.empty()) { auto renameCallback = [=](bool status, const std::string &message, void *data) { if (status) { if (File::Exists(fn)) { File::Delete(fn); } File::Rename(fn + ".tmp", fn); } if (callback) { callback(status, message, data); } }; // Let's also create a screenshot. SaveScreenshot(shot, Callback(), 0); Save(fn + ".tmp", renameCallback, cbUserData); } else { I18NCategory *sy = GetI18NCategory("System"); if (callback) callback(false, sy->T("Failed to save state. Error in the file system."), cbUserData); } }
void MainLoop() { #ifdef _DEBUG_TIMINGS mainlooptime = GetTickCount() - mainlooptime_prv; #endif while(PeekMessage(&msg, NULL, NULL, NULL, PM_REMOVE)) { DispatchMessage(&msg); if (keys[VK_F11]) { LogToFile("Saving screenshot..."); if(gui) gui->LogOnScreen("Saving screenshot"); if(!SaveScreenshot(cfg.scr_width, cfg.scr_height, cfg.scr_bpp)) LogToFile("Failed save screenshot"); } if (keys[VK_ESCAPE]) { current_state = GAME_EXITING; } if (keys[VK_F5]) { cfg.debug = !cfg.debug; } } current_time = (GetTickCount() - startup_time); if(gui) gui->Process(); CountFPS(); #ifdef _DEBUG_TIMINGS mainlooptime_prv = GetTickCount(); mainlooptime_med += mainlooptime; #endif }
//--------------------------------------------------------------------------- void TfrmMain::FormClose() { // Saving the screenshot if (SaveScreenshot(m_Screenshot)) { Show(); // Error from SaveScreenshot return; } if (m_cSend && m_pszFile && m_hContact && !m_bFormEdit) { m_cSend->Send(); if (m_cSend->m_bFreeOnExit) cboxSendByChange(); // Not finish delete this if events from m_opt_cboxSendBy implementet SendMessage(m_hWnd,UM_EVENT, 0, (LPARAM)EVT_CheckOpenAgain); } else { SendMessage(m_hWnd,UM_EVENT, 0, (LPARAM)EVT_CheckOpenAgain); } }
LRESULT CALLBACK KeyboardHook::HookProcedure(int code, WPARAM wParam, LPARAM lParam) { if (code == HC_ACTION) { // lParam: 0??????? - down event // lParam: 4??????? - pressing events // lParam: C??????? - up event if (VK_F1 <= wParam && wParam <= VK_F12) { if ((lParam & ((KF_REPEAT + KF_UP) << 16)) == 0) { if (wParam == VK_F11) { ToggleFullScreenMode(); } else if (wParam == VK_F12) { ToggleMenuVisible(); } else { if (GlobalChatWriter != NULL) { GlobalChatWriter->DispatchKeyboardMessage(wParam, lParam); } } } return 1; // ignore this key } if (wParam == GlobalSnapshotKey) { // Key VK_SNAPSHOT send only one message: wParam: 2C, lParam: C1370001 ! SaveScreenshot(); // reenterant return 1; // ignore this key } } return ::CallNextHookEx(Hook, code, wParam, lParam); }
void S9xProcessEvents (bool8 block) { static char prev_keystate[128]; extern volatile char key[128]; #ifdef GRIP_SUPPORT ReadGrip (); #endif #ifdef SIDEWINDER_SUPPORT if (num_sidewinders) ReadSidewinders (); #endif char key1[128]; char *keystate = (char *) key1; int fn = 0; memcpy (key1, (char *) key, sizeof (key1)); #undef KEY_DOWN #define KEY_DOWN(a) (keystate[a]) #undef KEY_PRESS #define KEY_PRESS(a) (keystate[a] && !prev_keystate[a]) #undef KEY_WASPRESSED #define KEY_WASPRESSED(a) (prev_keystate[a] && !keystate[a]) #undef PROCESS_KEY #define PROCESS_KEY(k, b, v)\ if (KEY_PRESS(k)) b |= v;\ if (KEY_WASPRESSED(k)) b &= ~v; if (KEY_PRESS (SCANCODE_ESCAPE)) S9xExit (); // Joypad 1: PROCESS_KEY(SCANCODE_K, joypads [0], SNES_RIGHT_MASK) PROCESS_KEY(SCANCODE_CURSORRIGHT, joypads [0], SNES_RIGHT_MASK) PROCESS_KEY(SCANCODE_H, joypads [0], SNES_LEFT_MASK) PROCESS_KEY(SCANCODE_CURSORLEFT, joypads [0], SNES_LEFT_MASK) PROCESS_KEY(SCANCODE_N, joypads [0], SNES_DOWN_MASK) PROCESS_KEY(SCANCODE_J, joypads [0], SNES_DOWN_MASK) PROCESS_KEY(SCANCODE_CURSORDOWN, joypads [0], SNES_DOWN_MASK) PROCESS_KEY(SCANCODE_U, joypads [0], SNES_UP_MASK) PROCESS_KEY(SCANCODE_CURSORUP, joypads [0], SNES_UP_MASK) PROCESS_KEY(SCANCODE_ENTER, joypads [0], SNES_START_MASK) PROCESS_KEY(SCANCODE_SPACE, joypads [0], SNES_SELECT_MASK) PROCESS_KEY(SCANCODE_A, joypads [0], SNES_TL_MASK) PROCESS_KEY(SCANCODE_V, joypads [0], SNES_TL_MASK) PROCESS_KEY(SCANCODE_Q, joypads [0], SNES_TL_MASK) PROCESS_KEY(SCANCODE_Z, joypads [0], SNES_TR_MASK) PROCESS_KEY(SCANCODE_B, joypads [0], SNES_TR_MASK) PROCESS_KEY(SCANCODE_W, joypads [0], SNES_TR_MASK) PROCESS_KEY(SCANCODE_S, joypads [0], SNES_X_MASK) PROCESS_KEY(SCANCODE_M, joypads [0], SNES_X_MASK) PROCESS_KEY(SCANCODE_E, joypads [0], SNES_X_MASK) PROCESS_KEY(SCANCODE_X, joypads [0], SNES_Y_MASK) PROCESS_KEY(SCANCODE_COMMA, joypads [0], SNES_Y_MASK) PROCESS_KEY(SCANCODE_R, joypads [0], SNES_Y_MASK) PROCESS_KEY(SCANCODE_D, joypads [0], SNES_A_MASK) PROCESS_KEY(SCANCODE_PERIOD, joypads [0], SNES_A_MASK) PROCESS_KEY(SCANCODE_T, joypads [0], SNES_A_MASK) PROCESS_KEY(SCANCODE_C, joypads [0], SNES_B_MASK) PROCESS_KEY(SCANCODE_SLASH, joypads [0], SNES_B_MASK) PROCESS_KEY(SCANCODE_Y, joypads [0], SNES_B_MASK) // Joypad 2: // PROCESS_KEY(SCANCODE_CURSORRIGHT, joypads [1], SNES_RIGHT_MASK) // PROCESS_KEY(SCANCODE_CURSORLEFT, joypads [1], SNES_LEFT_MASK) // PROCESS_KEY(SCANCODE_CURSORDOWN, joypads [1], SNES_DOWN_MASK) // PROCESS_KEY(SCANCODE_CURSORUP, joypads [1], SNES_UP_MASK) PROCESS_KEY(SCANCODE_KEYPADENTER, joypads [0], SNES_START_MASK) PROCESS_KEY(SCANCODE_KEYPADPLUS, joypads [0], SNES_SELECT_MASK) PROCESS_KEY(SCANCODE_INSERT, joypads [0], SNES_X_MASK) PROCESS_KEY(SCANCODE_REMOVE, joypads [0], SNES_Y_MASK) PROCESS_KEY(SCANCODE_HOME, joypads [0], SNES_A_MASK) PROCESS_KEY(SCANCODE_END, joypads [0], SNES_B_MASK) PROCESS_KEY(SCANCODE_PAGEUP, joypads [0], SNES_TL_MASK) PROCESS_KEY(SCANCODE_PAGEDOWN, joypads [0], SNES_TR_MASK) if (KEY_PRESS (SCANCODE_0)) Settings.DisableHDMA = !Settings.DisableHDMA; if (KEY_PRESS (SCANCODE_1)) PPU.BG_Forced ^= 1; if (KEY_PRESS (SCANCODE_2)) PPU.BG_Forced ^= 2; if (KEY_PRESS (SCANCODE_3)) PPU.BG_Forced ^= 4; if (KEY_PRESS (SCANCODE_4)) PPU.BG_Forced ^= 8; if (KEY_PRESS (SCANCODE_5)) PPU.BG_Forced ^= 16; if (KEY_PRESS (SCANCODE_6)) Settings.SwapJoypads = !Settings.SwapJoypads; if (KEY_PRESS (SCANCODE_7)) { if (IPPU.Controller == SNES_SUPERSCOPE) show_mouse (NULL); S9xNextController (); if (IPPU.Controller == SNES_SUPERSCOPE) show_mouse (screen); } if (KEY_PRESS (SCANCODE_8)) Settings.BGLayering = !Settings.BGLayering; if (KEY_PRESS (SCANCODE_9)) if (Settings.SixteenBit) Settings.Transparency = !Settings.Transparency; if (KEY_PRESS(SCANCODE_TAB)) superscope_turbo = !superscope_turbo; PROCESS_KEY(SCANCODE_GRAVE, superscope_pause, 1); if (KEY_PRESS(SCANCODE_F1)) fn = 1; if (KEY_PRESS(SCANCODE_F2)) fn = 2; if (KEY_PRESS(SCANCODE_F3)) fn = 3; if (KEY_PRESS(SCANCODE_F4)) fn = 4; if (KEY_PRESS(SCANCODE_F5)) fn = 5; if (KEY_PRESS(SCANCODE_F6)) fn = 6; if (KEY_PRESS(SCANCODE_F7)) fn = 7; if (KEY_PRESS(SCANCODE_F8)) fn = 8; if (KEY_PRESS(SCANCODE_F9)) fn = 9; if (KEY_PRESS(SCANCODE_F10)) fn = 10; if (KEY_PRESS(SCANCODE_F11)) fn = 11; if (KEY_PRESS(SCANCODE_F12)) fn = 12; if (fn > 0) { if (!KEY_DOWN(SCANCODE_LEFTALT) && !KEY_DOWN(SCANCODE_LEFTSHIFT)) { if (fn == 11) { S9xLoadSnapshot (S9xChooseFilename (TRUE)); } else if (fn == 12) { Snapshot (S9xChooseFilename (FALSE)); } else { char def [PATH_MAX]; char filename [PATH_MAX]; char drive [_MAX_DRIVE]; char dir [_MAX_DIR]; char ext [_MAX_EXT]; _splitpath (Memory.ROMFilename, drive, dir, def, ext); sprintf (filename, "%s%s%s.%03d", S9xGetSnapshotDirectory (), SLASH_STR, def, fn - 1); S9xLoadSnapshot (filename); } } else if (KEY_DOWN(SCANCODE_LEFTALT)) { if (fn >= 4) S9xToggleSoundChannel (fn - 4); #ifdef DEBUGGER else if (fn == 1) CPU.Flags |= DEBUG_MODE_FLAG; #endif else if (fn == 2) S9xLoadSnapshot (S9xChooseFilename (TRUE)); else if (fn == 3) Snapshot (S9xChooseFilename (FALSE)); } else { char def [PATH_MAX]; char filename [PATH_MAX]; char drive [_MAX_DRIVE]; char dir [_MAX_DIR]; char ext [_MAX_EXT]; _splitpath (Memory.ROMFilename, drive, dir, def, ext); sprintf (filename, "%s%s%s.%03d", S9xGetSnapshotDirectory (), SLASH_STR, def, fn - 1); Snapshot (filename); } } if (KEY_PRESS (SCANCODE_BREAK) || KEY_PRESS (SCANCODE_BREAK_ALTERNATIVE) || KEY_PRESS (SCANCODE_SCROLLLOCK)) Settings.Paused ^= 1; if (KEY_PRESS (SCANCODE_PRINTSCREEN)) SaveScreenshot (); if (KEY_PRESS (SCANCODE_MINUS)) { if (Settings.SkipFrames <= 1) Settings.SkipFrames = AUTO_FRAMERATE; else if (Settings.SkipFrames != AUTO_FRAMERATE) Settings.SkipFrames--; } if (KEY_PRESS (SCANCODE_EQUAL)) { if (Settings.SkipFrames == AUTO_FRAMERATE) Settings.SkipFrames = 1; else if (Settings.SkipFrames < 10) Settings.SkipFrames++; } memcpy (prev_keystate, keystate, sizeof (prev_keystate)); if (block) __dpmi_yield (); }
void MyFrameHandler(unsigned long windowID, unsigned int viewport, void *) { if (ge) { ge->OpenGLDraw(); return; } if (viewport == 0) { unitSims[windowID]->StepTime(1.0/30.0); } // for (unsigned int x = 0; x < astars.size(); x++) // astars[x].OpenGLDraw(); // astar.OpenGLDraw(); unitSims[windowID]->OpenGLDraw(); //unitSims[windowID]->GetEnvironment()->OpenGLDraw(); if (screenShot) { SaveScreenshot(windowID, gDefaultMap); exit(0); } // glTranslatef(0, 0, -0.1); // glLineWidth(6.0); // if (ge == 0) // ge = new GraphEnvironment(GraphSearchConstants::GetGraph(unitSims[windowID]->GetEnvironment()->GetMap())); // ge->OpenGLDraw(); if (astars.size() > 0) msa->OpenGLDraw(); if (mouseTracking) { glBegin(GL_LINES); glColor3f(1.0f, 0.0f, 0.0f); Map *m = unitSims[windowID]->GetEnvironment()->GetMap(); GLdouble x, y, z, r; m->GetOpenGLCoord(px1, py1, x, y, z, r); glVertex3f(x, y, z-3*r); m->GetOpenGLCoord(px2, py2, x, y, z, r); glVertex3f(x, y, z-3*r); glEnd(); } if ((gdh) && (!ma1)) gdh->OpenGLDraw(); if (viewport == 1) mo->OpenGLDraw(); if (viewport == 2) mo_g->OpenGLDraw(); if (viewport == 3) mo_h->OpenGLDraw(); if ((ma1) && (viewport == 0)) // only do this once... { ma1->SetColor(0.0, 0.5, 0.0, 0.75); if (runningSearch1 && !unitSims[windowID]->GetPaused()) { ma1->SetColor(0.0, 0.0, 1.0, 0.75); for (int x = 0; x < gStepsPerFrame*4; x++) { if (a1.DoSingleSearchStep(path)) { printf("Solution: moves %d, length %f, %lld nodes, %u on OPEN\n", (int)path.size(), ma1->GetPathLength(path), a1.GetNodesExpanded(), a1.GetNumOpenItems()); runningSearch1 = false; break; } } } a1.OpenGLDraw(); } if (ma2) { ma2->SetColor(1.0, 0.0, 0.0, 0.5); if (runningSearch2) { ma2->SetColor(1.0, 0.0, 1.0, 0.5); for (int x = 0; x < gStepsPerFrame; x++) { if (a2.DoSingleSearchStep(path)) { printf("Solution: moves %d, length %f, %lld nodes\n", (int)path.size(), ma1->GetPathLength(path), a2.GetNodesExpanded()); runningSearch2 = false; break; } } } a2.OpenGLDraw(); } if (0&&(runningSearch1 || runningSearch2 || mouseTracking) && viewport == GetNumPorts(windowID)-1) { static int cnt = 0; char fname[255]; sprintf(fname, "/Users/nathanst/Movies/epea/EPEA%d%d%d", (cnt/100)%10, (cnt/10)%10, cnt%10); SaveScreenshot(windowID, fname); printf("Saved %s\n", fname); cnt++; } }
ScaleSpaceExplorer::ScaleSpaceExplorer(QWidget *parent) : QMainWindow(parent), m_pUI(new Ui::ScaleSpaceExplorer) { m_pUI->setupUi(this); { m_CentralRenderer = vtkSmartPointer<vtkRenderer>::New(); //m_CentralRenderer->SetBackground(81.0/255,87.0/255,110.0/255); m_CentralRenderWindow = vtkSmartPointer<vtkRenderWindow>::New(); m_CentralRenderWindow->AddRenderer(m_CentralRenderer); m_CentralRenderWindowInteractor = vtkSmartPointer<QVTKInteractor>::New(); m_CentralRenderWindowInteractor->SetRenderWindow(m_CentralRenderWindow); m_CentralRenderWindowInteractor->Initialize(); //vtkSmartPointer<vtkAxesActor> axes = vtkSmartPointer<vtkAxesActor>::New(); //m_CentralRenderer->AddActor(axes); this->m_pUI->centralQVTKView->SetRenderWindow(m_CentralRenderWindow); } connect(this->m_pUI->actionOPen,SIGNAL(triggered()),this,SLOT(Open())); connect(this->m_pUI->computePlatenessButton,SIGNAL(clicked()),this,SLOT(ComputePlateness())); connect(this->m_pUI->computeVertexnessButton,SIGNAL(clicked()),this,SLOT(ComputeVertexness())); connect(this->m_pUI->platenessScaleSlider,SIGNAL(valueChanged(int)),this,SLOT(DrawPlateness(int))); connect(this->m_pUI->vertexnessScaleSlider,SIGNAL(valueChanged(int)),this,SLOT(DrawVertexness(int))); connect(this->m_pUI->showPlatenessCBox,SIGNAL(stateChanged(int)),this,SLOT(ShowPlateness(int))); connect(this->m_pUI->showVertexnessCBox,SIGNAL(stateChanged(int)),this,SLOT(ShowVertexness(int))); connect(this->m_pUI->showVertexLocationsCBox,SIGNAL(stateChanged(int)),this,SLOT(ShowVertexLocations(int))); connect(this->m_pUI->saveScreenshotButton,SIGNAL(clicked()),this,SLOT(SaveScreenshot())); connect(this->m_pUI->savePlatenessButton,SIGNAL(clicked()),this,SLOT(SavePlateness())); connect(this->m_pUI->saveVertexnessButton,SIGNAL(clicked()),this,SLOT(SaveVertexness())); m_VertexnessDrawer.SetRenderer(m_CentralRenderer); m_PlatenessDrawer.SetRenderer(m_CentralRenderer); m_VertexLocationsDrawer.SetRenderer(m_CentralRenderer); //m_Spacing[0]=0.1395089; //m_Spacing[1]=0.1395089; //m_Spacing[2]=0.5000000; //m_Spacing[0]=0.1022727; //m_Spacing[1]=0.1022727; //m_Spacing[2]=1.0192918; //m_Spacing[0]=0.1395089; //m_Spacing[1]=0.1395089; //m_Spacing[2]=0.5000000; //m_Spacing[0]=0.0949848; //m_Spacing[1]=0.0949848; //m_Spacing[2]=1.2420000; m_Spacing[0]=0.3107403; m_Spacing[1]=0.3107403; m_Spacing[2]=0.7398330; //m_Spacing[0]=0.1569475; //m_Spacing[1]=0.1569475; //m_Spacing[2]=0.6209697; }