Commit | Line | Data |
162a0989 |
1 | <div class="pod"> |
2 | <!-- INDEX START --> |
3 | <h3 id="TOP">Index</h3> |
4 | |
5 | <ul><li><a href="#NAME">NAME</a></li> |
bfdd9c2e |
6 | <li><a href="#CATEGORY">CATEGORY</a></li> |
162a0989 |
7 | <li><a href="#SYNOPSIS">SYNOPSIS</a></li> |
8 | <li><a href="#DESCRIPTION">DESCRIPTION</a></li> |
9 | <li><a href="#METHODS">METHODS</a> |
10 | <ul><li><a href="#new">new</a></li> |
e1ec9f6e |
11 | </ul> |
12 | </li> |
13 | <li><a href="#METHODS-2">METHODS</a> |
14 | <ul><li><a href="#title">title()</a></li> |
285d0cd2 |
15 | <li><a href="#title_new_title">title( $new_title )</a></li> |
16 | <li><a href="#title_window_title_icon_title">title( $window_title, $icon_title )</a></li> |
17 | <li><a href="#delay_ms">delay( $ms )</a></li> |
162a0989 |
18 | <li><a href="#ticks">ticks</a></li> |
19 | <li><a href="#error">error</a></li> |
285d0cd2 |
20 | <li><a href="#resize_width_height">resize( $width, $height )</a></li> |
162a0989 |
21 | <li><a href="#fullscreen">fullscreen</a></li> |
22 | <li><a href="#iconify">iconify</a></li> |
285d0cd2 |
23 | <li><a href="#grab_input_CONSTANT">grab_input( $CONSTANT )</a></li> |
162a0989 |
24 | <li><a href="#sync">sync</a></li> |
285d0cd2 |
25 | <li><a href="#attribute_attr">attribute( $attr )</a></li> |
26 | <li><a href="#attribute_attr_value">attribute( $attr, $value )</a></li> |
162a0989 |
27 | </ul> |
28 | </li> |
e1ec9f6e |
29 | <li><a href="#CALLBACKS">CALLBACKS</a></li> |
c7e8d3c6 |
30 | <li><a href="#AUTHORS">AUTHORS</a></li> |
162a0989 |
31 | <li><a href="#SEE_ALSO">SEE ALSO</a> |
32 | </li> |
33 | </ul><hr /> |
34 | <!-- INDEX END --> |
35 | |
36 | <h1 id="NAME">NAME</h1><p><a href="#TOP" class="toplink">Top</a></p> |
37 | <div id="NAME_CONTENT"> |
ca0a3441 |
38 | <p>SDLx::App - a SDL perl extension</p> |
162a0989 |
39 | |
40 | </div> |
bfdd9c2e |
41 | <h1 id="CATEGORY">CATEGORY</h1><p><a href="#TOP" class="toplink">Top</a></p> |
42 | <div id="CATEGORY_CONTENT"> |
43 | <p>Extension</p> |
44 | |
45 | </div> |
162a0989 |
46 | <h1 id="SYNOPSIS">SYNOPSIS</h1><p><a href="#TOP" class="toplink">Top</a></p> |
47 | <div id="SYNOPSIS_CONTENT"> |
f373167e |
48 | <pre> use SDL; |
ca0a3441 |
49 | use SDLx::App; |
f373167e |
50 | use SDL::Event; |
51 | use SDL::Events; |
52 | |
ca0a3441 |
53 | my $app = SDLx::App->new( |
505f308d |
54 | title => 'Application Title', |
55 | width => 640, |
56 | height => 480, |
57 | depth => 32 |
f373167e |
58 | ); |
162a0989 |
59 | |
60 | </pre> |
285d0cd2 |
61 | <p>This is the manual way of doing things</p> |
f373167e |
62 | <pre> my $event = SDL::Event->new; # create a new event |
162a0989 |
63 | |
f373167e |
64 | SDL::Events::pump_events(); |
162a0989 |
65 | |
f373167e |
66 | while ( SDL::Events::poll_event($event) ) { |
67 | my $type = $event->type(); # get event type |
68 | print $type; |
69 | exit if $type == SDL_QUIT; |
70 | } |
162a0989 |
71 | |
72 | </pre> |
285d0cd2 |
73 | <p>An alternative to the manual Event processing is the <a href="http://search.cpan.org/perldoc?SDLx::App::loop">SDLx::App::loop</a>.</p> |
162a0989 |
74 | |
75 | </div> |
76 | <h1 id="DESCRIPTION">DESCRIPTION</h1><p><a href="#TOP" class="toplink">Top</a></p> |
77 | <div id="DESCRIPTION_CONTENT"> |
ca0a3441 |
78 | <p><a href="http://search.cpan.org/perldoc?SDLx::App">SDLx::App</a> controls the root window of the of your SDL based application. |
55bbf7a2 |
79 | It extends the <a href="SDL-Surface.html">SDL::Surface</a> class, and provides an interface to the window |
162a0989 |
80 | manager oriented functions.</p> |
81 | |
82 | </div> |
83 | <h1 id="METHODS">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p> |
84 | <div id="METHODS_CONTENT"> |
85 | |
86 | </div> |
87 | <h2 id="new">new</h2> |
88 | <div id="new_CONTENT"> |
ca0a3441 |
89 | <p><code>SDLx::App::new</code> initializes the SDL, creates a new screen, |
162a0989 |
90 | and initializes some of the window manager properties. |
ca0a3441 |
91 | <code>SDLx::App::new</code> takes a series of named parameters:</p> |
285d0cd2 |
92 | <dl> |
c7e8d3c6 |
93 | <dt>* title |
94 | the window title. Defaults to the file name. Shorter alias: 't'</dt> |
95 | <dt>* icon_title |
96 | the icon title. Defaults to file name. Shortcut: 'it'</dt> |
97 | <dt>* icon |
98 | the icon itself. Defaults to none. Shortcut: 'i'</dt> |
99 | <dt>* width |
100 | Window width, in pixels. Defaults to 800. Shortcut: 'w'</dt> |
101 | <dt>* height |
102 | Window height, in pixels. Defaults to 600. Shortcut: 'h'</dt> |
103 | <dt>* depth |
104 | Screen depth. Defaults to 16. Shortcut: 'd'.</dt> |
105 | <dt>* flags |
106 | Any flags you want to pass to <a href="SDL-Video.html">SDL::Video</a> upon initialization. Defaults to SDL_ANYFORMAT. Flags should be <i>or'ed</i> together if you're passing more than one (flags => FOO|BAR). Shortcut: 'f'.</dt> |
107 | <dt>* resizeable |
108 | Set this to a true value to make the window resizeable by the user. Default is off.</dt> |
285d0cd2 |
109 | </dl> |
110 | |
e1ec9f6e |
111 | </div> |
112 | <h1 id="METHODS-2">METHODS</h1><p><a href="#TOP" class="toplink">Top</a></p> |
113 | <div id="METHODS_CONTENT-2"> |
162a0989 |
114 | |
115 | </div> |
285d0cd2 |
116 | <h2 id="title">title()</h2> |
162a0989 |
117 | <div id="title_CONTENT"> |
162a0989 |
118 | |
119 | </div> |
285d0cd2 |
120 | <h2 id="title_new_title">title( $new_title )</h2> |
121 | <div id="title_new_title_CONTENT"> |
122 | |
123 | </div> |
124 | <h2 id="title_window_title_icon_title">title( $window_title, $icon_title )</h2> |
125 | <div id="title_window_title_icon_title_CONTEN"> |
126 | <p><code>SDLx::App::title</code> takes 0, 1, or 2 arguments. If no parameter is given, |
127 | it returns the current application window title. If one parameter is |
128 | passed, both the window title and icon title will be set to its value. |
129 | If two parameters are passed the window title will be set to the first, |
130 | and the icon title to the second.</p> |
131 | |
132 | </div> |
133 | <h2 id="delay_ms">delay( $ms )</h2> |
134 | <div id="delay_ms_CONTENT"> |
ca0a3441 |
135 | <p><code>SDLx::App::delay</code> takes 1 argument, and will sleep the application for |
162a0989 |
136 | that many ms.</p> |
137 | |
138 | </div> |
139 | <h2 id="ticks">ticks</h2> |
140 | <div id="ticks_CONTENT"> |
ca0a3441 |
141 | <p><code>SDLx::App::ticks</code> returns the number of ms since the application began.</p> |
162a0989 |
142 | |
143 | </div> |
144 | <h2 id="error">error</h2> |
145 | <div id="error_CONTENT"> |
ca0a3441 |
146 | <p><code>SDLx::App::error</code> returns the last error message set by the SDL.</p> |
162a0989 |
147 | |
148 | </div> |
285d0cd2 |
149 | <h2 id="resize_width_height">resize( $width, $height )</h2> |
150 | <div id="resize_width_height_CONTENT"> |
151 | <p><code>SDLx::App::resize</code> takes a new width and height of the application. Only |
152 | works if the application was originally created with the resizable option.</p> |
162a0989 |
153 | |
154 | </div> |
155 | <h2 id="fullscreen">fullscreen</h2> |
156 | <div id="fullscreen_CONTENT"> |
ca0a3441 |
157 | <p><code>SDLx::App::fullscreen</code> toggles the application in and out of fullscreen mode.</p> |
162a0989 |
158 | |
159 | </div> |
160 | <h2 id="iconify">iconify</h2> |
161 | <div id="iconify_CONTENT"> |
285d0cd2 |
162 | <p><code>SDLx::App::iconify</code> iconifies the application window.</p> |
162a0989 |
163 | |
164 | </div> |
285d0cd2 |
165 | <h2 id="grab_input_CONSTANT">grab_input( $CONSTANT )</h2> |
166 | <div id="grab_input_CONSTANT_CONTENT"> |
ca0a3441 |
167 | <p><code>SDLx::App::grab_input</code> can be used to change the input focus behavior of |
285d0cd2 |
168 | the application. It takes one argument, which should be one of the following:</p> |
162a0989 |
169 | <dl> |
285d0cd2 |
170 | <dt>* SDL_GRAB_QUERY</dt> |
171 | <dt>* SDL_GRAB_ON</dt> |
172 | <dt>* SDL_GRAB_OFF</dt> |
162a0989 |
173 | </dl> |
174 | |
175 | </div> |
162a0989 |
176 | <h2 id="sync">sync</h2> |
177 | <div id="sync_CONTENT"> |
ca0a3441 |
178 | <p><code>SDLx::App::sync</code> encapsulates the various methods of syncronizing the screen with the |
285d0cd2 |
179 | current video buffer. <code>SDLx::App::sync</code> will do a fullscreen update, using the double buffer |
180 | or OpenGL buffer if applicable. This is prefered to calling flip on the application window.</p> |
181 | |
182 | </div> |
183 | <h2 id="attribute_attr">attribute( $attr )</h2> |
184 | <div id="attribute_attr_CONTENT"> |
162a0989 |
185 | |
186 | </div> |
285d0cd2 |
187 | <h2 id="attribute_attr_value">attribute( $attr, $value )</h2> |
162a0989 |
188 | <div id="attribute_attr_value_CONTENT"> |
285d0cd2 |
189 | <p><code>SDLx::App::attribute</code> allows one to get and set GL attributes. By passing a value |
190 | in addition to the attribute selector, the value will be set. <code>SDL:::App::attribute</code> |
162a0989 |
191 | always returns the current value of the given attribute, or croaks on failure.</p> |
192 | |
193 | </div> |
e1ec9f6e |
194 | <h1 id="CALLBACKS">CALLBACKS</h1><p><a href="#TOP" class="toplink">Top</a></p> |
195 | <div id="CALLBACKS_CONTENT"> |
196 | <p><code>SDLx::App</code> is a <code>SDLx::Controller</code>. Use the event, show and handlers to run the app.</p> |
197 | <pre> use SDL; |
198 | use SDLx::App; |
199 | |
200 | use SDL::Event; #Where ever the event call back is processed |
201 | |
202 | my $app = SDLx::App->new( width => 200, height => 200); |
203 | |
204 | $app->add_event_handler( sub{ return 0 if $_[0]->type == SDL_QUIT; return 1}); |
205 | |
206 | $app->add_show_handler( sub{ $app->update() } ); |
207 | |
208 | $app->add_move_handler( |
209 | sub{ |
210 | #calc your physics here |
211 | } ); |
212 | |
213 | $app->run(); |
214 | |
215 | </pre> |
216 | <p>see <a href="http://search.cpan.org/perldoc?SDLx::Controller">SDLx::Controller</a> for more details.</p> |
217 | |
218 | </div> |
c7e8d3c6 |
219 | <h1 id="AUTHORS">AUTHORS</h1><p><a href="#TOP" class="toplink">Top</a></p> |
220 | <div id="AUTHORS_CONTENT"> |
221 | <p>See <b>AUTHORS</b> in <cite>SDL</cite>.</p> |
162a0989 |
222 | |
223 | </div> |
224 | <h1 id="SEE_ALSO">SEE ALSO</h1><p><a href="#TOP" class="toplink">Top</a></p> |
225 | <div id="SEE_ALSO_CONTENT"> |
55bbf7a2 |
226 | <p><a href="http://search.cpan.org/perldoc?perl">perl</a> <a href="SDL-Surface.html">SDL::Surface</a> <a href="SDL-Event.html">SDL::Event</a> <a href="SDL-OpenGL.html">SDL::OpenGL</a></p> |
162a0989 |
227 | |
228 | </div> |
229 | </div> |