Просмотр исходного кода

Only run after 100ms to prevent flashing updates

When updating too often the content flashes and looks very weird.
Luna Stadler лет назад: 4
Родитель
Сommit
957eb7b3db
1 измененных файлов с 9 добавлено и 3 удалено
  1. 9 3
      zig/sdl/hello_sdl.zig

+ 9 - 3
zig/sdl/hello_sdl.zig

@ -333,10 +333,13 @@ pub fn main() !void {
333 333
    var quit = false;
334 334
    var skip: i32 = 0;
335 335
    var num_lines: i32 = 0;
336
337
    var changed = false;
338
    var lastChange: u32 = 0;
339
336 340
    while (!quit) {
337
        var event: c.SDL_Event = undefined;
338
        var changed = false;
339 341
        var confirmed = false;
342
        var event: c.SDL_Event = undefined;
340 343
        while (c.SDL_PollEvent(&event) != 0) {
341 344
            const ctrlPressed = (keyboardState[c.SDL_SCANCODE_LCTRL] != 0);
342 345
            switch (event.@"type") {
@ -452,10 +455,13 @@ pub fn main() !void {
452 455
453 456
        const cmd = std.mem.trim(u8, std.mem.sliceTo(&msg, 0), &std.ascii.spaces);
454 457
455
        if (changed) {
458
        if (changed and c.SDL_GetTicks() - lastChange > 100) {
456 459
            for (commands) |*command| {
457 460
                _ = try command.run(gpa, cmd, confirmed);
458 461
            }
462
463
            changed = false;
464
            lastChange = c.SDL_GetTicks();
459 465
        }
460 466
461 467
        _ = c.SDL_SetRenderDrawColor(renderer, 0, 0, 0, 100);