playdate_sprite/
api.rs

1use core::ffi::c_float;
2use core::ffi::c_int;
3use core::ffi::c_void;
4
5use sys::ffi::LCDBitmap;
6use sys::ffi::LCDBitmapDrawMode;
7use sys::ffi::LCDBitmapFlip;
8use sys::ffi::LCDRect;
9use sys::ffi::LCDSprite;
10use sys::ffi::LCDSpriteCollisionFilterProc;
11use sys::ffi::LCDSpriteDrawFunction;
12use sys::ffi::LCDSpriteUpdateFunction;
13use sys::ffi::PDRect;
14use sys::ffi::SpriteCollisionInfo;
15use sys::ffi::SpriteQueryInfo;
16
17
18#[derive(Debug, Clone, Copy, core::default::Default)]
19pub struct Default;
20
21impl Api for Default {}
22
23
24pub trait Api {
25	/// Returns [`sys::ffi::playdate_sprite::setAlwaysRedraw`].
26	#[doc(alias = "sys::ffi::playdate_sprite::setAlwaysRedraw")]
27	#[inline(always)]
28	fn set_always_redraw(&self) -> unsafe extern "C" fn(flag: c_int) { *sys::api!(sprite.setAlwaysRedraw) }
29
30
31	/// Returns [`sys::ffi::playdate_sprite::addDirtyRect`].
32	#[doc(alias = "sys::ffi::playdate_sprite::addDirtyRect")]
33	#[inline(always)]
34	fn add_dirty_rect(&self) -> unsafe extern "C" fn(dirtyRect: LCDRect) { *sys::api!(sprite.addDirtyRect) }
35
36
37	/// Returns [`sys::ffi::playdate_sprite::drawSprites`].
38	#[doc(alias = "sys::ffi::playdate_sprite::drawSprites")]
39	#[inline(always)]
40	fn draw_sprites(&self) -> unsafe extern "C" fn() { *sys::api!(sprite.drawSprites) }
41
42
43	/// Returns [`sys::ffi::playdate_sprite::updateAndDrawSprites`].
44	#[doc(alias = "sys::ffi::playdate_sprite::updateAndDrawSprites")]
45	#[inline(always)]
46	fn update_and_draw_sprites(&self) -> unsafe extern "C" fn() { *sys::api!(sprite.updateAndDrawSprites) }
47
48
49	/// Returns [`sys::ffi::playdate_sprite::newSprite`].
50	#[doc(alias = "sys::ffi::playdate_sprite::newSprite")]
51	#[inline(always)]
52	fn new_sprite(&self) -> unsafe extern "C" fn() -> *mut LCDSprite { *sys::api!(sprite.newSprite) }
53
54
55	/// Returns [`sys::ffi::playdate_sprite::freeSprite`].
56	#[doc(alias = "sys::ffi::playdate_sprite::freeSprite")]
57	#[inline(always)]
58	fn free_sprite(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) { *sys::api!(sprite.freeSprite) }
59
60
61	/// Returns [`sys::ffi::playdate_sprite::copy`].
62	#[doc(alias = "sys::ffi::playdate_sprite::copy")]
63	#[inline(always)]
64	fn copy(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> *mut LCDSprite { *sys::api!(sprite.copy) }
65
66
67	/// Returns [`sys::ffi::playdate_sprite::addSprite`].
68	#[doc(alias = "sys::ffi::playdate_sprite::addSprite")]
69	#[inline(always)]
70	fn add_sprite(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) { *sys::api!(sprite.addSprite) }
71
72
73	/// Returns [`sys::ffi::playdate_sprite::removeSprite`].
74	#[doc(alias = "sys::ffi::playdate_sprite::removeSprite")]
75	#[inline(always)]
76	fn remove_sprite(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) { *sys::api!(sprite.removeSprite) }
77
78
79	/// Returns [`sys::ffi::playdate_sprite::removeSprites`].
80	#[doc(alias = "sys::ffi::playdate_sprite::removeSprites")]
81	#[inline(always)]
82	fn remove_sprites(&self) -> unsafe extern "C" fn(sprites: *mut *mut LCDSprite, count: c_int) {
83		*sys::api!(sprite.removeSprites)
84	}
85
86
87	/// Returns [`sys::ffi::playdate_sprite::removeAllSprites`].
88	#[doc(alias = "sys::ffi::playdate_sprite::removeAllSprites")]
89	#[inline(always)]
90	fn remove_all_sprites(&self) -> unsafe extern "C" fn() { *sys::api!(sprite.removeAllSprites) }
91
92
93	/// Returns [`sys::ffi::playdate_sprite::getSpriteCount`].
94	#[doc(alias = "sys::ffi::playdate_sprite::getSpriteCount")]
95	#[inline(always)]
96	fn get_sprite_count(&self) -> unsafe extern "C" fn() -> c_int { *sys::api!(sprite.getSpriteCount) }
97
98
99	/// Returns [`sys::ffi::playdate_sprite::setBounds`].
100	#[doc(alias = "sys::ffi::playdate_sprite::setBounds")]
101	#[inline(always)]
102	fn set_bounds(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, bounds: PDRect) {
103		*sys::api!(sprite.setBounds)
104	}
105
106
107	/// Returns [`sys::ffi::playdate_sprite::getBounds`].
108	#[doc(alias = "sys::ffi::playdate_sprite::getBounds")]
109	#[inline(always)]
110	fn get_bounds(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> PDRect { *sys::api!(sprite.getBounds) }
111
112
113	/// Returns [`sys::ffi::playdate_sprite::moveTo`].
114	#[doc(alias = "sys::ffi::playdate_sprite::moveTo")]
115	#[inline(always)]
116	fn move_to(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, x: c_float, y: c_float) {
117		*sys::api!(sprite.moveTo)
118	}
119
120
121	/// Returns [`sys::ffi::playdate_sprite::moveBy`].
122	#[doc(alias = "sys::ffi::playdate_sprite::moveBy")]
123	#[inline(always)]
124	fn move_by(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, dx: c_float, dy: c_float) {
125		*sys::api!(sprite.moveBy)
126	}
127
128
129	/// Returns [`sys::ffi::playdate_sprite::setImage`].
130	#[doc(alias = "sys::ffi::playdate_sprite::setImage")]
131	#[inline(always)]
132	fn set_image(&self)
133	             -> unsafe extern "C" fn(sprite: *mut LCDSprite, image: *mut LCDBitmap, flip: LCDBitmapFlip) {
134		*sys::api!(sprite.setImage)
135	}
136
137
138	/// Returns [`sys::ffi::playdate_sprite::getImage`].
139	#[doc(alias = "sys::ffi::playdate_sprite::getImage")]
140	#[inline(always)]
141	fn get_image(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> *mut LCDBitmap {
142		*sys::api!(sprite.getImage)
143	}
144
145
146	/// Returns [`sys::ffi::playdate_sprite::setSize`].
147	#[doc(alias = "sys::ffi::playdate_sprite::setSize")]
148	#[inline(always)]
149	fn set_size(&self) -> unsafe extern "C" fn(s: *mut LCDSprite, width: c_float, height: c_float) {
150		*sys::api!(sprite.setSize)
151	}
152
153
154	/// Returns [`sys::ffi::playdate_sprite::setZIndex`].
155	#[doc(alias = "sys::ffi::playdate_sprite::setZIndex")]
156	#[inline(always)]
157	fn set_z_index(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, zIndex: i16) {
158		*sys::api!(sprite.setZIndex)
159	}
160
161
162	/// Returns [`sys::ffi::playdate_sprite::getZIndex`].
163	#[doc(alias = "sys::ffi::playdate_sprite::getZIndex")]
164	#[inline(always)]
165	fn get_z_index(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> i16 { *sys::api!(sprite.getZIndex) }
166
167
168	/// Returns [`sys::ffi::playdate_sprite::setDrawMode`].
169	#[doc(alias = "sys::ffi::playdate_sprite::setDrawMode")]
170	#[inline(always)]
171	fn set_draw_mode(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, mode: LCDBitmapDrawMode) {
172		*sys::api!(sprite.setDrawMode)
173	}
174
175
176	/// Returns [`sys::ffi::playdate_sprite::setImageFlip`].
177	#[doc(alias = "sys::ffi::playdate_sprite::setImageFlip")]
178	#[inline(always)]
179	fn set_image_flip(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, flip: LCDBitmapFlip) {
180		*sys::api!(sprite.setImageFlip)
181	}
182
183
184	/// Returns [`sys::ffi::playdate_sprite::getImageFlip`].
185	#[doc(alias = "sys::ffi::playdate_sprite::getImageFlip")]
186	#[inline(always)]
187	fn get_image_flip(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> LCDBitmapFlip {
188		*sys::api!(sprite.getImageFlip)
189	}
190
191
192	/// Returns [`sys::ffi::playdate_sprite::setStencil`].
193	#[doc(alias = "sys::ffi::playdate_sprite::setStencil")]
194	#[inline(always)]
195	fn set_stencil(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, stencil: *mut LCDBitmap) {
196		*sys::api!(sprite.setStencil)
197	}
198
199
200	/// Returns [`sys::ffi::playdate_sprite::setClipRect`].
201	#[doc(alias = "sys::ffi::playdate_sprite::setClipRect")]
202	#[inline(always)]
203	fn set_clip_rect(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, clipRect: LCDRect) {
204		*sys::api!(sprite.setClipRect)
205	}
206
207
208	/// Returns [`sys::ffi::playdate_sprite::clearClipRect`].
209	#[doc(alias = "sys::ffi::playdate_sprite::clearClipRect")]
210	#[inline(always)]
211	fn clear_clip_rect(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) { *sys::api!(sprite.clearClipRect) }
212
213
214	/// Returns [`sys::ffi::playdate_sprite::setClipRectsInRange`].
215	#[doc(alias = "sys::ffi::playdate_sprite::setClipRectsInRange")]
216	#[inline(always)]
217	fn set_clip_rects_in_range(&self) -> unsafe extern "C" fn(clipRect: LCDRect, startZ: c_int, endZ: c_int) {
218		*sys::api!(sprite.setClipRectsInRange)
219	}
220
221
222	/// Returns [`sys::ffi::playdate_sprite::clearClipRectsInRange`].
223	#[doc(alias = "sys::ffi::playdate_sprite::clearClipRectsInRange")]
224	#[inline(always)]
225	fn clear_clip_rects_in_range(&self) -> unsafe extern "C" fn(startZ: c_int, endZ: c_int) {
226		*sys::api!(sprite.clearClipRectsInRange)
227	}
228
229
230	/// Returns [`sys::ffi::playdate_sprite::setUpdatesEnabled`].
231	#[doc(alias = "sys::ffi::playdate_sprite::setUpdatesEnabled")]
232	#[inline(always)]
233	fn set_updates_enabled(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, flag: c_int) {
234		*sys::api!(sprite.setUpdatesEnabled)
235	}
236
237
238	/// Returns [`sys::ffi::playdate_sprite::updatesEnabled`].
239	#[doc(alias = "sys::ffi::playdate_sprite::updatesEnabled")]
240	#[inline(always)]
241	fn updates_enabled(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> c_int {
242		*sys::api!(sprite.updatesEnabled)
243	}
244
245
246	/// Returns [`sys::ffi::playdate_sprite::setCollisionsEnabled`].
247	#[doc(alias = "sys::ffi::playdate_sprite::setCollisionsEnabled")]
248	#[inline(always)]
249	fn set_collisions_enabled(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, flag: c_int) {
250		*sys::api!(sprite.setCollisionsEnabled)
251	}
252
253
254	/// Returns [`sys::ffi::playdate_sprite::collisionsEnabled`].
255	#[doc(alias = "sys::ffi::playdate_sprite::collisionsEnabled")]
256	#[inline(always)]
257	fn collisions_enabled(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> c_int {
258		*sys::api!(sprite.collisionsEnabled)
259	}
260
261
262	/// Returns [`sys::ffi::playdate_sprite::setVisible`].
263	#[doc(alias = "sys::ffi::playdate_sprite::setVisible")]
264	#[inline(always)]
265	fn set_visible(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, flag: c_int) {
266		*sys::api!(sprite.setVisible)
267	}
268
269
270	/// Returns [`sys::ffi::playdate_sprite::isVisible`].
271	#[doc(alias = "sys::ffi::playdate_sprite::isVisible")]
272	#[inline(always)]
273	fn is_visible(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> c_int { *sys::api!(sprite.isVisible) }
274
275
276	/// Returns [`sys::ffi::playdate_sprite::setOpaque`].
277	#[doc(alias = "sys::ffi::playdate_sprite::setOpaque")]
278	#[inline(always)]
279	fn set_opaque(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, flag: c_int) {
280		*sys::api!(sprite.setOpaque)
281	}
282
283
284	/// Returns [`sys::ffi::playdate_sprite::markDirty`].
285	#[doc(alias = "sys::ffi::playdate_sprite::markDirty")]
286	#[inline(always)]
287	fn mark_dirty(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) { *sys::api!(sprite.markDirty) }
288
289
290	/// Returns [`sys::ffi::playdate_sprite::setTag`].
291	#[doc(alias = "sys::ffi::playdate_sprite::setTag")]
292	#[inline(always)]
293	fn set_tag(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, tag: u8) { *sys::api!(sprite.setTag) }
294
295
296	/// Returns [`sys::ffi::playdate_sprite::getTag`].
297	#[doc(alias = "sys::ffi::playdate_sprite::getTag")]
298	#[inline(always)]
299	fn get_tag(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> u8 { *sys::api!(sprite.getTag) }
300
301
302	/// Returns [`sys::ffi::playdate_sprite::setIgnoresDrawOffset`].
303	#[doc(alias = "sys::ffi::playdate_sprite::setIgnoresDrawOffset")]
304	#[inline(always)]
305	fn set_ignores_draw_offset(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, flag: c_int) {
306		*sys::api!(sprite.setIgnoresDrawOffset)
307	}
308
309
310	/// Returns [`sys::ffi::playdate_sprite::setUpdateFunction`].
311	#[doc(alias = "sys::ffi::playdate_sprite::setUpdateFunction")]
312	#[inline(always)]
313	fn set_update_function(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, func: LCDSpriteUpdateFunction) {
314		*sys::api!(sprite.setUpdateFunction)
315	}
316
317
318	/// Returns [`sys::ffi::playdate_sprite::setDrawFunction`].
319	#[doc(alias = "sys::ffi::playdate_sprite::setDrawFunction")]
320	#[inline(always)]
321	fn set_draw_function(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, func: LCDSpriteDrawFunction) {
322		*sys::api!(sprite.setDrawFunction)
323	}
324
325
326	/// Returns [`sys::ffi::playdate_sprite::getPosition`].
327	#[doc(alias = "sys::ffi::playdate_sprite::getPosition")]
328	#[inline(always)]
329	fn get_position(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, x: *mut c_float, y: *mut c_float) {
330		*sys::api!(sprite.getPosition)
331	}
332
333
334	/// Returns [`sys::ffi::playdate_sprite::resetCollisionWorld`].
335	#[doc(alias = "sys::ffi::playdate_sprite::resetCollisionWorld")]
336	#[inline(always)]
337	fn reset_collision_world(&self) -> unsafe extern "C" fn() { *sys::api!(sprite.resetCollisionWorld) }
338
339
340	/// Returns [`sys::ffi::playdate_sprite::setCollideRect`].
341	#[doc(alias = "sys::ffi::playdate_sprite::setCollideRect")]
342	#[inline(always)]
343	fn set_collide_rect(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, collideRect: PDRect) {
344		*sys::api!(sprite.setCollideRect)
345	}
346
347
348	/// Returns [`sys::ffi::playdate_sprite::getCollideRect`].
349	#[doc(alias = "sys::ffi::playdate_sprite::getCollideRect")]
350	#[inline(always)]
351	fn get_collide_rect(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> PDRect {
352		*sys::api!(sprite.getCollideRect)
353	}
354
355
356	/// Returns [`sys::ffi::playdate_sprite::clearCollideRect`].
357	#[doc(alias = "sys::ffi::playdate_sprite::clearCollideRect")]
358	#[inline(always)]
359	fn clear_collide_rect(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) {
360		*sys::api!(sprite.clearCollideRect)
361	}
362
363
364	/// Returns [`sys::ffi::playdate_sprite::setCollisionResponseFunction`].
365	#[doc(alias = "sys::ffi::playdate_sprite::setCollisionResponseFunction")]
366	#[inline(always)]
367	fn set_collision_response_function(
368		&self)
369		-> unsafe extern "C" fn(sprite: *mut LCDSprite, func: LCDSpriteCollisionFilterProc) {
370		*sys::api!(sprite.setCollisionResponseFunction)
371	}
372
373
374	/// Returns [`sys::ffi::playdate_sprite::checkCollisions`].
375	#[doc(alias = "sys::ffi::playdate_sprite::checkCollisions")]
376	#[inline(always)]
377	fn check_collisions(
378		&self)
379		-> unsafe extern "C" fn(sprite: *mut LCDSprite,
380		                        goalX: c_float,
381		                        goalY: c_float,
382		                        actualX: *mut c_float,
383		                        actualY: *mut c_float,
384		                        len: *mut c_int) -> *mut SpriteCollisionInfo {
385		*sys::api!(sprite.checkCollisions)
386	}
387
388
389	/// Returns [`sys::ffi::playdate_sprite::moveWithCollisions`].
390	#[doc(alias = "sys::ffi::playdate_sprite::moveWithCollisions")]
391	#[inline(always)]
392	fn move_with_collisions(
393		&self)
394		-> unsafe extern "C" fn(sprite: *mut LCDSprite,
395		                        goalX: c_float,
396		                        goalY: c_float,
397		                        actualX: *mut c_float,
398		                        actualY: *mut c_float,
399		                        len: *mut c_int) -> *mut SpriteCollisionInfo {
400		*sys::api!(sprite.moveWithCollisions)
401	}
402
403
404	/// Returns [`sys::ffi::playdate_sprite::querySpritesAtPoint`].
405	#[doc(alias = "sys::ffi::playdate_sprite::querySpritesAtPoint")]
406	#[inline(always)]
407	fn query_sprites_at_point(
408		&self)
409		-> unsafe extern "C" fn(x: c_float, y: c_float, len: *mut c_int) -> *mut *mut LCDSprite {
410		*sys::api!(sprite.querySpritesAtPoint)
411	}
412
413
414	/// Returns [`sys::ffi::playdate_sprite::querySpritesInRect`].
415	#[doc(alias = "sys::ffi::playdate_sprite::querySpritesInRect")]
416	#[inline(always)]
417	fn query_sprites_in_rect(
418		&self)
419		-> unsafe extern "C" fn(x: c_float,
420		                        y: c_float,
421		                        width: c_float,
422		                        height: c_float,
423		                        len: *mut c_int) -> *mut *mut LCDSprite {
424		*sys::api!(sprite.querySpritesInRect)
425	}
426
427
428	/// Returns [`sys::ffi::playdate_sprite::querySpritesAlongLine`].
429	#[doc(alias = "sys::ffi::playdate_sprite::querySpritesAlongLine")]
430	#[inline(always)]
431	fn query_sprites_along_line(
432		&self)
433		-> unsafe extern "C" fn(x1: c_float,
434		                        y1: c_float,
435		                        x2: c_float,
436		                        y2: c_float,
437		                        len: *mut c_int) -> *mut *mut LCDSprite {
438		*sys::api!(sprite.querySpritesAlongLine)
439	}
440
441
442	/// Returns [`sys::ffi::playdate_sprite::querySpriteInfoAlongLine`].
443	#[doc(alias = "sys::ffi::playdate_sprite::querySpriteInfoAlongLine")]
444	#[inline(always)]
445	fn query_sprite_info_along_line(
446		&self)
447		-> unsafe extern "C" fn(x1: c_float,
448		                        y1: c_float,
449		                        x2: c_float,
450		                        y2: c_float,
451		                        len: *mut c_int) -> *mut SpriteQueryInfo {
452		*sys::api!(sprite.querySpriteInfoAlongLine)
453	}
454
455
456	/// Returns [`sys::ffi::playdate_sprite::overlappingSprites`].
457	#[doc(alias = "sys::ffi::playdate_sprite::overlappingSprites")]
458	#[inline(always)]
459	fn overlapping_sprites(
460		&self)
461		-> unsafe extern "C" fn(sprite: *mut LCDSprite, len: *mut c_int) -> *mut *mut LCDSprite {
462		*sys::api!(sprite.overlappingSprites)
463	}
464
465
466	/// Returns [`sys::ffi::playdate_sprite::allOverlappingSprites`].
467	#[doc(alias = "sys::ffi::playdate_sprite::allOverlappingSprites")]
468	#[inline(always)]
469	fn all_overlapping_sprites(&self) -> unsafe extern "C" fn(len: *mut c_int) -> *mut *mut LCDSprite {
470		*sys::api!(sprite.allOverlappingSprites)
471	}
472
473
474	/// Returns [`sys::ffi::playdate_sprite::setStencilPattern`].
475	#[doc(alias = "sys::ffi::playdate_sprite::setStencilPattern")]
476	#[inline(always)]
477	fn set_stencil_pattern(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, pattern: *mut [u8; 8]) {
478		*sys::api!(sprite.setStencilPattern)
479	}
480
481
482	/// Returns [`sys::ffi::playdate_sprite::clearStencil`].
483	#[doc(alias = "sys::ffi::playdate_sprite::clearStencil")]
484	#[inline(always)]
485	fn clear_stencil(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) { *sys::api!(sprite.clearStencil) }
486
487
488	/// Returns [`sys::ffi::playdate_sprite::setUserdata`].
489	#[doc(alias = "sys::ffi::playdate_sprite::setUserdata")]
490	#[inline(always)]
491	fn set_userdata(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite, userdata: *mut c_void) {
492		*sys::api!(sprite.setUserdata)
493	}
494
495
496	/// Returns [`sys::ffi::playdate_sprite::getUserdata`].
497	#[doc(alias = "sys::ffi::playdate_sprite::getUserdata")]
498	#[inline(always)]
499	fn get_userdata(&self) -> unsafe extern "C" fn(sprite: *mut LCDSprite) -> *mut c_void {
500		*sys::api!(sprite.getUserdata)
501	}
502
503
504	/// Returns [`sys::ffi::playdate_sprite::setStencilImage`].
505	#[doc(alias = "sys::ffi::playdate_sprite::setStencilImage")]
506	#[inline(always)]
507	fn set_stencil_image(&self)
508	                     -> unsafe extern "C" fn(sprite: *mut LCDSprite, stencil: *mut LCDBitmap, tile: c_int) {
509		*sys::api!(sprite.setStencilImage)
510	}
511
512	/// Returns [`sys::ffi::playdate_sprite::setCenter`].
513	#[doc(alias = "sys::ffi::playdate_sprite::setCenter")]
514	#[inline(always)]
515	fn set_center(&self) -> unsafe extern "C" fn(s: *mut LCDSprite, x: c_float, y: c_float) {
516		*sys::api!(sprite.setCenter)
517	}
518
519	/// Returns [`sys::ffi::playdate_sprite::getCenter`].
520	#[doc(alias = "sys::ffi::playdate_sprite::getCenter")]
521	#[inline(always)]
522	fn get_center(&self) -> unsafe extern "C" fn(s: *mut LCDSprite, x: *mut c_float, y: *mut c_float) {
523		*sys::api!(sprite.getCenter)
524	}
525}