formatting

note that i'm intentionally not using rustfmt. i've tried to like that
tool, but in the end i just really don't like it. too many edge cases
and subjectivity and not enough customization. which is probably the
intent. which makes me hate it that much more. fuck you, rustfmt.
This commit is contained in:
Gered 2023-03-02 15:10:27 -05:00
parent 43333687a8
commit eb6a363afd
56 changed files with 15746 additions and 15743 deletions

View file

@ -11,7 +11,7 @@ use libretrogd::utils::rnd_value;
struct AudioChannelStatus {
size: usize,
position: usize,
playing: bool
playing: bool,
}
fn load_and_convert_wav(path: &Path, target_spec: &AudioSpec) -> Result<AudioBuffer> {
@ -95,7 +95,6 @@ fn main() -> Result<()> {
if system.input_devices.keyboard.is_key_pressed(Scancode::Num3) {
if using_queue_commands {
system.audio_queue.play_buffer(&sounds[2], false);
} else {
audio_device.play_buffer(&sounds[2], false)?;
}
@ -104,7 +103,6 @@ fn main() -> Result<()> {
if system.input_devices.keyboard.is_key_pressed(Scancode::Num4) {
if using_queue_commands {
system.audio_queue.play_buffer(&sounds[3], false);
} else {
audio_device.play_buffer(&sounds[3], false)?;
}
@ -174,7 +172,7 @@ fn main() -> Result<()> {
} else {
"Direct Commands"
},
160, 16, FontRenderOpts::Color(9), &system.font
160, 16, FontRenderOpts::Color(9), &system.font,
);
system.video.print_string("Audio Channels", 16, 32, FontRenderOpts::Color(14), &system.font);
@ -191,7 +189,7 @@ fn main() -> Result<()> {
),
16, y,
FontRenderOpts::Color(15),
&system.font
&system.font,
);
y += 16;
}

View file

@ -70,7 +70,7 @@ fn new_bounce_particles(entities: &mut Entities, x: f32, y: f32) {
BOUNCE_PARTICLE_COLOR,
BOUNCE_PARTICLE_LIFETIME,
angle,
BOUNCE_PARTICLE_SPEED
BOUNCE_PARTICLE_SPEED,
);
}
}
@ -169,7 +169,7 @@ fn render_system_sprites(context: &mut Context) {
BlitMethod::Transparent(0),
&context.sprites[sprite_index.0],
position.0.x as i32,
position.0.y as i32
position.0.y as i32,
);
}
}
@ -215,7 +215,7 @@ fn event_handler(event: &Event, context: &mut Context) -> bool {
match event {
Event::Kill(entity) => {
context.entities.remove_entity(*entity);
},
}
Event::CollideAgainstEdge(entity) => {
let positions = context.entities.components::<Position>();
let position = positions.get(entity).unwrap();
@ -223,7 +223,7 @@ fn event_handler(event: &Event, context: &mut Context) -> bool {
let y = position.0.y + (BALL_SIZE / 2) as f32;
drop(positions);
new_bounce_particles(&mut context.entities, x, y);
},
}
Event::LeaveTrail(position) => {
new_trail_particle_entity(&mut context.entities, position.x, position.y, TRAIL_PARTICLE_LIFETIME);
}

View file

@ -41,7 +41,7 @@ impl Game {
&balls_bmp,
&Rect::new(i as i32 * BALL_SIZE as i32, 0, BALL_SIZE as u32, BALL_SIZE as u32),
0,
0
0,
);
sprites.push(sprite);
}
@ -61,10 +61,10 @@ impl Game {
font,
sprites,
entities,
event_publisher
event_publisher,
},
component_systems,
event_listeners
event_listeners,
})
}

View file

@ -26,7 +26,7 @@ fn event_handler(event: &Event, context: &mut Core) -> bool {
if context.entities.has_entity(*entity) {
remove_entity(&mut context.entities, *entity);
}
},
}
Event::RemoveAttachment(entity) => {
if context.entities.has_entity(*entity) {
remove_entity_attachment(&mut context.entities, *entity);
@ -36,15 +36,15 @@ fn event_handler(event: &Event, context: &mut Core) -> bool {
if context.entities.has_entity(*entity) {
turn_and_move_entity(context, *entity, *direction);
}
},
}
Event::MoveForward(entity) => {
if context.entities.has_entity(*entity) {
move_entity_forward(context, *entity);
}
},
}
Event::Spawn(entity) => {
// todo
},
}
Event::AnimationFinished(entity) => {
if context.entities.has_entity(*entity) {
// if the entity's 'attack' animation just finished, move them back to 'idle'
@ -59,25 +59,25 @@ fn event_handler(event: &Event, context: &mut Core) -> bool {
}
Event::SpawnSlimeRandomly => {
spawn_slime_randomly(context);
},
}
Event::SetActivity(entity, activity) => {
if context.entities.has_entity(*entity) {
set_entity_activity(&mut context.entities, *entity, *activity);
}
},
}
Event::Attack(entity) => {
if context.entities.has_entity(*entity) {
attack(context, *entity);
}
},
}
Event::Hit(target, source, damage, damage_position) => {
if context.entities.has_entity(*target) {
hit_entity(context, *target, *source, *damage, *damage_position);
}
},
}
Event::Kill(entity) => {
kill_entity(context, *entity);
},
}
Event::Pickup(picked_up_by, picked_up) => {
if context.entities.has_entity(*picked_up_by) && context.entities.has_entity(*picked_up) {
pickup(context, *picked_up_by, *picked_up);

View file

@ -150,7 +150,7 @@ pub fn apply_damage_at(context: &mut Core, area: Circle, damage: i32, source: En
let circle = Circle::new(
position.0.x as i32 + bound.width as i32 / 2,
position.0.y as i32 + bound.height as i32 / 2,
bound.radius
bound.radius,
);
if area.overlaps(&circle) {
context.event_publisher.queue(Event::Hit(*entity, source, damage, source_position.0));
@ -630,7 +630,7 @@ fn update_system_pickups(context: &mut Core) {
let pickuper_circle = Circle::new(
pickuper_position.0.x as i32 + pickuper_bounds.width as i32 / 2,
pickuper_position.0.y as i32 + pickuper_bounds.height as i32 / 2,
pickuper_bounds.radius
pickuper_bounds.radius,
);
for (pickupable_entity, pickupable) in pickupables.iter() {
@ -640,7 +640,7 @@ fn update_system_pickups(context: &mut Core) {
let pickupable_circle = Circle::new(
pickupable_position.0.x as i32 + pickupable_bounds.width as i32 / 2,
pickupable_position.0.y as i32 + pickupable_bounds.height as i32 / 2,
pickupable_bounds.radius
pickupable_bounds.radius,
);
if pickupable_circle.overlaps(&pickuper_circle) {
@ -673,11 +673,11 @@ fn render_system_sprites(context: &mut Core) {
FlickerMethod::OnOff => {
// skip to the next entity, this one isn't visible
continue;
},
}
FlickerMethod::Color(draw_color) => {
blit_method = BlitMethod::TransparentSingle {
transparent_color: 0,
draw_color
draw_color,
};
}
}

View file

@ -192,7 +192,7 @@ impl AppState<Game> for GamePlayState {
State::Pending => {
init_everything(context, Path::new("./assets/arena.map.json"), 0.5, 2.0, 100);
spawn_player_randomly(&mut context.core);
},
}
State::TransitionIn => {
self.fade = 0.0;
}

View file

@ -64,7 +64,7 @@ pub fn update_fade_transition(state: State, fade: &mut f32, delta: f32, context:
context.core.system.palette.lerp(0..=255, &context.core.fade_out_palette, &context.core.palette, *fade);
false
}
},
}
State::TransitionOut(_) => {
*fade -= delta;
if *fade <= 0.0 {
@ -75,7 +75,7 @@ pub fn update_fade_transition(state: State, fade: &mut f32, delta: f32, context:
context.core.system.palette.lerp(0..=255, &context.core.fade_out_palette, &context.core.palette, *fade);
false
}
},
}
_ => {
true
}

View file

@ -101,7 +101,7 @@ impl TileMap {
if self.collision()[index] == TILE_FLAG_COLLISION {
return true;
}
},
}
None => return true
}
}

View file

@ -21,7 +21,7 @@ pub fn event_listener(event: &Event, context: &mut Core) -> bool {
Event::Remove(entity) => {
context.entities.remove_entity(*entity);
true
},
}
Event::SpawnPixel => {
let speed = rnd_value(1, 10) as f32 * 10.0;
let angle = (rnd_value(0, 359) as f32).to_radians();
@ -33,7 +33,7 @@ pub fn event_listener(event: &Event, context: &mut Core) -> bool {
context.entities.add_component(id, Velocity(Vector2::from_angle(angle) * speed));
context.entities.add_component(id, Color(color));
true
},
}
_ => false
}
}
@ -101,7 +101,7 @@ impl AppState<App> for DemoState {
fn update(&mut self, state: State, context: &mut App) -> Option<StateChange<App>> {
if state == State::Active {
if context.core.system.input_devices.keyboard.is_key_pressed(Scancode::Escape) {
return Some(StateChange::Pop(1))
return Some(StateChange::Pop(1));
}
}
@ -128,7 +128,7 @@ impl AppState<App> for DemoState {
match new_state {
State::Pending => {
self.init(context);
},
}
_ => {}
}
}
@ -169,7 +169,7 @@ impl CoreStateWithEvents<Event> for Core {
pub struct Support {
pub component_systems: ComponentSystems<Core, Core>,
pub event_listeners: EventListeners<Event, Core>
pub event_listeners: EventListeners<Event, Core>,
}
impl SupportSystems for Support {}
@ -217,7 +217,7 @@ impl App {
support: Support {
component_systems,
event_listeners,
}
},
})
}
}

View file

