OLD | NEW |
1 /* vim: set ts=8 sw=8 noexpandtab: */ | 1 /* vim: set ts=8 sw=8 noexpandtab: */ |
2 // qcms | 2 // qcms |
3 // Copyright (C) 2009 Mozilla Foundation | 3 // Copyright (C) 2009 Mozilla Foundation |
4 // Copyright (C) 1998-2007 Marti Maria | 4 // Copyright (C) 1998-2007 Marti Maria |
5 // | 5 // |
6 // Permission is hereby granted, free of charge, to any person obtaining | 6 // Permission is hereby granted, free of charge, to any person obtaining |
7 // a copy of this software and associated documentation files (the "Software"), | 7 // a copy of this software and associated documentation files (the "Software"), |
8 // to deal in the Software without restriction, including without limitation | 8 // to deal in the Software without restriction, including without limitation |
9 // the rights to use, copy, modify, merge, publish, distribute, sublicense, | 9 // the rights to use, copy, modify, merge, publish, distribute, sublicense, |
10 // and/or sell copies of the Software, and to permit persons to whom the Softwar
e | 10 // and/or sell copies of the Software, and to permit persons to whom the Softwar
e |
(...skipping 13 matching lines...) Expand all Loading... |
24 #ifndef _QCMS_TRANSFORM_UTIL_H | 24 #ifndef _QCMS_TRANSFORM_UTIL_H |
25 #define _QCMS_TRANSFORM_UTIL_H | 25 #define _QCMS_TRANSFORM_UTIL_H |
26 | 26 |
27 #include <stdlib.h> | 27 #include <stdlib.h> |
28 | 28 |
29 #define CLU(table,x,y,z) table[(x*len + y*x_len + z*xy_len)*3] | 29 #define CLU(table,x,y,z) table[(x*len + y*x_len + z*xy_len)*3] |
30 | 30 |
31 //XXX: could use a bettername | 31 //XXX: could use a bettername |
32 typedef uint16_t uint16_fract_t; | 32 typedef uint16_t uint16_fract_t; |
33 | 33 |
34 float lut_interp_linear(double value, uint16_t *table, int length); | 34 float lut_interp_linear(double value, uint16_t *table, size_t length); |
35 float lut_interp_linear_float(float value, float *table, int length); | 35 float lut_interp_linear_float(float value, float *table, size_t length); |
36 uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, int length); | 36 uint16_t lut_interp_linear16(uint16_t input_value, uint16_t *table, size_t lengt
h); |
37 | 37 |
38 | 38 |
39 static inline float lerp(float a, float b, float t) | 39 static inline float lerp(float a, float b, float t) |
40 { | 40 { |
41 return a*(1.f-t) + b*t; | 41 return a*(1.f-t) + b*t; |
42 } | 42 } |
43 | 43 |
44 unsigned char clamp_u8(float v); | 44 unsigned char clamp_u8(float v); |
45 float clamp_float(float a); | 45 float clamp_float(float a); |
46 | 46 |
47 float u8Fixed8Number_to_float(uint16_t x); | 47 float u8Fixed8Number_to_float(uint16_t x); |
48 | 48 |
49 | 49 |
50 float *build_input_gamma_table(struct curveType *TRC); | 50 float *build_input_gamma_table(struct curveType *TRC); |
51 struct matrix build_colorant_matrix(qcms_profile *p); | 51 struct matrix build_colorant_matrix(qcms_profile *p); |
52 void build_output_lut(struct curveType *trc, | 52 void build_output_lut(struct curveType *trc, |
53 uint16_t **output_gamma_lut, size_t *output_gamma_lut_leng
th); | 53 uint16_t **output_gamma_lut, size_t *output_gamma_lut_leng
th); |
54 | 54 |
55 struct matrix matrix_invert(struct matrix mat); | 55 struct matrix matrix_invert(struct matrix mat); |
56 qcms_bool compute_precache(struct curveType *trc, uint8_t *output); | 56 qcms_bool compute_precache(struct curveType *trc, uint8_t *output); |
57 | 57 |
58 | 58 |
59 #endif | 59 #endif |
OLD | NEW |