void Main_DrawScreen() { SDL_LockSurface(g_UkncScreen); void* pPixels = g_UkncScreen->pixels; Emulator_PrepareScreenRGB32(pPixels, ScreenView_StandardRGBColors); Screen_UpscaleScreen(pPixels, g_ScreenMode); SDL_UnlockSurface(g_UkncScreen); // Draw UKNC screen SDL_Rect src, dst, rc; src.x = src.y = dst.x = dst.y = 0; src.w = dst.w = g_ScreenWidth; src.h = dst.w = g_ScreenHeight; if (g_UkncScreenWid < g_ScreenWidth) { int scrleft = (g_ScreenWidth - g_UkncScreenWid) / 2; src.w = dst.w = g_UkncScreenWid; dst.x = scrleft; rc.x = rc.y = 0; rc.w = scrleft; rc.h = g_ScreenHeight; SDL_FillRect(g_Screen, &rc, 0); rc.x = scrleft + g_UkncScreenWid; rc.y = 0; rc.w = g_ScreenWidth - scrleft - g_UkncScreenWid; rc.h = g_ScreenHeight; SDL_FillRect(g_Screen, &rc, 0); } if (g_UkncScreenHei < g_ScreenHeight) { src.h = dst.h = g_UkncScreenHei; dst.y = (g_ScreenHeight - g_UkncScreenHei) / 2; } SDL_BlitSurface(g_UkncScreen, &src, g_Screen, &dst); //if (g_okKeyboard) // Main_DrawKeyboard(); SDL_Flip(g_Screen); }
void QScreen::paintEvent(QPaintEvent * /*event*/) { Emulator_PrepareScreenRGB32(m_image->bits(), m_mode); // Center image int cxBitmap = m_image->width(); int cyBitmap = m_image->height(); m_nImageLeft = (this->width() - cxBitmap) / 2; m_nImageTop = (this->height() - cyBitmap) / 2; QPainter painter(this); painter.drawImage(m_nImageLeft, m_nImageTop, *m_image); if (m_nImageLeft > 0) { painter.fillRect(0, 0, m_nImageLeft, this->height(), QColor(115,115,115)); painter.fillRect(m_nImageLeft + cxBitmap, 0, m_nImageLeft + 1, this->height(), QColor(115,115,115)); } if (m_nImageTop > 0) { painter.fillRect(0, 0, this->width(), m_nImageTop, QColor(115,115,115)); painter.fillRect(0, m_nImageTop + cyBitmap, this->width(), m_nImageTop + 1, QColor(115,115,115)); } }