mirror of
https://github.com/mpv-player/mpv
synced 2025-02-18 13:47:04 +00:00
vo_opengl: allow texture uploads to fail
Surprisingly makes the code shorter, not longer
This commit is contained in:
parent
be05c9eb58
commit
01058b16f9
@ -321,8 +321,8 @@ struct ra_fns {
|
||||
// the image - conversions between bit depth etc. are not supported.
|
||||
// The buffer *may* be marked as "in use" while this operation is going on,
|
||||
// and the contents must not be touched again by the API user until
|
||||
// buf_poll returns true.
|
||||
void (*tex_upload)(struct ra *ra, const struct ra_tex_upload_params *params);
|
||||
// buf_poll returns true. Returns whether successful.
|
||||
bool (*tex_upload)(struct ra *ra, const struct ra_tex_upload_params *params);
|
||||
|
||||
// Create a buffer. This can be used as a persistently mapped buffer,
|
||||
// a uniform buffer, a shader storage buffer or possibly others.
|
||||
|
@ -424,7 +424,7 @@ bool ra_is_gl(struct ra *ra)
|
||||
return ra->fns == &ra_fns_gl;
|
||||
}
|
||||
|
||||
static void gl_tex_upload(struct ra *ra,
|
||||
static bool gl_tex_upload(struct ra *ra,
|
||||
const struct ra_tex_upload_params *params)
|
||||
{
|
||||
GL *gl = ra_gl_get(ra);
|
||||
@ -480,6 +480,8 @@ static void gl_tex_upload(struct ra *ra,
|
||||
buf_gl->fence = gl->FenceSync(GL_SYNC_GPU_COMMANDS_COMPLETE, 0);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static void gl_buf_destroy(struct ra *ra, struct ra_buf *buf)
|
||||
|
@ -126,10 +126,8 @@ bool tex_upload(struct ra *ra, struct tex_upload *pbo, bool want_pbo,
|
||||
if (!(ra->caps & RA_CAP_DIRECT_UPLOAD))
|
||||
want_pbo = true;
|
||||
|
||||
if (!want_pbo || params->buf) {
|
||||
ra->fns->tex_upload(ra, params);
|
||||
return true;
|
||||
}
|
||||
if (!want_pbo || params->buf)
|
||||
return ra->fns->tex_upload(ra, params);
|
||||
|
||||
struct ra_tex *tex = params->tex;
|
||||
size_t row_size = tex->params.dimensions == 2 ? params->stride :
|
||||
@ -169,8 +167,7 @@ bool tex_upload(struct ra *ra, struct tex_upload *pbo, bool want_pbo,
|
||||
newparams.buf = buf;
|
||||
newparams.src = NULL;
|
||||
|
||||
ra->fns->tex_upload(ra, &newparams);
|
||||
return true;
|
||||
return ra->fns->tex_upload(ra, &newparams);
|
||||
}
|
||||
|
||||
void tex_upload_uninit(struct ra *ra, struct tex_upload *pbo)
|
||||
|
Loading…
Reference in New Issue
Block a user