filterHeight-10,
filterHeight*2-10,
void GDIDisplay::render(){   BITMAPINFO *bi = (BITMAPINFO *)info;  bi->bmiHeader.biWidth = filterWidth+1;  bi->bmiHeader.biHeight = -filterHeight;  int pitch = filterWidth * 2 + 4;  if(systemColorDepth == 24)    pitch = filterWidth * 3;  else if(systemColorDepth == 32)    pitch = filterWidth * 4 + 4;    if(filterFunction) {    bi->bmiHeader.biWidth = filterWidth * 2;    bi->bmiHeader.biHeight = -filterHeight * 2;        if(systemColorDepth == 16)      (*filterFunction)(pix+pitch,                        pitch,                        (u8*)delta,                        (u8*)filterData,                        filterWidth*2*2,                        filterWidth,                        filterHeight);    else      (*filterFunction)(pix+pitch,                        pitch,                        (u8*)delta,                        (u8*)filterData,                        filterWidth*4*2,                        filterWidth,                        filterHeight);  }  if(videoOption > VIDEO_4X && showSpeed) {    char buffer[30];    if(showSpeed == 1)      sprintf(buffer, "%3d%%", systemSpeed);    else      sprintf(buffer, "%3d%%(%d, %d fps)", systemSpeed,              systemFrameSkip,              showRenderedFrames);    if(filterFunction) {      int p = filterWidth * 4;      if(systemColorDepth == 24)        p = filterWidth * 6;      else if(systemColorDepth == 32)        p = filterWidth * 8;      if(showSpeedTransparent)        fontDisplayStringTransp((u8*)filterData,                                p,                                10,                                filterHeight*2-10,                                buffer);      else        fontDisplayString((u8*)filterData,                          p,                          10,                          filterHeight-10,                          buffer);          } else {      if(showSpeedTransparent)        fontDisplayStringTransp((u8*)pix,                                pitch,                                10,                                filterHeight-10,                                buffer);      else        fontDisplayString((u8*)pix,                          pitch,                          10,                          filterHeight-10,                          buffer);    }  }  POINT p;  p.x = dest.left;  p.y = dest.top;  ScreenToClient(hWindow, &p);  POINT p2;  p2.x = dest.right;  p2.y = dest.bottom;  ScreenToClient(hWindow, &p2);    HDC dc = GetDC(hWindow);  StretchDIBits(dc,                p.x,                p.y,                p2.x - p.x,                p2.y - p.y,                0,                0,                rect.right,                rect.bottom,                filterFunction ? filterData : pix+pitch,                bi,                DIB_RGB_COLORS,                SRCCOPY);  if(screenMessage) {    if(((GetTickCount() - screenMessageTime) < 3000) &&       !disableStatusMessage) {      SetTextColor(dc, RGB(255,0,0));      SetBkMode(dc,TRANSPARENT);      TextOut(dc, p.x+10, p2.y - 20, screenMessageBuffer,              strlen(screenMessageBuffer));    } else {      screenMessage = false;    }  }    ReleaseDC(hWindow, dc);}