@ -1,7 +1,7 @@
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use criterion::{black_box, Criterion, criterion_group, criterion_main};
use libretrogd::graphics::*;
use libretrogd::{SCREEN_HEIGHT, SCREEN_WIDTH};
use libretrogd::graphics::*;
pub fn criterion_benchmark(c: &mut Criterion) {
let mut source = Bitmap::new(SCREEN_WIDTH, SCREEN_HEIGHT).unwrap();

View file

@ -1,6 +1,6 @@
use std::path::Path;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use criterion::{black_box, Criterion, criterion_group, criterion_main};
use libretrogd::graphics::*;
use libretrogd::math::*;
@ -69,7 +69,7 @@ pub fn criterion_benchmark(c: &mut Criterion) {
framebuffer.blit(
black_box(BlitMethod::SolidFlipped {
horizontal_flip: false,
vertical_flip: false
vertical_flip: false,
}),
black_box(&solid_bmp),
black_box(100),
@ -83,7 +83,7 @@ pub fn criterion_benchmark(c: &mut Criterion) {
framebuffer.blit(
black_box(BlitMethod::SolidFlipped {
horizontal_flip: true,
vertical_flip: false
vertical_flip: false,
}),
black_box(&solid_bmp),
black_box(100),
@ -97,7 +97,7 @@ pub fn criterion_benchmark(c: &mut Criterion) {
framebuffer.blit(
black_box(BlitMethod::SolidFlipped {
horizontal_flip: false,
vertical_flip: true
vertical_flip: true,
}),
black_box(&solid_bmp),
black_box(100),
@ -111,7 +111,7 @@ pub fn criterion_benchmark(c: &mut Criterion) {
framebuffer.blit(
black_box(BlitMethod::SolidFlipped {
horizontal_flip: true,
vertical_flip: true
vertical_flip: true,
}),
black_box(&solid_bmp),
black_box(100),
@ -128,7 +128,7 @@ pub fn criterion_benchmark(c: &mut Criterion) {
black_box(BlitMethod::TransparentFlipped {
transparent_color: 0,
horizontal_flip: false,
vertical_flip: false
vertical_flip: false,
}),
black_box(&trans_bmp),
black_box(100),
@ -143,7 +143,7 @@ pub fn criterion_benchmark(c: &mut Criterion) {
black_box(BlitMethod::TransparentFlipped {
transparent_color: 0,
horizontal_flip: true,
vertical_flip: false
vertical_flip: false,
}),
black_box(&trans_bmp),
black_box(100),
@ -158,7 +158,7 @@ pub fn criterion_benchmark(c: &mut Criterion) {
black_box(BlitMethod::TransparentFlipped {
transparent_color: 0,
horizontal_flip: false,
vertical_flip: true
vertical_flip: true,
}),
black_box(&trans_bmp),
black_box(100),
@ -173,7 +173,7 @@ pub fn criterion_benchmark(c: &mut Criterion) {
black_box(BlitMethod::TransparentFlipped {
transparent_color: 0,
horizontal_flip: true,
vertical_flip: true
vertical_flip: true,
}),
black_box(&trans_bmp),
black_box(100),
@ -492,7 +492,6 @@ pub fn criterion_benchmark(c: &mut Criterion) {
)
})
});
}
criterion_group!(benches, criterion_benchmark);

View file

@ -332,37 +332,37 @@ impl AudioDevice {
/// Returns an iterator of any [`AudioChannel`]s that are currently playing.
#[inline]
pub fn playing_channels_iter(&mut self) -> impl Iterator<Item = &AudioChannel> {
pub fn playing_channels_iter(&mut self) -> impl Iterator<Item=&AudioChannel> {
self.channels.iter().filter(|channel| channel.playing)
}
/// Returns an iterator of mutable [`AudioChannel`]s that are currently playing.
#[inline]
pub fn playing_channels_iter_mut(&mut self) -> impl Iterator<Item = &mut AudioChannel> {
pub fn playing_channels_iter_mut(&mut self) -> impl Iterator<Item=&mut AudioChannel> {
self.channels.iter_mut().filter(|channel| channel.playing)
}
/// Returns an iterator of [`AudioChannel`]s that are not currently playing.
#[inline]
pub fn stopped_channels_iter(&mut self) -> impl Iterator<Item = &AudioChannel> {
pub fn stopped_channels_iter(&mut self) -> impl Iterator<Item=&AudioChannel> {
self.channels.iter().filter(|channel| !channel.playing)
}
/// Returns an iterator of mutable [`AudioChannel`]s that are not currently playing.
#[inline]
pub fn stopped_channels_iter_mut(&mut self) -> impl Iterator<Item = &mut AudioChannel> {
pub fn stopped_channels_iter_mut(&mut self) -> impl Iterator<Item=&mut AudioChannel> {
self.channels.iter_mut().filter(|channel| !channel.playing)
}
/// Returns an iterator of all [`AudioChannel`]s.
#[inline]
pub fn channels_iter(&mut self) -> impl Iterator<Item = &AudioChannel> {
pub fn channels_iter(&mut self) -> impl Iterator<Item=&AudioChannel> {
self.channels.iter()
}
/// Returns an iterator of all [`AudioChannel`]s as mutable references.
#[inline]
pub fn channels_iter_mut(&mut self) -> impl Iterator<Item = &mut AudioChannel> {
pub fn channels_iter_mut(&mut self) -> impl Iterator<Item=&mut AudioChannel> {
self.channels.iter_mut()
}

View file

@ -46,38 +46,38 @@ impl std::fmt::Debug for AudioCommand {
.field("buffer", buffer)
.field("loops", loops)
.finish()
},
}
PlayRcBuffer { buffer, loops } => {
f.debug_struct("PlayRcBuffer")
.field("buffer", buffer)
.field("loops", loops)
.finish()
},
}
PlayBufferOnChannel { channel, buffer, loops } => {
f.debug_struct("PlayBufferOnChannel")
.field("channel", channel)
.field("buffer", buffer)
.field("loops", loops)
.finish()
},
}
PlayRcBufferOnChannel { channel, buffer, loops } => {
f.debug_struct("PlayRcBufferOnChannel")
.field("channel", channel)
.field("buffer", buffer)
.field("loops", loops)
.finish()
},
}
PlayGenerator { loops, .. } => {
f.debug_struct("PlayGenerator")
.field("loops", loops)
.finish_non_exhaustive()
},
}
PlayGeneratorOnChannel { channel, loops, .. } => {
f.debug_struct("PlayGeneratorOnChannel")
.field("channel", channel)
.field("loops", loops)
.finish_non_exhaustive()
},
}
}
}
}
@ -247,31 +247,31 @@ impl AudioQueue {
match command {
StopChannel(channel_index) => {
device.stop_channel(channel_index)?;
},
}
StopAllChannels => {
device.stop_all();
},
}
PlayBuffer { buffer, loops } => {
device.play_buffer(&buffer, loops)?;
}
PlayRcBuffer { buffer, loops } => {
device.play_buffer(&buffer, loops)?;
},
}
PlayBufferOnChannel { channel, buffer, loops } => {
device.play_buffer_on_channel(channel, &buffer, loops)?;
}
PlayRcBufferOnChannel { channel, buffer, loops } => {
device.play_buffer_on_channel(channel, &buffer, loops)?;
},
}
PlayGenerator { generator, loops } => {
device.play_generator(generator, loops)?;
},
}
PlayGeneratorOnChannel { channel, generator, loops } => {
device.play_generator_on_channel(channel, generator, loops)?;
},
}
}
} else {
return Ok(())
return Ok(());
}
}
}

View file

@ -186,7 +186,7 @@ pub fn main_loop<ContextType, State>(
mut app: ContextType,
initial_state: State,
) -> Result<(), MainLoopError>
where
where
ContextType: AppContext,
State: AppState<ContextType> + 'static,
{

View file

@ -11,6 +11,7 @@ pub type EntityId = usize;
// alias `Component` to always be `'static` ...
pub trait Component: 'static {}
impl<T: 'static> Component for T {}
pub type ComponentStore<T> = RefCell<HashMap<EntityId, T>>;
@ -495,12 +496,16 @@ mod tests {
#[derive(Debug, Eq, PartialEq, Hash, Clone)]
struct Name(&'static str);
#[derive(Debug, Eq, PartialEq, Hash, Clone)]
struct Position(i32, i32);
#[derive(Debug, Eq, PartialEq, Hash, Clone)]
struct Velocity(i32, i32);
#[derive(Debug, Eq, PartialEq, Hash, Clone)]
struct Health(u32);
#[derive(Debug, Eq, PartialEq, Hash, Clone)]
struct Counter(u32);
@ -761,7 +766,7 @@ mod tests {
pub fn new(entities: Entities) -> Self {
ComponentSystemContext {
delta: 0.0,
entities
entities,
}
}
}

View file

@ -116,7 +116,7 @@ impl<EventType, ContextType> EventListeners<EventType, ContextType> {
// HACK?: comparing function pointers -- see above "HACK?" comment. same concern here.
self.listeners.retain(|&l| l as usize != listener as usize);
// return true if the listener was removed
return before_size != self.listeners.len()
return before_size != self.listeners.len();
}
/// Moves the queue from the given [`EventPublisher`] to this manager in preparation for
@ -141,7 +141,6 @@ impl<EventType, ContextType> EventListeners<EventType, ContextType> {
}
}
}
}
#[cfg(test)]
@ -194,7 +193,7 @@ mod tests {
} else {
false
}
},
}
_ => false
}
}
@ -337,6 +336,5 @@ mod tests {
vec![Message("hello"), Dummy, Foobar(3)],
context.events
);
}
}

View file

@ -349,7 +349,7 @@ unsafe fn per_pixel_rotozoom_blit(
top_left_x.min(bottom_left_x).min(top_right_x).min(bottom_right_x) as i32 - 1,
top_left_y.min(bottom_left_y).min(top_right_y).min(bottom_right_y) as i32 - 1,
top_left_x.max(bottom_left_x).max(top_right_x).max(bottom_right_x) as i32 + 1,
top_left_y.max(bottom_left_y).max(top_right_y).max(bottom_right_y) as i32 + 1
top_left_y.max(bottom_left_y).max(top_right_y).max(bottom_right_y) as i32 + 1,
);
// now we're ready to draw. we'll be iterating through each pixel on the area we calculated
@ -422,7 +422,7 @@ impl Bitmap {
} else {
*dest_pixels = *src_pixels;
}
}
},
);
}
@ -439,7 +439,7 @@ impl Bitmap {
self, src, src_region, dest_x, dest_y, horizontal_flip, vertical_flip,
|src_pixels, dest_pixels| {
*dest_pixels = *src_pixels;
}
},
);
}
@ -461,7 +461,7 @@ impl Bitmap {
} else {
*dest_pixels = *src_pixels;
}
}
},
);
}
@ -477,7 +477,7 @@ impl Bitmap {
self, src, src_region, dest_x, dest_y,
|src_pixels, dest_pixels| {
*dest_pixels = (*src_pixels).wrapping_add(offset);
}
},
);
}
@ -495,7 +495,7 @@ impl Bitmap {
self, src, src_region, dest_x, dest_y, horizontal_flip, vertical_flip,
|src_pixels, dest_pixels| {
*dest_pixels = (*src_pixels).wrapping_add(offset);
}
},
);
}
@ -513,7 +513,7 @@ impl Bitmap {
if *src_pixels != transparent_color {
*dest_pixels = *src_pixels;
}
}
},
);
}
@ -536,7 +536,7 @@ impl Bitmap {
*dest_pixels = *src_pixels;
}
}
}
},
);
}
@ -556,7 +556,7 @@ impl Bitmap {
if *src_pixels != transparent_color {
*dest_pixels = *src_pixels;
}
}
},
);
}
@ -581,7 +581,7 @@ impl Bitmap {
*dest_pixels = *src_pixels;
}
}
}
},
);
}
@ -600,7 +600,7 @@ impl Bitmap {
if *src_pixels != transparent_color {
*dest_pixels = (*src_pixels).wrapping_add(offset);
}
}
},
);
}
@ -621,7 +621,7 @@ impl Bitmap {
if *src_pixels != transparent_color {
*dest_pixels = (*src_pixels).wrapping_add(offset);
}
}
},
);
}
@ -640,7 +640,7 @@ impl Bitmap {
if *src_pixels != transparent_color {
*dest_pixels = draw_color;
}
}
},
);
}
@ -661,7 +661,7 @@ impl Bitmap {
if *src_pixels != transparent_color {
*dest_pixels = draw_color;
}
}
},
);
}
@ -680,7 +680,7 @@ impl Bitmap {
|src_pixel, dest_bitmap, draw_x, draw_y| {
dest_bitmap.set_pixel(draw_x, draw_y, src_pixel);
//dest_bitmap.set_pixel(draw_x + 1, draw_y, src_pixel);
}
},
);
}
@ -706,7 +706,7 @@ impl Bitmap {
};
dest_bitmap.set_pixel(draw_x, draw_y, draw_pixel);
}
}
},
);
}
@ -727,7 +727,7 @@ impl Bitmap {
if transparent_color != src_pixel {
dest_bitmap.set_pixel(draw_x, draw_y, src_pixel);
}
}
},
);
}
@ -756,7 +756,7 @@ impl Bitmap {
dest_bitmap.set_pixel(draw_x, draw_y, draw_pixel);
}
}
}
},
);
}
@ -776,7 +776,7 @@ impl Bitmap {
|src_pixel, dest_bitmap, draw_x, draw_y| {
let src_pixel = src_pixel.wrapping_add(offset);
dest_bitmap.set_pixel(draw_x, draw_y, src_pixel);
}
},
);
}
@ -799,7 +799,7 @@ impl Bitmap {
let src_pixel = src_pixel.wrapping_add(offset);
dest_bitmap.set_pixel(draw_x, draw_y, src_pixel);
}
}
},
);
}
@ -888,52 +888,52 @@ impl Bitmap {
SolidOffset(offset) => self.solid_palette_offset_blit(src, src_region, dest_x, dest_y, offset),
SolidFlippedOffset { horizontal_flip, vertical_flip, offset } => {
self.solid_flipped_palette_offset_blit(src, src_region, dest_x, dest_y, horizontal_flip, vertical_flip, offset)
},
}
Transparent(transparent_color) => {
self.transparent_blit(src, src_region, dest_x, dest_y, transparent_color)
},
}
TransparentFlipped { transparent_color, horizontal_flip, vertical_flip } => {
self.transparent_flipped_blit(src, src_region, dest_x, dest_y, transparent_color, horizontal_flip, vertical_flip)
},
}
TransparentOffset { transparent_color, offset } => {
self.transparent_palette_offset_blit(src, src_region, dest_x, dest_y, transparent_color, offset)
},
}
TransparentFlippedOffset { transparent_color, horizontal_flip, vertical_flip, offset } => {
self.transparent_flipped_palette_offset_blit(src, src_region, dest_x, dest_y, transparent_color, horizontal_flip, vertical_flip, offset)
},
}
TransparentSingle { transparent_color, draw_color } => {
self.transparent_single_color_blit(src, src_region, dest_x, dest_y, transparent_color, draw_color)
},
}
TransparentFlippedSingle { transparent_color, horizontal_flip, vertical_flip, draw_color } => {
self.transparent_flipped_single_color_blit(src, src_region, dest_x, dest_y, transparent_color, horizontal_flip, vertical_flip, draw_color)
},
}
RotoZoom { angle, scale_x, scale_y } => {
self.rotozoom_blit(src, src_region, dest_x, dest_y, angle, scale_x, scale_y)
},
}
RotoZoomOffset { angle, scale_x, scale_y, offset } => {
self.rotozoom_palette_offset_blit(src, src_region, dest_x, dest_y, angle, scale_x, scale_y, offset)
},
}
RotoZoomTransparent { angle, scale_x, scale_y, transparent_color } => {
self.rotozoom_transparent_blit(src, src_region, dest_x, dest_y, angle, scale_x, scale_y, transparent_color)
},
}
RotoZoomTransparentOffset { angle, scale_x, scale_y, transparent_color, offset } => {
self.rotozoom_transparent_palette_offset_blit(src, src_region, dest_x, dest_y, angle, scale_x, scale_y, transparent_color, offset)
},
}
SolidBlended { blend_map } => {
self.solid_blended_blit(src, src_region, dest_x, dest_y, blend_map)
},
}
SolidFlippedBlended { horizontal_flip, vertical_flip, blend_map } => {
self.solid_flipped_blended_blit(src, src_region, dest_x, dest_y, horizontal_flip, vertical_flip, blend_map)
},
}
TransparentBlended { transparent_color, blend_map } => {
self.transparent_blended_blit(src, src_region, dest_x, dest_y, transparent_color, blend_map)
},
}
TransparentFlippedBlended { transparent_color, horizontal_flip, vertical_flip, blend_map } => {
self.transparent_flipped_blended_blit(src, src_region, dest_x, dest_y, transparent_color, horizontal_flip, vertical_flip, blend_map)
},
}
RotoZoomBlended { angle, scale_x, scale_y, blend_map } => {
self.rotozoom_blended_blit(src, src_region, dest_x, dest_y, angle, scale_x, scale_y, blend_map)
},
}
RotoZoomTransparentBlended { angle, scale_x, scale_y, transparent_color, blend_map } => {
self.rotozoom_transparent_blended_blit(src, src_region, dest_x, dest_y, angle, scale_x, scale_y, transparent_color, blend_map)
}

