int COGLGraphicsContext::ToggleFullscreen() { if (CoreVideo_ToggleFullScreen() == M64ERR_SUCCESS) { m_bWindowed = !m_bWindowed; if(m_bWindowed) SetWindowMode(); else SetFullscreenMode(); } return m_bWindowed?0:1; }
int COGLGraphicsContext::ToggleFullscreen() { if(SDL_WM_ToggleFullScreen(m_pScreen) == 1) { m_bWindowed = 1 - m_bWindowed; if(m_bWindowed) SetWindowMode(); else SetFullscreenMode(); } return m_bWindowed?0:1; }
void MainWindow::readFromConfig() { //switchLanguage(NULL); /* read saved state */ readSettings(&settings, false); toggleASQLow(ui->checkBox_asq_detectLow->isChecked()); toggleASQHigh(ui->checkBox_asq_detectHigh->isChecked()); toggleTransmitPilot(ui->checkBox_transmitter_pilot->isChecked()); toggleTransmitRds(ui->checkBox_transmitter_rds->isChecked()); toggleTransmitEnabled(ui->checkBox_transmitter_enabled->isChecked()); toggleRDSaf(ui->checkBox_rds_useaf->isChecked()); toggleRDSfifo(ui->checkBox_rds_fifo->isChecked()); toggleRDSPSVisibility(ui->spinBox_rds_ps_msgs->value()); UpdateRDSRTFileEnabled(ui->checkBox_rds_title_file->isChecked()); UpdateRDSRTPlusEnabled(); //updateHTTPListener(); createLanguageMenu(); ui->actionSelect_Language->setMenu(languageMenu); setupTrayIcon(); SetWindowMode(!ui->checkBox_mini_mode->isChecked()); SetAudioCompLimPresetByParams(); /* actions for querier */ if(ui->checkBox_rds_time->isChecked()) { querier->rdsInterval = ui->spinBox_rds_time_int->value() * 1000; } /* try to connect */ toggleConnection(false, false); if(ui->checkBox_sw_autoconnect->isChecked()) querier->timer.start(); else { QStatusBar *status = statusBar(); status->showMessage(tr("Default config editing mode...")); status->show(); } this->adjustSize(); this->resize(1,1); this->updateGeometry(); qDebug() << __FUNCTION__; }
bool Game::Run() { try { ClearBackGround(32, 32, 32); SetWindowMode(true); // 描画先を裏画面にする SetDrawScreen(DX_SCREEN_BACK); Init(); Initialize(); while (!IsEnd()) { Process(); Update(); ClearScreen(); Render(); Flip(); } } catch (const std::exception& ex) { MessageBox(NULL, String(ex.what()).ToWide().c_str(), L"例外をキャッチしました", MB_OK); return false; } Finalize(); return true; }
bool COGLGraphicsContext::Initialize(HWND hWnd, HWND hWndStatus, uint32 dwWidth, uint32 dwHeight, BOOL bWindowed ) { printf("Initializing OpenGL Device Context\n"); Lock(); CGraphicsContext::Get()->m_supportTextureMirror = false; CGraphicsContext::Initialize(hWnd, hWndStatus, dwWidth, dwHeight, bWindowed ); if( bWindowed ) { windowSetting.statusBarHeightToUse = windowSetting.statusBarHeight; windowSetting.toolbarHeightToUse = windowSetting.toolbarHeight; } else { windowSetting.statusBarHeightToUse = 0; windowSetting.toolbarHeightToUse = 0; } int depthBufferDepth = options.OpenglDepthBufferSetting; int colorBufferDepth = 32; if( options.colorQuality == TEXTURE_FMT_A4R4G4B4 ) colorBufferDepth = 16; // init sdl & gl const SDL_VideoInfo *videoInfo; Uint32 videoFlags = 0; /* Initialize SDL */ printf("(II) Initializing SDL video subsystem...\n"); if(SDL_InitSubSystem(SDL_INIT_VIDEO) == -1) { printf("(EE) Error initializing SDL video subsystem: %s\n", SDL_GetError()); return false; } /* Video Info */ printf("(II) Getting video info...\n"); if(!(videoInfo = SDL_GetVideoInfo())) { printf("(EE) Video query failed: %s\n", SDL_GetError()); SDL_QuitSubSystem(SDL_INIT_VIDEO); return false; } /* Setting the video mode */ videoFlags |= SDL_OPENGL | SDL_GL_DOUBLEBUFFER | SDL_HWPALETTE; if(videoInfo->hw_available) videoFlags |= SDL_HWSURFACE; else videoFlags |= SDL_SWSURFACE; if(videoInfo->blit_hw) videoFlags |= SDL_HWACCEL; if(!bWindowed) videoFlags |= SDL_FULLSCREEN; SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1); SDL_GL_SetAttribute(SDL_GL_BUFFER_SIZE, colorBufferDepth); SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, depthBufferDepth); printf("(II) Setting video mode %dx%d...\n", (int)windowSetting.uDisplayWidth, (int)windowSetting.uDisplayHeight); if(!(m_pScreen = SDL_SetVideoMode(windowSetting.uDisplayWidth, windowSetting.uDisplayHeight, colorBufferDepth, videoFlags))) { printf("(EE) Error setting video mode %dx%d: %s\n", (int)windowSetting.uDisplayWidth, (int)windowSetting.uDisplayHeight, SDL_GetError()); SDL_QuitSubSystem(SDL_INIT_VIDEO); return false; } char caption[500]; sprintf(caption, "RiceVideoLinux N64 Plugin %s", MUPEN_VERSION); SDL_WM_SetCaption(caption, caption); SetWindowMode(); InitState(); InitOGLExtension(); sprintf(m_strDeviceStats, "%s - %s : %s", m_pVendorStr, m_pRenderStr, m_pVersionStr); TRACE0(m_strDeviceStats); printf("%s\n", m_strDeviceStats); Unlock(); Clear(CLEAR_COLOR_AND_DEPTH_BUFFER); // Clear buffers UpdateFrame(); Clear(CLEAR_COLOR_AND_DEPTH_BUFFER); UpdateFrame(); m_bReady = true; status.isVertexShaderEnabled = false; return true; }
bool COGLGraphicsContext::Initialize(uint32 dwWidth, uint32 dwHeight, BOOL bWindowed ) { DebugMessage(M64MSG_INFO, "Initializing OpenGL Device Context."); Lock(); CGraphicsContext::Initialize(dwWidth, dwHeight, bWindowed ); if( bWindowed ) { windowSetting.statusBarHeightToUse = windowSetting.statusBarHeight; windowSetting.toolbarHeightToUse = windowSetting.toolbarHeight; } else { windowSetting.statusBarHeightToUse = 0; windowSetting.toolbarHeightToUse = 0; } int depthBufferDepth = options.OpenglDepthBufferSetting; int colorBufferDepth = 32; int bVerticalSync = windowSetting.bVerticalSync; if( options.colorQuality == TEXTURE_FMT_A4R4G4B4 ) colorBufferDepth = 16; // init sdl & gl DebugMessage(M64MSG_VERBOSE, "Initializing video subsystem..."); if (CoreVideo_Init() != M64ERR_SUCCESS) return false; /* hard-coded attribute values */ const int iDOUBLEBUFFER = 1; // OpenEmu #if 0 /* set opengl attributes */ CoreVideo_GL_SetAttribute(M64P_GL_DOUBLEBUFFER, iDOUBLEBUFFER); CoreVideo_GL_SetAttribute(M64P_GL_SWAP_CONTROL, bVerticalSync); CoreVideo_GL_SetAttribute(M64P_GL_BUFFER_SIZE, colorBufferDepth); CoreVideo_GL_SetAttribute(M64P_GL_DEPTH_SIZE, depthBufferDepth); #endif /* set multisampling */ if (options.multiSampling > 0) { CoreVideo_GL_SetAttribute(M64P_GL_MULTISAMPLEBUFFERS, 1); if (options.multiSampling <= 2) CoreVideo_GL_SetAttribute(M64P_GL_MULTISAMPLESAMPLES, 2); else if (options.multiSampling <= 4) CoreVideo_GL_SetAttribute(M64P_GL_MULTISAMPLESAMPLES, 4); else if (options.multiSampling <= 8) CoreVideo_GL_SetAttribute(M64P_GL_MULTISAMPLESAMPLES, 8); else CoreVideo_GL_SetAttribute(M64P_GL_MULTISAMPLESAMPLES, 16); } /* Set the video mode */ m64p_video_mode ScreenMode = bWindowed ? M64VIDEO_WINDOWED : M64VIDEO_FULLSCREEN; m64p_video_flags flags = M64VIDEOFLAG_SUPPORT_RESIZING; if (CoreVideo_SetVideoMode(windowSetting.uDisplayWidth, windowSetting.uDisplayHeight, colorBufferDepth, ScreenMode, flags) != M64ERR_SUCCESS) { DebugMessage(M64MSG_ERROR, "Failed to set %i-bit video mode: %ix%i", colorBufferDepth, (int)windowSetting.uDisplayWidth, (int)windowSetting.uDisplayHeight); CoreVideo_Quit(); return false; } // OpenEmu #if 0 /* check that our opengl attributes were properly set */ int iActual; if (CoreVideo_GL_GetAttribute(M64P_GL_DOUBLEBUFFER, &iActual) == M64ERR_SUCCESS) if (iActual != iDOUBLEBUFFER) DebugMessage(M64MSG_WARNING, "Failed to set GL_DOUBLEBUFFER to %i. (it's %i)", iDOUBLEBUFFER, iActual); if (CoreVideo_GL_GetAttribute(M64P_GL_SWAP_CONTROL, &iActual) == M64ERR_SUCCESS) if (iActual != bVerticalSync) DebugMessage(M64MSG_WARNING, "Failed to set GL_SWAP_CONTROL to %i. (it's %i)", bVerticalSync, iActual); if (CoreVideo_GL_GetAttribute(M64P_GL_BUFFER_SIZE, &iActual) == M64ERR_SUCCESS) if (iActual != colorBufferDepth) DebugMessage(M64MSG_WARNING, "Failed to set GL_BUFFER_SIZE to %i. (it's %i)", colorBufferDepth, iActual); if (CoreVideo_GL_GetAttribute(M64P_GL_DEPTH_SIZE, &iActual) == M64ERR_SUCCESS) if (iActual != depthBufferDepth) DebugMessage(M64MSG_WARNING, "Failed to set GL_DEPTH_SIZE to %i. (it's %i)", depthBufferDepth, iActual); #endif #ifndef USE_GLES /* Get function pointers to OpenGL extensions (blame Microsoft Windows for this) */ OGLExtensions_Init(); #endif char caption[500]; sprintf(caption, "%s v%i.%i.%i", PLUGIN_NAME, VERSION_PRINTF_SPLIT(PLUGIN_VERSION)); CoreVideo_SetCaption(caption); SetWindowMode(); InitState(); InitOGLExtension(); sprintf(m_strDeviceStats, "%.60s - %.128s : %.60s", m_pVendorStr, m_pRenderStr, m_pVersionStr); TRACE0(m_strDeviceStats); DebugMessage(M64MSG_INFO, "Using OpenGL: %s", m_strDeviceStats); Unlock(); Clear(CLEAR_COLOR_AND_DEPTH_BUFFER); // Clear buffers UpdateFrame(); Clear(CLEAR_COLOR_AND_DEPTH_BUFFER); UpdateFrame(); m_bReady = true; return true; }
bool COGLGraphicsContext::Initialize(uint32 dwWidth, uint32 dwHeight, BOOL bWindowed ) { DebugMessage(M64MSG_INFO, "Initializing OpenGL Device Context."); Lock(); CGraphicsContext::Get()->m_supportTextureMirror = false; CGraphicsContext::Initialize(dwWidth, dwHeight, bWindowed ); if( bWindowed ) { windowSetting.statusBarHeightToUse = windowSetting.statusBarHeight; windowSetting.toolbarHeightToUse = windowSetting.toolbarHeight; } else { windowSetting.statusBarHeightToUse = 0; windowSetting.toolbarHeightToUse = 0; } int depthBufferDepth = options.OpenglDepthBufferSetting; int colorBufferDepth = 32; if( options.colorQuality == TEXTURE_FMT_A4R4G4B4 ) colorBufferDepth = 16; // init sdl & gl DebugMessage(M64MSG_VERBOSE, "Initializing video subsystem..."); if (CoreVideo_Init() != M64ERR_SUCCESS) return false; /* set opengl attributes */ CoreVideo_GL_SetAttribute(M64P_GL_DOUBLEBUFFER, 1); CoreVideo_GL_SetAttribute(M64P_GL_BUFFER_SIZE, colorBufferDepth); CoreVideo_GL_SetAttribute(M64P_GL_DEPTH_SIZE, depthBufferDepth); /* Set the video mode */ m64p_video_mode ScreenMode = bWindowed ? M64VIDEO_WINDOWED : M64VIDEO_FULLSCREEN; if (CoreVideo_SetVideoMode(windowSetting.uDisplayWidth, windowSetting.uDisplayHeight, colorBufferDepth, ScreenMode) != M64ERR_SUCCESS) { DebugMessage(M64MSG_ERROR, "Failed to set %i-bit video mode: %ix%i", colorBufferDepth, (int)windowSetting.uDisplayWidth, (int)windowSetting.uDisplayHeight); CoreVideo_Quit(); return false; } char caption[500]; sprintf(caption, "%s v%i.%i.%i", PLUGIN_NAME, VERSION_PRINTF_SPLIT(PLUGIN_VERSION)); CoreVideo_SetCaption(caption); SetWindowMode(); InitState(); InitOGLExtension(); sprintf(m_strDeviceStats, "%s - %s : %s", m_pVendorStr, m_pRenderStr, m_pVersionStr); TRACE0(m_strDeviceStats); DebugMessage(M64MSG_INFO, "Using OpenGL: %s", m_strDeviceStats); Unlock(); Clear(CLEAR_COLOR_AND_DEPTH_BUFFER); // Clear buffers UpdateFrame(); Clear(CLEAR_COLOR_AND_DEPTH_BUFFER); UpdateFrame(); m_bReady = true; status.isVertexShaderEnabled = false; return true; }
static LRESULT CALLBACK MainWindowProc(HWND MainWindow, UINT Message, WPARAM wParam, LPARAM lParam) { LRESULT Result = 0; switch(Message) { case WM_CREATE: InitWindowComponents(MainWindow, &Controls); break; case WM_DESTROY: PostQuitMessage(0); break; case WM_ERASEBKGND: // NOTE: Return a non-zero value. Literally. Result = !0; break; case WM_PAINT: { PAINTSTRUCT PaintStruct; HDC DC = BeginPaint(MainWindow, &PaintStruct); RECT FillRegion; GetClientRect(MainWindow, &FillRegion); COLORREF Top = RGB(239, 241, 245); COLORREF Bottom = RGB(218, 223, 233); DrawGradient(DC, FillRegion, Top, Top, Bottom, Bottom); EndPaint(MainWindow, &PaintStruct); ReleaseDC(MainWindow, DC); } break; case WM_COMMAND: { HWND Ctrl = (HWND)lParam; if(HIWORD(wParam) == CBN_SELCHANGE && Ctrl == Controls.ComboBox) { DWORD Pos = SendMessageA((HWND)lParam, CB_GETCURSEL, 0, 0); window_data *WndData = (window_data*)SendMessageA((HWND)lParam, CB_GETITEMDATA, Pos, 0); if(WndData) { Controls.CurSelection = WndData; HWND Window = WndData->Window; WINDOWINFO WindowInfo = {}; WindowInfo.cbSize = sizeof(WindowInfo); if(GetWindowInfo(Window, &WindowInfo)) { RECT Rect = WindowInfo.rcWindow; LONG Width = Rect.right - Rect.left; LONG Height = Rect.bottom - Rect.top; // TODO: Display usefull data char Buffer[256]; StringCbPrintfA(Buffer, sizeof(Buffer), "%dx%d starting at (%d,%d)", Width, Height, Rect.left, Rect.top); SetWindowTextA(Controls.StaticText, Buffer); ShowWindow(Controls.StaticText, TRUE); } else { PRINT_ERR("Could not get window info.\n"); } } } else if(HIWORD(wParam) == BN_CLICKED) { if(Ctrl == Controls.ButtonOK) { if(Controls.CurSelection) { int UseConfig = SendMessageA(Controls.CheckBox, BM_GETCHECK, 0, 0); if(UseConfig == BST_CHECKED) { load_file_result LoadResult = LoadWindowSizeFromConfig(); if(LoadResult.Valid) { SetWindowMode(*Controls.CurSelection, LoadResult.Width, LoadResult.Height); } else { int SetToFullscreen = MessageBoxA(MainWindow, "Error loading config.ini.\nSet to fullscreen instead?", 0, MB_YESNO | MB_TASKMODAL); if(SetToFullscreen == IDYES) { SetFullscreen(*Controls.CurSelection); } } } else { SetFullscreen(*Controls.CurSelection); } } PostQuitMessage(0); } else if(Ctrl == Controls.ButtonCancel) { PostQuitMessage(0); } else { Result = DefWindowProcA(MainWindow, Message, wParam, lParam); } } } break; default: Result = DefWindowProcA(MainWindow, Message, wParam, lParam); } return Result; }