Bink SDK 1.5v

# BINK_COPY_FLAGS

The basic type BINK_COPY_FLAGS describes the destination buffer type as well as special or unusual ways of converting Bink's internal YUV data.

#### Fundamental Values

Value | Description
--- | ---
BINKSURFACE24 | 24-bit RGB data (BGRBGR, etc). This surface type isn't supported on MacOS, Xbox, or GameCube.
BINKSURFACE32 | 32-bit native RGB data (on x86: BGRxBGRx, etc; on PPC: xRGBxRGB, etc). On GameCube, this format is swizzled.
BINKSURFACE32A | 32-bit native RGB data with alpha (On Win32: BGRABGRA, etc). On GameCube, this format is swizzled.
BINKSURFACE24R | 24-bit reversed RGB data (RGBRGB, etc). This surface type isn't supported on MacOS, Xbox, or GameCube.
BINKSURFACE32R | 32-bit reversed RGB data (RGBxRGBx, etc). This surface type isn't supported on Xbox, or GameCube.
BINKSURFACE32RA | 32-bit reversed RGB data with alpha (RGBARGBA, etc). In OpenGL, this is GL_RGBA. This surface type isn't supported on Xbox, or GameCube.
BINKSURFACE555 | 16-bit 555 RGB high-color surface. On GameCube, this format is swizzled.
BINKSURFACE565 | 16-bit 565 RGB high-color surface. On GameCube, this format is swizzled.
BINKSURFACE655 | 16-bit 655 RGB high-color surface. On GameCube, this format is swizzled.
BINKSURFACE664 | 16-bit 664 RGB high-color surface. On GameCube, this format is swizzled.
BINKSURFACE4444 | 16-bit 4444 RGB high-color surface with alpha. On GameCube, this is actually 4443 format (3-bits of alpha) and is swizzled.
BINKSURFACE5551 | 16-bit 5551 RGB high-color surface with one bit alpha. On GameCube, this format is swizzled.
BINKSURFACEYUY2 | YUY2 format surface (YUYVYUYV, etc.) - effective 16-bits per pixel. This surface type isn't supported on MacOS. On GameCube, this format is not swizzled, so you can use it to copy directly to the video back buffer.
BINKSURFACEUYVY | UYVY format surface (UYVYUYVY, etc.) - effective 16-bits per pixel. This surface type isn't supported on MacOS, Xbox, or GameCube.
BINKSURFACEYV12 | YV12 format planar surface (complete Y plane, complete U plane, complete V plane) - effective 12-bits per pixel (Bink's native internal format). This surface type isn't supported on Xbox.
BINKCOPYALL | Copy all of the pixels to the destination buffer, not just the pixels that changed. Normally, Bink will try to copy just the pixels that changed into the destination buffer - this flag causes Bink to re-copy every pixel over to the destination buffer.
BINKGRAYSCALE | This flag tells Bink that you want to convert the pixels in grayscale mode. Grayscale mode is much faster in blitting, but it can be even faster when we skip the decompression. Therefore, you should usually use this flag in BinkOpen instead of BinkCopyToBuffer, so you get the benefit of the faster decompression too. If you compressed the Bink file in grayscale mode, then this flag will automatically be set.
BINKNOSKIP | Bink will skip the copy step if the video begins to fall behind the audio. Bink won't skip copying at all if the Bink file contains no audio, or if you use this flag. This flag is useful when you want the video quality to have precedence over the sound quality (good for cartoon-style animations).
BINKCOPY2XH | Use this flag to tell Bink to convert the video in 2x height doubled mode. This will cause each line to be duplicated (which will double the height). If the video was compressed in 2x height doubled mode with the Bink compressor, then this flag will automatically be set - you can override it with any of the other COPY flags.
BINKCOPY2XHI | Use this flag to tell Bink to convert the video in 2x height interlaced mode. This will cause the video to be expanded to every other scanline (which will double the height). If the video was compressed in interlaced mode with the Bink compressor, then this flag will automatically be set - you can override it with any of the other COPY flags.
BINKCOPY2XW | Use this flag to tell Bink to convert the video in 2x width doubled mode. This will cause each pixel to be duplicated (which will double the width). If the video was compressed in 2x width doubled mode with the Bink compressor, then this flag will automatically be set - you can override it with any of the other COPY flags.
BINKCOPY2XWH | Use this flag to tell Bink to convert the video in 2x width and height doubled mode. This will cause each line and each pixel to be duplicated (which will double both the width and height). If the video was compressed in 2x width and height doubled mode with the Bink compressor, then this flag will automatically be set - you can override it with any of the other COPY flags.
BINKCOPY2XWHI | Use this flag to tell Bink to convert the video in 2x width doubled and height interlaced mode. This will cause each pixel to be duplicated and every other scanline to be skipped (which will double both the width and height). If the video was compressed in 2x width and height interlaced mode with the Bink compressor, then this flag will automatically be set - you can override it with any of the other COPY flags.
BINKCOPY1XI | This copy flag tells Bink to convert the movie in normal 1x mode, but to only copy ever other scanline during playback. This saves half the time of a normal frame copy, so it is useful on under-powered machines.
BINKCOPYNOSCALING | Use this flag to tell Bink to convert the video without any doubling or interlacing. Use this flag to counteract the automatic effect of a video compressed in one of the interlaced or doubled modes.
BINKNOMMX | This flag tells Bink not to use MMX while when converting colorspaces. Bink runs much slower without MMX, so you will usually just want to leave this flag alone. This flag isn't supported on Xbox - MMX is always used when running on the Xbox.

#### Discussion

The copy flags passed to BinkCopyToBuffer perform two services. First, they tell Bink what kind of surface you are copying into. And second, they allow you to change the copying style and options during playback instead of just at BinkOpen time. If you are using BinkBuffers, you will usually use the bink_buf->SurfaceType for the copy_flags parameter. If you are using DirectDraw or DirectX 8, then you will usually use the value returned from BinkDDSurfaceType or BinkDX8SurfaceType.

Group: Bink API
Related Sections: Alpha Planes, Scaling
Related Functions: BinkCopyToBuffer, BinkCopyToBufferRect, BinkDDSurfaceType, BinkDX8SurfaceType, BinkGDSurfaceType, BinkLoadConverter, BinkOpen, BinkUnloadConverter
Related Basic Types: BINK_OPEN_FLAGS
Related Structures: BINKBUFFER

For technical support, e-mail Bink1@radgametools.com
© Copyright 1994-2003 RAD Game Tools, Inc. All Rights Reserved.