View file

@ -333,7 +333,7 @@ impl LocalImageDescriptor {
y: reader.read_u16::<LittleEndian>()?,
width: reader.read_u16::<LittleEndian>()?,
height: reader.read_u16::<LittleEndian>()?,
flags: reader.read_u8()?
flags: reader.read_u8()?,
})
}
@ -444,29 +444,29 @@ impl Bitmap {
if frame_palette.is_some() {
palette = frame_palette;
}
},
}
EXTENSION_INTRODUCER => {
let label = GifExtensionLabel::from(reader.read_u8()?)?;
match label {
GifExtensionLabel::GraphicControl => {
current_graphic_control = Some(GraphicControlExtension::read(reader)?);
},
}
GifExtensionLabel::PlainText => {
let _plain_text = PlainTextExtension::read(reader)?;
// todo: do something with this maybe
},
}
GifExtensionLabel::Application => {
let _application = ApplicationExtension::read(reader)?;
// todo: do something with this maybe
},
}
GifExtensionLabel::Comment => {
let _comment = CommentExtension::read(reader)?;
// todo: do something with this maybe
},
}
},
}
}
_ => {
return Err(GifError::BadFile(format!("Unexpected byte found {} not a file trailer, image separator or extension introducer", current_byte)))
return Err(GifError::BadFile(format!("Unexpected byte found {} not a file trailer, image separator or extension introducer", current_byte)));
}
}
}
@ -493,7 +493,6 @@ impl Bitmap {
palette: &Palette,
settings: GifSettings,
) -> Result<(), GifError> {
let mut header = GifHeader {
signature: *b"GIF",
version: *b"89a",
@ -516,7 +515,7 @@ impl Bitmap {
match settings {
GifSettings::Default => {
transparent_color = 0;
},
}
GifSettings::TransparentColor(color) => {
transparent_color = color;
}
@ -543,7 +542,7 @@ impl Bitmap {
&self,
path: &Path,
palette: &Palette,
settings: GifSettings
settings: GifSettings,
) -> Result<(), GifError> {
let f = File::create(path)?;
let mut writer = BufWriter::new(f);

View file

@ -392,7 +392,7 @@ impl Bitmap {
Err(IffError::IOError(io_error))
if io_error.kind() == io::ErrorKind::UnexpectedEof =>
{
break
break;
}
Err(err) => return Err(err),
};

View file

@ -364,7 +364,7 @@ pub mod tests {
x: 0,
y: 0,
width: 16,
height: 32
height: 32,
},
bmp.full_bounds()
);
@ -373,7 +373,7 @@ pub mod tests {
x: 0,
y: 0,
width: 16,
height: 32
height: 32,
},
*bmp.clip_region()
);
@ -428,7 +428,7 @@ pub mod tests {
x: 0,
y: 0,
width: 16,
height: 8
height: 8,
},
bmp.full_bounds()
);

View file

@ -92,7 +92,7 @@ impl BlendMap {
blend_map.set_mapping(
source_color,
idx as u8,
(gradient_size - 1) - (lit / (256 / gradient_size as u32) as u8) + source_color
(gradient_size - 1) - (lit / (256 / gradient_size as u32) as u8) + source_color,
).unwrap();
}
blend_map
@ -106,7 +106,7 @@ impl BlendMap {
gradient_start: u8,
gradient_end: u8,
palette: &Palette,
f: impl Fn(f32, f32) -> f32
f: impl Fn(f32, f32) -> f32,
) -> BlendMap {
let (gradient_start, gradient_end) = if gradient_start > gradient_end {
(gradient_end, gradient_start)
@ -126,7 +126,7 @@ impl BlendMap {
blend_map.set_mapping(
source_color,
dest_color,
(gradient_size - 1).wrapping_sub(weight / (256 / gradient_size as u32) as u8) + gradient_start
(gradient_size - 1).wrapping_sub(weight / (256 / gradient_size as u32) as u8) + gradient_start,
).unwrap();
}
}
@ -274,7 +274,7 @@ impl BlendMap {
Ok(BlendMap {
start_color,
end_color,
mapping: maps.into_boxed_slice()
mapping: maps.into_boxed_slice(),
})
}

View file

@ -212,7 +212,7 @@ impl Font for BitmaskFont {
}
width = std::cmp::max(width, x);
x = 0;
},
}
'\r' => (),
ch => {
if x == 0 {

View file

@ -7,13 +7,14 @@ use std::path::Path;
use byteorder::{ReadBytesExt, WriteBytesExt};
use thiserror::Error;
use crate::NUM_COLORS;
use crate::graphics::*;
use crate::NUM_COLORS;
use crate::utils::abs_diff;
// silly "hack" (???) which allows us to alias the generic constraint `RangeBounds<u8> + Iterator<Item = u8>` to `ColorRange`
pub trait ColorRange: RangeBounds<u8> + Iterator<Item = u8> {}
impl<T> ColorRange for T where T: RangeBounds<u8> + Iterator<Item = u8> {}
pub trait ColorRange: RangeBounds<u8> + Iterator<Item=u8> {}
impl<T> ColorRange for T where T: RangeBounds<u8> + Iterator<Item=u8> {}
pub static VGA_PALETTE_BYTES: &[u8] = include_bytes!("../../assets/vga.pal");
@ -161,7 +162,7 @@ fn read_palette_6bit<T: ReadBytesExt>(
num_colors: usize,
) -> Result<[u32; NUM_COLORS], PaletteError> {
if num_colors > NUM_COLORS {
return Err(PaletteError::OutOfRange(num_colors))
return Err(PaletteError::OutOfRange(num_colors));
}
let mut colors = [0u32; NUM_COLORS];
for i in 0..num_colors {
@ -180,7 +181,7 @@ fn write_palette_6bit<T: WriteBytesExt>(
num_colors: usize,
) -> Result<(), PaletteError> {
if num_colors > NUM_COLORS {
return Err(PaletteError::OutOfRange(num_colors))
return Err(PaletteError::OutOfRange(num_colors));
}
for i in 0..num_colors {
let (r, g, b) = from_rgb32(colors[i as usize]);
@ -197,7 +198,7 @@ fn read_palette_8bit<T: ReadBytesExt>(
num_colors: usize,
) -> Result<[u32; NUM_COLORS], PaletteError> {
if num_colors > NUM_COLORS {
return Err(PaletteError::OutOfRange(num_colors))
return Err(PaletteError::OutOfRange(num_colors));
}
let mut colors = [0u32; NUM_COLORS];
for i in 0..num_colors {
@ -216,7 +217,7 @@ fn write_palette_8bit<T: WriteBytesExt>(
num_colors: usize,
) -> Result<(), PaletteError> {
if num_colors > NUM_COLORS {
return Err(PaletteError::OutOfRange(num_colors))
return Err(PaletteError::OutOfRange(num_colors));
}
for i in 0..num_colors {
let (r, g, b) = from_rgb32(colors[i as usize]);
@ -336,7 +337,7 @@ impl Palette {
num_colors: usize,
) -> Result<Palette, PaletteError> {
if num_colors > NUM_COLORS {
return Err(PaletteError::OutOfRange(num_colors))
return Err(PaletteError::OutOfRange(num_colors));
}
let colors = match format {
PaletteFormat::Vga => read_palette_6bit(reader, num_colors)?,
@ -391,7 +392,7 @@ impl Palette {
num_colors: usize,
) -> Result<(), PaletteError> {
if num_colors > NUM_COLORS {
return Err(PaletteError::OutOfRange(num_colors))
return Err(PaletteError::OutOfRange(num_colors));
}
let f = File::create(path)?;
let mut writer = BufWriter::new(f);
@ -415,7 +416,7 @@ impl Palette {
num_colors: usize,
) -> Result<(), PaletteError> {
if num_colors > NUM_COLORS {
return Err(PaletteError::OutOfRange(num_colors))
return Err(PaletteError::OutOfRange(num_colors));
}
match format {
PaletteFormat::Vga => write_palette_6bit(writer, &self.colors, num_colors),

View file

@ -74,7 +74,7 @@ impl Matrix3x3 {
Matrix3x3::new(
1.0, 0.0, 0.0,
0.0, c, -s,
0.0, s, c
0.0, s, c,
)
}
@ -90,7 +90,7 @@ impl Matrix3x3 {
Matrix3x3::new(
c, 0.0, s,
0.0, 1.0, 0.0,
-s, 0.0, c
-s, 0.0, c,
)
}
@ -106,7 +106,7 @@ impl Matrix3x3 {
Matrix3x3::new(
c, -s, 0.0,
s, c, 0.0,
0.0, 0.0, 1.0
0.0, 0.0, 1.0,
)
}
@ -122,7 +122,7 @@ impl Matrix3x3 {
Matrix3x3::new(
1.0, 0.0, 0.0,
0.0, 1.0, 0.0,
x, y, 1.0
x, y, 1.0,
)
}
@ -139,7 +139,7 @@ impl Matrix3x3 {
Matrix3x3::new(
x, 0.0, 0.0,
0.0, y, 0.0,
0.0, 0.0, 1.0
0.0, 0.0, 1.0,
)
}
@ -246,7 +246,7 @@ impl Mul for Matrix3x3 {
self.m[Matrix3x3::M21] * rhs.m[Matrix3x3::M13] + self.m[Matrix3x3::M22] * rhs.m[Matrix3x3::M23] + self.m[Matrix3x3::M23] * rhs.m[Matrix3x3::M33],
self.m[Matrix3x3::M31] * rhs.m[Matrix3x3::M11] + self.m[Matrix3x3::M32] * rhs.m[Matrix3x3::M21] + self.m[Matrix3x3::M33] * rhs.m[Matrix3x3::M31],
self.m[Matrix3x3::M31] * rhs.m[Matrix3x3::M12] + self.m[Matrix3x3::M32] * rhs.m[Matrix3x3::M22] + self.m[Matrix3x3::M33] * rhs.m[Matrix3x3::M32],
self.m[Matrix3x3::M31] * rhs.m[Matrix3x3::M13] + self.m[Matrix3x3::M32] * rhs.m[Matrix3x3::M23] + self.m[Matrix3x3::M33] * rhs.m[Matrix3x3::M33]
self.m[Matrix3x3::M31] * rhs.m[Matrix3x3::M13] + self.m[Matrix3x3::M32] * rhs.m[Matrix3x3::M23] + self.m[Matrix3x3::M33] * rhs.m[Matrix3x3::M33],
)
}
}
@ -264,7 +264,7 @@ impl MulAssign for Matrix3x3 {
self.m[Matrix3x3::M21] * rhs.m[Matrix3x3::M13] + self.m[Matrix3x3::M22] * rhs.m[Matrix3x3::M23] + self.m[Matrix3x3::M23] * rhs.m[Matrix3x3::M33],
self.m[Matrix3x3::M31] * rhs.m[Matrix3x3::M11] + self.m[Matrix3x3::M32] * rhs.m[Matrix3x3::M21] + self.m[Matrix3x3::M33] * rhs.m[Matrix3x3::M31],
self.m[Matrix3x3::M31] * rhs.m[Matrix3x3::M12] + self.m[Matrix3x3::M32] * rhs.m[Matrix3x3::M22] + self.m[Matrix3x3::M33] * rhs.m[Matrix3x3::M32],
self.m[Matrix3x3::M31] * rhs.m[Matrix3x3::M13] + self.m[Matrix3x3::M32] * rhs.m[Matrix3x3::M23] + self.m[Matrix3x3::M33] * rhs.m[Matrix3x3::M33]
self.m[Matrix3x3::M31] * rhs.m[Matrix3x3::M13] + self.m[Matrix3x3::M32] * rhs.m[Matrix3x3::M23] + self.m[Matrix3x3::M33] * rhs.m[Matrix3x3::M33],
)
}
}
@ -277,7 +277,7 @@ impl Mul<Vector2> for Matrix3x3 {
fn mul(self, rhs: Vector2) -> Self::Output {
Vector2 {
x: rhs.x * self.m[Matrix3x3::M11] + rhs.y * self.m[Matrix3x3::M12] + self.m[Matrix3x3::M13] + self.m[Matrix3x3::M31],
y: rhs.x * self.m[Matrix3x3::M21] + rhs.y * self.m[Matrix3x3::M22] + self.m[Matrix3x3::M23] + self.m[Matrix3x3::M32]
y: rhs.x * self.m[Matrix3x3::M21] + rhs.y * self.m[Matrix3x3::M22] + self.m[Matrix3x3::M23] + self.m[Matrix3x3::M32],
}
}
}
@ -335,7 +335,7 @@ pub mod tests {
let m = Matrix3x3::new(
1.0, 2.0, 3.0,
4.0, 5.0, 6.0,
7.0, 8.0, 9.0
7.0, 8.0, 9.0,
);
let t = m.transpose();
assert_eq!(1.0, t.m[Matrix3x3::M11]);

View file

@ -10,9 +10,12 @@ pub mod matrix3x3;
pub mod rect;
pub mod vector2;
pub const PI: f32 = std::f32::consts::PI; // 180 degrees
pub const HALF_PI: f32 = PI / 2.0; // 90 degrees
pub const QUARTER_PI: f32 = PI / 4.0; // 45 degrees
pub const PI: f32 = std::f32::consts::PI;
// 180 degrees
pub const HALF_PI: f32 = PI / 2.0;
// 90 degrees
pub const QUARTER_PI: f32 = PI / 4.0;
// 45 degrees
pub const TWO_PI: f32 = PI * 2.0; // 360 degrees
pub const RADIANS_0: f32 = 0.0;
@ -53,8 +56,8 @@ pub fn nearly_equal(a: f32, b: f32, epsilon: f32) -> bool {
/// * `t`: the amount to interpolate between the two values, specified as a fraction
#[inline]
pub fn lerp<N>(a: N, b: N, t: f32) -> N
where
N: Copy + Add<Output = N> + Sub<Output = N> + Mul<f32, Output = N>,
where
N: Copy + Add<Output=N> + Sub<Output=N> + Mul<f32, Output=N>,
{
a + (b - a) * t
}
@ -69,8 +72,8 @@ where
/// * `lerp_result`: the interpolated value between the range given
#[inline]
pub fn inverse_lerp<N>(a: N, b: N, lerp_result: N) -> f32
where
N: Copy + Sub<Output = N> + Div<N, Output = f32>,
where
N: Copy + Sub<Output=N> + Div<N, Output=f32>,
{
(lerp_result - a) / (b - a)
}
@ -84,8 +87,8 @@ where
/// * `t`: the amount to interpolate between the two values, specified as a fraction
#[inline]
pub fn smooth_lerp<N>(a: N, b: N, t: f32) -> N
where
N: Copy + Add<Output = N> + Sub<Output = N> + Mul<f32, Output = N>,
where
N: Copy + Add<Output=N> + Sub<Output=N> + Mul<f32, Output=N>,
{
let t = t.clamp(0.0, 1.0);
lerp(a, b, (t * t) * (3.0 - (2.0 * t)))
@ -104,8 +107,8 @@ where
/// * `new_max`: new max value (high end of range)
#[inline]
pub fn scale_range<N>(value: N, old_min: N, old_max: N, new_min: N, new_max: N) -> N
where
N: Copy + Add<Output = N> + Sub<Output = N> + Mul<Output = N> + Div<Output = N>,
where
N: Copy + Add<Output=N> + Sub<Output=N> + Mul<Output=N> + Div<Output=N>,
{
(new_max - new_min) * (value - old_min) / (old_max - old_min) + new_min
}

View file

@ -13,7 +13,7 @@ pub enum TransitionTo {
#[derive(Copy, Clone, Eq, PartialEq, Debug)]
pub enum TransitionDirection {
In,
Out
Out,
}
#[derive(Copy, Clone, Eq, PartialEq, Debug)]
@ -133,7 +133,7 @@ impl<ContextType> StateContainer<ContextType> {
State::Pending | State::Paused | State::Resume => {
self.change_state(State::TransitionIn, context);
Ok(())
},
}
_ => {
Err(StateError::AppStateInvalidState(self.current_state))
}
@ -278,7 +278,7 @@ impl<ContextType> States<ContextType> {
match command {
StateChange::Push(new_state) => {
self.pending_state = Some(new_state);
},
}
StateChange::Pop(count) => {
if let Some(state) = self.states.front_mut() {
state.pending_transition_out(TransitionTo::Dead);
@ -351,7 +351,7 @@ impl<ContextType> States<ContextType> {
state.change_state(State::Resume, context);
state.transition_in(context)?;
}
},
}
State::Paused => {
state.pause(context)?;
@ -362,11 +362,11 @@ impl<ContextType> States<ContextType> {
new_state.change_state(State::Pending, context);
self.states.push_front(new_state);
}
},
}
State::Active => state.activate(context)?,
State::TransitionOut(to) => state.transition_out(to, context)?,
State::TransitionIn => state.transition_in(context)?,
_ => {},
_ => {}
}
}
}
@ -383,29 +383,29 @@ impl<ContextType> States<ContextType> {
Some(State::Paused) => {
// should never happen now. leaving here just in case ...
return Err(StateError::AppStateInvalidState(State::Paused));
},
}
Some(State::Dead) => {
// should never happen now. leaving here just in case ...
return Err(StateError::AppStateInvalidState(State::Dead));
},
}
Some(State::TransitionIn) => {
let state = self.states.front_mut().unwrap();
if state.state().transition(State::TransitionIn, context) {
// state has indicated it is done transitioning, so we can switch it to active
state.pending_activate();
}
},
}
Some(State::TransitionOut(to)) => {
let state = self.states.front_mut().unwrap();
if state.state().transition(State::TransitionOut(to), context) {
// state has indicated it is done transitioning, so we can switch it to whatever
// it was transitioning to
match to {
TransitionTo::Paused => { state.pending_pause(); },
TransitionTo::Paused => { state.pending_pause(); }
TransitionTo::Dead => { state.pending_kill(); }
}
}
},
}
_ => {}
}
@ -438,7 +438,7 @@ impl<ContextType> States<ContextType> {
match current_state {
State::Active | State::TransitionIn | State::TransitionOut(_) => {
state.state().render(current_state, context);
},
}
_ => {}
}
}
@ -533,7 +533,7 @@ mod tests {
match new_state {
State::TransitionIn | State::TransitionOut(_) => {
self.counter = self.transition_length;
},
}
_ => {}
}
}
@ -567,7 +567,7 @@ mod tests {
StateChange(FOO, TransitionIn, Pending),
Transition(FOO, TransitionIn),
Update(FOO, TransitionIn),
Render(FOO, TransitionIn)
Render(FOO, TransitionIn),
]
);
// state finished transitioning in, now moves to active
@ -577,7 +577,7 @@ mod tests {
vec![
StateChange(FOO, Active, TransitionIn),
Update(FOO, Active),
Render(FOO, Active)
Render(FOO, Active),
]
);
@ -592,7 +592,7 @@ mod tests {
StateChange(FOO, TransitionOut(TransitionTo::Dead), Active),
Transition(FOO, TransitionOut(TransitionTo::Dead)),
Update(FOO, TransitionOut(TransitionTo::Dead)),
Render(FOO, TransitionOut(TransitionTo::Dead))
Render(FOO, TransitionOut(TransitionTo::Dead)),
]
);
// state finished transitioning out, now dies
@ -628,7 +628,7 @@ mod tests {
StateChange(FOO, TransitionIn, Pending),
Transition(FOO, TransitionIn),
Update(FOO, TransitionIn),
Render(FOO, TransitionIn)
Render(FOO, TransitionIn),
]
);
// wait for transition to finish
@ -639,7 +639,7 @@ mod tests {
vec![
Transition(FOO, TransitionIn),
Update(FOO, TransitionIn),
Render(FOO, TransitionIn)
Render(FOO, TransitionIn),
]
);
}
@ -650,7 +650,7 @@ mod tests {
vec![
StateChange(FOO, Active, TransitionIn),
Update(FOO, Active),
Render(FOO, Active)
Render(FOO, Active),
]
);
@ -665,7 +665,7 @@ mod tests {
StateChange(FOO, TransitionOut(TransitionTo::Dead), Active),
Transition(FOO, TransitionOut(TransitionTo::Dead)),
Update(FOO, TransitionOut(TransitionTo::Dead)),
Render(FOO, TransitionOut(TransitionTo::Dead))
Render(FOO, TransitionOut(TransitionTo::Dead)),
]
);
// wait for transition to finish
@ -676,7 +676,7 @@ mod tests {
vec![
Transition(FOO, TransitionOut(TransitionTo::Dead)),
Update(FOO, TransitionOut(TransitionTo::Dead)),
Render(FOO, TransitionOut(TransitionTo::Dead))
Render(FOO, TransitionOut(TransitionTo::Dead)),
]
);
}
@ -715,7 +715,7 @@ mod tests {
StateChange(FIRST, TransitionIn, Pending),
Transition(FIRST, TransitionIn),
Update(FIRST, TransitionIn),
Render(FIRST, TransitionIn)
Render(FIRST, TransitionIn),
]
);
// first state finished transitioning in, now moves to active
@ -725,7 +725,7 @@ mod tests {
vec![
StateChange(FIRST, Active, TransitionIn),
Update(FIRST, Active),
Render(FIRST, Active)
Render(FIRST, Active),
]
);
@ -741,7 +741,7 @@ mod tests {
StateChange(FIRST, TransitionOut(TransitionTo::Paused), Active),
Transition(FIRST, TransitionOut(TransitionTo::Paused)),
Update(FIRST, TransitionOut(TransitionTo::Paused)),
Render(FIRST, TransitionOut(TransitionTo::Paused))
Render(FIRST, TransitionOut(TransitionTo::Paused)),
]
);
// state finished transitioning out, now is paused
@ -755,7 +755,7 @@ mod tests {
StateChange(SECOND, TransitionIn, Pending),
Transition(SECOND, TransitionIn),
Update(SECOND, TransitionIn),
Render(SECOND, TransitionIn)
Render(SECOND, TransitionIn),
]
);
// second state finished transitioning in, now moves to active
@ -765,7 +765,7 @@ mod tests {
vec![
StateChange(SECOND, Active, TransitionIn),
Update(SECOND, Active),
Render(SECOND, Active)
Render(SECOND, Active),
]
);
@ -781,7 +781,7 @@ mod tests {
StateChange(SECOND, TransitionOut(TransitionTo::Dead), Active),
Transition(SECOND, TransitionOut(TransitionTo::Dead)),
Update(SECOND, TransitionOut(TransitionTo::Dead)),
Render(SECOND, TransitionOut(TransitionTo::Dead))
Render(SECOND, TransitionOut(TransitionTo::Dead)),
]
);
// second state finished transitioning out, now dies. first state wakes up again and
@ -795,7 +795,7 @@ mod tests {
StateChange(FIRST, TransitionIn, Resume),
Transition(FIRST, TransitionIn),
Update(FIRST, TransitionIn),
Render(FIRST, TransitionIn)
Render(FIRST, TransitionIn),
]
);
// first state finished transitioning in, now moves to active
@ -805,7 +805,7 @@ mod tests {
vec![
StateChange(FIRST, Active, TransitionIn),
Update(FIRST, Active),
Render(FIRST, Active)
Render(FIRST, Active),
]
);
@ -821,7 +821,7 @@ mod tests {
StateChange(FIRST, TransitionOut(TransitionTo::Dead), Active),
Transition(FIRST, TransitionOut(TransitionTo::Dead)),
Update(FIRST, TransitionOut(TransitionTo::Dead)),
Render(FIRST, TransitionOut(TransitionTo::Dead))
Render(FIRST, TransitionOut(TransitionTo::Dead)),
]
);
// first state finished transitioning out, now dies
@ -859,7 +859,7 @@ mod tests {
StateChange(FIRST, TransitionIn, Pending),
Transition(FIRST, TransitionIn),
Update(FIRST, TransitionIn),
Render(FIRST, TransitionIn)
Render(FIRST, TransitionIn),
]
);
// wait for transition to finish
@ -870,7 +870,7 @@ mod tests {
vec![
Transition(FIRST, TransitionIn),
Update(FIRST, TransitionIn),
Render(FIRST, TransitionIn)
Render(FIRST, TransitionIn),
]
);
}
@ -881,7 +881,7 @@ mod tests {
vec![
StateChange(FIRST, Active, TransitionIn),
Update(FIRST, Active),
Render(FIRST, Active)
Render(FIRST, Active),
]
);
@ -898,7 +898,7 @@ mod tests {
StateChange(FIRST, TransitionOut(TransitionTo::Paused), Active),
Transition(FIRST, TransitionOut(TransitionTo::Paused)),
Update(FIRST, TransitionOut(TransitionTo::Paused)),
Render(FIRST, TransitionOut(TransitionTo::Paused))
Render(FIRST, TransitionOut(TransitionTo::Paused)),
]
);
// wait for transition to finish
@ -909,7 +909,7 @@ mod tests {
vec![
Transition(FIRST, TransitionOut(TransitionTo::Paused)),
Update(FIRST, TransitionOut(TransitionTo::Paused)),
Render(FIRST, TransitionOut(TransitionTo::Paused))
Render(FIRST, TransitionOut(TransitionTo::Paused)),
]
);
}
@ -923,7 +923,7 @@ mod tests {
StateChange(SECOND, TransitionIn, Pending),
Transition(SECOND, TransitionIn),
Update(SECOND, TransitionIn),
Render(SECOND, TransitionIn)
Render(SECOND, TransitionIn),
]
);
// wait for transition to finish
@ -934,7 +934,7 @@ mod tests {
vec![
Transition(SECOND, TransitionIn),
Update(SECOND, TransitionIn),
Render(SECOND, TransitionIn)
Render(SECOND, TransitionIn),
]
);
}
@ -945,7 +945,7 @@ mod tests {
vec![
StateChange(SECOND, Active, TransitionIn),
Update(SECOND, Active),
Render(SECOND, Active)
Render(SECOND, Active),
]
);
@ -961,7 +961,7 @@ mod tests {
StateChange(SECOND, TransitionOut(TransitionTo::Dead), Active),
Transition(SECOND, TransitionOut(TransitionTo::Dead)),
Update(SECOND, TransitionOut(TransitionTo::Dead)),
Render(SECOND, TransitionOut(TransitionTo::Dead))
Render(SECOND, TransitionOut(TransitionTo::Dead)),
]
);
// wait for transition to finish
@ -972,7 +972,7 @@ mod tests {
vec![
Transition(SECOND, TransitionOut(TransitionTo::Dead)),
Update(SECOND, TransitionOut(TransitionTo::Dead)),
Render(SECOND, TransitionOut(TransitionTo::Dead))
Render(SECOND, TransitionOut(TransitionTo::Dead)),
]
);
}
@ -987,7 +987,7 @@ mod tests {
StateChange(FIRST, TransitionIn, Resume),
Transition(FIRST, TransitionIn),
Update(FIRST, TransitionIn),
Render(FIRST, TransitionIn)
Render(FIRST, TransitionIn),
]
);
// wait for transition to finish
@ -998,7 +998,7 @@ mod tests {
vec![
Transition(FIRST, TransitionIn),
Update(FIRST, TransitionIn),
Render(FIRST, TransitionIn)
Render(FIRST, TransitionIn),
]
);
}
@ -1009,7 +1009,7 @@ mod tests {
vec![
StateChange(FIRST, Active, TransitionIn),
Update(FIRST, Active),
Render(FIRST, Active)
Render(FIRST, Active),
]
);
@ -1025,7 +1025,7 @@ mod tests {
StateChange(FIRST, TransitionOut(TransitionTo::Dead), Active),
Transition(FIRST, TransitionOut(TransitionTo::Dead)),
Update(FIRST, TransitionOut(TransitionTo::Dead)),
Render(FIRST, TransitionOut(TransitionTo::Dead))
Render(FIRST, TransitionOut(TransitionTo::Dead)),
]
);
// wait for transition to finish
@ -1036,7 +1036,7 @@ mod tests {
vec![
Transition(FIRST, TransitionOut(TransitionTo::Dead)),
Update(FIRST, TransitionOut(TransitionTo::Dead)),
Render(FIRST, TransitionOut(TransitionTo::Dead))
Render(FIRST, TransitionOut(TransitionTo::Dead)),
]
);
}
@ -1075,7 +1075,7 @@ mod tests {
StateChange(FIRST, TransitionIn, Pending),
Transition(FIRST, TransitionIn),
Update(FIRST, TransitionIn),
Render(FIRST, TransitionIn)
Render(FIRST, TransitionIn),
]
);
// first state finished transitioning in, now moves to active
@ -1085,7 +1085,7 @@ mod tests {
vec![
StateChange(FIRST, Active, TransitionIn),
Update(FIRST, Active),
Render(FIRST, Active)
Render(FIRST, Active),
]
);
@ -1101,7 +1101,7 @@ mod tests {
StateChange(FIRST, TransitionOut(TransitionTo::Paused), Active),
Transition(FIRST, TransitionOut(TransitionTo::Paused)),
Update(FIRST, TransitionOut(TransitionTo::Paused)),
Render(FIRST, TransitionOut(TransitionTo::Paused))
Render(FIRST, TransitionOut(TransitionTo::Paused)),
]
);
// state finished transitioning out, now is paused
@ -1115,7 +1115,7 @@ mod tests {
StateChange(SECOND, TransitionIn, Pending),
Transition(SECOND, TransitionIn),
Update(SECOND, TransitionIn),
Render(SECOND, TransitionIn)
Render(SECOND, TransitionIn),
]
);
// second state finished transitioning in, now moves to active
@ -1125,7 +1125,7 @@ mod tests {
vec![
StateChange(SECOND, Active, TransitionIn),
Update(SECOND, Active),
Render(SECOND, Active)
Render(SECOND, Active),
]
);
@ -1141,7 +1141,7 @@ mod tests {
StateChange(SECOND, TransitionOut(TransitionTo::Dead), Active),
Transition(SECOND, TransitionOut(TransitionTo::Dead)),
Update(SECOND, TransitionOut(TransitionTo::Dead)),
Render(SECOND, TransitionOut(TransitionTo::Dead))
Render(SECOND, TransitionOut(TransitionTo::Dead)),
]
);
// second state finished transitioning out, now dies.
@ -1151,7 +1151,7 @@ mod tests {
context.take_log(),
vec![
StateChange(SECOND, Dead, TransitionOut(TransitionTo::Dead)),
StateChange(FIRST, Dead, Paused)
StateChange(FIRST, Dead, Paused),
]
);
@ -1187,7 +1187,7 @@ mod tests {
StateChange(FIRST, TransitionIn, Pending),
Transition(FIRST, TransitionIn),
Update(FIRST, TransitionIn),
Render(FIRST, TransitionIn)
Render(FIRST, TransitionIn),
]
);
// first state finished transitioning in, now moves to active
@ -1197,7 +1197,7 @@ mod tests {
vec![
StateChange(FIRST, Active, TransitionIn),
Update(FIRST, Active),
Render(FIRST, Active)
Render(FIRST, Active),
]
);
@ -1213,7 +1213,7 @@ mod tests {
StateChange(FIRST, TransitionOut(TransitionTo::Dead), Active),
Transition(FIRST, TransitionOut(TransitionTo::Dead)),
Update(FIRST, TransitionOut(TransitionTo::Dead)),
Render(FIRST, TransitionOut(TransitionTo::Dead))
Render(FIRST, TransitionOut(TransitionTo::Dead)),
]
);
// first state finished transitioning out, now dies.
@ -1227,7 +1227,7 @@ mod tests {
StateChange(SECOND, TransitionIn, Pending),
Transition(SECOND, TransitionIn),
Update(SECOND, TransitionIn),
Render(SECOND, TransitionIn)
Render(SECOND, TransitionIn),
]
);
// second state finished transitioning in, now moves to active
@ -1237,7 +1237,7 @@ mod tests {
vec![
StateChange(SECOND, Active, TransitionIn),
Update(SECOND, Active),
Render(SECOND, Active)
Render(SECOND, Active),
]
);
@ -1252,7 +1252,7 @@ mod tests {
StateChange(SECOND, TransitionOut(TransitionTo::Dead), Active),
Transition(SECOND, TransitionOut(TransitionTo::Dead)),
Update(SECOND, TransitionOut(TransitionTo::Dead)),
Render(SECOND, TransitionOut(TransitionTo::Dead))
Render(SECOND, TransitionOut(TransitionTo::Dead)),
]
);
// state finished transitioning out, now dies
@ -1279,7 +1279,7 @@ mod tests {
id,
counter: 0,
push_after,
pop_after
pop_after,
}
}
}
@ -1337,7 +1337,7 @@ mod tests {
StateChange(FIRST, TransitionIn, Pending),
Transition(FIRST, TransitionIn),
Update(FIRST, TransitionIn),
Render(FIRST, TransitionIn)
Render(FIRST, TransitionIn),
]
);
// first state finished transitioning in, now moves to active
@ -1347,7 +1347,7 @@ mod tests {
vec![
StateChange(FIRST, Active, TransitionIn),
Update(FIRST, Active),
Render(FIRST, Active)
Render(FIRST, Active),
]
);
// wait for first state's counter to count up to where it should push the second state
@ -1357,7 +1357,7 @@ mod tests {
context.take_log(),
vec![
Update(FIRST, Active),
Render(FIRST, Active)
Render(FIRST, Active),
]
);
}
@ -1370,7 +1370,7 @@ mod tests {
StateChange(FIRST, TransitionOut(TransitionTo::Paused), Active),
Transition(FIRST, TransitionOut(TransitionTo::Paused)),
Update(FIRST, TransitionOut(TransitionTo::Paused)),
Render(FIRST, TransitionOut(TransitionTo::Paused))
Render(FIRST, TransitionOut(TransitionTo::Paused)),
]
);
// first state finished transitioning out, now is paused. second state will transition in
@ -1383,7 +1383,7 @@ mod tests {
StateChange(SECOND, TransitionIn, Pending),
Transition(SECOND, TransitionIn),
Update(SECOND, TransitionIn),
Render(SECOND, TransitionIn)
Render(SECOND, TransitionIn),
]
);
// second state finished transitioning in, now moves to active
@ -1393,7 +1393,7 @@ mod tests {
vec![
StateChange(SECOND, Active, TransitionIn),
Update(SECOND, Active),
Render(SECOND, Active)
Render(SECOND, Active),
]
);
// wait for second state's counter to count up to where it should pop itself
@ -1403,7 +1403,7 @@ mod tests {
context.take_log(),
vec![
Update(SECOND, Active),
Render(SECOND, Active)
Render(SECOND, Active),
]
);
}
@ -1416,7 +1416,7 @@ mod tests {
StateChange(SECOND, TransitionOut(TransitionTo::Dead), Active),
Transition(SECOND, TransitionOut(TransitionTo::Dead)),
Update(SECOND, TransitionOut(TransitionTo::Dead)),
Render(SECOND, TransitionOut(TransitionTo::Dead))
Render(SECOND, TransitionOut(TransitionTo::Dead)),
]
);
// second state finished transitioning out, now dies. first state wakes up again and
@ -1430,7 +1430,7 @@ mod tests {
StateChange(FIRST, TransitionIn, Resume),
Transition(FIRST, TransitionIn),
Update(FIRST, TransitionIn),
Render(FIRST, TransitionIn)
Render(FIRST, TransitionIn),
]
);
// first state finished transitioning in, now moves to active
@ -1440,7 +1440,7 @@ mod tests {
vec![
StateChange(FIRST, Active, TransitionIn),
Update(FIRST, Active),
Render(FIRST, Active)
Render(FIRST, Active),
]
);
// wait for first state's counter to count up to where it should pop itself
@ -1450,7 +1450,7 @@ mod tests {
context.take_log(),
vec![
Update(FIRST, Active),
Render(FIRST, Active)
Render(FIRST, Active),
]
);
}
@ -1463,7 +1463,7 @@ mod tests {
StateChange(FIRST, TransitionOut(TransitionTo::Dead), Active),
Transition(FIRST, TransitionOut(TransitionTo::Dead)),
Update(FIRST, TransitionOut(TransitionTo::Dead)),
Render(FIRST, TransitionOut(TransitionTo::Dead))
Render(FIRST, TransitionOut(TransitionTo::Dead)),
]
);
// first state finished transitioning out, now dies
@ -1499,7 +1499,7 @@ mod tests {
StateChange(FOO, TransitionIn, Pending),
Transition(FOO, TransitionIn),
Update(FOO, TransitionIn),
Render(FOO, TransitionIn)
Render(FOO, TransitionIn),
]
);
@ -1513,7 +1513,7 @@ mod tests {
vec![
StateChange(FOO, Active, TransitionIn),
Update(FOO, Active),
Render(FOO, Active)
Render(FOO, Active),
]
);
@ -1528,7 +1528,7 @@ mod tests {
StateChange(FOO, TransitionOut(TransitionTo::Dead), Active),
Transition(FOO, TransitionOut(TransitionTo::Dead)),
Update(FOO, TransitionOut(TransitionTo::Dead)),
Render(FOO, TransitionOut(TransitionTo::Dead))
Render(FOO, TransitionOut(TransitionTo::Dead)),
]
);

