summaryrefslogtreecommitdiffstats
path: root/bltsville/bltsville/include/bltsville.h
diff options
context:
space:
mode:
Diffstat (limited to 'bltsville/bltsville/include/bltsville.h')
-rw-r--r--bltsville/bltsville/include/bltsville.h602
1 files changed, 0 insertions, 602 deletions
diff --git a/bltsville/bltsville/include/bltsville.h b/bltsville/bltsville/include/bltsville.h
deleted file mode 100644
index 632628e..0000000
--- a/bltsville/bltsville/include/bltsville.h
+++ /dev/null
@@ -1,602 +0,0 @@
-/*
- * bltsville.h
- *
- * Copyright (C) 2011 Texas Instruments, Inc.
- *
- * This file is part of BLTsville, an open application programming interface
- * (API) for accessing 2-D software or hardware implementations.
- *
- * This work is licensed under the Creative Commons Attribution-NoDerivs 3.0
- * Unported License. To view a copy of this license, visit
- * http://creativecommons.org/licenses/by-nd/3.0/ or send a letter to
- * Creative Commons, 444 Castro Street, Suite 900, Mountain View, California,
- * 94041, USA.
- */
-
-#ifndef BLTSVILLE_H
-#define BLTSVILLE_H
-
-#include "ocd.h"
-#include "bverror.h"
-#include "bvblend.h"
-#include "bvfilter.h"
-#include "bvbuffdesc.h"
-#include "bvcache.h"
-#include "bventry.h"
-#include "bvsurfgeom.h"
-
-/*
- * bvrect - This structure is used to specify rectangles in BLTsville.
- */
-struct bvrect {
- int left;
- int top;
- unsigned int width;
- unsigned int height;
-};
-
-
-/*
- * BVFLAG_* - These define the type of BLT to be performed and are placed in
- * the bvparams.flags element.
- */
-#define BVFLAG_OP_SHIFT 0
-#define BVFLAG_OP_MASK (0xF << BVFLAG_OP_SHIFT)
-
-/* 0 reserved */
-#define BVFLAG_ROP (0x1 << BVFLAG_OP_SHIFT) /* ROP4 spec'd in rop */
-#define BVFLAG_BLEND (0x2 << BVFLAG_OP_SHIFT) /* blend spec'd in blend */
-/* 3 reserved */
-#define BVFLAG_FILTER (0x4 << BVFLAG_OP_SHIFT) /* filter spec'd in filter */
-/* 5-F reserved */
-
-#define BVFLAG_KEY_SRC 0x00000010 /* source color key - value spec'd
- by pcolorkey; Mutually exclusive
- with BVFLAG_KEY_DST */
-#define BVFLAG_KEY_DST 0x00000020 /* dest color key - value spec'd
- by pcolorkey; Mutually exclusive
- with BVFLAG_KEY_SRC */
-#define BVFLAG_CLIP 0x00000040 /* clipping rectangle spec'd by
- cliprect */
-#define BVFLAG_SRCMASK 0x00000080 /* when scaling a masked copy, mask
- at the source instead of the
- (default) destination */
-
-#define BVFLAG_ASYNC 0x00000100 /* call should return once queued */
-
-#define BVFLAG_TILE_SRC1 0x00000200 /* source 1 is tiled */
-#define BVFLAG_TILE_SRC2 0x00000400 /* source 2 is tiled */
-#define BVFLAG_TILE_MASK 0x00000800 /* mask is tiled */
-
-
-#define BVFLAG_BATCH_SHIFT 12
-#define BVFLAG_BATCH_MASK (3 << BVFLAG_BATCH_SHIFT)
-
-#define BVFLAG_BATCH_NONE (0 << BVFLAG_BATCH_SHIFT) /* not batched */
-#define BVFLAG_BATCH_BEGIN (1 << BVFLAG_BATCH_SHIFT) /* begin batch */
-#define BVFLAG_BATCH_CONTINUE (2 << BVFLAG_BATCH_SHIFT) /* continue batch */
-#define BVFLAG_BATCH_END (3 << BVFLAG_BATCH_SHIFT) /* end batch */
-
-
-#define BVFLAG_HORZ_FLIP_SRC1 0x00004000 /* flip src1 horizontally */
-#define BVFLAG_VERT_FLIP_SRC1 0x00008000 /* flip src1 vertically */
-#define BVFLAG_HORZ_FLIP_SRC2 0x00010000 /* flip src2 horizontally */
-#define BVFLAG_VERT_FLIP_SRC2 0x00020000 /* flip src2 vertically */
-#define BVFLAG_HORZ_FLIP_MASK 0x00040000 /* flip mask horizontally */
-#define BVFLAG_VERT_FLIP_MASK 0x00080000 /* flip mask vertically */
-
-
-#define BVFLAG_SCALE_RETURN 0x00100000 /* return scale type used */
-#define BVFLAG_DITHER_RETURN 0x00200000 /* return dither type used */
-
-
-#define BVFLAG_SRC2_AUXDSTRECT 0x00400000 /* src2auxdstrect used */
-#define BVFLAG_MASK_AUXDSTRECT 0x00800000 /* maskauxdstrect used */
-
-#define BVFLAG_TESTPARAMS_NOP 0x01000000 /* test params only - no BLT */
-/**** Bits 25-31 reserved ****/
-
-/*
- * BVIMPL_* - BLTsville implementations may be combined under managers to
- * allow clients to take advantage of multiple implementations without doing
- * so explicitly. The BVIMPL_* definition are placed into the
- * bvparams.implementation member by the client to override the manager's
- * choice of implementation.
- */
-#define BVIMPL_ANY 0
-#define BVIMPL_FIRST_HW (1 << 31) /* Continues to the right */
-#define BVIMPL_FIRST_CPU (1 << 0) /* Continues to the left */
-
-
-/*
- * bvscalemode - This specifies the type of scaling to perform.
- */
-#define BVSCALEDEF_VENDOR_SHIFT 24
-#define BVSCALEDEF_VENDOR_MASK (0xFF << BVSCALEDEF_VENDOR_SHIFT)
-
-#define BVSCALEDEF_VENDOR_ALL (0 << BVSCALEDEF_VENDOR_SHIFT)
-#define BVSCALEDEF_VENDOR_TI (1 << BVSCALEDEF_VENDOR_SHIFT)
-/* 0xF0-0xFE reserved */
-#define BVSCALEDEF_VENDOR_GENERIC (0xFF << BVSCALEDEF_VENDOR_SHIFT)
-
-/***** VENDOR_GENERIC definitions *****/
-/**** Bits 23-22 indicate classification ****/
-#define BVSCALEDEF_CLASS_SHIFT 22
-#define BVSCALEDEF_IMPLICIT (0 << BVSCALEDEF_CLASS_SHIFT)
-#define BVSCALEDEF_EXPLICIT (1 << BVSCALEDEF_CLASS_SHIFT)
-/* 2-3 reserved */
-#define BVSCALEDEF_CLASS_MASK (3 << BVSCALEDEF_CLASS_SHIFT)
-
-/**** IMPLICIT definitions ****/
-/*** Bits 21-16 indicate the quality (speed) desired ***/
-#define BVSCALEDEF_QUALITY_SHIFT 16
-#define BVSCALEDEF_FASTEST (0x00 << BVSCALEDEF_QUALITY_SHIFT)
-#define BVSCALEDEF_GOOD (0x15 << BVSCALEDEF_QUALITY_SHIFT)
-#define BVSCALEDEF_BETTER (0x2A << BVSCALEDEF_QUALITY_SHIFT)
-#define BVSCALEDEF_BEST (0x3F << BVSCALEDEF_QUALITY_SHIFT)
-#define BVSCALEDEF_QUALITY_MASK (0x3F << BVSCALEDEF_QUALITY_SHIFT)
-/* Bits 12-15 are reserved */
-/*** Bits 11-8 indicate the desired technique ***/
-#define BVSCALEDEF_TECHNIQUE_SHIFT 8
-#define BVSCALEDEF_DONT_CARE (0x0 << BVSCALEDEF_TECHNIQUE_SHIFT)
-#define BVSCALEDEF_NOT_NEAREST_NEIGHBOR (0x1 << BVSCALEDEF_TECHNIQUE_SHIFT)
-#define BVSCALEDEF_POINT_SAMPLE (0x2 << BVSCALEDEF_TECHNIQUE_SHIFT)
-#define BVSCALEDEF_INTERPOLATED (0x3 << BVSCALEDEF_TECHNIQUE_SHIFT)
-#define BVSCALEDEF_TECHNIQUE_MASK (0xF << BVSCALEDEF_TECHNIQUE_SHIFT)
-/* Bits 2-7 reserved */
-/*** Bits 1-0 indicate the type of image ***/
-#define BVSCALEDEF_TYPE_SHIFT 0
-/* 0 don't know */
-#define BVSCALEDEF_PHOTO (1 << BVSCALEDEF_TYPE_SHIFT)
-#define BVSCALEDEF_DRAWING (2 << BVSCALEDEF_TYPE_SHIFT)
-/* 3 reserved */
-#define BVSCALEDEF_TYPE_MASK (3 << BVSCALEDEF_TYPE_SHIFT)
-
-/**** EXPLICIT definitions ****/
-/* Bits 16-21 reserved */
-#define BVSCALEDEF_HORZ_SHIFT 8
-#define BVSCALEDEF_HORZ_MASK (0xFF << BVSCALEDEF_HORZ_SHIFT)
-
-#define BVSCALEDEF_VERT_SHIFT 0
-#define BVSCALEDEF_VERT_MASK (0xFF << BVSCALEDEF_VERT_SHIFT)
-
-#define BVSCALEDEF_NEAREST_NEIGHBOR 0x00
-#define BVSCALEDEF_LINEAR 0x01
-#define BVSCALEDEF_CUBIC 0x02
-#define BVSCALEDEF_3_TAP 0x03
-/* 0x04 reserved */
-#define BVSCALEDEF_5_TAP 0x05
-/* 0x06 reserved */
-#define BVSCALEDEF_7_TAP 0x07
-/* 0x08 reserved */
-#define BVSCALEDEF_9_TAP 0x09
-/* 0x0A-0xFF reserved */
-
-enum bvscalemode {
- BVSCALE_FASTEST = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_FASTEST |
- BVSCALEDEF_DONT_CARE,
- BVSCALE_FASTEST_NOT_NEAREST_NEIGHBOR = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_FASTEST |
- BVSCALEDEF_NOT_NEAREST_NEIGHBOR,
- BVSCALE_FASTEST_POINT_SAMPLE = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_FASTEST |
- BVSCALEDEF_POINT_SAMPLE,
- BVSCALE_FASTEST_INTERPOLATED = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_FASTEST |
- BVSCALEDEF_INTERPOLATED,
- BVSCALE_FASTEST_PHOTO = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_FASTEST |
- BVSCALEDEF_PHOTO,
- BVSCALE_FASTEST_DRAWING = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_FASTEST |
- BVSCALEDEF_DRAWING,
- BVSCALE_GOOD = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_GOOD |
- BVSCALEDEF_DONT_CARE,
- BVSCALE_GOOD_POINT_SAMPLE = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_GOOD |
- BVSCALEDEF_POINT_SAMPLE,
- BVSCALE_GOOD_INTERPOLATED = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_GOOD |
- BVSCALEDEF_INTERPOLATED,
- BVSCALE_GOOD_PHOTO = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_GOOD |
- BVSCALEDEF_PHOTO,
- BVSCALE_GOOD_DRAWING = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_GOOD |
- BVSCALEDEF_DRAWING,
- BVSCALE_BETTER = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_BETTER |
- BVSCALEDEF_DONT_CARE,
- BVSCALE_BETTER_POINT_SAMPLE = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_BETTER |
- BVSCALEDEF_POINT_SAMPLE,
- BVSCALE_BETTER_INTERPOLATED = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_BETTER |
- BVSCALEDEF_INTERPOLATED,
- BVSCALE_BETTER_PHOTO = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_BETTER |
- BVSCALEDEF_PHOTO,
- BVSCALE_BETTER_DRAWING = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_BETTER |
- BVSCALEDEF_DRAWING,
- BVSCALE_BEST = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_BEST |
- BVSCALEDEF_DONT_CARE,
- BVSCALE_BEST_POINT_SAMPLE = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_BEST |
- BVSCALEDEF_POINT_SAMPLE,
- BVSCALE_BEST_INTERPOLATED = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_BEST |
- BVSCALEDEF_INTERPOLATED,
- BVSCALE_BEST_PHOTO = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_BEST |
- BVSCALEDEF_PHOTO,
- BVSCALE_BEST_DRAWING = BVSCALEDEF_VENDOR_ALL |
- BVSCALEDEF_IMPLICIT |
- BVSCALEDEF_BEST |
- BVSCALEDEF_DRAWING,
-
- BVSCALE_NEAREST_NEIGHBOR = BVSCALEDEF_VENDOR_GENERIC |
- BVSCALEDEF_EXPLICIT |
- (BVSCALEDEF_NEAREST_NEIGHBOR << BVSCALEDEF_HORZ_SHIFT) |
- (BVSCALEDEF_NEAREST_NEIGHBOR << BVSCALEDEF_VERT_SHIFT),
- BVSCALE_BILINEAR = BVSCALEDEF_VENDOR_GENERIC |
- BVSCALEDEF_EXPLICIT |
- (BVSCALEDEF_LINEAR << BVSCALEDEF_HORZ_SHIFT) |
- (BVSCALEDEF_LINEAR << BVSCALEDEF_VERT_SHIFT),
- BVSCALE_BICUBIC = BVSCALEDEF_VENDOR_GENERIC |
- BVSCALEDEF_EXPLICIT |
- (BVSCALEDEF_CUBIC << BVSCALEDEF_HORZ_SHIFT) |
- (BVSCALEDEF_CUBIC << BVSCALEDEF_VERT_SHIFT),
- BVSCALE_3x3_TAP = BVSCALEDEF_VENDOR_GENERIC |
- BVSCALEDEF_EXPLICIT |
- (BVSCALEDEF_3_TAP << BVSCALEDEF_HORZ_SHIFT) |
- (BVSCALEDEF_3_TAP << BVSCALEDEF_VERT_SHIFT),
- BVSCALE_5x5_TAP = BVSCALEDEF_VENDOR_GENERIC |
- BVSCALEDEF_EXPLICIT |
- (BVSCALEDEF_5_TAP << BVSCALEDEF_HORZ_SHIFT) |
- (BVSCALEDEF_5_TAP << BVSCALEDEF_VERT_SHIFT),
- BVSCALE_7x7_TAP = BVSCALEDEF_VENDOR_GENERIC |
- BVSCALEDEF_EXPLICIT |
- (BVSCALEDEF_7_TAP << BVSCALEDEF_HORZ_SHIFT) |
- (BVSCALEDEF_7_TAP << BVSCALEDEF_VERT_SHIFT),
- BVSCALE_9x9_TAP = BVSCALEDEF_VENDOR_GENERIC |
- BVSCALEDEF_EXPLICIT |
- (BVSCALEDEF_9_TAP << BVSCALEDEF_HORZ_SHIFT) |
- (BVSCALEDEF_9_TAP << BVSCALEDEF_VERT_SHIFT),
-
-#ifdef BVSCALE_EXTERNAL_INCLUDE
-#include BVSCALE_EXTERNAL_INCLUDE
-#endif
-};
-
-
-/*
- * bvdithermode - This defines the type of dithering to use.
- */
-#define BVDITHERDEF_VENDOR_SHIFT 24
-#define BVDITHERDEF_VENDOR_MASK (0xFF << BVDITHERDEF_VENDOR_SHIFT)
-
-#define BVDITHERDEF_VENDOR_ALL (0 << BVDITHERDEF_VENDOR_SHIFT)
-#define BVDITHERDEF_VENDOR_TI (1 << BVDITHERDEF_VENDOR_SHIFT)
-/* 0xF0-0xFE reserved */
-#define BVDITHERDEF_VENDOR_GENERIC (0xFF << BVDITHERDEF_VENDOR_SHIFT)
-
-/***** VENDOR_GENERIC definitions *****/
-/* Bits 18-23 reserved */
-/**** Bits 17-16 indicate the type of image - 0 = don't know ****/
-#define BVDITHERDEF_TYPE_SHIFT 16
-#define BVDITHERDEF_PHOTO (0x01 << BVDITHERDEF_TYPE_SHIFT)
-#define BVDITHERDEF_DRAWING (0x02 << BVDITHERDEF_TYPE_SHIFT)
-/**** Bits 15-8 indicate the desired technique ****/
-#define BVDITHERDEF_TECHNIQUE_SHIFT 8
-#define BVDITHERDEF_DONT_CARE (0x00 << BVDITHERDEF_TECHNIQUE_SHIFT)
-#define BVDITHERDEF_RANDOM (0x01 << BVDITHERDEF_TECHNIQUE_SHIFT)
-#define BVDITHERDEF_ORDERED (0x02 << BVDITHERDEF_TECHNIQUE_SHIFT)
-#define BVDITHERDEF_DIFFUSED (0x04 << BVDITHERDEF_TECHNIQUE_SHIFT)
-#define BVDITHERDEF_ON (0xFF << BVDITHERDEF_TECHNIQUE_SHIFT)
-/**** Bits 7-0 indicate the quality (speed) desired ****/
-#define BVDITHERDEF_QUALITY_SHIFT 0
-#define BVDITHERDEF_FASTEST (0x00 << BVDITHERDEF_QUALITY_SHIFT)
-#define BVDITHERDEF_GOOD (0x55 << BVDITHERDEF_QUALITY_SHIFT)
-#define BVDITHERDEF_BETTER (0xAA << BVDITHERDEF_QUALITY_SHIFT)
-#define BVDITHERDEF_BEST (0xFF << BVDITHERDEF_QUALITY_SHIFT)
-
-enum bvdithermode {
- BVDITHER_FASTEST = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_FASTEST |
- BVDITHERDEF_DONT_CARE,
- BVDITHER_FASTEST_ON = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_FASTEST |
- BVDITHERDEF_ON,
- BVDITHER_FASTEST_RANDOM = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_FASTEST |
- BVDITHERDEF_RANDOM,
- BVDITHER_FASTEST_ORDERED = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_FASTEST |
- BVDITHERDEF_ORDERED,
- BVDITHER_FASTEST_DIFFUSED = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_FASTEST |
- BVDITHERDEF_DIFFUSED,
- BVDITHER_FASTEST_PHOTO = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_FASTEST |
- BVDITHERDEF_PHOTO,
- BVDITHER_FASTEST_DRAWING = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_FASTEST |
- BVDITHERDEF_DRAWING,
- BVDITHER_GOOD = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_GOOD |
- BVDITHERDEF_DONT_CARE,
- BVDITHER_GOOD_ON = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_GOOD |
- BVDITHERDEF_ON,
- BVDITHER_GOOD_RANDOM = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_GOOD |
- BVDITHERDEF_RANDOM,
- BVDITHER_GOOD_ORDERED = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_GOOD |
- BVDITHERDEF_ORDERED,
- BVDITHER_GOOD_DIFFUSED = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_GOOD |
- BVDITHERDEF_DIFFUSED,
- BVDITHER_GOOD_PHOTO = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_GOOD |
- BVDITHERDEF_PHOTO,
- BVDITHER_GOOD_DRAWING = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_GOOD |
- BVDITHERDEF_DRAWING,
- BVDITHER_BETTER = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BETTER |
- BVDITHERDEF_DONT_CARE,
- BVDITHER_BETTER_ON = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BETTER |
- BVDITHERDEF_ON,
- BVDITHER_BETTER_RANDOM = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BETTER |
- BVDITHERDEF_RANDOM,
- BVDITHER_BETTER_ORDERED = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BETTER |
- BVDITHERDEF_ORDERED,
- BVDITHER_BETTER_DIFFUSED = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BETTER |
- BVDITHERDEF_DIFFUSED,
- BVDITHER_BETTER_PHOTO = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BETTER |
- BVDITHERDEF_PHOTO,
- BVDITHER_BETTER_DRAWING = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BETTER |
- BVDITHERDEF_DRAWING,
- BVDITHER_BEST = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BEST |
- BVDITHERDEF_DONT_CARE,
- BVDITHER_BEST_ON = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BEST |
- BVDITHERDEF_ON,
- BVDITHER_BEST_RANDOM = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BEST |
- BVDITHERDEF_RANDOM,
- BVDITHER_BEST_ORDERED = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BEST |
- BVDITHERDEF_ORDERED,
- BVDITHER_BEST_DIFFUSED = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BEST |
- BVDITHERDEF_DIFFUSED,
- BVDITHER_BEST_PHOTO = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BEST |
- BVDITHERDEF_PHOTO,
- BVDITHER_BEST_DRAWING = BVDITHERDEF_VENDOR_ALL |
- BVDITHERDEF_BEST |
- BVDITHERDEF_DRAWING,
-
- BVDITHER_NONE = BVDITHERDEF_VENDOR_GENERIC + 0,
- BVDITHER_ORDERED_2x2 = BVDITHERDEF_VENDOR_GENERIC + 4,
- BVDITHER_ORDERED_4x4 = BVDITHERDEF_VENDOR_GENERIC + 16,
- BVDITHER_ORDERED_2x2_4x4 = BVDITHERDEF_VENDOR_GENERIC + 4 + 16,
- /* 2x2 for 6->8, 4x4 for 5->8 */
-
-#ifdef BVDITHER_EXTERNAL_INCLUDE
-#include BVDITHER_EXTERNAL_INCLUDE
-#endif
-};
-
-
-/*
- * BVTILE_* flags - These specify parameters used when tiling.
- */
-#define BVTILE_LEFT_SHIFT 0
-#define BVTILE_TOP_SHIFT (BVTILE_LEFT_SHIFT + 2)
-#define BVTILE_RIGHT_SHIFT (BVTILE_TOP_SHIFT + 2)
-#define BVTILE_BOTTOM_SHIFT (BVTILE_RIGHT_SHIFT + 2)
-#define BVTILE_LEFT_REPEAT (0 << BVTILE_LEFT_SHIFT) /* ...012301230123 */
-#define BVTILE_TOP_REPEAT (0 << BVTILE_TOP_SHIFT) /* ...012301230123 */
-#define BVTILE_RIGHT_REPEAT (0 << BVTILE_RIGHT_SHIFT) /* 012301230123... */
-#define BVTILE_BOTTOM_REPEAT (0 << BVTILE_BOTTOM_SHIFT) /* 012301230123... */
-#define BVTILE_LEFT_MIRROR (1 << BVTILE_LEFT_SHIFT) /* ...012332100123 */
-#define BVTILE_TOP_MIRROR (1 << BVTILE_TOP_SHIFT) /* ...012332100123 */
-#define BVTILE_RIGHT_MIRROR (1 << BVTILE_RIGHT_SHIFT) /* 012332100123... */
-#define BVTILE_BOTTOM_MIRROR (1 << BVTILE_BOTTOM_SHIFT) /* 012332100123... */
-
-/*
- * bvtileparams - This structure provides additional parameters needed when
- * tiling. This structure replaces the bvbuffdesc in bvbltparams when the
- * associated BVFLAG_TILE_* flag is set in bvbltparams.flags.
- */
-struct bvtileparams {
- unsigned int structsize; /* used to ID structure version */
- unsigned long flags; /* tile flags */
- void *virtaddr; /* pointer to the brush */
- int dstleft; /* horizontal offset */
- int dsttop; /* vertical offset */
- unsigned int srcwidth; /* w/dst width to spec horz scale */
- unsigned int srcheight; /* w/dst height to spec vert scale */
-};
-
-/*
- * BVBATCH_* - These flags specify the parameters that change between
- * batched BLTs, when BVFLAG_CONTINUE or BVFLAG_END set.
- */
-#define BVBATCH_OP 0x00000001 /* type of operation changed */
-#define BVBATCH_KEY 0x00000002 /* color key changed */
-#define BVBATCH_MISCFLAGS 0x00000004 /* other flags changed */
-#define BVBATCH_ALPHA 0x00000008 /* global alpha changed */
-#define BVBATCH_DITHER 0x00000010 /* dither changed */
-#define BVBATCH_SCALE 0x00000020 /* scaling type changed */
-/* Bits 6-7 reserved */
-#define BVBATCH_DST 0x00000100 /* destination surface changed */
-#define BVBATCH_SRC1 0x00000200 /* source 1 surface changed */
-#define BVBATCH_SRC2 0x00000400 /* source 2 surface changed */
-#define BVBATCH_MASK 0x00000800 /* mask surface changed */
-#define BVBATCH_DSTRECT_ORIGIN 0x00001000 /* dest rect origin changed */
-#define BVBATCH_DSTRECT_SIZE 0x00002000 /* dest rect dimensions changed */
-#define BVBATCH_SRC1RECT_ORIGIN 0x00004000 /* src 1 rect origin changed */
-#define BVBATCH_SRC1RECT_SIZE 0x00008000 /* src 1 rect dimensions changed */
-#define BVBATCH_SRC2RECT_ORIGIN 0x00010000 /* src 2 rect origin changed */
-#define BVBATCH_SRC2RECT_SIZE 0x00020000 /* src 2 rect dimensions changed */
-#define BVBATCH_MASKRECT_ORIGIN 0x00040000 /* mask rect origin changed */
-#define BVBATCH_MASKRECT_SIZE 0x00080000 /* mask rect dimensions changed */
-#define BVBATCH_CLIPRECT_ORIGIN 0x00100000 /* Clip rect origin changed */
-#define BVBATCH_CLIPRECT_SIZE 0x00200000 /* Clip rect dimensions changed */
-#define BVBATCH_CLIPRECT (BVBATCH_CLIPRECT_ORIGIN | \
- BVBATCH_CLIPRECT_SIZE) /* clip rect... */
- /* ...changed */
-#define BVBATCH_TILE_SRC1 0x00400000 /* tile params for src 1 changed */
-#define BVBATCH_TILE_SRC2 0x00800000 /* tile params for src 2 changed */
-#define BVBATCH_TILE_MASK 0x00100000 /* tile params for mask changed */
-/* Bits 21-30 reserved */
-#define BVBATCH_ENDNOP 0x80000000 /* just end batch, don't do BLT;
- only with BVFLAG_BATCH_END */
-
-/*
- * bvcallbackerror - This structure is passed into the callback function
- * if an error occurs.
- */
-struct bvcallbackerror {
- unsigned int structsize; /* used to ID structure version */
- enum bverror error; /* error during async BLT */
- char *errdesc; /* 0-terminated ASCII string
- with extended error info (not
- for end users) */
-};
-
-/*
- * bvbatch - an implementation-specific container for batch information;
- * not used by client; forward declaration here
- */
-struct bvbatch;
-
-/*
- * bvinbuff - provides the buffer in bvbltparams
- */
-union bvinbuff {
- struct bvbuffdesc *desc; /* buffer description when
- associated BVFLAG_TILE_*
- is not set */
- struct bvtileparams *tileparams; /* tile params when associated
- BVFLAG_TILE_* flag is set */
-};
-
-/*
- * bvop - used to hold the operation in bvbltparams
- */
-union bvop {
- unsigned short rop; /* when BVFLAG_ROP set */
- enum bvblend blend; /* when BVFLAG_BLEND set */
- struct bvfilter *filter; /* when BVFLAG_FILTER set */
-};
-
-
-/*
- * bvbltparams - This structure is passed into bv_blt() to specify the
- * parameters for a BLT.
- */
-struct bvbltparams {
- unsigned int structsize; /* (i) used to ID structure version */
- char *errdesc; /* (o) 0-terminated ASCII string
- with extended error info (not
- for end users) */
-
- unsigned long implementation; /* (i) override manager choice */
-
- unsigned long flags; /* (i) see BVFLAG_* above */
-
- union bvop op; /* (i) operation; determined by
- BVFLAG_OP_MASK bits in flags */
-
- void *colorkey; /* (i) pointer to color key pixel
- matching non-SUBSAMPLE format
- of the keyed surface when
- BVFLAG_KEY_* is set */
-
- union bvalpha globalalpha; /* (i) global alpha when BVFLAG_BLEND
- set in flags and
- BVBLENDDEF_GLOBAL_* is set in
- blend; typed determined by
- BVBLENDDEF_GLOBAL_* */
-
- enum bvscalemode scalemode; /* (i/o) type of scaling */
- enum bvdithermode dithermode; /* (i/o) type of dither */
-
- struct bvbuffdesc *dstdesc; /* (i) dest after bv_map() */
- struct bvsurfgeom *dstgeom; /* (i) dest surf fmt and geometry */
- struct bvrect dstrect; /* (i) rect into which data written */
-
- union bvinbuff src1; /* (i) src1 buffer */
- struct bvsurfgeom *src1geom; /* (i) src1 surf fmt and geometry */
- struct bvrect src1rect; /* (i) rect from which data is read */
-
- union bvinbuff src2; /* (i) src2 buffer */
- struct bvsurfgeom *src2geom; /* (i) src2 surf fmt and geometry */
- struct bvrect src2rect; /* (i) rect from which data is read */
-
- union bvinbuff mask; /* (i) mask buffer */
- struct bvsurfgeom *maskgeom; /* (i) mask surf fmt and geometry */
- struct bvrect maskrect; /* (i) rect from which data is read */
-
- struct bvrect cliprect; /* (i) dest clipping rect when
- BVFLAG_CLIP flag set */
-
- unsigned long batchflags; /* (i) BVBATCH_* flags used to
- indicate params changed between
- batch BLTs */
- struct bvbatch *batch; /* (i/o) handle for associated batch;
- returned when
- BVFLAG_BATCH_BEGIN set;
- provided to subsequent BLTs
- with BVFLAG_BATCH_CONTINUE */
-
- void (*callbackfn)(struct bvcallbackerror *err,
- unsigned long callbackdata); /* (i) callback
- function when
- BVFLAG_ASYNC is set -
- err is 0 when no
- error; handle contains
- callbackdata below */
- unsigned long callbackdata; /* (i) callback data */
-
- struct bvrect src2auxdstrect;
- struct bvrect maskauxdstrect;
-};
-
-#endif /* BLTSVILLE_H */