1 // SPDX-FileCopyrightText: Copyright 2012 Intel Corporation
2 // SPDX-License-Identifier: BSD-2-Clause
6 #include "wcore_error.h"
7 #include "wcore_util.h"
10 wcore_add_size(size_t *res
, size_t x
, size_t y
)
12 if (x
> SIZE_MAX
- y
) {
21 wcore_mul_size(size_t *res
, size_t x
, size_t y
)
23 if (x
> SIZE_MAX
/ y
) {
32 wcore_malloc(size_t size
)
34 void *p
= malloc(size
);
36 wcore_error(WAFFLE_ERROR_BAD_ALLOC
);
41 wcore_calloc(size_t size
)
43 void *p
= calloc(1, size
);
45 wcore_error(WAFFLE_ERROR_BAD_ALLOC
);
50 wcore_realloc(void *ptr
, size_t size
)
52 void *p
= realloc(ptr
, size
);
54 wcore_error(WAFFLE_ERROR_BAD_ALLOC
);
59 wcore_strdup(const char *str
)
61 char *p
= strdup(str
);
63 wcore_error(WAFFLE_ERROR_BAD_ALLOC
);
68 wcore_enum_to_string(int32_t e
)
71 #define CASE(x) case x: return #x
73 CASE(WAFFLE_DONT_CARE
);
75 CASE(WAFFLE_PLATFORM
);
76 CASE(WAFFLE_PLATFORM_ANDROID
);
77 CASE(WAFFLE_PLATFORM_CGL
);
78 CASE(WAFFLE_PLATFORM_GLX
);
79 CASE(WAFFLE_PLATFORM_WAYLAND
);
80 CASE(WAFFLE_PLATFORM_X11_EGL
);
81 CASE(WAFFLE_PLATFORM_GBM
);
82 CASE(WAFFLE_PLATFORM_WGL
);
83 CASE(WAFFLE_PLATFORM_SURFACELESS_EGL
);
84 CASE(WAFFLE_CONTEXT_API
);
85 CASE(WAFFLE_CONTEXT_OPENGL
);
86 CASE(WAFFLE_CONTEXT_OPENGL_ES1
);
87 CASE(WAFFLE_CONTEXT_OPENGL_ES2
);
88 CASE(WAFFLE_CONTEXT_OPENGL_ES3
);
89 CASE(WAFFLE_CONTEXT_MAJOR_VERSION
);
90 CASE(WAFFLE_CONTEXT_MINOR_VERSION
);
91 CASE(WAFFLE_CONTEXT_PROFILE
);
92 CASE(WAFFLE_CONTEXT_CORE_PROFILE
);
93 CASE(WAFFLE_CONTEXT_COMPATIBILITY_PROFILE
);
94 CASE(WAFFLE_CONTEXT_FORWARD_COMPATIBLE
);
95 CASE(WAFFLE_CONTEXT_DEBUG
);
96 CASE(WAFFLE_CONTEXT_ROBUST_ACCESS
);
97 CASE(WAFFLE_CONTEXT_LOSE_CONTEXT_ON_RESET
);
98 CASE(WAFFLE_RED_SIZE
);
99 CASE(WAFFLE_GREEN_SIZE
);
100 CASE(WAFFLE_BLUE_SIZE
);
101 CASE(WAFFLE_ALPHA_SIZE
);
102 CASE(WAFFLE_DEPTH_SIZE
);
103 CASE(WAFFLE_STENCIL_SIZE
);
104 CASE(WAFFLE_SAMPLE_BUFFERS
);
105 CASE(WAFFLE_SAMPLES
);
106 CASE(WAFFLE_DOUBLE_BUFFERED
);
107 CASE(WAFFLE_ACCUM_BUFFER
);
108 CASE(WAFFLE_DL_OPENGL
);
109 CASE(WAFFLE_DL_OPENGL_ES1
);
110 CASE(WAFFLE_DL_OPENGL_ES2
);
111 CASE(WAFFLE_DL_OPENGL_ES3
);
112 CASE(WAFFLE_WINDOW_WIDTH
);
113 CASE(WAFFLE_WINDOW_HEIGHT
);
114 CASE(WAFFLE_WINDOW_FULLSCREEN
);
116 default: return NULL
;