View file

@ -146,15 +146,15 @@ impl From<sdl2::event::Event> for SystemEvent {
keycode: keycode.map(|keycode| keycode.into()),
scancode: scancode.map(|scancode| scancode.into()),
keymod: KeyModifiers::from_bits_truncate(keymod.bits()),
repeat
repeat,
})
},
}
sdl2::event::Event::KeyUp { keycode, scancode, keymod, repeat, .. } => {
SystemEvent::Keyboard(KeyboardEvent::KeyUp {
keycode: keycode.map(|keycode| keycode.into()),
scancode: scancode.map(|scancode| scancode.into()),
keymod: KeyModifiers::from_bits_truncate(keymod.bits()),
repeat
repeat,
})
}
sdl2::event::Event::MouseMotion { mousestate, x, y, xrel, yrel, .. } => {
@ -165,7 +165,7 @@ impl From<sdl2::event::Event> for SystemEvent {
y_delta: yrel,
buttons: MouseButtons::from_bits_truncate(mousestate.to_sdl_state()),
})
},
}
sdl2::event::Event::MouseButtonDown { mouse_btn, clicks, x, y, .. } => {
SystemEvent::Mouse(MouseEvent::MouseButtonDown {
x,
@ -173,7 +173,7 @@ impl From<sdl2::event::Event> for SystemEvent {
clicks,
button: mouse_btn.into(),
})
},
}
sdl2::event::Event::MouseButtonUp { mouse_btn, clicks, x, y, .. } => {
SystemEvent::Mouse(MouseButtonUp {
x,
@ -181,7 +181,7 @@ impl From<sdl2::event::Event> for SystemEvent {
clicks,
button: mouse_btn.into(),
})
},
}
_ => SystemEvent::Unimplemented,
}

