다음을 통해 공유


DEVINFO 구조체(winddi.h)

DEVINFO 구조체는 드라이버 및 해당 프라이빗 PDEV 에 대한 정보를 그래픽 엔진에 제공합니다.

구문

typedef struct tagDEVINFO {
  FLONG    flGraphicsCaps;
  LOGFONTW lfDefaultFont;
  LOGFONTW lfAnsiVarFont;
  LOGFONTW lfAnsiFixFont;
  ULONG    cFonts;
  ULONG    iDitherFormat;
  USHORT   cxDither;
  USHORT   cyDither;
  HPALETTE hpalDefault;
  FLONG    flGraphicsCaps2;
} DEVINFO, *PDEVINFO;

멤버

flGraphicsCaps

그래픽 드라이버 및/또는 해당 하드웨어의 그래픽 기능을 설명하는 플래그 집합입니다. 이러한 플래그는 다음 표에 정의되어 있습니다.

플래그 정의
GCAPS_ALTERNATEFILL 번갈아 채우기를 처리합니다.
GCAPS_ARBRUSHOPAQUE 텍스트 불투명 사각형(배경색)에 대해 임의의 브러시를 지원합니다.
GCAPS_ARBRUSHTEXT 텍스트 전경색에 대해 임의의 브러시를 지원합니다.
GCAPS_ASYNCCHANGE 이 플래그는 사용되지 않습니다. 레거시 드라이버에서 이 플래그는 디바이스에서 다른 그리기가 발생하는 동안 드라이버가 하드웨어에서 포인터 모양을 변경할 수 있음을 나타냅니다.
GCAPS_ASYNCMOVE 드라이버가 디바이스에서 다른 그리기가 발생하는 동안 하드웨어에서 포인터를 이동할 수 있습니다.
GCAPS_BEZIERS 베지어 곡선을 처리합니다.
GCAPS_CMYKCOLOR 드라이버는 CYMK 색 공간을 지원합니다.
GCAPS_COLOR_DITHER PDEV 호환 화면에 대한 색 디더링을 처리합니다.
GCAPS_DIRECTDRAW 이 플래그는 사용되지 않습니다.
GCAPS_DITHERONREALIZE GDI가 RGB를 사용하여 DrvRealizeBrush 를 호출하여 직접 디더링할 수 있도록 지정합니다.
GCAPS_DONTJOURNAL 이 프린터 드라이버에 메타파일 인쇄를 허용하지 않습니다. 이는 프린터 DC에만 유효하며 일반적으로 인쇄할 때 애플리케이션으로의 반환 시간이 느려집니다.
GCAPS_FONT_RASTERIZER 디바이스 하드웨어는 TrueType 글꼴을 래스터화할 수 있습니다.
GCAPS_FORCEDITHER 모든 기하학적 펜에서 디더링을 허용합니다.
GCAPS_GEOMETRICWIDE 기하학적 확대를 처리합니다.
GCAPS_GRAY16 기본적으로 앤티앨리어스된 텍스트를 처리합니다.
GCAPS_HALFTONE 하프톤 처리를 처리합니다.
GCAPS_HIGHRESTEXT 이 플래그는 사용되지 않습니다. 레거시 드라이버에서 이 플래그는 드라이버가 FIX 지점 좌표에서 STROBJ가 반환한 문자 모양 위치를 요청하고 있음을 나타냅니다.
GCAPS_HORIZSTRIKE 이 플래그는 사용되지 않습니다. 레거시 드라이버에서 이 플래그는 드라이버가 DrvTextOut에서 가로 스트라이크 아웃을 처리한다는 것을 나타냅니다.
GCAPS_ICM 드라이버 또는 프린터 하드웨어에서 색 관리 작업을 수행할 수 있음을 나타냅니다.
GCAPS_LAYERED 원격을 위한 계층 또는 미러 드라이버임을 나타냅니다. 프린터 드라이버는 계층 드라이버가 될 수 없습니다.
GCAPS_MONO_DITHER 단색 디더링을 처리합니다.
GCAPS_NO64BITMEMACCESS 이 플래그는 사용되지 않습니다.
GCAPS_NUP "N-up" 인쇄가 지원됨을 나타냅니다.
GCAPS_OPAQUERECT DrvTextOut에서 불투명 사각형을 처리합니다.
GCAPS_PALMANAGED 색상표 관리를 지원합니다.
GCAPS_PANNING GDI가 포인터를 시뮬레이션하는 경우 DrvMovePointer 를 호출하여 드라이버에 현재 커서 위치를 알려야 합니다. 이렇게 하면 드라이버가 이동 가상 디스플레이를 처리할 수 있습니다.
GCAPS_SCREENPRECISION 래스터라이저(글꼴 엔진)는 정확히 일치하지 않는 글꼴을 선택할 때 디바이스 글꼴 위에 화면(소프트) 글꼴을 선택해야 합니다.
GCAPS_VECTORFONT DrvTextOut에서 벡터 글꼴의 쓰다듬기를 처리합니다.
GCAPS_VERTSTRIKE 이 플래그는 사용되지 않습니다. 레거시 드라이버에서 이 플래그는 드라이버가 DrvTextOut에서 수직 파업을 처리했음을 나타냅니다.
GCAPS_WINDINGFILL 구불구불한 모드 채우기를 처리합니다. 자세한 내용은 경로 채우기 모드를 참조하세요.
GCAPS2_REMOTEDRIVER 디스플레이 드라이버가 원격 사용자 세션을 지원하는 데 사용됨을 나타냅니다.

