fbo-mrt-alphatest: Actually require MRTs to be available.
[piglit.git] / tests / spec / ext_external_objects / helpers.c
blob897cb8a0968f041ef17b99a2413a0bdc2e5fee6c
1 /*
2 * Copyright © 2020 Intel Corporation
4 * Permission is hereby granted, free of charge, to any person obtaining a
5 * copy of this software and associated documentation files (the "Software"),
6 * to deal in the Software without restriction, including without limitation
7 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
8 * and/or sell copies of the Software, and to permit persons to whom the
9 * Software is furnished to do so, subject to the following conditions:
11 * The above copyright notice and this permission notice (including the next
12 * paragraph) shall be included in all copies or substantial portions of the
13 * Software.
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
18 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
20 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
21 * DEALINGS IN THE SOFTWARE.
23 * Author:
24 * Eleni Maria Stea <estea@igalia.com>
25 * Tapani Pälli <tapani.palli@intel.com>
28 #include "helpers.h"
30 char*
31 load_shader(const char *shader_file,
32 unsigned int *size)
34 static char filepath[4096];
35 if (!shader_file)
36 return NULL;
38 piglit_join_paths(filepath, sizeof(filepath), 5,
39 piglit_source_dir(),
40 "tests",
41 "spec",
42 "ext_external_objects",
43 shader_file);
44 char *result =
45 piglit_load_text_file(filepath, size);
47 if (!result)
48 fprintf(stderr, "Failed to load shader source [%s].\n", filepath);
50 return result;
53 bool
54 check_bound_fbo_status(void)
56 GLenum status = glCheckFramebufferStatus(GL_FRAMEBUFFER);
57 if (status != GL_FRAMEBUFFER_COMPLETE) {
58 fprintf(stderr, "GL FBO status: %s\n", piglit_get_gl_enum_name(status));
59 return false;
61 return true;
64 bool
65 dump_image_rgba(const char *fname,
66 int w, int h,
67 unsigned char *data)
69 FILE *fp;
70 int i;
72 if (!(fp = fopen(fname, "wb"))) {
73 fprintf(stderr, "Failed to open file: %s.\n", fname);
74 return false;
77 fprintf(fp, "P3\n%d %d\n255\n", w, h);
78 for (i = 0; i < w * h; i++) {
79 fprintf(fp, "%d %d %d\n", data[0], data[1], data[2]);
80 data += 4;
82 fclose(fp);
83 return true;