View file

@ -17,22 +17,22 @@ const DEFAULT_MOUSE_CURSOR_HEIGHT: usize = 16;
#[rustfmt::skip]
const DEFAULT_MOUSE_CURSOR: [u8; DEFAULT_MOUSE_CURSOR_WIDTH * DEFAULT_MOUSE_CURSOR_HEIGHT] = [
0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x0f,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x0f,0x0f,0x0f,0x0f,0x00,0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x0f,0x00,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x0f,0x00,0x00,0x00,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0x00,0x00,0xff,0xff,0x00,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0x00,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0x00,0x0f,0x0f,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff
0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x0f, 0x00, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x0f, 0x00, 0x00, 0x00, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0x00, 0x00, 0xff, 0xff, 0x00, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0x0f, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff
];
/// Holds the current state of the mouse.

View file

@ -41,12 +41,12 @@ fn is_x11_compositor_skipping_problematic() -> bool {
to check for this.
*/
match std::env::consts::OS {
"linux"|"freebsd"|"netbsd"|"openbsd" => {
"linux" | "freebsd" | "netbsd" | "openbsd" => {
match std::env::var("XDG_SESSION_DESKTOP") {
Ok(value) => value.eq_ignore_ascii_case("KDE"),
Err(_) => false
}
},
}
_ => false,
}
}
@ -183,7 +183,7 @@ impl SystemBuilder {
"1"
} else {
"0"
}
},
);
// build all the individual SDL subsystems