lfDefaultFont

디바이스의 기본 글꼴을 지정하는 확장 논리 글꼴 구조체입니다. 이 구조에 대한 자세한 내용은 Microsoft Windows SDK 설명서의 EXTLOGFONT를 참조하세요.

lfAnsiVarFont

디바이스의 기본 가변 피치 글꼴을 지정하는 확장 논리 글꼴 구조체입니다. 이 구조체에 대한 자세한 내용은 Windows SDK 설명서의 EXTLOGFONT를 참조하세요.

lfAnsiFixFont

디바이스의 기본 고정 피치(모노스페이스) 글꼴을 지정하는 확장 논리 글꼴 구조체입니다. 이 구조체에 대한 자세한 내용은 Windows SDK 설명서의 EXTLOGFONT를 참조하세요.

cFonts

디바이스 글꼴 수를 지정합니다. GDI는 디바이스가 자체 표면에 이 수의 글꼴로 텍스트를 그릴 수 있고 드라이버가 글꼴에 대한 메트릭 정보를 제공할 수 있다고 가정합니다. 드라이버가 cFonts 를 -1로 설정하는 경우 GDI는 DrvQueryFont 호출에서 지원하는 실제 글꼴 수를 드라이버에 쿼리하는 데 글꼴이 필요할 때까지 기다립니다.

iDitherFormat

비트맵의 형식을 지정합니다. 이 매개 변수는 요청된 픽셀당 색 정보의 비트 수를 나타내며 다음 값 중 하나여야 합니다.

의미
BMF_1BPP 단색
BMF_4BPP 픽셀당 4비트
BMF_8BPP 픽셀당 8비트
BMF_16BPP 픽셀당 16비트
BMF_24BPP 픽셀당 24비트
BMF_32BPP 픽셀당 32비트
BMF_4RLE 픽셀당 4비트, 실행 길이 인코딩
BMF_8RLE 픽셀당 8비트, 인코딩된 실행 길이
BMF_JPEG JPEG 압축 이미지
BMF_PNG PNG 압축 이미지

cxDither

cyDither

디더링된 브러시의 크기를 지정합니다. 이러한 멤버가 0이 아닌 경우 디바이스는 지정된 RGB 색에 대한 디더링된 브러시를 만들 수 있습니다.

hpalDefault

디바이스의 기본 팔레트에 대한 핸들입니다. 드라이버는 EngCreatePalette를 호출하여 팔레트를 만들어야 합니다. 드라이버는 이 핸들을 GDI에 반환하여 팔레트를 디바이스와 연결합니다.

flGraphicsCaps2

디바이스 드라이버의 추가 그래픽 기능을 설명하는 플래그 집합입니다. 이러한 플래그는 다음 표에 정의되어 있습니다.

