tweak all internal pub mod / pub use and re-do the prelude module

this is based off what i saw some other libraries doing. i'm not sure
what is the "best practice" to be honest, but i definitely like this.
especially the prelude is now much simpler, which is nice.
This commit is contained in:
Gered 2023-04-17 15:25:55 -04:00
parent e8847d01be
commit 73e5b9c7bc
47 changed files with 191 additions and 245 deletions

View file

@ -2,7 +2,9 @@ use thiserror::Error;
use crate::audio::AudioSpec;
pub mod wav;
mod wav;
pub use wav::*;
#[derive(Error, Debug)]
pub enum AudioBufferError {

View file

@ -7,9 +7,8 @@ use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
use sdl2::audio::AudioFormat;
use thiserror::Error;
use crate::audio::buffer::AudioBuffer;
use crate::audio::AudioSpec;
use crate::utils::io::StreamSize;
use crate::audio::{AudioBuffer, AudioSpec};
use crate::utils::StreamSize;
#[derive(Error, Debug)]
pub enum WavError {

View file

@ -3,8 +3,7 @@ use std::ops::{Index, IndexMut};
use sdl2::audio::AudioCallback;
use thiserror::Error;
use crate::audio::buffer::AudioBuffer;
use crate::audio::{AudioGenerator, AudioSpec, NUM_CHANNELS};
use crate::audio::{AudioBuffer, AudioGenerator, AudioSpec, NUM_CHANNELS};
/// Represents a "channel" of audio playback that will be mixed together with all of the other
/// actively playing audio channels to get the final audio playback.

View file

@ -2,11 +2,15 @@ use sdl2::audio::{AudioFormat, AudioFormatNum, AudioSpecDesired};
use sdl2::AudioSubsystem;
use thiserror::Error;
use crate::audio::device::AudioDevice;
use crate::audio::AudioDevice;
pub mod buffer;
pub mod device;
pub mod queue;
mod buffer;
mod device;
mod queue;
pub use buffer::*;
pub use device::*;
pub use queue::*;
/// The number of simultaneously playing audio channels supported by this library currently.
pub const NUM_CHANNELS: usize = 8;

View file

@ -1,9 +1,7 @@
use std::collections::VecDeque;
use std::rc::Rc;
use crate::audio::buffer::AudioBuffer;
use crate::audio::device::{AudioDevice, AudioDeviceError};
use crate::audio::{Audio, AudioGenerator, AudioSpec, NUM_CHANNELS};
use crate::audio::{Audio, AudioBuffer, AudioDevice, AudioDeviceError, AudioGenerator, AudioSpec, NUM_CHANNELS};
pub enum AudioCommand {
StopChannel(usize),

View file

@ -131,11 +131,10 @@
use thiserror::Error;
use crate::audio::device::AudioDeviceError;
use crate::audio::AudioDeviceError;
use crate::events::{EventListeners, EventPublisher};
use crate::states::{AppState, StateError, States};
use crate::system::res::SystemResources;
use crate::system::{System, SystemError};
use crate::system::{System, SystemError, SystemResources};
pub trait CoreState<SystemResType>
where

View file

@ -1,6 +1,5 @@
use crate::graphics::bitmap::Bitmap;
use crate::graphics::Pixel;
use crate::math::rect::Rect;
use crate::graphics::{Bitmap, Pixel};
use crate::math::Rect;
/// Clips the region for a source bitmap to be used in a subsequent blit operation. The source
/// region will be clipped against the clipping region given for the destination bitmap. The

View file

@ -6,12 +6,10 @@
//!
//! Only a subset of the most common Bitmap drawing operations will be provided here.
use crate::graphics::bitmap::indexed::{IndexedBitmap, IndexedBlitMethod};
use crate::graphics::bitmap::rgb::{RgbaBitmap, RgbaBlitMethod};
use crate::graphics::bitmap::BitmapError;
use crate::graphics::font::{Font, FontRenderOpts};
use crate::graphics::Pixel;
use crate::math::rect::Rect;
use crate::graphics::{
BitmapError, Font, FontRenderOpts, IndexedBitmap, IndexedBlitMethod, Pixel, RgbaBitmap, RgbaBlitMethod,
};
use crate::math::Rect;
#[derive(Clone, PartialEq)]
pub enum GeneralBlitMethod<PixelType: Pixel> {

View file

@ -5,10 +5,8 @@ use std::path::Path;
use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
use thiserror::Error;
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::graphics::palette::{Palette, PaletteError, PaletteFormat};
use crate::utils::lzwgif::{lzw_decode, lzw_encode, LzwError};
use crate::graphics::{IndexedBitmap, Palette, PaletteError, PaletteFormat, RgbaBitmap};
use crate::utils::{lzw_decode, lzw_encode, LzwError};
const BITS_FOR_256_COLORS: u32 = 7; // formula is `2 ^ (bits + 1) = num_colors`

View file

@ -6,10 +6,8 @@ use std::path::Path;
use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt};
use thiserror::Error;
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::graphics::palette::{Palette, PaletteError, PaletteFormat};
use crate::utils::packbits::{pack_bits, unpack_bits, PackBitsError};
use crate::graphics::{IndexedBitmap, Palette, PaletteError, PaletteFormat, RgbaBitmap};
use crate::utils::{pack_bits, unpack_bits, PackBitsError};
#[derive(Error, Debug)]
pub enum IffError {

View file

@ -1,10 +1,9 @@
use std::rc::Rc;
use crate::graphics::bitmap::blit::{clip_blit, per_pixel_blit, per_pixel_flipped_blit, per_pixel_rotozoom_blit};
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::bitmapatlas::BitmapAtlas;
use crate::graphics::blendmap::BlendMap;
use crate::math::rect::Rect;
use crate::graphics::{
clip_blit, per_pixel_blit, per_pixel_flipped_blit, per_pixel_rotozoom_blit, BitmapAtlas, BlendMap, IndexedBitmap,
};
use crate::math::Rect;
#[derive(Clone, PartialEq)]
pub enum IndexedBlitMethod {

View file

@ -1,8 +1,6 @@
use std::path::Path;
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::graphics::bitmap::{Bitmap, BitmapError};
use crate::graphics::palette::Palette;
use crate::graphics::{Bitmap, BitmapError, Palette, RgbaBitmap};
mod blit;
mod primitives;

View file

@ -1,5 +1,4 @@
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::blendmap::BlendMap;
use crate::graphics::{BlendMap, IndexedBitmap};
impl IndexedBitmap {
/// Sets the pixel at the given coordinates using a blended color via the specified blend map,

View file

@ -1,7 +1,5 @@
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::bitmap::triangles::{edge_function, per_pixel_triangle_2d};
use crate::graphics::blendmap::BlendMap;
use crate::math::vector2::Vector2;
use crate::graphics::{edge_function, per_pixel_triangle_2d, BlendMap, IndexedBitmap};
use crate::math::Vector2;
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum IndexedTriangle2d<'a> {

View file

@ -1,18 +1,29 @@
use thiserror::Error;
use crate::graphics::Pixel;
use crate::math::rect::Rect;
use crate::math::Rect;
pub mod blit;
pub mod general;
pub mod gif;
pub mod iff;
pub mod indexed;
pub mod pcx;
pub mod png;
pub mod primitives;
pub mod rgb;
pub mod triangles;
mod blit;
mod general;
mod gif;
mod iff;
mod indexed;
mod pcx;
mod png;
mod primitives;
mod rgb;
mod triangles;
pub use blit::*;
pub use general::*;
pub use gif::*;
pub use iff::*;
pub use indexed::*;
pub use pcx::*;
pub use png::*;
pub use primitives::*;
pub use rgb::*;
pub use triangles::*;
#[derive(Error, Debug)]
pub enum BitmapError {

View file

@ -5,11 +5,8 @@ use std::path::Path;
use byteorder::{LittleEndian, ReadBytesExt, WriteBytesExt};
use thiserror::Error;
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::graphics::color::from_rgb32;
use crate::graphics::palette::{Palette, PaletteError, PaletteFormat};
use crate::utils::bytes::ReadFixedLengthByteArray;
use crate::graphics::{from_rgb32, IndexedBitmap, Palette, PaletteError, PaletteFormat, RgbaBitmap};
use crate::utils::ReadFixedLengthByteArray;
#[derive(Error, Debug)]
pub enum PcxError {

View file

@ -7,13 +7,11 @@ use std::path::Path;
use byteorder::{BigEndian, ReadBytesExt, WriteBytesExt};
use thiserror::Error;
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::graphics::bitmap::Bitmap;
use crate::graphics::color::{from_argb32, from_rgb32, to_argb32, to_rgb32};
use crate::graphics::palette::{Palette, PaletteError, PaletteFormat};
use crate::graphics::Pixel;
use crate::utils::bytes::ReadFixedLengthByteArray;
use crate::graphics::{
from_argb32, from_rgb32, to_argb32, to_rgb32, Bitmap, IndexedBitmap, Palette, PaletteError, PaletteFormat, Pixel,
RgbaBitmap,
};
use crate::utils::ReadFixedLengthByteArray;
const PNG_HEADER: [u8; 8] = [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a];

View file

@ -1,10 +1,7 @@
use std::mem::swap;
use crate::graphics::bitmap::Bitmap;
use crate::graphics::font::{Character, Font, FontRenderOpts};
use crate::graphics::Pixel;
use crate::math::lerp;
use crate::math::rect::Rect;
use crate::graphics::{Bitmap, Character, Font, FontRenderOpts, Pixel};
use crate::math::{lerp, Rect};
impl<PixelType: Pixel> Bitmap<PixelType> {
/// Fills the entire bitmap with the given color.

View file

@ -1,8 +1,8 @@
use crate::graphics::bitmap::blit::{clip_blit, per_pixel_blit, per_pixel_flipped_blit, per_pixel_rotozoom_blit};
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::graphics::bitmapatlas::BitmapAtlas;
use crate::graphics::color::{tint_argb32, BlendFunction};
use crate::math::rect::Rect;
use crate::graphics::{
clip_blit, per_pixel_blit, per_pixel_flipped_blit, per_pixel_rotozoom_blit, tint_argb32, BitmapAtlas,
BlendFunction, RgbaBitmap,
};
use crate::math::Rect;
#[derive(Clone, PartialEq)]
pub enum RgbaBlitMethod {

View file

@ -1,9 +1,7 @@
use byteorder::ReadBytesExt;
use std::path::Path;
use crate::graphics::bitmap::{Bitmap, BitmapError};
use crate::graphics::color::{to_argb32, to_rgb32};
use crate::graphics::palette::Palette;
use crate::graphics::{to_argb32, to_rgb32, Bitmap, BitmapError, Palette};
mod blit;
mod primitives;

View file

@ -1,5 +1,4 @@
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::graphics::color::BlendFunction;
use crate::graphics::{BlendFunction, RgbaBitmap};
impl RgbaBitmap {
/// Sets the pixel at the given coordinates using a blended color via the specified blend function

View file

@ -1,9 +1,8 @@
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::graphics::bitmap::triangles::{edge_function, per_pixel_triangle_2d};
use crate::graphics::color::{
from_argb32, from_rgb32, multiply_argb32, tint_argb32, to_argb32, to_rgb32, BlendFunction,
use crate::graphics::{
edge_function, from_argb32, from_rgb32, multiply_argb32, per_pixel_triangle_2d, tint_argb32, to_argb32, to_rgb32,
BlendFunction, RgbaBitmap,
};
use crate::math::vector2::Vector2;
use crate::math::Vector2;
#[derive(Debug, Copy, Clone, PartialEq)]
pub enum RgbaTriangle2d<'a> {

View file

@ -1,8 +1,5 @@
use crate::graphics::bitmap::Bitmap;
use crate::graphics::Pixel;
use crate::math::rect::Rect;
use crate::math::vector2::Vector2;
use crate::math::NearlyEqual;
use crate::graphics::{Bitmap, Pixel};
use crate::math::{NearlyEqual, Rect, Vector2};
#[inline]
pub fn edge_function(a: Vector2, b: Vector2, c: Vector2) -> f32 {

View file

@ -2,8 +2,8 @@ use std::ops::Index;
use thiserror::Error;
use crate::graphics::bitmap::general::GeneralBitmap;
use crate::math::rect::Rect;
use crate::graphics::GeneralBitmap;
use crate::math::Rect;
#[derive(Error, Debug)]
pub enum BitmapAtlasError {
@ -136,7 +136,7 @@ where
mod tests {
use claim::*;
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::IndexedBitmap;
use super::*;

View file

@ -5,10 +5,9 @@ use std::path::Path;
use byteorder::{ReadBytesExt, WriteBytesExt};
use thiserror::Error;
use crate::graphics::color::{from_rgb32, luminance};
use crate::graphics::palette::Palette;
use crate::graphics::{from_rgb32, luminance, Palette};
use crate::math::lerp;
use crate::utils::bytes::ReadFixedLengthByteArray;
use crate::utils::ReadFixedLengthByteArray;
#[derive(Error, Debug)]
pub enum BlendMapError {

View file

@ -5,9 +5,8 @@ use std::path::Path;
use byteorder::{ReadBytesExt, WriteBytesExt};
use thiserror::Error;
use crate::graphics::bitmap::Bitmap;
use crate::graphics::Pixel;
use crate::math::rect::Rect;
use crate::graphics::{Bitmap, Pixel};
use crate::math::Rect;
pub static VGA_FONT_BYTES: &[u8] = include_bytes!("../../assets/vga.fnt");

View file

@ -1,12 +1,19 @@
use num_traits::{PrimInt, Unsigned};
use std::fmt::Display;
pub mod bitmap;
pub mod bitmapatlas;
pub mod blendmap;
pub mod color;
pub mod font;
pub mod palette;
mod bitmap;
mod bitmapatlas;
mod blendmap;
mod color;
mod font;
mod palette;
pub use bitmap::*;
pub use bitmapatlas::*;
pub use blendmap::*;
pub use color::*;
pub use font::*;
pub use palette::*;
/// Common trait to represent single pixel/colour values.
pub trait Pixel: PrimInt + Unsigned + Default + Display {}

View file

@ -7,8 +7,7 @@ use std::path::Path;
use byteorder::{ReadBytesExt, WriteBytesExt};
use thiserror::Error;
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::color::{from_rgb32, lerp_rgb32, to_argb32, to_rgb32};
use crate::graphics::{from_rgb32, lerp_rgb32, to_argb32, to_rgb32, IndexedBitmap};
use crate::utils::abs_diff;
const NUM_COLORS: usize = 256;

View file

@ -1,5 +1,4 @@
use crate::math::vector2::Vector2;
use crate::math::{distance_between, distance_squared_between};
use crate::math::{distance_between, distance_squared_between, Vector2};
/// Represents a 2D circle, using integer center coordinates and radius.
#[derive(Debug, Copy, Clone, Eq, PartialEq)]

View file

@ -1,7 +1,6 @@
use std::ops::{Mul, MulAssign};
use crate::math::nearly_equal;
use crate::math::vector2::Vector2;
use crate::math::{nearly_equal, Vector2};
/// Represents a 3x3 column-major matrix and provides common methods for matrix math.
#[derive(Debug, Copy, Clone, PartialEq)]

View file

@ -1,9 +1,14 @@
use std::ops::{Add, Div, Mul, Sub};
pub mod circle;
pub mod matrix3x3;
pub mod rect;
pub mod vector2;
mod circle;
mod matrix3x3;
mod rect;
mod vector2;
pub use circle::*;
pub use matrix3x3::*;
pub use rect::*;
pub use vector2::*;
pub const PI: f32 = std::f32::consts::PI;
// 180 degrees

View file

@ -1,7 +1,6 @@
use std::ops::{Add, AddAssign, Div, DivAssign, Mul, MulAssign, Neg, Sub, SubAssign};
use crate::math::matrix3x3::Matrix3x3;
use crate::math::{angle_between, angle_to_direction, nearly_equal, NearlyEqual};
use crate::math::{angle_between, angle_to_direction, nearly_equal, Matrix3x3, NearlyEqual};
/// Represents a 2D vector and provides common methods for vector math.
#[derive(Debug, Copy, Clone, PartialEq)]

View file

@ -1,52 +1,9 @@
pub use crate::{
//
audio::{
buffer::{wav::*, *},
device::*,
queue::*,
*,
},
base::*,
entities::*,
events::*,
graphics::{
//
bitmap::{
blit::*, general::*, gif::*, iff::*, indexed::*, pcx::*, png::*, primitives::*, rgb::*, triangles::*, *,
},
bitmapatlas::*,
blendmap::*,
color::*,
font::*,
palette::*,
*,
},
math::{
//
circle::*,
matrix3x3::*,
rect::*,
vector2::*,
*,
},
states::*,
system::{
event::*, //
input_devices::{
keyboard::{codes::*, scancodes::*, *},
mouse::{buttons::*, cursor::*, *},
*,
},
res::{dos_like::*, standard::*, *},
*,
},
utils::{
//
bytes::*,
io::*,
lzwgif::*,
packbits::*,
*,
},
*,
};
pub use crate::audio::*;
pub use crate::base::*;
pub use crate::entities::*;
pub use crate::events::*;
pub use crate::graphics::*;
pub use crate::math::*;
pub use crate::states::*;
pub use crate::system::*;
pub use crate::utils::*;

View file

@ -11,9 +11,7 @@
use bitflags::bitflags;
use crate::system::input_devices::keyboard::codes::Keycode;
use crate::system::input_devices::keyboard::scancodes::Scancode;
use crate::system::input_devices::mouse::buttons::{MouseButton, MouseButtons};
use crate::system::{Keycode, MouseButton, MouseButtons, Scancode};
#[derive(Debug, Clone, Eq, PartialEq, Hash)]
pub enum WindowEvent {

View file

@ -1,9 +1,7 @@
use byte_slice_cast::AsByteSlice;
use thiserror::Error;
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::graphics::palette::Palette;
use crate::graphics::{IndexedBitmap, Palette, RgbaBitmap};
pub fn calculate_logical_screen_size(window_width: u32, window_height: u32, scale_factor: u32) -> (u32, u32) {
let logical_width = (window_width as f32 / scale_factor as f32).ceil() as u32;

View file

@ -1,9 +1,10 @@
use crate::system::event::{KeyboardEvent, SystemEvent, SystemEventHandler};
use crate::system::input_devices::keyboard::scancodes::Scancode;
use crate::system::input_devices::{ButtonState, InputDevice};
use crate::system::{ButtonState, InputDevice, KeyboardEvent, SystemEvent, SystemEventHandler};
pub mod codes;
pub mod scancodes;
mod codes;
mod scancodes;
pub use codes::*;
pub use scancodes::*;
const MAX_KEYS: usize = 512;

View file

@ -1,5 +1,8 @@
pub mod keyboard;
pub mod mouse;
mod keyboard;
mod mouse;
pub use keyboard::*;
pub use mouse::*;
#[derive(Clone, Copy, Eq, PartialEq, Debug)]
pub enum ButtonState {

View file

@ -1,8 +1,6 @@
use crate::graphics::bitmap::general::{GeneralBitmap, GeneralBlitMethod};
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::math::rect::Rect;
use crate::system::input_devices::mouse::Mouse;
use crate::graphics::{GeneralBitmap, GeneralBlitMethod, IndexedBitmap, RgbaBitmap};
use crate::math::Rect;
use crate::system::Mouse;
const DEFAULT_MOUSE_CURSOR_HOTSPOT_X: u32 = 0;
const DEFAULT_MOUSE_CURSOR_HOTSPOT_Y: u32 = 0;

View file

@ -1,9 +1,10 @@
use crate::system::event::{MouseEvent, SystemEvent, SystemEventHandler};
use crate::system::input_devices::mouse::buttons::{MouseButton, MouseButtons};
use crate::system::input_devices::{ButtonState, InputDevice};
use crate::system::{ButtonState, InputDevice, MouseEvent, SystemEvent, SystemEventHandler};
pub mod buttons;
pub mod cursor;
mod buttons;
mod cursor;
pub use buttons::*;
pub use cursor::*;
const MAX_BUTTONS: usize = 32;

View file

@ -1,14 +1,15 @@
use thiserror::Error;
use crate::audio::AudioError;
use crate::system::event::{SystemEvent, SystemEventPump};
use crate::system::res::{SystemResources, SystemResourcesConfig, SystemResourcesError};
pub mod event;
pub mod input_devices;
pub mod res;
mod event;
mod framebuffer;
mod input_devices;
mod res;
pub use event::*;
pub use input_devices::*;
pub use res::*;
fn is_x11_compositor_skipping_problematic() -> bool {
/*

View file

@ -26,18 +26,13 @@
//! ```
//!
use crate::audio::queue::AudioQueue;
use crate::audio::{Audio, TARGET_AUDIO_CHANNELS, TARGET_AUDIO_FREQUENCY};
use crate::graphics::bitmap::indexed::IndexedBitmap;
use crate::graphics::font::BitmaskFont;
use crate::graphics::palette::Palette;
use crate::system::event::{SystemEvent, SystemEventHandler, WindowEvent};
use crate::audio::{Audio, AudioQueue, TARGET_AUDIO_CHANNELS, TARGET_AUDIO_FREQUENCY};
use crate::graphics::{BitmaskFont, IndexedBitmap, Palette};
use crate::system::framebuffer::{calculate_logical_screen_size, SdlFramebuffer};
use crate::system::input_devices::keyboard::Keyboard;
use crate::system::input_devices::mouse::cursor::CustomMouseCursor;
use crate::system::input_devices::mouse::Mouse;
use crate::system::input_devices::InputDevice;
use crate::system::res::{SystemResources, SystemResourcesConfig, SystemResourcesError};
use crate::system::{
CustomMouseCursor, InputDevice, Keyboard, Mouse, SystemEvent, SystemEventHandler, SystemResources,
SystemResourcesConfig, SystemResourcesError, WindowEvent,
};
const DEFAULT_SCREEN_WIDTH: u32 = 320;
const DEFAULT_SCREEN_HEIGHT: u32 = 240;

View file

@ -1,13 +1,15 @@
use thiserror::Error;
use crate::audio::device::AudioDeviceError;
use crate::audio::AudioError;
use crate::audio::{AudioDeviceError, AudioError};
use crate::graphics::Pixel;
use crate::system::event::SystemEvent;
use crate::system::framebuffer::SdlFramebufferError;
use crate::system::SystemEvent;
pub mod dos_like;
pub mod standard;
mod dos_like;
mod standard;
pub use dos_like::*;
pub use standard::*;
#[derive(Error, Debug)]
pub enum SystemResourcesError {

View file

@ -1,14 +1,10 @@
use crate::audio::queue::AudioQueue;
use crate::audio::{Audio, TARGET_AUDIO_CHANNELS, TARGET_AUDIO_FREQUENCY};
use crate::graphics::bitmap::rgb::RgbaBitmap;
use crate::graphics::font::BitmaskFont;
use crate::system::event::{SystemEvent, SystemEventHandler, WindowEvent};
use crate::audio::{Audio, AudioQueue, TARGET_AUDIO_CHANNELS, TARGET_AUDIO_FREQUENCY};
use crate::graphics::{BitmaskFont, RgbaBitmap};
use crate::system::framebuffer::{calculate_logical_screen_size, SdlFramebuffer};
use crate::system::input_devices::keyboard::Keyboard;
use crate::system::input_devices::mouse::cursor::CustomMouseCursor;
use crate::system::input_devices::mouse::Mouse;
use crate::system::input_devices::InputDevice;
use crate::system::res::{SystemResources, SystemResourcesConfig, SystemResourcesError};
use crate::system::{
CustomMouseCursor, InputDevice, Keyboard, Mouse, SystemEvent, SystemEventHandler, SystemResources,
SystemResourcesConfig, SystemResourcesError, WindowEvent,
};
const DEFAULT_SCREEN_WIDTH: u32 = 320;
const DEFAULT_SCREEN_HEIGHT: u32 = 240;

View file

@ -4,10 +4,15 @@ use num_traits::Unsigned;
use rand::distributions::uniform::SampleUniform;
use rand::Rng;
pub mod bytes;
pub mod io;
pub mod lzwgif;
pub mod packbits;
mod bytes;
mod io;
mod lzwgif;
mod packbits;
pub use bytes::*;
pub use io::*;
pub use lzwgif::*;
pub use packbits::*;
pub fn rnd_value<N: SampleUniform + PartialOrd>(low: N, high: N) -> N {
rand::thread_rng().gen_range(low..=high)

View file

@ -1,10 +1,14 @@
use ggdt::graphics::RgbaBitmap;
use ggdt::system::{SystemEvent, SystemEventHandler};
use crate::platform::Platform;
use crate::renderer::Renderer;
use ggdt::graphics::bitmap::rgb::RgbaBitmap;
use ggdt::system::event::{SystemEvent, SystemEventHandler};
pub mod platform;
pub mod renderer;
mod platform;
mod renderer;
pub use platform::*;
pub use renderer::*;
#[derive(Debug)]
pub struct ImGui {

View file

@ -1,9 +1,8 @@
use ggdt::graphics::bitmap::rgb::RgbaBitmap;
use ggdt::system::event::{KeyModifiers, KeyboardEvent, MouseEvent, SystemEvent};
use ggdt::system::input_devices::keyboard::scancodes::Scancode;
use ggdt::system::input_devices::mouse::buttons::MouseButton;
use std::time::Instant;
use ggdt::graphics::RgbaBitmap;
use ggdt::system::{KeyModifiers, KeyboardEvent, MouseButton, MouseEvent, Scancode, SystemEvent};
fn handle_key(io: &mut imgui::Io, key: Scancode, down: bool) {
let key = match key {
Scancode::A => imgui::Key::A,

View file

@ -1,7 +1,5 @@
use ggdt::graphics::bitmap::rgb::{RgbaBitmap, RgbaPixelFormat};
use ggdt::graphics::color::{to_argb32, BlendFunction};
use ggdt::math::rect::Rect;
use ggdt::math::vector2::Vector2;
use ggdt::graphics::{to_argb32, BlendFunction, RgbaBitmap, RgbaPixelFormat};
use ggdt::math::{Rect, Vector2};
use imgui::internal::RawWrapper;
#[derive(Debug)]