View file

@ -202,7 +202,7 @@ impl LzwBytesWriter {
pub fn write_code<T: WriteBytesExt>(
&mut self,
writer: &mut T,
code: LzwCode
code: LzwCode,
) -> Result<(), LzwError> {
self.packer.push_code(code)?;
@ -345,20 +345,20 @@ impl LzwBytesReader {
Ok(Some(reader.read_u8()?))
}
pub fn read_code<T: ReadBytesExt> (
pub fn read_code<T: ReadBytesExt>(
&mut self,
reader: &mut T,
) -> Result<Option<LzwCode>, LzwError> {
loop {
if let Some(code) = self.unpacker.take_code() {
return Ok(Some(code))
return Ok(Some(code));
} else {
match self.read_byte(reader) {
Ok(Some(byte)) => self.unpacker.push_byte(byte)?,
Ok(None) => return Ok(None),
Err(LzwError::IOError(error)) if error.kind() == std::io::ErrorKind::UnexpectedEof => {
return Ok(None)
},
return Ok(None);
}
Err(error) => return Err(error),
};
}
@ -371,9 +371,9 @@ impl LzwBytesReader {
pub fn lzw_encode<S, D>(
src: &mut S,
dest: &mut D,
min_code_size: usize
min_code_size: usize,
) -> Result<(), LzwError>
where
where
S: ReadBytesExt,
D: WriteBytesExt
{
@ -413,7 +413,7 @@ where
writer.write_code(dest, end_of_info_code)?;
writer.flush(dest)?;
return Ok(());
},
}
Err(error) => return Err(LzwError::IOError(error))
};
@ -500,7 +500,7 @@ pub fn lzw_decode<S, D>(
src: &mut S,
dest: &mut D,
) -> Result<(), LzwError>
where
where
S: ReadBytesExt,
D: WriteBytesExt
{
@ -581,7 +581,7 @@ where
current_bit_size = min_code_size + 1;
reader.reset_bit_size();
break 'inner;
},
}
Some(code) => code,
None => return Err(LzwError::EncodingError(String::from("Unexpected end of code stream"))),
};

View file

@ -13,7 +13,7 @@ enum PackMode {
}
pub fn pack_bits<S, D>(src: &mut S, dest: &mut D, src_length: usize) -> Result<(), PackBitsError>
where
where
S: ReadBytesExt,
D: WriteBytesExt,
{
@ -117,7 +117,7 @@ pub fn unpack_bits<S, D>(
dest: &mut D,
unpacked_length: usize,
) -> Result<(), PackBitsError>
where
where
S: ReadBytesExt,
D: WriteBytesExt,
{

View file

@ -114,10 +114,10 @@ fn pixel_drawing() {
//////
for i in 0..10 {
screen.set_pixel(5-i, 100, 15);
screen.set_pixel(i+314, 100, 15);
screen.set_pixel(160, 5-i, 15);
screen.set_pixel(160, i+234, 15);
screen.set_pixel(5 - i, 100, 15);
screen.set_pixel(i + 314, 100, 15);
screen.set_pixel(160, 5 - i, 15);
screen.set_pixel(160, i + 234, 15);
}
let path = Path::new("tests/ref/pixel_drawing.pcx");
@ -130,19 +130,19 @@ fn blended_pixel_drawing() {
let (mut screen, palette, blend_map) = setup_for_blending();
for i in 0..10 {
screen.set_blended_pixel(0+i, 0+i, 1, &blend_map);
screen.set_blended_pixel(319-i, 0+i, 2, &blend_map);
screen.set_blended_pixel(0+i, 239-i, 3, &blend_map);
screen.set_blended_pixel(319-i, 239-i, 4, &blend_map);
screen.set_blended_pixel(0 + i, 0 + i, 1, &blend_map);
screen.set_blended_pixel(319 - i, 0 + i, 2, &blend_map);
screen.set_blended_pixel(0 + i, 239 - i, 3, &blend_map);
screen.set_blended_pixel(319 - i, 239 - i, 4, &blend_map);
}
//////
for i in 0..10 {
screen.set_blended_pixel(5-i, 100, 15, &blend_map);
screen.set_blended_pixel(i+314, 100, 15, &blend_map);
screen.set_blended_pixel(160, 5-i, 15, &blend_map);
screen.set_blended_pixel(160, i+234, 15, &blend_map);
screen.set_blended_pixel(5 - i, 100, 15, &blend_map);
screen.set_blended_pixel(i + 314, 100, 15, &blend_map);
screen.set_blended_pixel(160, 5 - i, 15, &blend_map);
screen.set_blended_pixel(160, i + 234, 15, &blend_map);
}
let path = Path::new("tests/ref/blended_pixel_drawing.pcx");
@ -521,11 +521,11 @@ fn generate_bitmap(width: i32, height: i32) -> Bitmap {
let mut bitmap = Bitmap::new(width as u32, height as u32).unwrap();
bitmap.filled_rect(0, 0, x_third, y_third, 1);
bitmap.filled_rect(x_third*2+1, y_third*2+1, width-1, height-1, 2);
bitmap.filled_rect(0, y_third*2+1, x_third, height-1, 3);
bitmap.filled_rect(x_third*2+1, 0, width-1, y_third, 4);
bitmap.filled_rect(x_third, y_third, x_third*2+1, y_third*2+1, 5);
bitmap.rect(0, 0, width-1, height-1, 6);
bitmap.filled_rect(x_third * 2 + 1, y_third * 2 + 1, width - 1, height - 1, 2);
bitmap.filled_rect(0, y_third * 2 + 1, x_third, height - 1, 3);
bitmap.filled_rect(x_third * 2 + 1, 0, width - 1, y_third, 4);
bitmap.filled_rect(x_third, y_third, x_third * 2 + 1, y_third * 2 + 1, 5);
bitmap.rect(0, 0, width - 1, height - 1, 6);
bitmap
}
@ -542,18 +542,18 @@ fn solid_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::Solid, &bmp16, x+16, y+48);
screen.blit(BlitMethod::Solid, &bmp12, x+80, y+48);
screen.blit(BlitMethod::Solid, &bmp21, x+144, y+48);
screen.blit(BlitMethod::Solid, &bmp3, x+208, y+48);
screen.blit(BlitMethod::Solid, &bmp16, x + 16, y + 48);
screen.blit(BlitMethod::Solid, &bmp12, x + 80, y + 48);
screen.blit(BlitMethod::Solid, &bmp21, x + 144, y + 48);
screen.blit(BlitMethod::Solid, &bmp3, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::Solid, &bmp16, x+16, y+48);
screen.blit_unchecked(BlitMethod::Solid, &bmp12, x+80, y+48);
screen.blit_unchecked(BlitMethod::Solid, &bmp21, x+144, y+48);
screen.blit_unchecked(BlitMethod::Solid, &bmp3, x+208, y+48);
screen.blit_unchecked(BlitMethod::Solid, &bmp16, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::Solid, &bmp12, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::Solid, &bmp21, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::Solid, &bmp3, x + 208, y + 48);
}
//////
@ -607,18 +607,18 @@ fn blended_solid_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp16, x+16, y+48);
screen.blit(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp12, x+80, y+48);
screen.blit(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp21, x+144, y+48);
screen.blit(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp3, x+208, y+48);
screen.blit(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp16, x + 16, y + 48);
screen.blit(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp12, x + 80, y + 48);
screen.blit(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp21, x + 144, y + 48);
screen.blit(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp3, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp16, x+16, y+48);
screen.blit_unchecked(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp12, x+80, y+48);
screen.blit_unchecked(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp21, x+144, y+48);
screen.blit_unchecked(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp3, x+208, y+48);
screen.blit_unchecked(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp16, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp12, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp21, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::SolidBlended { blend_map: blend_map.clone() }, &bmp3, x + 208, y + 48);
}
//////
@ -669,18 +669,18 @@ fn solid_flipped_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::SolidFlipped { horizontal_flip: false, vertical_flip: false }, &bmp, x+16, y+48);
screen.blit(BlitMethod::SolidFlipped { horizontal_flip: true, vertical_flip: false }, &bmp, x+80, y+48);
screen.blit(BlitMethod::SolidFlipped { horizontal_flip: false, vertical_flip: true }, &bmp, x+144, y+48);
screen.blit(BlitMethod::SolidFlipped { horizontal_flip: true, vertical_flip: true }, &bmp, x+208, y+48);
screen.blit(BlitMethod::SolidFlipped { horizontal_flip: false, vertical_flip: false }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::SolidFlipped { horizontal_flip: true, vertical_flip: false }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::SolidFlipped { horizontal_flip: false, vertical_flip: true }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::SolidFlipped { horizontal_flip: true, vertical_flip: true }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::SolidFlipped { horizontal_flip: false, vertical_flip: false }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::SolidFlipped { horizontal_flip: true, vertical_flip: false }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::SolidFlipped { horizontal_flip: false, vertical_flip: true }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::SolidFlipped { horizontal_flip: true, vertical_flip: true }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::SolidFlipped { horizontal_flip: false, vertical_flip: false }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::SolidFlipped { horizontal_flip: true, vertical_flip: false }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::SolidFlipped { horizontal_flip: false, vertical_flip: true }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::SolidFlipped { horizontal_flip: true, vertical_flip: true }, &bmp, x + 208, y + 48);
}
//////
@ -731,18 +731,18 @@ fn blended_solid_flipped_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::SolidFlippedBlended { horizontal_flip: false, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x+16, y+48);
screen.blit(BlitMethod::SolidFlippedBlended { horizontal_flip: true, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x+80, y+48);
screen.blit(BlitMethod::SolidFlippedBlended { horizontal_flip: false, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x+144, y+48);
screen.blit(BlitMethod::SolidFlippedBlended { horizontal_flip: true, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x+208, y+48);
screen.blit(BlitMethod::SolidFlippedBlended { horizontal_flip: false, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::SolidFlippedBlended { horizontal_flip: true, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::SolidFlippedBlended { horizontal_flip: false, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::SolidFlippedBlended { horizontal_flip: true, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::SolidFlippedBlended { horizontal_flip: false, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::SolidFlippedBlended { horizontal_flip: true, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::SolidFlippedBlended { horizontal_flip: false, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::SolidFlippedBlended { horizontal_flip: true, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::SolidFlippedBlended { horizontal_flip: false, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::SolidFlippedBlended { horizontal_flip: true, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::SolidFlippedBlended { horizontal_flip: false, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::SolidFlippedBlended { horizontal_flip: true, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x + 208, y + 48);
}
//////
@ -793,18 +793,18 @@ fn solid_offset_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::SolidOffset(0), &bmp, x+16, y+48);
screen.blit(BlitMethod::SolidOffset(4), &bmp, x+80, y+48);
screen.blit(BlitMethod::SolidOffset(7), &bmp, x+144, y+48);
screen.blit(BlitMethod::SolidOffset(13), &bmp, x+208, y+48);
screen.blit(BlitMethod::SolidOffset(0), &bmp, x + 16, y + 48);
screen.blit(BlitMethod::SolidOffset(4), &bmp, x + 80, y + 48);
screen.blit(BlitMethod::SolidOffset(7), &bmp, x + 144, y + 48);
screen.blit(BlitMethod::SolidOffset(13), &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::SolidOffset(0), &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::SolidOffset(4), &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::SolidOffset(7), &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::SolidOffset(13), &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::SolidOffset(0), &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::SolidOffset(4), &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::SolidOffset(7), &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::SolidOffset(13), &bmp, x + 208, y + 48);
}
//////
@ -855,18 +855,18 @@ fn solid_flipped_offset_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::SolidFlippedOffset { offset: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x+16, y+48);
screen.blit(BlitMethod::SolidFlippedOffset { offset: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x+80, y+48);
screen.blit(BlitMethod::SolidFlippedOffset { offset: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x+144, y+48);
screen.blit(BlitMethod::SolidFlippedOffset { offset: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x+208, y+48);
screen.blit(BlitMethod::SolidFlippedOffset { offset: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::SolidFlippedOffset { offset: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::SolidFlippedOffset { offset: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::SolidFlippedOffset { offset: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::SolidFlippedOffset { offset: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::SolidFlippedOffset { offset: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::SolidFlippedOffset { offset: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::SolidFlippedOffset { offset: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::SolidFlippedOffset { offset: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::SolidFlippedOffset { offset: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::SolidFlippedOffset { offset: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::SolidFlippedOffset { offset: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x + 208, y + 48);
}
//////
@ -920,18 +920,18 @@ fn transparent_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::Transparent(0), &bmp16, x+16, y+48);
screen.blit(BlitMethod::Transparent(0), &bmp12, x+80, y+48);
screen.blit(BlitMethod::Transparent(0), &bmp21, x+144, y+48);
screen.blit(BlitMethod::Transparent(0), &bmp3, x+208, y+48);
screen.blit(BlitMethod::Transparent(0), &bmp16, x + 16, y + 48);
screen.blit(BlitMethod::Transparent(0), &bmp12, x + 80, y + 48);
screen.blit(BlitMethod::Transparent(0), &bmp21, x + 144, y + 48);
screen.blit(BlitMethod::Transparent(0), &bmp3, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::Transparent(0), &bmp16, x+16, y+48);
screen.blit_unchecked(BlitMethod::Transparent(0), &bmp12, x+80, y+48);
screen.blit_unchecked(BlitMethod::Transparent(0), &bmp21, x+144, y+48);
screen.blit_unchecked(BlitMethod::Transparent(0), &bmp3, x+208, y+48);
screen.blit_unchecked(BlitMethod::Transparent(0), &bmp16, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::Transparent(0), &bmp12, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::Transparent(0), &bmp21, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::Transparent(0), &bmp3, x + 208, y + 48);
}
//////
@ -985,18 +985,18 @@ fn blended_transparent_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp16, x+16, y+48);
screen.blit(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp12, x+80, y+48);
screen.blit(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp21, x+144, y+48);
screen.blit(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp3, x+208, y+48);
screen.blit(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp16, x + 16, y + 48);
screen.blit(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp12, x + 80, y + 48);
screen.blit(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp21, x + 144, y + 48);
screen.blit(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp3, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp16, x+16, y+48);
screen.blit_unchecked(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp12, x+80, y+48);
screen.blit_unchecked(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp21, x+144, y+48);
screen.blit_unchecked(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp3, x+208, y+48);
screen.blit_unchecked(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp16, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp12, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp21, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::TransparentBlended { transparent_color: 0, blend_map: blend_map.clone() }, &bmp3, x + 208, y + 48);
}
//////
@ -1047,18 +1047,18 @@ fn transparent_flipped_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x+16, y+48);
screen.blit(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: true, vertical_flip: false }, &bmp, x+80, y+48);
screen.blit(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: false, vertical_flip: true }, &bmp, x+144, y+48);
screen.blit(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: true, vertical_flip: true }, &bmp, x+208, y+48);
screen.blit(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: true, vertical_flip: false }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: false, vertical_flip: true }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: true, vertical_flip: true }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: true, vertical_flip: false }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: false, vertical_flip: true }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: true, vertical_flip: true }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: true, vertical_flip: false }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: false, vertical_flip: true }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlipped { transparent_color: 0, horizontal_flip: true, vertical_flip: true }, &bmp, x + 208, y + 48);
}
//////
@ -1109,18 +1109,18 @@ fn blended_transparent_flipped_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: false, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x+16, y+48);
screen.blit(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: true, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x+80, y+48);
screen.blit(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: false, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x+144, y+48);
screen.blit(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: true, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x+208, y+48);
screen.blit(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: false, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: true, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: false, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: true, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: false, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: true, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: false, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: true, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: false, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: true, vertical_flip: false, blend_map: blend_map.clone() }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: false, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlippedBlended { transparent_color: 0, horizontal_flip: true, vertical_flip: true, blend_map: blend_map.clone() }, &bmp, x + 208, y + 48);
}
//////
@ -1171,18 +1171,18 @@ fn transparent_offset_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::TransparentOffset { transparent_color: 0, offset: 0 }, &bmp, x+16, y+48);
screen.blit(BlitMethod::TransparentOffset { transparent_color: 0, offset: 4 }, &bmp, x+80, y+48);
screen.blit(BlitMethod::TransparentOffset { transparent_color: 0, offset: 7 }, &bmp, x+144, y+48);
screen.blit(BlitMethod::TransparentOffset { transparent_color: 0, offset: 13 }, &bmp, x+208, y+48);
screen.blit(BlitMethod::TransparentOffset { transparent_color: 0, offset: 0 }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::TransparentOffset { transparent_color: 0, offset: 4 }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::TransparentOffset { transparent_color: 0, offset: 7 }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::TransparentOffset { transparent_color: 0, offset: 13 }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::TransparentOffset { transparent_color: 0, offset: 0 }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::TransparentOffset { transparent_color: 0, offset: 4 }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::TransparentOffset { transparent_color: 0, offset: 7 }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::TransparentOffset { transparent_color: 0, offset: 13 }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::TransparentOffset { transparent_color: 0, offset: 0 }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::TransparentOffset { transparent_color: 0, offset: 4 }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::TransparentOffset { transparent_color: 0, offset: 7 }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::TransparentOffset { transparent_color: 0, offset: 13 }, &bmp, x + 208, y + 48);
}
//////
@ -1233,18 +1233,18 @@ fn transparent_flipped_offset_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x+16, y+48);
screen.blit(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x+80, y+48);
screen.blit(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x+144, y+48);
screen.blit(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x+208, y+48);
screen.blit(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 0, horizontal_flip: false, vertical_flip: false }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlippedOffset { transparent_color: 0, offset: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x + 208, y + 48);
}
//////
@ -1295,18 +1295,18 @@ fn transparent_single_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 1 }, &bmp, x+16, y+48);
screen.blit(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 4 }, &bmp, x+80, y+48);
screen.blit(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 7 }, &bmp, x+144, y+48);
screen.blit(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 13 }, &bmp, x+208, y+48);
screen.blit(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 1 }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 4 }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 7 }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 13 }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 1 }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 4 }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 7 }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 13 }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 1 }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 4 }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 7 }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::TransparentSingle { transparent_color: 0, draw_color: 13 }, &bmp, x + 208, y + 48);
}
//////
@ -1357,18 +1357,18 @@ fn transparent_flipped_single_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 1, horizontal_flip: false, vertical_flip: false }, &bmp, x+16, y+48);
screen.blit(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x+80, y+48);
screen.blit(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x+144, y+48);
screen.blit(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x+208, y+48);
screen.blit(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 1, horizontal_flip: false, vertical_flip: false }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 1, horizontal_flip: false, vertical_flip: false }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 1, horizontal_flip: false, vertical_flip: false }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 4, horizontal_flip: true, vertical_flip: false }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 7, horizontal_flip: false, vertical_flip: true }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::TransparentFlippedSingle { transparent_color: 0, draw_color: 13, horizontal_flip: true, vertical_flip: true }, &bmp, x + 208, y + 48);
}
//////
@ -1419,18 +1419,18 @@ fn rotozoom_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::RotoZoom { angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x+16, y+48);
screen.blit(BlitMethod::RotoZoom { angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x+80, y+48);
screen.blit(BlitMethod::RotoZoom { angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x+144, y+48);
screen.blit(BlitMethod::RotoZoom { angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x+208, y+48);
screen.blit(BlitMethod::RotoZoom { angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::RotoZoom { angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::RotoZoom { angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::RotoZoom { angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::RotoZoom { angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::RotoZoom { angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::RotoZoom { angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::RotoZoom { angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::RotoZoom { angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoom { angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoom { angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoom { angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x + 208, y + 48);
}
//////
@ -1481,18 +1481,18 @@ fn blended_rotozoom_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::RotoZoomBlended { angle: 1.3, scale_x: 1.0, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x+16, y+48);
screen.blit(BlitMethod::RotoZoomBlended { angle: 0.3, scale_x: 1.5, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x+80, y+48);
screen.blit(BlitMethod::RotoZoomBlended { angle: 0.6, scale_x: 1.0, scale_y: 1.5, blend_map: blend_map.clone() }, &bmp, x+144, y+48);
screen.blit(BlitMethod::RotoZoomBlended { angle: 2.0, scale_x: 0.7, scale_y: 0.7, blend_map: blend_map.clone() }, &bmp, x+208, y+48);
screen.blit(BlitMethod::RotoZoomBlended { angle: 1.3, scale_x: 1.0, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::RotoZoomBlended { angle: 0.3, scale_x: 1.5, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::RotoZoomBlended { angle: 0.6, scale_x: 1.0, scale_y: 1.5, blend_map: blend_map.clone() }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::RotoZoomBlended { angle: 2.0, scale_x: 0.7, scale_y: 0.7, blend_map: blend_map.clone() }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::RotoZoomBlended { angle: 1.3, scale_x: 1.0, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomBlended { angle: 0.3, scale_x: 1.5, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomBlended { angle: 0.6, scale_x: 1.0, scale_y: 1.5, blend_map: blend_map.clone() }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomBlended { angle: 2.0, scale_x: 0.7, scale_y: 0.7, blend_map: blend_map.clone() }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomBlended { angle: 1.3, scale_x: 1.0, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomBlended { angle: 0.3, scale_x: 1.5, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomBlended { angle: 0.6, scale_x: 1.0, scale_y: 1.5, blend_map: blend_map.clone() }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomBlended { angle: 2.0, scale_x: 0.7, scale_y: 0.7, blend_map: blend_map.clone() }, &bmp, x + 208, y + 48);
}
//////
@ -1543,18 +1543,18 @@ fn rotozoom_offset_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::RotoZoomOffset { angle: 1.3, scale_x: 1.0, scale_y: 1.0, offset: 0 }, &bmp, x+16, y+48);
screen.blit(BlitMethod::RotoZoomOffset { angle: 0.3, scale_x: 1.5, scale_y: 1.0, offset: 4 }, &bmp, x+80, y+48);
screen.blit(BlitMethod::RotoZoomOffset { angle: 0.6, scale_x: 1.0, scale_y: 1.5, offset: 7 }, &bmp, x+144, y+48);
screen.blit(BlitMethod::RotoZoomOffset { angle: 2.0, scale_x: 0.7, scale_y: 0.7, offset: 13 }, &bmp, x+208, y+48);
screen.blit(BlitMethod::RotoZoomOffset { angle: 1.3, scale_x: 1.0, scale_y: 1.0, offset: 0 }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::RotoZoomOffset { angle: 0.3, scale_x: 1.5, scale_y: 1.0, offset: 4 }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::RotoZoomOffset { angle: 0.6, scale_x: 1.0, scale_y: 1.5, offset: 7 }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::RotoZoomOffset { angle: 2.0, scale_x: 0.7, scale_y: 0.7, offset: 13 }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::RotoZoomOffset { angle: 1.3, scale_x: 1.0, scale_y: 1.0, offset: 0 }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomOffset { angle: 0.3, scale_x: 1.5, scale_y: 1.0, offset: 4 }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomOffset { angle: 0.6, scale_x: 1.0, scale_y: 1.5, offset: 7 }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomOffset { angle: 2.0, scale_x: 0.7, scale_y: 0.7, offset: 13 }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomOffset { angle: 1.3, scale_x: 1.0, scale_y: 1.0, offset: 0 }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomOffset { angle: 0.3, scale_x: 1.5, scale_y: 1.0, offset: 4 }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomOffset { angle: 0.6, scale_x: 1.0, scale_y: 1.5, offset: 7 }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomOffset { angle: 2.0, scale_x: 0.7, scale_y: 0.7, offset: 13 }, &bmp, x + 208, y + 48);
}
//////
@ -1605,18 +1605,18 @@ fn rotozoom_transparent_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x+16, y+48);
screen.blit(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x+80, y+48);
screen.blit(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x+144, y+48);
screen.blit(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x+208, y+48);
screen.blit(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparent { transparent_color: 0, angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x + 208, y + 48);
}
//////
@ -1667,18 +1667,18 @@ fn blended_rotozoom_transparent_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 1.3, scale_x: 1.0, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x+16, y+48);
screen.blit(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 0.3, scale_x: 1.5, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x+80, y+48);
screen.blit(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 0.6, scale_x: 1.0, scale_y: 1.5, blend_map: blend_map.clone() }, &bmp, x+144, y+48);
screen.blit(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 2.0, scale_x: 0.7, scale_y: 0.7, blend_map: blend_map.clone() }, &bmp, x+208, y+48);
screen.blit(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 1.3, scale_x: 1.0, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 0.3, scale_x: 1.5, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 0.6, scale_x: 1.0, scale_y: 1.5, blend_map: blend_map.clone() }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 2.0, scale_x: 0.7, scale_y: 0.7, blend_map: blend_map.clone() }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 1.3, scale_x: 1.0, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 0.3, scale_x: 1.5, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 0.6, scale_x: 1.0, scale_y: 1.5, blend_map: blend_map.clone() }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 2.0, scale_x: 0.7, scale_y: 0.7, blend_map: blend_map.clone() }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 1.3, scale_x: 1.0, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 0.3, scale_x: 1.5, scale_y: 1.0, blend_map: blend_map.clone() }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 0.6, scale_x: 1.0, scale_y: 1.5, blend_map: blend_map.clone() }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentBlended { transparent_color: 0, angle: 2.0, scale_x: 0.7, scale_y: 0.7, blend_map: blend_map.clone() }, &bmp, x + 208, y + 48);
}
//////
@ -1729,18 +1729,18 @@ fn rotozoom_transparent_offset_blits() {
let x = 40;
let y = 20;
screen.blit(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 1, angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x+16, y+48);
screen.blit(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 4, angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x+80, y+48);
screen.blit(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 7, angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x+144, y+48);
screen.blit(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 13, angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x+208, y+48);
screen.blit(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 1, angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x + 16, y + 48);
screen.blit(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 4, angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x + 80, y + 48);
screen.blit(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 7, angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x + 144, y + 48);
screen.blit(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 13, angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x + 208, y + 48);
let x = 40;
let y = 110;
unsafe {
screen.blit_unchecked(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 1, angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x+16, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 4, angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x+80, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 7, angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x+144, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 13, angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x+208, y+48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 1, angle: 1.3, scale_x: 1.0, scale_y: 1.0 }, &bmp, x + 16, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 4, angle: 0.3, scale_x: 1.5, scale_y: 1.0 }, &bmp, x + 80, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 7, angle: 0.6, scale_x: 1.0, scale_y: 1.5 }, &bmp, x + 144, y + 48);
screen.blit_unchecked(BlitMethod::RotoZoomTransparentOffset { transparent_color: 0, offset: 13, angle: 2.0, scale_x: 0.7, scale_y: 0.7 }, &bmp, x + 208, y + 48);
}
//////