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
|
/**
* \file egl-util.h
* Common framework for EGL tests.
*
* \author Kristian Høgsberg <krh@bitplanet.net>
*/
#ifndef EGL_UTIL_H
#define EGL_UTIL_H
#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/keysym.h>
#include <EGL/egl.h>
#include <EGL/eglext.h>
#ifndef EGL_KHR_gl_colorspace
#define EGL_KHR_gl_colorspace 1
#define EGL_GL_COLORSPACE_KHR 0x309D
#define EGL_GL_COLORSPACE_SRGB_KHR 0x3089
#define EGL_GL_COLORSPACE_LINEAR_KHR 0x308A
#endif /* EGL_KHR_gl_colorspace */
struct egl_state {
Display *dpy;
Window win;
EGLDisplay egl_dpy;
EGLConfig cfg;
EGLContext ctx;
EGLSurface surf;
EGLint major, minor;
int depth;
int width;
int height;
};
struct egl_test {
const EGLint *config_attribs;
const EGLint *surface_attribs;
const char **extensions;
enum piglit_result (*draw)(struct egl_state *state);
EGLint window_width;
EGLint window_height;
bool stop_on_failure;
};
static const EGLint egl_default_attribs[] = {
EGL_SURFACE_TYPE, EGL_WINDOW_BIT | EGL_PIXMAP_BIT | EGL_PBUFFER_BIT,
EGL_RED_SIZE, 1,
EGL_GREEN_SIZE, 1,
EGL_BLUE_SIZE, 1,
EGL_DEPTH_SIZE, 1,
EGL_RENDERABLE_TYPE, EGL_OPENGL_BIT,
EGL_NONE
};
static const EGLint egl_default_window_width = 300;
static const EGLint egl_default_window_height = 300;
/**
* \brief Initialize test to default values.
*/
void
egl_init_test(struct egl_test *test);
EGLSurface
egl_util_create_pixmap(struct egl_state *state,
int width, int height, const EGLint *attribs);
enum piglit_result egl_util_run(const struct egl_test *test, int argc, char *argv[]);
int
egl_probe_front_pixel_rgb(struct egl_state *state,
int x, int y, const float *expected);
#endif
|