mapy bitowe Device-Dependent
Mapy bitowe zależne od urządzenia (DDB) są opisywane przy użyciu jednej struktury, struktury BITMAP. Elementy członkowskie tej struktury określają szerokość i wysokość prostokątnego regionu w pikselach; szerokość tablicy, która mapuje wpisy z palety urządzeń na piksele; i format koloru urządzenia, w odniesieniu do płaszczyzn kolorów i bitów na piksel. Aplikacja może pobrać format kolorów urządzenia, wywołując funkcję GetDeviceCaps i określając odpowiednie stałe. Należy pamiętać, że baza danych DDB nie zawiera wartości kolorów; zamiast tego kolory są w formacie zależnym od urządzenia. Aby uzyskać więcej informacji, zobacz kolor w mapach bitowych. Ponieważ każde urządzenie może mieć własny zestaw kolorów, baza danych DDB utworzona dla jednego urządzenia może nie być wyświetlana na innym urządzeniu.
Aby używać bazy danych DDB w kontekście urządzenia, musi mieć organizację kolorów tego kontekstu urządzenia. W związku z tym baza danych DDB jest często nazywana zgodną z mapą bitową i zwykle ma lepszą wydajność GDI niż DIB. Na przykład aby utworzyć mapę bitową dla pamięci wideo, najlepiej użyć zgodnej mapy bitowej z tym samym formatem koloru co podstawowy wyświetlacz. W pamięci wideo renderowanie do mapy bitowej i wyświetlanie jej na ekranie jest znacznie szybsze niż z powierzchni pamięci systemowej lub bezpośrednio z DIB.
Oprócz umożliwienia lepszej wydajności GDI zgodne mapy bitowe są używane do przechwytywania obrazów (zobacz Przechwytywanie obrazu ) i do tworzenia map bitowych w czasie wykonywania dla menu zobacz "Tworzenie mapy bitowej" w (zobacz Using Menu ).
Aby przenieść mapę bitową między urządzeniami z inną organizacją kolorów, użyj GetDIBits, aby przekonwertować zgodną mapę bitową na DIB i wywołać SetDIBits lub StretchDIBits, aby wyświetlić DIB na drugie urządzenie.
Istnieją dwa typy DDB: odrzucalne i niedyskardowalne. Odrzucona baza danych DDB to mapa bitowa odrzucana przez system, jeśli mapa bitowa nie jest zaznaczona na kontrolerze domeny i jeśli pamięć systemowa jest niska. Funkcja CreateDiscardableBitmap tworzy odrzucalne mapy bitowe. Funkcje CreateBitmap, CreateCompatibleBitmapi CreateBitmapIndirect tworzą niedyskardowalne mapy bitowe.
Aplikacja może utworzyć bazę danych DDB na podstawie diB, inicjując wymagane struktury i wywołując funkcję CreateDIBitmap. Określenie CBM_INIT w wywołaniu metody CreateDIBitmap jest równoważne wywołaniu funkcjiCreateCompatibleBitmap w celu utworzenia bazy danych DDB w formacie urządzenia, a następnie wywołanie funkcji SetDIBits w celu przetłumaczenia bitów DIB na bazę danych DDB. Aby określić, czy urządzenie obsługuje funkcję SetDIBits, wywołaj funkcję GetDeviceCaps, określając RC_DI_BITMAP jako flagę RASTERCAPS.