⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 halcaps.cpp

📁 Samsung公司S3C6400芯片的BSP源码包
💻 CPP
📖 第 1 页 / 共 2 页
字号:

	// Alpha blitting capabilities.
	lpddhi->ddCaps.dwAlphaCaps =
		//DDALPHACAPS_ALPHAPIXELS |	// Supports per-pixel alpha values specified alongside with the RGB values in the pixel structure.
		//DDALPHACAPS_ALPHASURFACE |	// Unsupported.
		//DDALPHACAPS_ALPHAPALETTE |	// Unsupported.
		//DDALPHACAPS_ALPHACONSTANT |	// Unsupported.
		//DDALPHACAPS_ARGBSCALE |		// Unsupported.
		//DDALPHACAPS_SATURATE |		// Unsupported.
		//DDALPHACAPS_PREMULT |		// Supports pixel formats with premultiplied alpha values.
		//DDALPHACAPS_NONPREMULT |	// Supports pixel formats with non-premultiplied alpha values.
		//DDALPHACAPS_ALPHAFILL |		// Supports color-fill blitting using an alpha value.
		//DDALPHACAPS_ALPHANEG |		// Supports inverted-alpha pixel formats, where 0 indicates fully opaque and 255 indicates fully transparent.
		0;

	SETROPBIT(lpddhi->ddCaps.dwRops, SRCCOPY);                   // Set bits for ROPS supported
	SETROPBIT(lpddhi->ddCaps.dwRops, PATCOPY);
	SETROPBIT(lpddhi->ddCaps.dwRops, BLACKNESS);
	SETROPBIT(lpddhi->ddCaps.dwRops, WHITENESS);

	// General overlay capabilities.
	lpddhi->ddCaps.dwOverlayCaps =
		DDOVERLAYCAPS_FLIP |					// Supports surface flipping with overlays.
		DDOVERLAYCAPS_FOURCC |				// Supports FOURCC pixel formats with overlays. Use IDirectDraw::GetFourCCCodes to determine which FOURCC formats are supported.
		//DDOVERLAYCAPS_ZORDER |				// Supports changing Z order of overlays.
		//DDOVERLAYCAPS_MIRRORLEFTRIGHT |		// Supports surface mirroring in the left-to-right direction for overlays.
		//DDOVERLAYCAPS_MIRRORUPDOWN |		// Supports surface mirroring in the up-to-down direction for overlays.
		DDOVERLAYCAPS_CKEYSRC |				// Supports source color keying for overlays.
		DDOVERLAYCAPS_CKEYSRCCLRSPACE |		// Supports source color-space keying for overlays.
		DDOVERLAYCAPS_CKEYSRCCLRSPACEYUV |	// Supports source color-space keying for overlays with FOURCC pixel formats.
		DDOVERLAYCAPS_CKEYDEST |				// Supports destination color keying for overlays.
		DDOVERLAYCAPS_CKEYDESTCLRSPACE |		// Supports destination colo-space keying for overlays.
		DDOVERLAYCAPS_CKEYDESTCLRSPACEYUV |	// Supports destination color-space keying for overlays with FOURCC pixel formats.
		//DDOVERLAYCAPS_CKEYBOTH |			// Supports simultaneous source and destination color keying for overlays.
		//DDOVERLAYCAPS_ALPHADEST |			// Supports destination alpha blending for overlays.
		DDOVERLAYCAPS_ALPHASRC |				// Supports source alpha blending for overlays.
		//DDOVERLAYCAPS_ALPHADESTNEG |		// Supports inverted destination alpha blending for overlays.
		//DDOVERLAYCAPS_ALPHASRCNEG |			// Supports inverted source alpha blending for overlays.
		DDOVERLAYCAPS_ALPHACONSTANT |			// Supports constant alpha blending for overlays (specified in the DDOVERLAYFX structure).
		//DDOVERLAYCAPS_ALPHAPREMULT |		// Supports premultiplied alpha pixel formats for overlay alpha blending.
		//DDOVERLAYCAPS_ALPHANONPREMULT |		// Supports non-premultiplied alpha pixel formats for overlay alpha blending.
		//DDOVERLAYCAPS_ALPHAANDKEYDEST |		// Supports simultaneous source alpha blending with a destination color key for overlays.
		DDOVERLAYCAPS_OVERLAYSUPPORT |		// Supports overlay surfaces.
 		0;

	lpddhi->ddCaps.dwMaxVisibleOverlays = 1;			// Maximum number of visible overlays or overlay sprites.
	lpddhi->ddCaps.dwCurrVisibleOverlays = 0;			// Current number of visible overlays or overlay sprites.

	lpddhi->ddCaps.dwAlignBoundarySrc = 8;				// Source rectangle alignment, in pixels, for an overlay surface
	lpddhi->ddCaps.dwAlignSizeSrc = 8;					// Source rectangle size alignment, in pixels, for an overlay surface.
	lpddhi->ddCaps.dwAlignBoundaryDest = 2;			// Destination rectangle alignment, in pixels, for an overlay surface.
	lpddhi->ddCaps.dwAlignSizeDest = 8;				// Destination rectangle size alignment, in pixels, for an overlay surface.

	lpddhi->ddCaps.dwMinOverlayStretch = 250;  // 1x 1000
	lpddhi->ddCaps.dwMaxOverlayStretch = 4000;  // 1x 1000

	// Miscellaneous video capabilities.
	lpddhi->ddCaps.dwMiscCaps =
		DDMISCCAPS_READSCANLINE |				// Supports reading the current scanline being drawn.
		//DDMISCCAPS_READMONITORFREQ |		// Unsupported.
		DDMISCCAPS_READVBLANKSTATUS |			// Supports reading the current V-Blank status of the hardware.
		//DDMISCCAPS_FLIPINTERVAL |				// Supports interval flipping.
		//DDMISCCAPS_FLIPODDEVEN |				// Supports Even/Odd flipping.
		DDMISCCAPS_FLIPVSYNCWITHVBI |			// Supports V-Sync-coordinated flipping.
		//DDMISCCAPS_COLORCONTROLOVERLAY |	// Supports color controls on overlay surfaces.
		//DDMISCCAPS_COLORCONTROLPRIMARY |	// Supports color controls on primary surfaces.
		//DDMISCCAPS_GAMMACONTROLOVERLAY |	// Supports gamma controls on overlay surfaces.
		//DDMISCCAPS_GAMMACONTROLPRIMARY |	// Supports gamma controls on primary surfaces.
 		0;

	// Video port capabilities.
	//lpddhi->ddCaps.dwMinVideoStretch = 1000;	// minimum video port stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
	//lpddhi->ddCaps.dwMaxVideoStretch = 1000;	// maximum video port stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
	//lpddhi->ddCaps.dwMaxVideoPorts = 0;		// maximum number of usable video ports
	//lpddhi->ddCaps.dwCurrVideoPorts = 0;		// current number of video ports used

