Quellcode durchsuchen

Only run after 100ms to prevent flashing updates

When updating too often the content flashes and looks very weird.
Luna Stadler vor 4 Jahren
Ursprung
Commit
957eb7b3db
1 geänderte Dateien mit 9 neuen und 3 gelöschten Zeilen
  1. 9 3
      zig/sdl/hello_sdl.zig

+ 9 - 3
zig/sdl/hello_sdl.zig

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