• Home
  • Raw
  • Download

Lines Matching +full:test +full:. +full:rgb

3  *   Jakob Bornecrantz <jakob@tungstengraphics.com>
5 * Jesse Barnes <jesse.barnes@intel.com>
15 * all copies or substantial portions of the Software.
19 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
23 * IN THE SOFTWARE.
27 #include "config.h"
30 #include <stdint.h>
31 #include <stdio.h>
32 #include <stdlib.h>
33 #include <string.h>
35 #include <drm_fourcc.h>
38 #include <cairo.h>
39 #include <math.h>
42 #include "format.h"
43 #include "pattern.h"
63 { .y = MAKE_YUV_601_Y(r, g, b), \
64 .u = MAKE_YUV_601_U(r, g, b), \
65 .v = MAKE_YUV_601_V(r, g, b) }
67 #define MAKE_RGBA(rgb, r, g, b, a) \ argument
68 ((((r) >> (8 - (rgb)->red.length)) << (rgb)->red.offset) | \
69 (((g) >> (8 - (rgb)->green.length)) << (rgb)->green.offset) | \
70 (((b) >> (8 - (rgb)->blue.length)) << (rgb)->blue.offset) | \
71 (((a) >> (8 - (rgb)->alpha.length)) << (rgb)->alpha.offset))
73 #define MAKE_RGB24(rgb, r, g, b) \ argument
74 { .value = MAKE_RGBA(rgb, r, g, b, 0) }
118 y_mem[x] = colors_top[x * 7 / width].y; in fill_smpte_yuv_planar()
124 y_mem[x] = colors_middle[x * 7 / width].y; in fill_smpte_yuv_planar()
130 y_mem[x] = colors_bottom[x * 4 / (width * 5 / 7)].y; in fill_smpte_yuv_planar()
133 / (width / 7) + 4].y; in fill_smpte_yuv_planar()
135 y_mem[x] = colors_bottom[7].y; in fill_smpte_yuv_planar()
142 u_mem[x*cs/xsub] = colors_top[x * 7 / width].u; in fill_smpte_yuv_planar()
143 v_mem[x*cs/xsub] = colors_top[x * 7 / width].v; in fill_smpte_yuv_planar()
151 u_mem[x*cs/xsub] = colors_middle[x * 7 / width].u; in fill_smpte_yuv_planar()
152 v_mem[x*cs/xsub] = colors_middle[x * 7 / width].v; in fill_smpte_yuv_planar()
161 colors_bottom[x * 4 / (width * 5 / 7)].u; in fill_smpte_yuv_planar()
163 colors_bottom[x * 4 / (width * 5 / 7)].v; in fill_smpte_yuv_planar()
167 3 / (width / 7) + 4].u; in fill_smpte_yuv_planar()
169 3 / (width / 7) + 4].v; in fill_smpte_yuv_planar()
172 u_mem[x*cs/xsub] = colors_bottom[7].u; in fill_smpte_yuv_planar()
173 v_mem[x*cs/xsub] = colors_bottom[7].v; in fill_smpte_yuv_planar()
222 y_mem[2*x] = colors_top[x * 7 / width].y; in fill_smpte_yuv_packed()
228 y_mem[2*x] = colors_middle[x * 7 / width].y; in fill_smpte_yuv_packed()
234 y_mem[2*x] = colors_bottom[x * 4 / (width * 5 / 7)].y; in fill_smpte_yuv_packed()
237 / (width / 7) + 4].y; in fill_smpte_yuv_packed()
239 y_mem[2*x] = colors_bottom[7].y; in fill_smpte_yuv_packed()
246 c_mem[2*x+u] = colors_top[x * 7 / width].u; in fill_smpte_yuv_packed()
247 c_mem[2*x+v] = colors_top[x * 7 / width].v; in fill_smpte_yuv_packed()
254 c_mem[2*x+u] = colors_middle[x * 7 / width].u; in fill_smpte_yuv_packed()
255 c_mem[2*x+v] = colors_middle[x * 7 / width].v; in fill_smpte_yuv_packed()
262 c_mem[2*x+u] = colors_bottom[x * 4 / (width * 5 / 7)].u; in fill_smpte_yuv_packed()
263 c_mem[2*x+v] = colors_bottom[x * 4 / (width * 5 / 7)].v; in fill_smpte_yuv_packed()
267 3 / (width / 7) + 4].u; in fill_smpte_yuv_packed()
269 3 / (width / 7) + 4].v; in fill_smpte_yuv_packed()
272 c_mem[2*x+u] = colors_bottom[7].u; in fill_smpte_yuv_packed()
273 c_mem[2*x+v] = colors_bottom[7].v; in fill_smpte_yuv_packed()
279 static void fill_smpte_rgb16(const struct util_rgb_info *rgb, void *mem, in fill_smpte_rgb16() argument
284 MAKE_RGBA(rgb, 192, 192, 192, 255), /* grey */ in fill_smpte_rgb16()
285 MAKE_RGBA(rgb, 192, 192, 0, 255), /* yellow */ in fill_smpte_rgb16()
286 MAKE_RGBA(rgb, 0, 192, 192, 255), /* cyan */ in fill_smpte_rgb16()
287 MAKE_RGBA(rgb, 0, 192, 0, 255), /* green */ in fill_smpte_rgb16()
288 MAKE_RGBA(rgb, 192, 0, 192, 255), /* magenta */ in fill_smpte_rgb16()
289 MAKE_RGBA(rgb, 192, 0, 0, 255), /* red */ in fill_smpte_rgb16()
290 MAKE_RGBA(rgb, 0, 0, 192, 255), /* blue */ in fill_smpte_rgb16()
293 MAKE_RGBA(rgb, 0, 0, 192, 127), /* blue */ in fill_smpte_rgb16()
294 MAKE_RGBA(rgb, 19, 19, 19, 127), /* black */ in fill_smpte_rgb16()
295 MAKE_RGBA(rgb, 192, 0, 192, 127), /* magenta */ in fill_smpte_rgb16()
296 MAKE_RGBA(rgb, 19, 19, 19, 127), /* black */ in fill_smpte_rgb16()
297 MAKE_RGBA(rgb, 0, 192, 192, 127), /* cyan */ in fill_smpte_rgb16()
298 MAKE_RGBA(rgb, 19, 19, 19, 127), /* black */ in fill_smpte_rgb16()
299 MAKE_RGBA(rgb, 192, 192, 192, 127), /* grey */ in fill_smpte_rgb16()
302 MAKE_RGBA(rgb, 0, 33, 76, 255), /* in-phase */ in fill_smpte_rgb16()
303 MAKE_RGBA(rgb, 255, 255, 255, 255), /* super white */ in fill_smpte_rgb16()
304 MAKE_RGBA(rgb, 50, 0, 106, 255), /* quadrature */ in fill_smpte_rgb16()
305 MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ in fill_smpte_rgb16()
306 MAKE_RGBA(rgb, 9, 9, 9, 255), /* 3.5% */ in fill_smpte_rgb16()
307 MAKE_RGBA(rgb, 19, 19, 19, 255), /* 7.5% */ in fill_smpte_rgb16()
308 MAKE_RGBA(rgb, 29, 29, 29, 255), /* 11.5% */ in fill_smpte_rgb16()
309 MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ in fill_smpte_rgb16()
340 static void fill_smpte_rgb24(const struct util_rgb_info *rgb, void *mem, in fill_smpte_rgb24() argument
345 MAKE_RGB24(rgb, 192, 192, 192), /* grey */ in fill_smpte_rgb24()
346 MAKE_RGB24(rgb, 192, 192, 0), /* yellow */ in fill_smpte_rgb24()
347 MAKE_RGB24(rgb, 0, 192, 192), /* cyan */ in fill_smpte_rgb24()
348 MAKE_RGB24(rgb, 0, 192, 0), /* green */ in fill_smpte_rgb24()
349 MAKE_RGB24(rgb, 192, 0, 192), /* magenta */ in fill_smpte_rgb24()
350 MAKE_RGB24(rgb, 192, 0, 0), /* red */ in fill_smpte_rgb24()
351 MAKE_RGB24(rgb, 0, 0, 192), /* blue */ in fill_smpte_rgb24()
354 MAKE_RGB24(rgb, 0, 0, 192), /* blue */ in fill_smpte_rgb24()
355 MAKE_RGB24(rgb, 19, 19, 19), /* black */ in fill_smpte_rgb24()
356 MAKE_RGB24(rgb, 192, 0, 192), /* magenta */ in fill_smpte_rgb24()
357 MAKE_RGB24(rgb, 19, 19, 19), /* black */ in fill_smpte_rgb24()
358 MAKE_RGB24(rgb, 0, 192, 192), /* cyan */ in fill_smpte_rgb24()
359 MAKE_RGB24(rgb, 19, 19, 19), /* black */ in fill_smpte_rgb24()
360 MAKE_RGB24(rgb, 192, 192, 192), /* grey */ in fill_smpte_rgb24()
363 MAKE_RGB24(rgb, 0, 33, 76), /* in-phase */ in fill_smpte_rgb24()
364 MAKE_RGB24(rgb, 255, 255, 255), /* super white */ in fill_smpte_rgb24()
365 MAKE_RGB24(rgb, 50, 0, 106), /* quadrature */ in fill_smpte_rgb24()
366 MAKE_RGB24(rgb, 19, 19, 19), /* black */ in fill_smpte_rgb24()
367 MAKE_RGB24(rgb, 9, 9, 9), /* 3.5% */ in fill_smpte_rgb24()
368 MAKE_RGB24(rgb, 19, 19, 19), /* 7.5% */ in fill_smpte_rgb24()
369 MAKE_RGB24(rgb, 29, 29, 29), /* 11.5% */ in fill_smpte_rgb24()
370 MAKE_RGB24(rgb, 19, 19, 19), /* black */ in fill_smpte_rgb24()
403 static void fill_smpte_rgb32(const struct util_rgb_info *rgb, void *mem, in fill_smpte_rgb32() argument
408 MAKE_RGBA(rgb, 192, 192, 192, 255), /* grey */ in fill_smpte_rgb32()
409 MAKE_RGBA(rgb, 192, 192, 0, 255), /* yellow */ in fill_smpte_rgb32()
410 MAKE_RGBA(rgb, 0, 192, 192, 255), /* cyan */ in fill_smpte_rgb32()
411 MAKE_RGBA(rgb, 0, 192, 0, 255), /* green */ in fill_smpte_rgb32()
412 MAKE_RGBA(rgb, 192, 0, 192, 255), /* magenta */ in fill_smpte_rgb32()
413 MAKE_RGBA(rgb, 192, 0, 0, 255), /* red */ in fill_smpte_rgb32()
414 MAKE_RGBA(rgb, 0, 0, 192, 255), /* blue */ in fill_smpte_rgb32()
417 MAKE_RGBA(rgb, 0, 0, 192, 127), /* blue */ in fill_smpte_rgb32()
418 MAKE_RGBA(rgb, 19, 19, 19, 127), /* black */ in fill_smpte_rgb32()
419 MAKE_RGBA(rgb, 192, 0, 192, 127), /* magenta */ in fill_smpte_rgb32()
420 MAKE_RGBA(rgb, 19, 19, 19, 127), /* black */ in fill_smpte_rgb32()
421 MAKE_RGBA(rgb, 0, 192, 192, 127), /* cyan */ in fill_smpte_rgb32()
422 MAKE_RGBA(rgb, 19, 19, 19, 127), /* black */ in fill_smpte_rgb32()
423 MAKE_RGBA(rgb, 192, 192, 192, 127), /* grey */ in fill_smpte_rgb32()
426 MAKE_RGBA(rgb, 0, 33, 76, 255), /* in-phase */ in fill_smpte_rgb32()
427 MAKE_RGBA(rgb, 255, 255, 255, 255), /* super white */ in fill_smpte_rgb32()
428 MAKE_RGBA(rgb, 50, 0, 106, 255), /* quadrature */ in fill_smpte_rgb32()
429 MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ in fill_smpte_rgb32()
430 MAKE_RGBA(rgb, 9, 9, 9, 255), /* 3.5% */ in fill_smpte_rgb32()
431 MAKE_RGBA(rgb, 19, 19, 19, 255), /* 7.5% */ in fill_smpte_rgb32()
432 MAKE_RGBA(rgb, 29, 29, 29, 255), /* 11.5% */ in fill_smpte_rgb32()
433 MAKE_RGBA(rgb, 19, 19, 19, 255), /* black */ in fill_smpte_rgb32()
482 u = info->yuv.order & YUV_YCbCr ? planes[1] : planes[1] + 1; in fill_smpte()
483 v = info->yuv.order & YUV_YCrCb ? planes[1] : planes[1] + 1; in fill_smpte()
513 return fill_smpte_rgb16(&info->rgb, planes[0], in fill_smpte()
518 return fill_smpte_rgb24(&info->rgb, planes[0], in fill_smpte()
536 return fill_smpte_rgb32(&info->rgb, planes[0], in fill_smpte()
541 /* swap these for big endian.. */
624 uint32_t rgb32 = 0x00130502 * (d.quot >> 6) in fill_tiles_yuv_planar()
625 + 0x000a1120 * (d.rem >> 6); in fill_tiles_yuv_planar()
630 y_mem[x] = color.y; in fill_tiles_yuv_planar()
631 u_mem[x/xsub*cs] = color.u; in fill_tiles_yuv_planar()
632 v_mem[x/xsub*cs] = color.v; in fill_tiles_yuv_planar()
658 uint32_t rgb32 = 0x00130502 * (d.quot >> 6) in fill_tiles_yuv_packed()
659 + 0x000a1120 * (d.rem >> 6); in fill_tiles_yuv_packed()
664 y_mem[2*x] = color.y; in fill_tiles_yuv_packed()
665 c_mem[2*x+u] = color.u; in fill_tiles_yuv_packed()
666 y_mem[2*x+2] = color.y; in fill_tiles_yuv_packed()
667 c_mem[2*x+v] = color.v; in fill_tiles_yuv_packed()
679 const struct util_rgb_info *rgb = &info->rgb; in fill_tiles_rgb16() local
686 uint32_t rgb32 = 0x00130502 * (d.quot >> 6) in fill_tiles_rgb16()
687 + 0x000a1120 * (d.rem >> 6); in fill_tiles_rgb16()
689 MAKE_RGBA(rgb, (rgb32 >> 16) & 0xff, in fill_tiles_rgb16()
705 const struct util_rgb_info *rgb = &info->rgb; in fill_tiles_rgb24() local
711 uint32_t rgb32 = 0x00130502 * (d.quot >> 6) in fill_tiles_rgb24()
712 + 0x000a1120 * (d.rem >> 6); in fill_tiles_rgb24()
714 MAKE_RGB24(rgb, (rgb32 >> 16) & 0xff, in fill_tiles_rgb24()
727 const struct util_rgb_info *rgb = &info->rgb; in fill_tiles_rgb32() local
734 uint32_t rgb32 = 0x00130502 * (d.quot >> 6) in fill_tiles_rgb32()
735 + 0x000a1120 * (d.rem >> 6); in fill_tiles_rgb32()
738 MAKE_RGBA(rgb, (rgb32 >> 16) & 0xff, in fill_tiles_rgb32()
768 u = info->yuv.order & YUV_YCbCr ? planes[1] : planes[1] + 1; in fill_tiles()
769 v = info->yuv.order & YUV_YCrCb ? planes[1] : planes[1] + 1; in fill_tiles()
835 * util_fill_pattern - Fill a buffer with a test pattern
837 * @pattern: Test pattern
843 * Fill the buffers with the test pattern specified by the pattern parameter.
844 * Supported formats vary depending on the selected pattern.
867 printf("Error: unsupported test pattern %u.\n", pattern); in util_fill_pattern()