플래그 정의
GCAPS2_ALPHACURSOR 픽셀당 알파 값이 있는 포인터를 처리합니다.
GCAPS2_CHANGEGAMMARAMP 디스플레이 디바이스에는 로드 가능한 하드웨어 감마 램프가 있습니다.
GCAPS2_EXCLUDELAYERED 이것이 접근성 미러 드라이버임을 나타냅니다. 이 플래그를 설정하지 않은 미러 드라이버는 계층화된 HWND에 대한 그리기 기본 형식을 계속 받습니다. 자세한 내용은 미러 드라이버를 참조하세요.
GCAPS2_ICD_MULTIMON 작업의 사각형이 다른 디바이스와 교차하는 경우에도 드라이버가 다중몬 환경에서 DrvSetPixelFormat, DrvDescribePixelFormatDrvSwapBuffers 호출을 처리하려고 했음을 GDI에 알립니다. 하나의 디바이스만 해당 호출을 처리할 수 있는 기회가 제공됩니다. 기능을 지정하지 않고 관련된 지역이 둘 이상의 디바이스와 교차하는 경우 드라이버가 호출되지 않습니다.
GCAPS2_INCLUDEAPIBITMAPS DIB(디바이스 독립적 비트맵)에 대한 그리기 호출이 이루어지면 드라이버에 미러 접근성이 호출됩니다. 자세한 내용은 미러 드라이버를 참조하세요.
GCAPS2_JPEGSRC 디바이스는 JPEG 압축 이미지(즉, BMF_JPEG SURFOBJ 구조에 설정된 이미지)를 수락할 수 있습니다.
GCAPS2_MOUSETRAILS 드라이버가 마우스 트레일을 지원한다는 것을 나타냅니다(짧은 시간 동안 마우스 위치를 보여 주는 커서 이미지 연속). 드라이버는 DrvSetPointerShape 함수의 fl 매개 변수에서 GDI가 보내는 값을 처리할 수 있습니다. 드라이버는 SPS_LENGTHMASK 및 SPS_FREQMASK 마스크를 사용하여 마우스 추적의 길이 및 빈도 값을 가져와야 합니다. 이러한 마스크에 대한 자세한 내용은 DrvSetPointerShape 를 참조하세요.
GCAPS2_PNGSRC 디바이스는 PNG 압축 이미지(즉, BMF_PNG SURFOBJ 구조에 설정된 이미지)를 허용할 수 있습니다.
GCAPS2_SYNCFLUSH 드라이버는 일괄 처리된 그래픽 DDI 호출에 대한 프로그래밍 방식 기반 플러시 메커니즘을 지원합니다. DrvSynchronizeSurface 는 GDI가 드라이버에 의해 일괄 처리되는 모든 그리기를 플러시해야 할 때마다 호출됩니다.
GCAPS2_SYNCTIMER 드라이버는 일괄 처리된 그래픽 DDI 호출에 대한 타이머 기반 플러시 메커니즘을 지원합니다. DrvSynchronizeSurface 는 GDI에 의해 결정된 타이머 간격에 따라 주기적으로 호출됩니다.

설명

드라이버의 DrvEnablePDEV 함수는 DEVINFO 구조를 채웁니다. 드라이버는 관련 멤버만 설정해야 합니다. 이 구조체는 DrvEnablePDEV 가 호출되기 전에 GDI에서 0으로 초기화됩니다. 애플리케이션은 이 구조에 직접 액세스할 수 없습니다.

드라이버가 flGraphicsCaps2에서 GCAPS2_JPEGSRC 또는 GCAPS2_PNGSRC 설정하는 경우 다음 규칙이 적용됩니다.

  • 드라이버는 DrvQueryDeviceSupport 함수를 제공해야 합니다.
  • 입력으로 SURFOBJ 구조를 수신하는 모든 드라이버 정의 그래픽 DDI 함수는 압축된 형식을 지원하거나 오류 코드를 반환할 수 있어야 합니다. 프린터 드라이버의 경우 압축된 형식을 지원하려면 드라이버가 다음 작업 중 하나를 수행할 수 있어야 합니다.
    • 인쇄 디바이스가 JPEG/PNG 압축 형식을 처리할 수 있는 경우 프린터 드라이버는 압축된 형식을 PDL(페이지 설명 언어) 출력으로 전달해야 합니다.
    • 인쇄 디바이스가 JPEG/PNG 압축 형식을 처리할 수 없는 경우 프린터 드라이버는 먼저 압축된 JPEG/PNG 형식을 인쇄 디바이스에서 처리할 수 있는 다른 이미지 형식으로 변환해야 합니다. 그런 다음 프린터 드라이버는 드라이버의 PDL 출력에서 이미지 정보를 사용할 수 있도록 할 수 있습니다.
      참고 JPEG/PNG에서 비트맵 형식으로 변환하는 경우 프린터 드라이버는 GDI 함수를 사용하지 않아야 합니다. 예를 들어 드라이버는 WIC(Windows 이미징 구성 요소) API를 대신 사용하여 변환을 수행할 수 있습니다.
       
  • 드라이버는 압축된 형식을 사용하는 이미지에 대해 복잡한 클립 영역을 처리할 수 있어야 합니다.
  • ROP4 입력 인수를 수신하는 드라이버 정의 그래픽 DDI 함수의 경우 JPEG 및 PNG 형식에는 0xCCCC만 사용됩니다.

요구 사항

요구 사항
헤더 winddi.h(Winddi.h 포함)

추가 정보

DrvEnablePDEV

DrvQueryFont

DrvRealizeBrush

DrvTextOut