summaryrefslogtreecommitdiff
path: root/support/dktools/dk3pixre.h
blob: 8cb612dfb216c2a845f0e64768319a23c3d16ada (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
/*
Copyright (C) 2011-2020, Dirk Krause
SPDX-License-Identifier: BSD-3-Clause
*/

/*
	WARNING: This file was generated by the dkct program (see
	http://dktools.sourceforge.net/ for details).
	Changes you make here will be lost if dkct is run again!
	You should modify the original source and run dkct on it.
	Original source: dk3pixre.ctr
*/

/**	@file dk3pixre.h Header file for the dk3pixre module.
*/

#ifndef DK3PIXRE_H_INCLUDED
/** Avoid multiple inclusions. */
#define DK3PIXRE_H_INCLUDED 1


#line 10 "dk3pixre.ctr"

#ifdef __cplusplus
extern "C" {
#endif

/**	Set up resampling structure.
	This function must be called before you start
	any conversion using dk3pixre_convert().
	@param	pp	Resampling structure.
	@param	inw	Input number of bits per component.
	@param	outw	Output number of bits per component.
	@return	1 on success, 0 on error.
*/
int
dk3pixre_set(dk3_pixel_resample_t *pp, size_t inw, size_t outw);

/**	Check whether a pixel value can be converted without quality loss.
	@param	pp	Pixel resampling structure.
	@param	inval	Value to convert.
	@return	1 on success, 0 on error.
*/
int
dk3pixre_can_convert(dk3_pixel_resample_t const *pp, dk3_bif_pixel_t inval);

/**	Resample pixel. The dk3_pixel_resample_t structure must
	already be set up using dk3pixre_set().
	@param	pp	Resampling structure.
	@param	inval	Value to resample.
	@return	Pixel component resampled.
*/
dk3_bif_pixel_t
dk3pixre_convert(dk3_pixel_resample_t const *pp, dk3_bif_pixel_t inval);

/**	Get mask for maximum output value.
	@param	pp	Resampling structure.
	@return	Maximum value for given number of output bits.
*/
dk3_bif_pixel_t
dk3pixre_get_max_value(dk3_pixel_resample_t const *pp);

/**	Get one pixel component value from packed bytes.
	@param	row	Pixel data.
	@param	vi	Value index.
	@param	bpc	Number of bits per component.
	@return	Pixel component value.
*/
dk3_bif_pixel_t
dk3pixre_get_value_from_packed_bytes(
  unsigned char const	*row,
  dk3_bif_coord_t	 vi,
  size_t		 bpc
);

/**	Get maximum pixel value for a given bit width.
	@param	w	Bit width.
	@return	Maximum value on success, 0 on error.
*/
dk3_bif_pixel_t
dk3pixre_maximum_for_width(size_t w);

#ifdef __cplusplus
}
#endif


#endif