static void wxDrawSplashBitmap(wxDC& dc, const wxBitmap& bitmap, int WXUNUSED(x), int WXUNUSED(y)) { wxMemoryDC dcMem; #ifdef USE_PALETTE_IN_SPLASH bool hiColour = (wxDisplayDepth() >= 16) ; if (bitmap.GetPalette() && !hiColour) { dcMem.SetPalette(* bitmap.GetPalette()); } #endif // USE_PALETTE_IN_SPLASH dcMem.SelectObjectAsSource(bitmap); dc.Blit(0, 0, bitmap.GetWidth(), bitmap.GetHeight(), &dcMem, 0, 0, wxCOPY, true /* use mask */); dcMem.SelectObject(wxNullBitmap); #ifdef USE_PALETTE_IN_SPLASH if (bitmap.GetPalette() && !hiColour) { dcMem.SetPalette(wxNullPalette); } #endif // USE_PALETTE_IN_SPLASH }
wxSplashScreenWindow::wxSplashScreenWindow(const wxBitmap& bitmap, wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style): wxWindow(parent, id, pos, size, style) { m_bitmap = bitmap; #if !defined(__WXGTK__) && wxUSE_PALETTE bool hiColour = (wxDisplayDepth() >= 16) ; if (bitmap.GetPalette() && !hiColour) { SetPalette(* bitmap.GetPalette()); } #endif }
bool wxMask::Create( const wxBitmap& bitmap, int paletteIndex ) { unsigned char r,g,b; wxPalette *pal = bitmap.GetPalette(); wxCHECK_MSG( pal, FALSE, wxT("Cannot create mask from bitmap without palette") ); pal->GetRGB(paletteIndex, &r, &g, &b); return Create(bitmap, wxColour(r, g, b)); }
bool wxEffectsImpl::TileBitmap(const wxRect& rect, wxDC& dc, const wxBitmap& bitmap) { int w = bitmap.GetWidth(); int h = bitmap.GetHeight(); wxMemoryDC dcMem; #if wxUSE_PALETTE static bool hiColour = (wxDisplayDepth() >= 16) ; if (bitmap.GetPalette() && !hiColour) { dc.SetPalette(* bitmap.GetPalette()); dcMem.SetPalette(* bitmap.GetPalette()); } #endif // wxUSE_PALETTE dcMem.SelectObjectAsSource(bitmap); int i, j; for (i = rect.x; i < rect.x + rect.width; i += w) { for (j = rect.y; j < rect.y + rect.height; j+= h) dc.Blit(i, j, bitmap.GetWidth(), bitmap.GetHeight(), & dcMem, 0, 0); } dcMem.SelectObject(wxNullBitmap); #if wxUSE_PALETTE if (bitmap.GetPalette() && !hiColour) { dc.SetPalette(wxNullPalette); dcMem.SetPalette(wxNullPalette); } #endif // wxUSE_PALETTE return true; }