Show More
@@ -1,9 +1,12 b'' | |||||
1 | # encoding: utf-8 |
|
1 | # encoding: utf-8 | |
2 |
|
||||
3 | """ |
|
2 | """ | |
4 | Enable pyglet to be used interacive by setting PyOS_InputHook. |
|
3 | Enable pyglet to be used interacive by setting PyOS_InputHook. | |
5 |
|
4 | |||
6 | Authors: Nicolas P. Rougier |
|
5 | Authors | |
|
6 | ------- | |||
|
7 | ||||
|
8 | * Nicolas P. Rougier | |||
|
9 | * Fernando Perez | |||
7 | """ |
|
10 | """ | |
8 |
|
11 | |||
9 | #----------------------------------------------------------------------------- |
|
12 | #----------------------------------------------------------------------------- | |
@@ -24,26 +27,45 b' import time' | |||||
24 | from timeit import default_timer as clock |
|
27 | from timeit import default_timer as clock | |
25 | import pyglet |
|
28 | import pyglet | |
26 |
|
29 | |||
27 | if os.name == 'posix': |
|
|||
28 | import select |
|
|||
29 | elif sys.platform == 'win32': |
|
|||
30 | import msvcrt |
|
|||
31 |
|
||||
32 | #----------------------------------------------------------------------------- |
|
30 | #----------------------------------------------------------------------------- | |
33 | # Code |
|
31 | # Platform-dependent imports and functions | |
34 | #----------------------------------------------------------------------------- |
|
32 | #----------------------------------------------------------------------------- | |
35 |
|
33 | |||
36 | def stdin_ready(): |
|
|||
37 |
|
|
34 | if os.name == 'posix': | |
|
35 | import select | |||
|
36 | ||||
|
37 | def stdin_ready(): | |||
38 | infds, outfds, erfds = select.select([sys.stdin],[],[],0) |
|
38 | infds, outfds, erfds = select.select([sys.stdin],[],[],0) | |
39 | if infds: |
|
39 | if infds: | |
40 | return True |
|
40 | return True | |
41 | else: |
|
41 | else: | |
42 | return False |
|
42 | return False | |
|
43 | ||||
43 |
|
|
44 | elif sys.platform == 'win32': | |
|
45 | import msvcrt | |||
|
46 | ||||
|
47 | def stdin_ready(): | |||
44 | return msvcrt.kbhit() |
|
48 | return msvcrt.kbhit() | |
45 |
|
49 | |||
46 |
|
50 | |||
|
51 | # On linux only, window.flip() has a bug that causes an AttributeError on | |||
|
52 | # window close. For details, see: | |||
|
53 | # http://groups.google.com/group/pyglet-users/browse_thread/thread/47c1aab9aa4a3d23/c22f9e819826799e?#c22f9e819826799e | |||
|
54 | ||||
|
55 | if sys.platform.startswith('linux'): | |||
|
56 | def flip(window): | |||
|
57 | try: | |||
|
58 | window.flip() | |||
|
59 | except AttributeError: | |||
|
60 | pass | |||
|
61 | else: | |||
|
62 | def flip(window): | |||
|
63 | window.flip() | |||
|
64 | ||||
|
65 | #----------------------------------------------------------------------------- | |||
|
66 | # Code | |||
|
67 | #----------------------------------------------------------------------------- | |||
|
68 | ||||
47 | def inputhook_pyglet(): |
|
69 | def inputhook_pyglet(): | |
48 | """Run the pyglet event loop by processing pending events only. |
|
70 | """Run the pyglet event loop by processing pending events only. | |
49 |
|
71 | |||
@@ -62,7 +84,7 b' def inputhook_pyglet():' | |||||
62 | window.switch_to() |
|
84 | window.switch_to() | |
63 | window.dispatch_events() |
|
85 | window.dispatch_events() | |
64 | window.dispatch_event('on_draw') |
|
86 | window.dispatch_event('on_draw') | |
65 |
|
|
87 | flip(window) | |
66 |
|
88 | |||
67 | # We need to sleep at this point to keep the idle CPU load |
|
89 | # We need to sleep at this point to keep the idle CPU load | |
68 | # low. However, if sleep to long, GUI response is poor. As |
|
90 | # low. However, if sleep to long, GUI response is poor. As |
General Comments 0
You need to be logged in to leave comments.
Login now