Device-Dependent mapas de bits

Los mapas de bits dependientes del dispositivo (DDB) se describen mediante una única estructura, la estructura BITMAP . Los miembros de esta estructura especifican el ancho y alto de una región rectangular, en píxeles; el ancho de la matriz que asigna entradas de la paleta de dispositivos a píxeles; y el formato de color del dispositivo, en términos de planos de color y bits por píxel. Una aplicación puede recuperar el formato de color de un dispositivo llamando a la función GetDeviceCaps y especificando las constantes adecuadas. Tenga en cuenta que un DDB no contiene valores de color; en su lugar, los colores están en un formato dependiente del dispositivo. Para obtener más información, vea Color en mapas de bits. Dado que cada dispositivo puede tener su propio conjunto de colores, es posible que una DDB creada para un dispositivo no se muestre bien en un dispositivo diferente.

Para usar una DDB en un contexto de dispositivo, debe tener la organización de color de ese contexto de dispositivo. Por lo tanto, una DDB se suele denominar mapa de bits compatible y normalmente tiene un mejor rendimiento de GDI que un DIB. Por ejemplo, para crear un mapa de bits para la memoria de vídeo, es mejor usar un mapa de bits compatible con el mismo formato de color que la pantalla principal. Una vez en memoria de vídeo, la representación en el mapa de bits y su visualización en la pantalla son significativamente más rápidas que desde una superficie de memoria del sistema o directamente desde una DIB.

Además de habilitar un mejor rendimiento de GDI, los mapas de bits compatibles se usan para capturar imágenes (consulte Captura de una imagen ) y para crear mapas de bits en tiempo de ejecución para los menús, vea "Crear el mapa de bits" en (vea Usar menús ).

Para transferir un mapa de bits entre dispositivos con una organización de colores diferente, use GetDIBits para convertir el mapa de bits compatible en una DIB y llamar a SetDIBits o StretchDIBits para mostrar la DIB en el segundo dispositivo.

Hay dos tipos de bases de datos DDB: descartables y no discardables. Una DDB descartable es un mapa de bits que el sistema descarta si el mapa de bits no está seleccionado en un controlador de dominio y si la memoria del sistema es baja. La función CreateDiscardableBitmap crea mapas de bits descartables. Las funciones CreateBitmap, CreateCompatibleBitmap y CreateBitmapIndirect crean mapas de bits no discardables.

Una aplicación puede crear una DDB a partir de una DIB inicializando las estructuras necesarias y llamando a la función CreateDIBitmap . Especificar CBM_INIT en la llamada a CreateDIBitmap equivale a llamar a la función CreateCompatibleBitmap para crear una DDB en el formato del dispositivo y, a continuación, llamar a la función SetDIBits para traducir los bits DIB a DDB. Para determinar si un dispositivo admite la función SetDIBits , llame a la función GetDeviceCaps y especifique RC_DI_BITMAP como la marca RASTERCAPS.