mirror of
https://git.code.sf.net/p/quake/quakeforge
synced 2024-11-10 15:22:04 +00:00
[vulkan] Delay main render resizes by 2s
This makes window resizing a little more responsive (though it could be better yet (maybe, could be an X11 limitation)).
This commit is contained in:
parent
e37b477739
commit
6fa016e23b
3 changed files with 7 additions and 3 deletions
|
@ -421,6 +421,7 @@ typedef struct qfv_renderctx_s {
|
|||
qfv_samplerinfo_t *samplerinfo;
|
||||
qfv_job_t *job;
|
||||
qfv_renderframeset_t frames;
|
||||
int64_t size_time;
|
||||
} qfv_renderctx_t;
|
||||
|
||||
typedef struct qfv_taskctx_s {
|
||||
|
|
|
@ -420,8 +420,9 @@ update_framebuffer (const exprval_t **params, exprval_t *result,
|
|||
|
||||
qfv_output_t output = {};
|
||||
Vulkan_ConfigOutput (ctx, &output);
|
||||
if (output.extent.width != render->output.extent.width
|
||||
|| output.extent.height != render->output.extent.height) {
|
||||
if ((output.extent.width != render->output.extent.width
|
||||
|| output.extent.height != render->output.extent.height)
|
||||
&& (Sys_LongTime () - ctx->render_context->size_time) > 2*1000*1000) {
|
||||
QFV_DestroyFramebuffer (ctx, rp);
|
||||
update_viewport_scissor (render, &output);
|
||||
render->output.extent = output.extent;
|
||||
|
@ -455,6 +456,7 @@ QFV_Render_Init (vulkan_ctx_t *ctx)
|
|||
{
|
||||
qfv_renderctx_t *rctx = calloc (1, sizeof (*rctx));
|
||||
ctx->render_context = rctx;
|
||||
rctx->size_time = -1000*1000*1000;
|
||||
|
||||
exprctx_t ectx = { .hashctx = &rctx->hashctx };
|
||||
exprsym_t syms[] = { {} };
|
||||
|
|
|
@ -122,6 +122,7 @@ acquire_output (const exprval_t **params, exprval_t *result, exprctx_t *ectx)
|
|||
pl->scissor.extent = sc->extent;
|
||||
}
|
||||
}
|
||||
rctx->size_time = Sys_LongTime ();
|
||||
}
|
||||
ctx->swapImageIndex = imageIndex;
|
||||
rp->beginInfo.framebuffer = octx->framebuffers[imageIndex];
|
||||
|
|
Loading…
Reference in a new issue