/////////////////////////////////////////////////////////////
// CINEMA 4D SDK                                           //
/////////////////////////////////////////////////////////////
// (c) 1989-2004 MAXON Computer GmbH, all rights reserved  //
/////////////////////////////////////////////////////////////

#ifndef __X4D_SCALE_DEF__
#define __X4D_SCALE_DEF__

#include	"miniblt.h"

typedef ULONG	*MERGE_LINES( LONG line_cnt, LONG dst_cnt,
														LONG src_bits, LONG src_bit_offset, LONG src_line_offset, LONG dst_length,
														ULONG *src, ULONG *dst );

typedef void	SCALE_LINE( LONG e, LONG sw, LONG dw, LONG cnt,
													LONG bits, LONG src_bit_offset, LONG dst_bit_offset,
													ULONG *src, ULONG *dst );


struct SCALE_PARAM
{
	const BLT_MEM	*bfn;
	const RECT32	*src_rect;
	const RECT32	*dst_rect;

	LONG	sw;																									// soruce width
	LONG	sh;																									// source height
	
	LONG	dw;																									// destination width
	LONG	dh;																									// destination height

	BM_TILE	src_bm;

	MERGE_LINES	*merge_lines;
	SCALE_LINE	*scale_line;
	BLT_PARAM		blt_p;																				// bitblt context
};

#endif