MXVK Vulkan Framework 0.35.0
C++20 Vulkan rendering framework for practical 2D and 3D application development with SDL3.
Loading...
Searching...
No Matches
knight Namespace Reference

Classes

class  KnightsTourWindow
class  Position
class  Tour

Functions

int lround (float value)
int main ()
 parse_args ()
tuple[int, int] parse_resolution (str value)

Variables

 EXAMPLE_DIR = Path(__file__).resolve().parent

Function Documentation

◆ lround()

int lround ( float value)

Definition at line 41 of file knight.py.

41def lround(value: float) -> int:
42 if (value >= 0.0):
43 return math.floor(value + 0.5)
44
45 return math.ceil(value - 0.5)
46
47
48@dataclass(frozen=True, slots=True)

◆ main()

int main ( void )

Definition at line 453 of file knight.py.

453def main() -> int:
454 args = parse_args()
455 width, height = args.resolution
456 window = None
457
458 try:
459 window = KnightsTourWindow(args.path, width, height, args.fullscreen, args.enable_vsync)
460 window.loop()
461
462 except mxvk.MXVKError as exception:
463 print(f"mxvk: Exception: {exception}", file=sys.stderr)
464 return 1
465
466 finally:
467 if window is not None:
468 window.close()
469
470 return 0
471
472
Definition main.py:1

◆ parse_args()

parse_args ( )

Definition at line 442 of file knight.py.

442def parse_args():
443 parser = argparse.ArgumentParser(description="Knights Tour using the MXVK Python bindings")
444
445 parser.add_argument("-p", "--path", default=str(EXAMPLE_DIR), help="resource root containing the data directory")
446 parser.add_argument("-r", "--resolution", type=parse_resolution, default=(960, 720), metavar="WIDTHxHEIGHT", help="window resolution (default: 960x720)")
447 parser.add_argument("-f", "--fullscreen", action="store_true", help="start fullscreen")
448 parser.add_argument("--enable-vsync", action="store_true", help="enable vertical synchronization")
449
450 return parser.parse_args()
451
452

◆ parse_resolution()

tuple[int, int] parse_resolution ( str value)

Definition at line 427 of file knight.py.

427def parse_resolution(value: str) -> tuple[int, int]:
428 try:
429 width_text, height_text = value.lower().split("x", 1)
430 width = int(width_text)
431 height = int(height_text)
432
433 except ValueError as exception:
434 raise argparse.ArgumentTypeError("resolution must use WIDTHxHEIGHT, for example 960x720") from exception
435
436 if (width <= 0 or height <= 0):
437 raise argparse.ArgumentTypeError("resolution width and height must be greater than zero")
438
439 return width, height
440
441

Variable Documentation

◆ EXAMPLE_DIR

knight.EXAMPLE_DIR = Path(__file__).resolve().parent

Definition at line 38 of file knight.py.