8000 Remove wlr_create_renderer_func_t · swaywm/wlroots@4b03bdc · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
This repository was archived by the owner on Nov 1, 2021. It is now read-only.

Commit 4b03bdc

Browse files
committed
Remove wlr_create_renderer_func_t
This callback allowed compositors to customize the EGL config used by the renderer. However with renderer v6 EGL configs aren't used anymore. Instead, buffers are allocated via GBM and GL FBOs are rendered to. So customizing the EGL config is a no-op.
1 parent bec1e6b commit 4b03bdc

20 files changed

+43
-76
lines changed

backend/backend.c

+19-23
< 10000 /tr>
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,8 @@ static size_t parse_outputs_env(const char *name) {
8787
return outputs;
8888
}
8989

90-
static struct wlr_backend *attempt_wl_backend(struct wl_display *display,
91-
wlr_renderer_create_func_t create_renderer_func) {
92-
struct wlr_backend *backend = wlr_wl_backend_create(display, NULL, create_renderer_func);
90+
static struct wlr_backend *attempt_wl_backend(struct wl_display *display) {
91+
struct wlr_backend *backend = wlr_wl_backend_create(display, NULL);
9392
if (backend == NULL) {
9493
return NULL;
9594
}
@@ -104,8 +103,8 @@ static struct wlr_backend *attempt_wl_backend(struct wl_display *display,
104103

105104
#if WLR_HAS_X11_BACKEND
106105
static struct wlr_backend *attempt_x11_backend(struct wl_display *display,
107-
const char *x11_display, wlr_renderer_create_func_t create_renderer_func) {
108-
struct wlr_backend *backend = wlr_x11_backend_create(display, x11_display, create_renderer_func);
106+
const char *x11_display) {
107+
struct wlr_backend *backend = wlr_x11_backend_create(display, x11_display);
109108
if (backend == NULL) {
110109
return NULL;
111110
}
@@ -120,8 +119,8 @@ static struct wlr_backend *attempt_x11_backend(struct wl_display *display,
120119
#endif
121120

122121
static struct wlr_backend *attempt_headless_backend(
123-
struct wl_display *display, wlr_renderer_create_func_t create_renderer_func) {
124-
struct wlr_backend *backend = wlr_headless_backend_create(display, create_renderer_func);
122+
struct wl_display *display) {
123+
struct wlr_backend *backend = wlr_headless_backend_create(display);
125124
if (backend == NULL) {
126125
return NULL;
127126
}
@@ -149,16 +148,15 @@ static struct wlr_backend *attempt_noop_backend(struct wl_display *display) {
149148
}
150149

151150
static struct wlr_backend *attempt_drm_backend(struct wl_display *display,
152-
struct wlr_backend *backend, struct wlr_session *session,
153-
wlr_renderer_create_func_t create_renderer_func) {
151+
struct wlr_backend *backend, struct wlr_session *session) {
154152
struct wlr_device *gpus[8];
155153
size_t num_gpus = wlr_session_find_gpus(session, 8, gpus);
156154
struct wlr_backend *primary_drm = NULL;
157155
wlr_log(WLR_INFO, "Found %zu GPUs", num_gpus);
158156

159157
for (size_t i = 0; i < num_gpus; ++i) {
160158
struct wlr_backend *drm = wlr_drm_backend_create(display, session,
161-
gpus[i], primary_drm, create_renderer_func);
159+
gpus[i], primary_drm);
162160
if (!drm) {
163161
wlr_log(WLR_ERROR, "Failed to create DRM backend");
164162
continue;
@@ -176,15 +174,15 @@ static struct wlr_backend *attempt_drm_backend(struct wl_display *display,
176174

177175
static struct wlr_backend *attempt_backend_by_name(struct wl_display *display,
178176
struct wlr_backend *backend, struct wlr_session **session,
179-
const char *name, wlr_renderer_create_func_t create_renderer_func) {
177+
const char *name) {
180178
if (strcmp(name, "wayland") == 0) {
181-
return attempt_wl_backend(display, create_renderer_func);
179+
return attempt_wl_backend(display);
182180
#if WLR_HAS_X11_BACKEND
183181
} else if (strcmp(name, "x11") == 0) {
184-
return attempt_x11_backend(display, NULL, create_renderer_func);
182+
return attempt_x11_backend(display, NULL);
185183
#endif
186184
} else if (strcmp(name, "headless") == 0) {
187-
return attempt_headless_backend(display, create_renderer_func);
185+
return attempt_headless_backend(display);
188186
} else if (strcmp(name, "noop") == 0) {
189187
return attempt_noop_backend(display);
190188
} else if (strcmp(name, "drm") == 0 || strcmp(name, "libinput") == 0) {
@@ -200,16 +198,15 @@ static struct wlr_backend *attempt_backend_by_name(struct wl_display *display,
200198
if (strcmp(name, "libinput") == 0) {
201199
return wlr_libinput_backend_create(display, *session);
202200
} else {
203-
return attempt_drm_backend(display, backend, *session, create_renderer_func);
201+
return attempt_drm_backend(display, backend, *session);
204202
}
205203
}
206204

207205
wlr_log(WLR_ERROR, "unrecognized backend '%s'", name);
208206
return NULL;
209207
}
210208

211-
struct wlr_backend *wlr_backend_autocreate(struct wl_display *display,
212-
wlr_renderer_create_func_t create_renderer_func) {
209+
struct wlr_backend *wlr_backend_autocreate(struct wl_display *display) {
213210
struct wlr_backend *backend = wlr_multi_backend_create(display);
214211
struct wlr_multi_backend *multi = (struct wlr_multi_backend *)backend;
215212
if (!backend) {
@@ -230,7 +227,7 @@ struct wlr_backend *wlr_backend_autocreate(struct wl_display *display,
230227
char *name = strtok_r(names, ",", &saveptr);
231228
while (name != NULL) {
232229
struct wlr_backend *subbackend = attempt_backend_by_name(display,
233-
backend, &multi->session, name, create_renderer_func);
230+
backend, &multi->session, name);
234231
if (subbackend == NULL) {
235232
wlr_log(WLR_ERROR, "failed to start backend '%s'", name);
236233
wlr_session_destroy(multi->session);
@@ -255,8 +252,7 @@ struct wlr_backend *wlr_backend_autocreate(struct wl_display *display,
255252
}
256253

257254
if (getenv("WAYLAND_DISPLAY") || getenv("WAYLAND_SOCKET")) {
258-
struct wlr_backend *wl_backend = attempt_wl_backend(display,
259-
create_renderer_func);
255+
struct wlr_backend *wl_backend = attempt_wl_backend(display);
260256
if (!wl_backend) {
261257
goto error;
262258
}
@@ -269,7 +265,7 @@ struct wlr_backend *wlr_backend_autocreate(struct wl_display *display,
269265
const char *x11_display = getenv("DISPLAY");
270266
if (x11_display) {
271267
struct wlr_backend *x11_backend =
272-
attempt_x11_backend(display, x11_display, create_renderer_func);
268+
attempt_x11_backend(display, x11_display);
273269
if (!x11_backend) {
274270
goto error;
275271
}
@@ -297,8 +293,8 @@ struct wlr_backend *wlr_backend_autocreate(struct wl_display *display,
297293
}
298294
wlr_multi_backend_add(backend, libinput);
299295

300-
struct wlr_backend *primary_drm = attempt_drm_backend(display, backend,
301-
multi->session, create_renderer_func);
296+
struct wlr_backend *primary_drm =
297+
attempt_drm_backend(display, backend, multi->session);
302298
if (!primary_drm) {
303299
wlr_log(WLR_ERROR, "Failed to open any DRM device");
304300
wlr_backend_destroy(libinput);

backend/drm/backend.c

+2-3
Original file line numberDiff line numberDiff line change
@@ -128,8 +128,7 @@ static void handle_display_destroy(struct wl_listener *listener, void *data) {
128128

129129
struct wlr_backend *wlr_drm_backend_create(struct wl_display *display,
130130
struct wlr_session *session, struct wlr_device *dev,
131-
struct wlr_backend *parent,
132-
wlr_renderer_create_func_t create_renderer_func) {
131+
struct wlr_backend *parent) {
133132
assert(display && session && dev);
134133
assert(!parent || wlr_backend_is_drm(parent));
135134

@@ -179,7 +178,7 @@ struct wlr_backend *wlr_drm_backend_create(struct wl_display *display,
179178
goto error_event;
180179
}
181180

182-
if (!init_drm_renderer(drm, &drm->renderer, create_renderer_func)) {
181+
if (!init_drm_renderer(drm, &drm->renderer)) {
183182
wlr_log(WLR_ERROR, "Failed to initialize renderer");
184183
goto error_event;
185184
}

backend/drm/renderer.c

+2-6
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#include "render/wlr_renderer.h"
2222

2323
bool init_drm_renderer(struct wlr_drm_backend *drm,
24-
struct wlr_drm_renderer *renderer, wlr_renderer_create_func_t create_renderer_func) {
24+
struct wlr_drm_renderer *renderer) {
2525
renderer->backend = drm;
2626

2727
renderer->gbm = gbm_create_device(drm->fd);
@@ -30,11 +30,7 @@ bool init_drm_renderer(struct wlr_drm_backend *drm,
3030
return false;
3131
}
3232

33-
if (!create_renderer_func) {
34-
create_renderer_func = wlr_renderer_autocreate;
35-
}
36-
37-
renderer->wlr_rend = create_renderer_func(&renderer->egl,
33+
renderer->wlr_rend = wlr_renderer_autocreate(&renderer->egl,
3834
EGL_PLATFORM_GBM_KHR, renderer->gbm, NULL, 0);
3935
if (!renderer->wlr_rend) {
4036
wlr_log(WLR_ERROR, "Failed to create 10000 EGL/WLR renderer");

backend/headless/backend.c

+2-7
Original file line numberDiff line numberDiff line change
@@ -184,8 +184,7 @@ static int open_drm_render_node(void) {
184184
return fd;
185185
}
186186

187-
struct wlr_backend *wlr_headless_backend_create(struct wl_display *display,
188-
wlr_renderer_create_func_t create_renderer_func) {
187+
struct wlr_backend *wlr_headless_backend_create(struct wl_display *display) {
189188
wlr_log(WLR_INFO, "Creating headless backend");
190189

191190
int drm_fd = open_drm_render_node();
@@ -207,11 +206,7 @@ struct wlr_backend *wlr_headless_backend_create(struct wl_display *display,
207206
goto error_backend;
208207
}
209208

210-
if (!create_renderer_func) {
211-
create_renderer_func = wlr_renderer_autocreate;
212-
}
213-
214-
struct wlr_renderer *renderer = create_renderer_func(&backend->priv_egl,
209+
struct wlr_renderer *renderer = wlr_renderer_autocreate(&backend->priv_egl,
215210
EGL_PLATFORM_GBM_KHR, gbm_alloc->gbm_device, NULL, 0);
216211
if (!renderer) {
217212
wlr_log(WLR_ERROR, "Failed to create renderer");

backend/wayland/backend.c

+2-6
Original file line numberDiff line numberDiff line change
@@ -260,7 +260,7 @@ static void handle_display_destroy(struct wl_listener *listener, void *data) {
260260
}
261261

262262
struct wlr_backend *wlr_wl_backend_create(struct wl_display *display,
263-
const char *remote, wlr_renderer_create_func_t create_renderer_func) {
263+
const char *remote) {
264264
wlr_log(WLR_INFO, "Creating wayland backend");
265265

266266
struct wlr_wl_backend *wl = calloc(1, sizeof(*wl));
@@ -315,11 +315,7 @@ struct wlr_backend *wlr_wl_backend_create(struct wl_display *display,
315315
}
316316
wl_event_source_check(wl->remote_display_src);
317317

318-
if (!create_renderer_func) {
319-
create_renderer_func = wlr_renderer_autocreate;
320-
}
321-
322-
wl->renderer = create_renderer_func(&wl->egl, EGL_PLATFORM_WAYLAND_EXT,
318+
wl->renderer = wlr_renderer_autocreate(&wl->egl, EGL_PLATFORM_WAYLAND_EXT,
323319
wl->remote_display, NULL, 0);
324320
if (!wl->renderer) {
325321
wlr_log(WLR_ERROR, "Could not create renderer");

backend/x11/backend.c

+2-7
Original file line numberDiff line numberDiff line change
@@ -322,8 +322,7 @@ static bool query_dri3_formats(struct wlr_x11_backend *x11) {
322322
}
323323

324324
struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
325-
const char *x11_display,
326-
wlr_renderer_create_func_t create_renderer_func) {
325+
const char *x11_display) {
327326
struct wlr_x11_backend *x11 = calloc(1, sizeof(*x11));
328327
if (!x11) {
329328
return NULL;
@@ -512,11 +511,7 @@ struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
512511
}
513512
x11->allocator = &gbm_alloc->base;
514513

515-
if (!create_renderer_func) {
516-
create_renderer_func = wlr_renderer_autocreate;
517-
}
518-
519-
x11->renderer = create_renderer_func(&x11->egl, EGL_PLATFORM_GBM_KHR,
514+
x11->renderer = wlr_renderer_autocreate(&x11->egl, EGL_PLATFORM_GBM_KHR,
520515
gbm_alloc->gbm_device, NULL, 0);
521516
if (x11->renderer == NULL) {
522517
wlr_log(WLR_ERROR, "Failed to create renderer");

examples/fullscreen-shell.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ int main(int argc, char *argv[]) {
203203

204204
struct fullscreen_server server = {0};
205205
server.wl_display = wl_display_create();
206-
server.backend = wlr_backend_autocreate(server.wl_display, NULL);
206+
server.backend = wlr_backend_autocreate(server.wl_display);
207207
server.renderer = wlr_backend_get_renderer(server.backend);
208208
wlr_renderer_init_wl_display(server.renderer, server.wl_display);
209209

examples/multi-pointer.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -271,7 +271,7 @@ int main(int argc, char *argv[]) {
271271
.clear_color = { 0.25f, 0.25f, 0.25f, 1 },
272272
.display = display,
273273
};
274-
struct wlr_backend *wlr = wlr_backend_autocreate(display, NULL);
274+
struct wlr_backend *wlr = wlr_backend_autocreate(display);
275275
if (!wlr) {
276276
exit(1);
277277
}

examples/output-layout.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,7 @@ int main(int argc, char *argv[]) {
267267
state.layout = wlr_output_layout_create();
268268
clock_gettime(CLOCK_MONOTONIC, &state.ts_last);
269269

270-
struct wlr_backend *wlr = wlr_backend_autocreate(display, NULL);
270+
struct wlr_backend *wlr = wlr_backend_autocreate(display);
271271
if (!wlr) {
272272
exit(1);
273273
}

examples/pointer.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -333,7 +333,7 @@ int main(int argc, char *argv[]) {
333333
.display = display
334334
};
335335

336-
struct wlr_backend *wlr = wlr_backend_autocreate(display, NULL);
336+
struct wlr_backend *wlr = wlr_backend_autocreate(display);
337337
if (!wlr) {
338338
exit(1);
339339
}

examples/rotation.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ int main(int argc, char *argv[]) {
241241
};
242242
wl_list_init(&state.outputs);
243243

244-
struct wlr_backend *wlr = wlr_backend_autocreate(display, NULL);
244+
struct wlr_backend *wlr = wlr_backend_autocreate(display);
245245
if (!wlr) {
246246
exit(1);
247247
}

examples/simple.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ int main(void) {
173173
.last_frame = { 0 },
174174
.display = display
175175
};
176-
struct wlr_backend *backend = wlr_backend_autocreate(display, NULL);
176+
struct wlr_backend *backend = wlr_backend_autocreate(display);
177177
if (!backend) {
178178
exit(1);
179179
}

examples/tablet.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -356,7 +356,7 @@ int main(int argc, char *argv[]) {
356356
};
357357
wl_list_init(&state.tablet_pads);
358358
wl_list_init(&state.tablet_tools);
359-
struct wlr_backend *wlr = wlr_backend_autocreate(display, NULL);
359+
struct wlr_backend *wlr = wlr_backend_autocreate(display);
360360
if (!wlr) {
361361
exit(1);
362362
}

examples/touch.c

+1-1
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ int main(int argc, char *argv[]) {
249249
wl_list_init(&state.touch_points);
250250
wl_list_init(&state.touch);
251251

252-
struct wlr_backend *wlr = wlr_backend_autocreate(display, NULL);
252+
struct wlr_backend *wlr = wlr_backend_autocreate(display);
253253
if (!wlr) {
254254
exit(1);
255255
}

include/backend/drm/renderer.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ struct wlr_drm_fb {
4141
};
4242

4343
bool init_drm_renderer(struct wlr_drm_backend *drm,
44-
struct wlr_drm_renderer *renderer, wlr_renderer_create_func_t create_render);
44+
struct wlr_drm_renderer *renderer);
4545
void finish_drm_renderer(struct wlr_drm_renderer *renderer);
4646

4747
bool drm_surface_make_current(struct wlr_drm_surface *surf, int *buffer_age);

include/wlr/backend.h

+1-9
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,12 @@ struct wlr_backend {
2828
} events;
2929
};
3030

31-
typedef struct wlr_renderer *(*wlr_renderer_create_func_t)(struct wlr_egl *egl, EGLenum platform,
32-
void *remote_display, EGLint *config_attribs, EGLint visual_id);
3331
/**
3432
* Automatically initializes the most suitable backend given the environment.
3533
* Will always return a multibackend. The backend is created but not started.
3634
* Returns NULL on failure.
37-
*
38-
* The compositor can request to initialize the backend's renderer by setting
39-
* the create_render_func. The callback must initialize the given wlr_egl and
40-
* return a valid wlr_renderer, or NULL if it has failed to initiaze it.
41-
* Pass NULL as create_renderer_func to use the backend's default renderer.
4235
*/
43-
struct wlr_backend *wlr_backend_autocreate(struct wl_display *display,
44-
wlr_renderer_create_func_t create_renderer_func);
36+
struct wlr_backend *wlr_backend_autocreate(struct wl_display *display);
4537
/**
4638
* Start the backend. This may signal new_input or new_output immediately, but
4739
* may also wait until the display's event loop begins. Returns false on

include/wlr/backend/drm.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,7 @@
2323
*/
2424
struct wlr_backend *wlr_drm_backend_create(struct wl_display *display,
2525
struct wlr_session *session, struct wlr_device *dev,
26-
struct wlr_backend *parent,
27-
wlr_renderer_create_func_t create_renderer_func);
26+
struct wlr_backend *parent);
2827

2928
bool wlr_backend_is_drm(struct wlr_backend *backend);
3029
bool wlr_output_is_drm(struct wlr_output *output);

include/wlr/backend/headless.h

+1-2
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717
* Creates a headless backend. A headless backend has no outputs or inputs by
1818
* default.
1919
*/
20-
struct wlr_backend *wlr_headless_backend_create(struct wl_display *display,
21-
wlr_renderer_create_func_t create_renderer_func);
20+
struct wlr_backend *wlr_headless_backend_create(struct wl_display *display);
2221
/**
2322
* Creates a headless backend with an existing renderer.
2423
*/

include/wlr/backend/wayland.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* default)
1717
*/
1818
struct wlr_backend *wlr_wl_backend_create(struct wl_display *display,
19-
const char *remote, wlr_renderer_create_func_t create_renderer_func);
19+
const char *remote);
2020

2121
/**
2222
* Returns the remote wl_display used by the Wayland backend.

include/wlr/backend/x11.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
* to NULL for the default behaviour of XOpenDisplay.
1818
*/
1919
struct wlr_backend *wlr_x11_backend_create(struct wl_display *display,
20-
const char *x11_display, wlr_renderer_create_func_t create_renderer_func);
20+
const char *x11_display);
2121

2222
/**
2323
* Adds a new output to this backend. You may remove outputs by destroying them.

0 commit comments

Comments
 (0)
0