54 #include "../r_exec/mem.h"
55 #include "video_screen.h"
58 using namespace r_code;
59 using namespace r_exec;
61 namespace video_screen {
63 #define N_FOVEA_PATTERNS 512
65 VideoScreen::VideoScreen(
int width,
int height)
68 screen_(new bool[width * height]),
71 fovea_patterns_(NULL) {
82 delete fovea_patterns_;
85 fovea_patterns_ =
new Code*[N_FOVEA_PATTERNS] {
86 _Mem::find_object(objects,
"pattern0"),
87 _Mem::find_object(objects,
"pattern1"),
88 _Mem::find_object(objects,
"pattern2"),
89 _Mem::find_object(objects,
"pattern12"),
90 _Mem::find_object(objects,
"pattern3"),
91 _Mem::find_object(objects,
"pattern13"),
92 _Mem::find_object(objects,
"pattern23"),
93 _Mem::find_object(objects,
"pattern123"),
94 _Mem::find_object(objects,
"pattern4"),
95 _Mem::find_object(objects,
"pattern14"),
96 _Mem::find_object(objects,
"pattern24"),
97 _Mem::find_object(objects,
"pattern124"),
98 _Mem::find_object(objects,
"pattern34"),
99 _Mem::find_object(objects,
"pattern134"),
100 _Mem::find_object(objects,
"pattern234"),
101 _Mem::find_object(objects,
"pattern1234"),
102 _Mem::find_object(objects,
"pattern5"),
103 _Mem::find_object(objects,
"pattern15"),
104 _Mem::find_object(objects,
"pattern25"),
105 _Mem::find_object(objects,
"pattern125"),
106 _Mem::find_object(objects,
"pattern35"),
107 _Mem::find_object(objects,
"pattern135"),
108 _Mem::find_object(objects,
"pattern235"),
109 _Mem::find_object(objects,
"pattern1235"),
110 _Mem::find_object(objects,
"pattern45"),
111 _Mem::find_object(objects,
"pattern145"),
112 _Mem::find_object(objects,
"pattern245"),
113 _Mem::find_object(objects,
"pattern1245"),
114 _Mem::find_object(objects,
"pattern345"),
115 _Mem::find_object(objects,
"pattern1345"),
116 _Mem::find_object(objects,
"pattern2345"),
117 _Mem::find_object(objects,
"pattern12345"),
118 _Mem::find_object(objects,
"pattern6"),
119 _Mem::find_object(objects,
"pattern16"),
120 _Mem::find_object(objects,
"pattern26"),
121 _Mem::find_object(objects,
"pattern126"),
122 _Mem::find_object(objects,
"pattern36"),
123 _Mem::find_object(objects,
"pattern136"),
124 _Mem::find_object(objects,
"pattern236"),
125 _Mem::find_object(objects,
"pattern1236"),
126 _Mem::find_object(objects,
"pattern46"),
127 _Mem::find_object(objects,
"pattern146"),
128 _Mem::find_object(objects,
"pattern246"),
129 _Mem::find_object(objects,
"pattern1246"),
130 _Mem::find_object(objects,
"pattern346"),
131 _Mem::find_object(objects,
"pattern1346"),
132 _Mem::find_object(objects,
"pattern2346"),
133 _Mem::find_object(objects,
"pattern12346"),
134 _Mem::find_object(objects,
"pattern56"),
135 _Mem::find_object(objects,
"pattern156"),
136 _Mem::find_object(objects,
"pattern256"),
137 _Mem::find_object(objects,
"pattern1256"),
138 _Mem::find_object(objects,
"pattern356"),
139 _Mem::find_object(objects,
"pattern1356"),
140 _Mem::find_object(objects,
"pattern2356"),
141 _Mem::find_object(objects,
"pattern12356"),
142 _Mem::find_object(objects,
"pattern456"),
143 _Mem::find_object(objects,
"pattern1456"),
144 _Mem::find_object(objects,
"pattern2456"),
145 _Mem::find_object(objects,
"pattern12456"),
146 _Mem::find_object(objects,
"pattern3456"),
147 _Mem::find_object(objects,
"pattern13456"),
148 _Mem::find_object(objects,
"pattern23456"),
149 _Mem::find_object(objects,
"pattern123456"),
150 _Mem::find_object(objects,
"pattern7"),
151 _Mem::find_object(objects,
"pattern17"),
152 _Mem::find_object(objects,
"pattern27"),
153 _Mem::find_object(objects,
"pattern127"),
154 _Mem::find_object(objects,
"pattern37"),
155 _Mem::find_object(objects,
"pattern137"),
156 _Mem::find_object(objects,
"pattern237"),
157 _Mem::find_object(objects,
"pattern1237"),
158 _Mem::find_object(objects,
"pattern47"),
159 _Mem::find_object(objects,
"pattern147"),
160 _Mem::find_object(objects,
"pattern247"),
161 _Mem::find_object(objects,
"pattern1247"),
162 _Mem::find_object(objects,
"pattern347"),
163 _Mem::find_object(objects,
"pattern1347"),
164 _Mem::find_object(objects,
"pattern2347"),
165 _Mem::find_object(objects,
"pattern12347"),
166 _Mem::find_object(objects,
"pattern57"),
167 _Mem::find_object(objects,
"pattern157"),
168 _Mem::find_object(objects,
"pattern257"),
169 _Mem::find_object(objects,
"pattern1257"),
170 _Mem::find_object(objects,
"pattern357"),
171 _Mem::find_object(objects,
"pattern1357"),
172 _Mem::find_object(objects,
"pattern2357"),
173 _Mem::find_object(objects,
"pattern12357"),
174 _Mem::find_object(objects,
"pattern457"),
175 _Mem::find_object(objects,
"pattern1457"),
176 _Mem::find_object(objects,
"pattern2457"),
177 _Mem::find_object(objects,
"pattern12457"),
178 _Mem::find_object(objects,
"pattern3457"),
179 _Mem::find_object(objects,
"pattern13457"),
180 _Mem::find_object(objects,
"pattern23457"),
181 _Mem::find_object(objects,
"pattern123457"),
182 _Mem::find_object(objects,
"pattern67"),
183 _Mem::find_object(objects,
"pattern167"),
184 _Mem::find_object(objects,
"pattern267"),
185 _Mem::find_object(objects,
"pattern1267"),
186 _Mem::find_object(objects,
"pattern367"),
187 _Mem::find_object(objects,
"pattern1367"),
188 _Mem::find_object(objects,
"pattern2367"),
189 _Mem::find_object(objects,
"pattern12367"),
190 _Mem::find_object(objects,
"pattern467"),
191 _Mem::find_object(objects,
"pattern1467"),
192 _Mem::find_object(objects,
"pattern2467"),
193 _Mem::find_object(objects,
"pattern12467"),
194 _Mem::find_object(objects,
"pattern3467"),
195 _Mem::find_object(objects,
"pattern13467"),
196 _Mem::find_object(objects,
"pattern23467"),
197 _Mem::find_object(objects,
"pattern123467"),
198 _Mem::find_object(objects,
"pattern567"),
199 _Mem::find_object(objects,
"pattern1567"),
200 _Mem::find_object(objects,
"pattern2567"),
201 _Mem::find_object(objects,
"pattern12567"),
202 _Mem::find_object(objects,
"pattern3567"),
203 _Mem::find_object(objects,
"pattern13567"),
204 _Mem::find_object(objects,
"pattern23567"),
205 _Mem::find_object(objects,
"pattern123567"),
206 _Mem::find_object(objects,
"pattern4567"),
207 _Mem::find_object(objects,
"pattern14567"),
208 _Mem::find_object(objects,
"pattern24567"),
209 _Mem::find_object(objects,
"pattern124567"),
210 _Mem::find_object(objects,
"pattern34567"),
211 _Mem::find_object(objects,
"pattern134567"),
212 _Mem::find_object(objects,
"pattern234567"),
213 _Mem::find_object(objects,
"pattern1234567"),
214 _Mem::find_object(objects,
"pattern8"),
215 _Mem::find_object(objects,
"pattern18"),
216 _Mem::find_object(objects,
"pattern28"),
217 _Mem::find_object(objects,
"pattern128"),
218 _Mem::find_object(objects,
"pattern38"),
219 _Mem::find_object(objects,
"pattern138"),
220 _Mem::find_object(objects,
"pattern238"),
221 _Mem::find_object(objects,
"pattern1238"),
222 _Mem::find_object(objects,
"pattern48"),
223 _Mem::find_object(objects,
"pattern148"),
224 _Mem::find_object(objects,
"pattern248"),
225 _Mem::find_object(objects,
"pattern1248"),
226 _Mem::find_object(objects,
"pattern348"),
227 _Mem::find_object(objects,
"pattern1348"),
228 _Mem::find_object(objects,
"pattern2348"),
229 _Mem::find_object(objects,
"pattern12348"),
230 _Mem::find_object(objects,
"pattern58"),
231 _Mem::find_object(objects,
"pattern158"),
232 _Mem::find_object(objects,
"pattern258"),
233 _Mem::find_object(objects,
"pattern1258"),
234 _Mem::find_object(objects,
"pattern358"),
235 _Mem::find_object(objects,
"pattern1358"),
236 _Mem::find_object(objects,
"pattern2358"),
237 _Mem::find_object(objects,
"pattern12358"),
238 _Mem::find_object(objects,
"pattern458"),
239 _Mem::find_object(objects,
"pattern1458"),
240 _Mem::find_object(objects,
"pattern2458"),
241 _Mem::find_object(objects,
"pattern12458"),
242 _Mem::find_object(objects,
"pattern3458"),
243 _Mem::find_object(objects,
"pattern13458"),
244 _Mem::find_object(objects,
"pattern23458"),
245 _Mem::find_object(objects,
"pattern123458"),
246 _Mem::find_object(objects,
"pattern68"),
247 _Mem::find_object(objects,
"pattern168"),
248 _Mem::find_object(objects,
"pattern268"),
249 _Mem::find_object(objects,
"pattern1268"),
250 _Mem::find_object(objects,
"pattern368"),
251 _Mem::find_object(objects,
"pattern1368"),
252 _Mem::find_object(objects,
"pattern2368"),
253 _Mem::find_object(objects,
"pattern12368"),
254 _Mem::find_object(objects,
"pattern468"),
255 _Mem::find_object(objects,
"pattern1468"),
256 _Mem::find_object(objects,
"pattern2468"),
257 _Mem::find_object(objects,
"pattern12468"),
258 _Mem::find_object(objects,
"pattern3468"),
259 _Mem::find_object(objects,
"pattern13468"),
260 _Mem::find_object(objects,
"pattern23468"),
261 _Mem::find_object(objects,
"pattern123468"),
262 _Mem::find_object(objects,
"pattern568"),
263 _Mem::find_object(objects,
"pattern1568"),
264 _Mem::find_object(objects,
"pattern2568"),
265 _Mem::find_object(objects,
"pattern12568"),
266 _Mem::find_object(objects,
"pattern3568"),
267 _Mem::find_object(objects,
"pattern13568"),
268 _Mem::find_object(objects,
"pattern23568"),
269 _Mem::find_object(objects,
"pattern123568"),
270 _Mem::find_object(objects,
"pattern4568"),
271 _Mem::find_object(objects,
"pattern14568"),
272 _Mem::find_object(objects,
"pattern24568"),
273 _Mem::find_object(objects,
"pattern124568"),
274 _Mem::find_object(objects,
"pattern34568"),
275 _Mem::find_object(objects,
"pattern134568"),
276 _Mem::find_object(objects,
"pattern234568"),
277 _Mem::find_object(objects,
"pattern1234568"),
278 _Mem::find_object(objects,
"pattern78"),
279 _Mem::find_object(objects,
"pattern178"),
280 _Mem::find_object(objects,
"pattern278"),
281 _Mem::find_object(objects,
"pattern1278"),
282 _Mem::find_object(objects,
"pattern378"),
283 _Mem::find_object(objects,
"pattern1378"),
284 _Mem::find_object(objects,
"pattern2378"),
285 _Mem::find_object(objects,
"pattern12378"),
286 _Mem::find_object(objects,
"pattern478"),
287 _Mem::find_object(objects,
"pattern1478"),
288 _Mem::find_object(objects,
"pattern2478"),
289 _Mem::find_object(objects,
"pattern12478"),
290 _Mem::find_object(objects,
"pattern3478"),
291 _Mem::find_object(objects,
"pattern13478"),
292 _Mem::find_object(objects,
"pattern23478"),
293 _Mem::find_object(objects,
"pattern123478"),
294 _Mem::find_object(objects,
"pattern578"),
295 _Mem::find_object(objects,
"pattern1578"),
296 _Mem::find_object(objects,
"pattern2578"),
297 _Mem::find_object(objects,
"pattern12578"),
298 _Mem::find_object(objects,
"pattern3578"),
299 _Mem::find_object(objects,
"pattern13578"),
300 _Mem::find_object(objects,
"pattern23578"),
301 _Mem::find_object(objects,
"pattern123578"),
302 _Mem::find_object(objects,
"pattern4578"),
303 _Mem::find_object(objects,
"pattern14578"),
304 _Mem::find_object(objects,
"pattern24578"),
305 _Mem::find_object(objects,
"pattern124578"),
306 _Mem::find_object(objects,
"pattern34578"),
307 _Mem::find_object(objects,
"pattern134578"),
308 _Mem::find_object(objects,
"pattern234578"),
309 _Mem::find_object(objects,
"pattern1234578"),
310 _Mem::find_object(objects,
"pattern678"),
311 _Mem::find_object(objects,
"pattern1678"),
312 _Mem::find_object(objects,
"pattern2678"),
313 _Mem::find_object(objects,
"pattern12678"),
314 _Mem::find_object(objects,
"pattern3678"),
315 _Mem::find_object(objects,
"pattern13678"),
316 _Mem::find_object(objects,
"pattern23678"),
317 _Mem::find_object(objects,
"pattern123678"),
318 _Mem::find_object(objects,
"pattern4678"),
319 _Mem::find_object(objects,
"pattern14678"),
320 _Mem::find_object(objects,
"pattern24678"),
321 _Mem::find_object(objects,
"pattern124678"),
322 _Mem::find_object(objects,
"pattern34678"),
323 _Mem::find_object(objects,
"pattern134678"),
324 _Mem::find_object(objects,
"pattern234678"),
325 _Mem::find_object(objects,
"pattern1234678"),
326 _Mem::find_object(objects,
"pattern5678"),
327 _Mem::find_object(objects,
"pattern15678"),
328 _Mem::find_object(objects,
"pattern25678"),
329 _Mem::find_object(objects,
"pattern125678"),
330 _Mem::find_object(objects,
"pattern35678"),
331 _Mem::find_object(objects,
"pattern135678"),
332 _Mem::find_object(objects,
"pattern235678"),
333 _Mem::find_object(objects,
"pattern1235678"),
334 _Mem::find_object(objects,
"pattern45678"),
335 _Mem::find_object(objects,
"pattern145678"),
336 _Mem::find_object(objects,
"pattern245678"),
337 _Mem::find_object(objects,
"pattern1245678"),
338 _Mem::find_object(objects,
"pattern345678"),
339 _Mem::find_object(objects,
"pattern1345678"),
340 _Mem::find_object(objects,
"pattern2345678"),
341 _Mem::find_object(objects,
"pattern12345678"),
342 _Mem::find_object(objects,
"pattern9"),
343 _Mem::find_object(objects,
"pattern19"),
344 _Mem::find_object(objects,
"pattern29"),
345 _Mem::find_object(objects,
"pattern129"),
346 _Mem::find_object(objects,
"pattern39"),
347 _Mem::find_object(objects,
"pattern139"),
348 _Mem::find_object(objects,
"pattern239"),
349 _Mem::find_object(objects,
"pattern1239"),
350 _Mem::find_object(objects,
"pattern49"),
351 _Mem::find_object(objects,
"pattern149"),
352 _Mem::find_object(objects,
"pattern249"),
353 _Mem::find_object(objects,
"pattern1249"),
354 _Mem::find_object(objects,
"pattern349"),
355 _Mem::find_object(objects,
"pattern1349"),
356 _Mem::find_object(objects,
"pattern2349"),
357 _Mem::find_object(objects,
"pattern12349"),
358 _Mem::find_object(objects,
"pattern59"),
359 _Mem::find_object(objects,
"pattern159"),
360 _Mem::find_object(objects,
"pattern259"),
361 _Mem::find_object(objects,
"pattern1259"),
362 _Mem::find_object(objects,
"pattern359"),
363 _Mem::find_object(objects,
"pattern1359"),
364 _Mem::find_object(objects,
"pattern2359"),
365 _Mem::find_object(objects,
"pattern12359"),
366 _Mem::find_object(objects,
"pattern459"),
367 _Mem::find_object(objects,
"pattern1459"),
368 _Mem::find_object(objects,
"pattern2459"),
369 _Mem::find_object(objects,
"pattern12459"),
370 _Mem::find_object(objects,
"pattern3459"),
371 _Mem::find_object(objects,
"pattern13459"),
372 _Mem::find_object(objects,
"pattern23459"),
373 _Mem::find_object(objects,
"pattern123459"),
374 _Mem::find_object(objects,
"pattern69"),
375 _Mem::find_object(objects,
"pattern169"),
376 _Mem::find_object(objects,
"pattern269"),
377 _Mem::find_object(objects,
"pattern1269"),
378 _Mem::find_object(objects,
"pattern369"),
379 _Mem::find_object(objects,
"pattern1369"),
380 _Mem::find_object(objects,
"pattern2369"),
381 _Mem::find_object(objects,
"pattern12369"),
382 _Mem::find_object(objects,
"pattern469"),
383 _Mem::find_object(objects,
"pattern1469"),
384 _Mem::find_object(objects,
"pattern2469"),
385 _Mem::find_object(objects,
"pattern12469"),
386 _Mem::find_object(objects,
"pattern3469"),
387 _Mem::find_object(objects,
"pattern13469"),
388 _Mem::find_object(objects,
"pattern23469"),
389 _Mem::find_object(objects,
"pattern123469"),
390 _Mem::find_object(objects,
"pattern569"),
391 _Mem::find_object(objects,
"pattern1569"),
392 _Mem::find_object(objects,
"pattern2569"),
393 _Mem::find_object(objects,
"pattern12569"),
394 _Mem::find_object(objects,
"pattern3569"),
395 _Mem::find_object(objects,
"pattern13569"),
396 _Mem::find_object(objects,
"pattern23569"),
397 _Mem::find_object(objects,
"pattern123569"),
398 _Mem::find_object(objects,
"pattern4569"),
399 _Mem::find_object(objects,
"pattern14569"),
400 _Mem::find_object(objects,
"pattern24569"),
401 _Mem::find_object(objects,
"pattern124569"),
402 _Mem::find_object(objects,
"pattern34569"),
403 _Mem::find_object(objects,
"pattern134569"),
404 _Mem::find_object(objects,
"pattern234569"),
405 _Mem::find_object(objects,
"pattern1234569"),
406 _Mem::find_object(objects,
"pattern79"),
407 _Mem::find_object(objects,
"pattern179"),
408 _Mem::find_object(objects,
"pattern279"),
409 _Mem::find_object(objects,
"pattern1279"),
410 _Mem::find_object(objects,
"pattern379"),
411 _Mem::find_object(objects,
"pattern1379"),
412 _Mem::find_object(objects,
"pattern2379"),
413 _Mem::find_object(objects,
"pattern12379"),
414 _Mem::find_object(objects,
"pattern479"),
415 _Mem::find_object(objects,
"pattern1479"),
416 _Mem::find_object(objects,
"pattern2479"),
417 _Mem::find_object(objects,
"pattern12479"),
418 _Mem::find_object(objects,
"pattern3479"),
419 _Mem::find_object(objects,
"pattern13479"),
420 _Mem::find_object(objects,
"pattern23479"),
421 _Mem::find_object(objects,
"pattern123479"),
422 _Mem::find_object(objects,
"pattern579"),
423 _Mem::find_object(objects,
"pattern1579"),
424 _Mem::find_object(objects,
"pattern2579"),
425 _Mem::find_object(objects,
"pattern12579"),
426 _Mem::find_object(objects,
"pattern3579"),
427 _Mem::find_object(objects,
"pattern13579"),
428 _Mem::find_object(objects,
"pattern23579"),
429 _Mem::find_object(objects,
"pattern123579"),
430 _Mem::find_object(objects,
"pattern4579"),
431 _Mem::find_object(objects,
"pattern14579"),
432 _Mem::find_object(objects,
"pattern24579"),
433 _Mem::find_object(objects,
"pattern124579"),
434 _Mem::find_object(objects,
"pattern34579"),
435 _Mem::find_object(objects,
"pattern134579"),
436 _Mem::find_object(objects,
"pattern234579"),
437 _Mem::find_object(objects,
"pattern1234579"),
438 _Mem::find_object(objects,
"pattern679"),
439 _Mem::find_object(objects,
"pattern1679"),
440 _Mem::find_object(objects,
"pattern2679"),
441 _Mem::find_object(objects,
"pattern12679"),
442 _Mem::find_object(objects,
"pattern3679"),
443 _Mem::find_object(objects,
"pattern13679"),
444 _Mem::find_object(objects,
"pattern23679"),
445 _Mem::find_object(objects,
"pattern123679"),
446 _Mem::find_object(objects,
"pattern4679"),
447 _Mem::find_object(objects,
"pattern14679"),
448 _Mem::find_object(objects,
"pattern24679"),
449 _Mem::find_object(objects,
"pattern124679"),
450 _Mem::find_object(objects,
"pattern34679"),
451 _Mem::find_object(objects,
"pattern134679"),
452 _Mem::find_object(objects,
"pattern234679"),
453 _Mem::find_object(objects,
"pattern1234679"),
454 _Mem::find_object(objects,
"pattern5679"),
455 _Mem::find_object(objects,
"pattern15679"),
456 _Mem::find_object(objects,
"pattern25679"),
457 _Mem::find_object(objects,
"pattern125679"),
458 _Mem::find_object(objects,
"pattern35679"),
459 _Mem::find_object(objects,
"pattern135679"),
460 _Mem::find_object(objects,
"pattern235679"),
461 _Mem::find_object(objects,
"pattern1235679"),
462 _Mem::find_object(objects,
"pattern45679"),
463 _Mem::find_object(objects,
"pattern145679"),
464 _Mem::find_object(objects,
"pattern245679"),
465 _Mem::find_object(objects,
"pattern1245679"),
466 _Mem::find_object(objects,
"pattern345679"),
467 _Mem::find_object(objects,
"pattern1345679"),
468 _Mem::find_object(objects,
"pattern2345679"),
469 _Mem::find_object(objects,
"pattern12345679"),
470 _Mem::find_object(objects,
"pattern89"),
471 _Mem::find_object(objects,
"pattern189"),
472 _Mem::find_object(objects,
"pattern289"),
473 _Mem::find_object(objects,
"pattern1289"),
474 _Mem::find_object(objects,
"pattern389"),
475 _Mem::find_object(objects,
"pattern1389"),
476 _Mem::find_object(objects,
"pattern2389"),
477 _Mem::find_object(objects,
"pattern12389"),
478 _Mem::find_object(objects,
"pattern489"),
479 _Mem::find_object(objects,
"pattern1489"),
480 _Mem::find_object(objects,
"pattern2489"),
481 _Mem::find_object(objects,
"pattern12489"),
482 _Mem::find_object(objects,
"pattern3489"),
483 _Mem::find_object(objects,
"pattern13489"),
484 _Mem::find_object(objects,
"pattern23489"),
485 _Mem::find_object(objects,
"pattern123489"),
486 _Mem::find_object(objects,
"pattern589"),
487 _Mem::find_object(objects,
"pattern1589"),
488 _Mem::find_object(objects,
"pattern2589"),
489 _Mem::find_object(objects,
"pattern12589"),
490 _Mem::find_object(objects,
"pattern3589"),
491 _Mem::find_object(objects,
"pattern13589"),
492 _Mem::find_object(objects,
"pattern23589"),
493 _Mem::find_object(objects,
"pattern123589"),
494 _Mem::find_object(objects,
"pattern4589"),
495 _Mem::find_object(objects,
"pattern14589"),
496 _Mem::find_object(objects,
"pattern24589"),
497 _Mem::find_object(objects,
"pattern124589"),
498 _Mem::find_object(objects,
"pattern34589"),
499 _Mem::find_object(objects,
"pattern134589"),
500 _Mem::find_object(objects,
"pattern234589"),
501 _Mem::find_object(objects,
"pattern1234589"),
502 _Mem::find_object(objects,
"pattern689"),
503 _Mem::find_object(objects,
"pattern1689"),
504 _Mem::find_object(objects,
"pattern2689"),
505 _Mem::find_object(objects,
"pattern12689"),
506 _Mem::find_object(objects,
"pattern3689"),
507 _Mem::find_object(objects,
"pattern13689"),
508 _Mem::find_object(objects,
"pattern23689"),
509 _Mem::find_object(objects,
"pattern123689"),
510 _Mem::find_object(objects,
"pattern4689"),
511 _Mem::find_object(objects,
"pattern14689"),
512 _Mem::find_object(objects,
"pattern24689"),
513 _Mem::find_object(objects,
"pattern124689"),
514 _Mem::find_object(objects,
"pattern34689"),
515 _Mem::find_object(objects,
"pattern134689"),
516 _Mem::find_object(objects,
"pattern234689"),
517 _Mem::find_object(objects,
"pattern1234689"),
518 _Mem::find_object(objects,
"pattern5689"),
519 _Mem::find_object(objects,
"pattern15689"),
520 _Mem::find_object(objects,
"pattern25689"),
521 _Mem::find_object(objects,
"pattern125689"),
522 _Mem::find_object(objects,
"pattern35689"),
523 _Mem::find_object(objects,
"pattern135689"),
524 _Mem::find_object(objects,
"pattern235689"),
525 _Mem::find_object(objects,
"pattern1235689"),
526 _Mem::find_object(objects,
"pattern45689"),
527 _Mem::find_object(objects,
"pattern145689"),
528 _Mem::find_object(objects,
"pattern245689"),
529 _Mem::find_object(objects,
"pattern1245689"),
530 _Mem::find_object(objects,
"pattern345689"),
531 _Mem::find_object(objects,
"pattern1345689"),
532 _Mem::find_object(objects,
"pattern2345689"),
533 _Mem::find_object(objects,
"pattern12345689"),
534 _Mem::find_object(objects,
"pattern789"),
535 _Mem::find_object(objects,
"pattern1789"),
536 _Mem::find_object(objects,
"pattern2789"),
537 _Mem::find_object(objects,
"pattern12789"),
538 _Mem::find_object(objects,
"pattern3789"),
539 _Mem::find_object(objects,
"pattern13789"),
540 _Mem::find_object(objects,
"pattern23789"),
541 _Mem::find_object(objects,
"pattern123789"),
542 _Mem::find_object(objects,
"pattern4789"),
543 _Mem::find_object(objects,
"pattern14789"),
544 _Mem::find_object(objects,
"pattern24789"),
545 _Mem::find_object(objects,
"pattern124789"),
546 _Mem::find_object(objects,
"pattern34789"),
547 _Mem::find_object(objects,
"pattern134789"),
548 _Mem::find_object(objects,
"pattern234789"),
549 _Mem::find_object(objects,
"pattern1234789"),
550 _Mem::find_object(objects,
"pattern5789"),
551 _Mem::find_object(objects,
"pattern15789"),
552 _Mem::find_object(objects,
"pattern25789"),
553 _Mem::find_object(objects,
"pattern125789"),
554 _Mem::find_object(objects,
"pattern35789"),
555 _Mem::find_object(objects,
"pattern135789"),
556 _Mem::find_object(objects,
"pattern235789"),
557 _Mem::find_object(objects,
"pattern1235789"),
558 _Mem::find_object(objects,
"pattern45789"),
559 _Mem::find_object(objects,
"pattern145789"),
560 _Mem::find_object(objects,
"pattern245789"),
561 _Mem::find_object(objects,
"pattern1245789"),
562 _Mem::find_object(objects,
"pattern345789"),
563 _Mem::find_object(objects,
"pattern1345789"),
564 _Mem::find_object(objects,
"pattern2345789"),
565 _Mem::find_object(objects,
"pattern12345789"),
566 _Mem::find_object(objects,
"pattern6789"),
567 _Mem::find_object(objects,
"pattern16789"),
568 _Mem::find_object(objects,
"pattern26789"),
569 _Mem::find_object(objects,
"pattern126789"),
570 _Mem::find_object(objects,
"pattern36789"),
571 _Mem::find_object(objects,
"pattern136789"),
572 _Mem::find_object(objects,
"pattern236789"),
573 _Mem::find_object(objects,
"pattern1236789"),
574 _Mem::find_object(objects,
"pattern46789"),
575 _Mem::find_object(objects,
"pattern146789"),
576 _Mem::find_object(objects,
"pattern246789"),
577 _Mem::find_object(objects,
"pattern1246789"),
578 _Mem::find_object(objects,
"pattern346789"),
579 _Mem::find_object(objects,
"pattern1346789"),
580 _Mem::find_object(objects,
"pattern2346789"),
581 _Mem::find_object(objects,
"pattern12346789"),
582 _Mem::find_object(objects,
"pattern56789"),
583 _Mem::find_object(objects,
"pattern156789"),
584 _Mem::find_object(objects,
"pattern256789"),
585 _Mem::find_object(objects,
"pattern1256789"),
586 _Mem::find_object(objects,
"pattern356789"),
587 _Mem::find_object(objects,
"pattern1356789"),
588 _Mem::find_object(objects,
"pattern2356789"),
589 _Mem::find_object(objects,
"pattern12356789"),
590 _Mem::find_object(objects,
"pattern456789"),
591 _Mem::find_object(objects,
"pattern1456789"),
592 _Mem::find_object(objects,
"pattern2456789"),
593 _Mem::find_object(objects,
"pattern12456789"),
594 _Mem::find_object(objects,
"pattern3456789"),
595 _Mem::find_object(objects,
"pattern13456789"),
596 _Mem::find_object(objects,
"pattern23456789"),
597 _Mem::find_object(objects,
"pattern123456789"),
600 for (
size_t i = 0; i < N_FOVEA_PATTERNS; ++i) {
601 if (!fovea_patterns_[i])
610 int new_x = max(1, min(width_ - 2, fovea_x_ + delta_x));
611 int new_y = max(1, min(height_ - 2, fovea_y_ + delta_y));
614 actual_delta_x = new_x - fovea_x_;
615 actual_delta_y = new_y - fovea_y_;
624 get_screen(fovea_x_ - 1, fovea_y_ + 1),
625 get_screen(fovea_x_, fovea_y_ + 1),
626 get_screen(fovea_x_ + 1, fovea_y_ + 1),
627 get_screen(fovea_x_ - 1, fovea_y_),
628 get_screen(fovea_x_, fovea_y_),
629 get_screen(fovea_x_ + 1, fovea_y_),
630 get_screen(fovea_x_ - 1, fovea_y_ - 1),
631 get_screen(fovea_x_, fovea_y_ - 1),
632 get_screen(fovea_x_ + 1, fovea_y_ - 1),
635 for (
int i = 8; i >= 0; --i) {
642 return fovea_patterns_[index];