#if	0	// TODO:
	//---------------------------------------------------------
	// Capabilities that are supported in software emulation by the driver.
	//---------------------------------------------------------
	lpddhi->ddHelCaps.dwSize = sizeof(DDCAPS);	// size of the DDDRIVERCAPS structure

	// Surface capabilities
	lpddhi->ddHelCaps.dwVidMemTotal = g_nVideoMemorySize;	// total amount of video memory
	lpddhi->ddHelCaps.dwVidMemFree = g_nVideoMemorySize;	// amount of free video memory
	lpddhi->ddHelCaps.dwVidMemStride = 0;					// This value is 0 if the stride is linear.

	// Capabilities of the surface.
	lpddhi->ddHelCaps.ddsCaps.dwCaps =
		//DDSCAPS_ALPHA |				// Indicates that this surface contains alpha-only information.
		DDSCAPS_BACKBUFFER |			// Indicates that this surface is the back buffer of a surface flipping structure.
		// DDSCAPS_DYNAMIC |			// Unsupported.
		DDSCAPS_FLIP |					// Indicates that this surface is a part of a surface flipping structure.
		DDSCAPS_FRONTBUFFER |			// Indicates that this surface is the front buffer of a surface flipping structure.
		//DDSCAPS_NOTUSERLOCKABLE |	// Unsupported.
		DDSCAPS_OVERLAY |				// Indicates that this surface is an overlay.
		//DDSCAPS_PALETTE |				// Not supported.
		DDSCAPS_PRIMARYSURFACE |		// Indicates the surface is the primary surface.
		//DDSCAPS_READONLY |			// Indicates that only read access is permitted to the surface. When locking the surface with IDirectDrawSurface::Lock, the DDLOCK_READONLY flag must be specified.
		DDSCAPS_SYSTEMMEMORY |		// Indicates that this surface memory was allocated in system memory.
		DDSCAPS_VIDEOMEMORY |			// Indicates that this surface exists in display memory.
		//DDSCAPS_WRITEONLY |			// Indicates that only write access is permitted to the surface.
		0;

	lpddhi->ddHelCaps.dwNumFourCCCodes = MAX_FOURCC;	// number of four cc codes

	// Palette capabilities.
	lpddhi->ddHelCaps.dwPalCaps =
		//DDPCAPS_ALPHA |				// Supports palettes that include an alpha component. For alpha-capable palettes, the peFlags member of for each PALETTEENTRY structure the palette contains is to be interpreted as a single 8-bit alpha value (in addition to the color data in the peRed, peGreen, and peBlue members). A palette created with this flag can only be attached to a texture surface.
		//DDPCAPS_PRIMARYSURFACE |		// Indicates that the palette is attached to the primary surface. Changing the palette has an immediate effect on the display unless the DDPCAPS_VSYNC capability is specified and supported.
		0;

	// Hardware blitting capabilities
	//

	// Driver specific blitting capabilities.
	lpddhi->ddHelCaps.dwBltCaps =
		//DDBLTCAPS_READSYSMEM |		// Supports blitting from system memory.
		//DDBLTCAPS_WRITESYSMEM |		// Supports blitting to system memory.
		//DDBLTCAPS_FOURCCTORGB |		// Supports blitting from a surface with a FOURCC pixel format to a surface with an RGB pixel format.
		//DDBLTCAPS_COPYFOURCC |		// Supports blitting from a surface with a FOURCC pixel format to another surface with the same pixel format, or to the same surface. DDBLTCAPS_FILLFOURCC Supports color-fill blitting to a surface with a FOURCC pixel format.
		0;

	// Color key capabilities
	lpddhi->ddHelCaps.dwCKeyCaps =
		//DDCKEYCAPS_BOTHBLT |					// Supports transparent blitting with for both source and destination surfaces.
		//DDCKEYCAPS_DESTBLT |					// Supports transparent blitting with a color key that identifies the replaceable bits of the destination surface for RGB colors.
		//DDCKEYCAPS_DESTBLTCLRSPACE |		// Supports transparent blitting with a color space that identifies the replaceable bits of the destination surface for RGB colors.
		//DDCKEYCAPS_DESTBLTCLRSPACEYUv |		// Supports transparent blitting with a color space that identifies the replaceable bits of the destination surface for YUV colors.
		//DDCKEYCAPS_SRCBLT |					// Supports transparent blitting using the color key for the source with this surface for RGB colors.
		//DDCKEYCAPS_SRCBLTCLRSPACE |			// Supports transparent blitting using a color space for the source with this surface for RGB colors.
		//DDCKEYCAPS_SRCBLTCLRSPACEYUV |		// Supports transparent blitting using a color space for the source with this surface for YUV colors.
 		0;

	// Alpha blitting capabilities.
	lpddhi->ddHelCaps.dwAlphaCaps =
		//DDALPHACAPS_ALPHAPIXELS |	// Supports per-pixel alpha values specified alongside with the RGB values in the pixel structure.
		//DDALPHACAPS_ALPHASURFACE |	// Unsupported.
		//DDALPHACAPS_ALPHAPALETTE |	// Unsupported.
		//DDALPHACAPS_ALPHACONSTANT |	// Unsupported.
		//DDALPHACAPS_ARGBSCALE |		// Unsupported.
		//DDALPHACAPS_SATURATE |		// Unsupported.
		//DDALPHACAPS_PREMULT |		// Supports pixel formats with premultiplied alpha values.
		//DDALPHACAPS_NONPREMULT |	// Supports pixel formats with non-premultiplied alpha values.
		//DDALPHACAPS_ALPHAFILL |		// Supports color-fill blitting using an alpha value.
		//DDALPHACAPS_ALPHANEG |		// Supports inverted-alpha pixel formats, where 0 indicates fully opaque and 255 indicates fully transparent.
		0;

	SETROPBIT(lpddhi->ddHelCaps.dwRops,SRCCOPY);                   // Set bits for ROPS supported
	SETROPBIT(lpddhi->ddHelCaps.dwRops,PATCOPY);
	SETROPBIT(lpddhi->ddHelCaps.dwRops,BLACKNESS);
	SETROPBIT(lpddhi->ddHelCaps.dwRops,WHITENESS);

	// General overlay capabilities.
	lpddhi->ddHelCaps.dwOverlayCaps =
		DDOVERLAYCAPS_FLIP |					// Supports surface flipping with overlays.
		DDOVERLAYCAPS_FOURCC |				// Supports FOURCC pixel formats with overlays. Use IDirectDraw::GetFourCCCodes to determine which FOURCC formats are supported.
		//DDOVERLAYCAPS_ZORDER |				// Supports changing Z order of overlays.
		//DDOVERLAYCAPS_MIRRORLEFTRIGHT |		// Supports surface mirroring in the left-to-right direction for overlays.
		//DDOVERLAYCAPS_MIRRORUPDOWN |		// Supports surface mirroring in the up-to-down direction for overlays.
		DDOVERLAYCAPS_CKEYSRC |				// Supports source color keying for overlays.
		DDOVERLAYCAPS_CKEYSRCCLRSPACE |		// Supports source color-space keying for overlays.
		DDOVERLAYCAPS_CKEYSRCCLRSPACEYUV |	// Supports source color-space keying for overlays with FOURCC pixel formats.
		DDOVERLAYCAPS_CKEYDEST |				// Supports destination color keying for overlays.
		DDOVERLAYCAPS_CKEYDESTCLRSPACE |		// Supports destination colo-space keying for overlays.
		DDOVERLAYCAPS_CKEYDESTCLRSPACEYUV |	// Supports destination color-space keying for overlays with FOURCC pixel formats.
		//DDOVERLAYCAPS_CKEYBOTH |			// Supports simultaneous source and destination color keying for overlays.
		//DDOVERLAYCAPS_ALPHADEST |			// Supports destination alpha blending for overlays.
		DDOVERLAYCAPS_ALPHASRC |				// Supports source alpha blending for overlays.
		//DDOVERLAYCAPS_ALPHADESTNEG |		// Supports inverted destination alpha blending for overlays.
		//DDOVERLAYCAPS_ALPHASRCNEG |			// Supports inverted source alpha blending for overlays.
		DDOVERLAYCAPS_ALPHACONSTANT |			// Supports constant alpha blending for overlays (specified in the DDOVERLAYFX structure).
		//DDOVERLAYCAPS_ALPHAPREMULT |		// Supports premultiplied alpha pixel formats for overlay alpha blending.
		//DDOVERLAYCAPS_ALPHANONPREMULT |		// Supports non-premultiplied alpha pixel formats for overlay alpha blending.
		//DDOVERLAYCAPS_ALPHAANDKEYDEST |		// Supports simultaneous source alpha blending with a destination color key for overlays.
		DDOVERLAYCAPS_OVERLAYSUPPORT |		// Supports overlay surfaces.
 		0;

	lpddhi->ddHelCaps.dwMaxVisibleOverlays = 1;			// Maximum number of visible overlays or overlay sprites.
	lpddhi->ddHelCaps.dwCurrVisibleOverlays = 0;			// Current number of visible overlays or overlay sprites.

	lpddhi->ddHelCaps.dwAlignBoundarySrc = 4;				// Source rectangle alignment, in pixels, for an overlay surface
	lpddhi->ddHelCaps.dwAlignSizeSrc = 4;					// Source rectangle size alignment, in pixels, for an overlay surface.
	lpddhi->ddHelCaps.dwAlignBoundaryDest = 4;			// Destination rectangle alignment, in pixels, for an overlay surface.
	lpddhi->ddHelCaps.dwAlignSizeDest = 4;				// Destination rectangle size alignment, in pixels, for an overlay surface.

	lpddhi->ddHelCaps.dwMinOverlayStretch = 1000;  // 1x 1000
	lpddhi->ddHelCaps.dwMaxOverlayStretch = 1000;  // 1x 1000

	// Miscellaneous video capabilities.
	lpddhi->ddHelCaps.dwMiscCaps =
		DDMISCCAPS_READSCANLINE |				// Supports reading the current scanline being drawn.
		//DDMISCCAPS_READMONITORFREQ |		// Unsupported.
		DDMISCCAPS_READVBLANKSTATUS |			// Supports reading the current V-Blank status of the hardware.
		//DDMISCCAPS_FLIPINTERVAL |				// Supports interval flipping.
		//DDMISCCAPS_FLIPODDEVEN |				// Supports Even/Odd flipping.
		DDMISCCAPS_FLIPVSYNCWITHVBI |			// Supports V-Sync-coordinated flipping.
		//DDMISCCAPS_COLORCONTROLOVERLAY |	// Supports color controls on overlay surfaces.
		//DDMISCCAPS_COLORCONTROLPRIMARY |	// Supports color controls on primary surfaces.
		//DDMISCCAPS_GAMMACONTROLOVERLAY |	// Supports gamma controls on overlay surfaces.
		//DDMISCCAPS_GAMMACONTROLPRIMARY |	// Supports gamma controls on primary surfaces.
 		0;

	// Video port capabilities.
	lpddhi->ddHelCaps.dwMinVideoStretch = 1000;	// minimum video port stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
	lpddhi->ddHelCaps.dwMaxVideoStretch = 1000;	// maximum video port stretch factor multiplied by 1000, eg 1000 == 1.0, 1300 == 1.3
	lpddhi->ddHelCaps.dwMaxVideoPorts = 0;		// maximum number of usable video ports
	lpddhi->ddHelCaps.dwCurrVideoPorts = 0;		// current number of video ports used
#endif

	DDHAL_MSG((_T("[DDHAL] --buildDDHALInfo()\r\n")));
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -