Guest User

Untitled

a guest
Aug 18th, 2018
257
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TCL 1.12 KB | None | 0 0
  1. namespace eval openmsx {
  2.  
  3. rename ::screenshot old_screenshot
  4.  
  5. proc screenshot {args} {
  6.     set args2 [list]
  7.     set sprites true
  8.  
  9.     foreach arg $args {
  10.         if {$arg == "-no-sprites"} {
  11.             set sprites false
  12.         } elseif {$arg == "-guess-name"} {
  13.                         set base [guess_title]
  14.                         if {$base != ""} {lappend args2 -prefix ${base}}
  15.                 } else {
  16.             lappend args2 $arg
  17.         }
  18.     }
  19.     if {$sprites} {
  20.         eval old_screenshot $args2
  21.     } else {
  22.         # disable sprites, wait for one complete frame and take screenshot
  23.         set orig_disable_sprites $::disablesprites
  24.         set ::disablesprites true
  25.         after frame [namespace code [list screenshot_helper1 $orig_disable_sprites $args2]]
  26.     }
  27. }
  28. proc screenshot_helper1 { orig_disable_sprites args2 } {
  29.     after frame [namespace code [list screenshot_helper2 $orig_disable_sprites $args2]]
  30. }
  31. proc screenshot_helper2 { orig_disable_sprites args2 } {
  32.     # take screenshot and restore 'disablesprites' setting
  33.     eval old_screenshot $args2
  34.     set ::disablesprites $orig_disable_sprites
  35. }
  36.  
  37. namespace export screenshot
  38.  
  39. }; # namespace
  40.  
  41. namespace import openmsx::screenshot
Add Comment
Please, Sign In to add comment