aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Silas Bartha <[email protected]>2024-07-24 12:02:10 -0400
committerLibravatar Silas Bartha <[email protected]>2024-07-24 12:02:10 -0400
commit345e0665bfc9cb796d054c106f56966e9d5a7e22 (patch)
tree5a4b371cbb8231048d13d07e0c4249834dbc379b
parentf6b9eda55d3a2f3dbae7e1671138cf10d4151f17 (diff)
Update to bevy 0.14 + Add 0BSD Optionv0.3.0
-rw-r--r--Cargo.toml29
-rw-r--r--LICENSE-0BSD5
-rw-r--r--README.md10
-rw-r--r--src/display/components.rs14
-rw-r--r--src/display/systems.rs8
-rw-r--r--src/input/systems.rs2
-rw-r--r--src/lib.rs46
7 files changed, 57 insertions, 57 deletions
diff --git a/Cargo.toml b/Cargo.toml
index 62adeb5..2817809 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,24 +1,17 @@
[package]
name = "bevy_terminal_display"
-version = "0.2.2"
+version = "0.3.0"
edition = "2021"
+license = "0BSD OR MIT OR Apache-2.0"
+description = "A plugin for the Bevy game engine which enables rendering to a terminal using unicode braille characters."
[dependencies]
-crossterm = "0.27.0"
-downcast-rs = "1.2.1"
-once_cell = "1.19.0"
-
-[dependencies.bevy]
-version = "0.13"
-
-[dependencies.bevy_framebuffer_extract]
-git = "https://github.com/exvacuum/bevy_framebuffer_extract"
-tag = "v0.1.2"
-
-[dependencies.bevy_dither_post_process]
-git = "https://github.com/exvacuum/bevy_dither_post_process"
-tag = "v0.1.4"
-
-[dependencies.ratatui]
-version = "0.26.2"
+crossbeam-channel = "0.5"
+crossterm = "0.27"
+downcast-rs = "1.2"
+once_cell = "1.19"
+bevy = "0.14"
+bevy_headless_render = "0.1"
+bevy_dither_post_process = "0.2"
+ratatui = "0.26"
diff --git a/LICENSE-0BSD b/LICENSE-0BSD
new file mode 100644
index 0000000..7a39b21
--- /dev/null
+++ b/LICENSE-0BSD
@@ -0,0 +1,5 @@
+Copyright (C) 2024 by Silas Bartha [email protected]
+
+Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted.
+
+THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
diff --git a/README.md b/README.md
index e338250..62ad56b 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,6 @@
# bevy_terminal_display
+[![Crates](https://img.shields.io/crates/v/bevy_terminal_display)](https://crates.io/crates/bevy_terminal_display)
![License](https://img.shields.io/badge/license-MIT%2FApache-blue.svg)
![Tag](https://img.shields.io/github/v/tag/exvacuum/bevy_terminal_display)
![Build](https://img.shields.io/github/actions/workflow/status/exvacuum/bevy_terminal_display/rust.yml)
@@ -24,10 +25,17 @@ Features Include:
| Crate Version | Bevy Version |
|--- |--- |
+| 0.3 | 0.14 |
| 0.2 | 0.13 |
## Installation
+### crates.io
+```toml
+[dependencies]
+bevy_terminal_display = "0.3"
+```
+
### Using git URL in Cargo.toml
```toml
[dependencies.bevy_terminal_display]
@@ -69,5 +77,7 @@ commands.spawn((
));
```
+## License
+This crate is licensed under your choice of 0BSD, Apache-2.0, or MIT license.
diff --git a/src/display/components.rs b/src/display/components.rs
index 4459325..1deb6f5 100644
--- a/src/display/components.rs
+++ b/src/display/components.rs
@@ -1,6 +1,6 @@
use bevy::{prelude::*, render::render_resource::{Extent3d, TextureDescriptor, TextureDimension, TextureFormat, TextureUsages}};
use bevy_dither_post_process::components::DitherPostProcessSettings;
-use bevy_framebuffer_extract::{components::{ExtractFramebufferBundle, FramebufferExtractDestination}, render_assets::FramebufferExtractSource};
+use bevy_headless_render::{components::{HeadlessRenderBundle, HeadlessRenderDestination}, render_assets::HeadlessRenderSource};
/// Marker component for terminal display
#[derive(Component)]
@@ -11,8 +11,8 @@ pub struct TerminalDisplay;
#[derive(Bundle)]
pub struct TerminalDisplayBundle {
_terminal_display: TerminalDisplay,
- extract_framebuffer_bundle: ExtractFramebufferBundle,
- dither_post_process_settings: DitherPostProcessSettings,
+ _headless_render_bundle: HeadlessRenderBundle,
+ _dither_post_process_settings: DitherPostProcessSettings,
image_handle: Handle<Image>,
}
@@ -48,16 +48,16 @@ impl TerminalDisplayBundle {
let image_handle = asset_server.add(image);
let framebuffer_extract_source =
- asset_server.add(FramebufferExtractSource(image_handle.clone()));
+ asset_server.add(HeadlessRenderSource(image_handle.clone()));
Self {
_terminal_display: TerminalDisplay,
- extract_framebuffer_bundle: ExtractFramebufferBundle {
+ _headless_render_bundle: HeadlessRenderBundle {
source: framebuffer_extract_source,
- dest: FramebufferExtractDestination::default(),
+ dest: HeadlessRenderDestination::default(),
},
image_handle,
- dither_post_process_settings: DitherPostProcessSettings::new(
+ _dither_post_process_settings: DitherPostProcessSettings::new(
dither_level,
asset_server,
),
diff --git a/src/display/systems.rs b/src/display/systems.rs
index 037f72d..9f8acb9 100644
--- a/src/display/systems.rs
+++ b/src/display/systems.rs
@@ -2,9 +2,7 @@ use bevy::{
prelude::*,
render::render_resource::{Extent3d, TextureFormat},
};
-use bevy_framebuffer_extract::{
- components::FramebufferExtractDestination, render_assets::FramebufferExtractSource,
-};
+use bevy_headless_render::{components::HeadlessRenderDestination, render_assets::HeadlessRenderSource};
use crossterm::event::Event;
use ratatui::{
style::Stylize,
@@ -27,7 +25,7 @@ const BRAILLE_DOT_BIT_POSITIONS: [u8; 8] = [0, 1, 2, 6, 3, 4, 5, 7];
/// Prints out the contents of a render image to the terminal as braille characters
pub fn print_to_terminal(
mut terminal: ResMut<Terminal>,
- image_exports: Query<&FramebufferExtractDestination>,
+ image_exports: Query<&HeadlessRenderDestination>,
mut widgets: Query<&mut Widget>,
) {
for image_export in image_exports.iter() {
@@ -108,7 +106,7 @@ fn braille_char(mask: u8) -> char {
/// Watches for terminal resize events and resizes the render image accordingly
pub fn resize_handling(
mut images: ResMut<Assets<Image>>,
- mut sources: ResMut<Assets<FramebufferExtractSource>>,
+ mut sources: ResMut<Assets<HeadlessRenderSource>>,
mut event_reader: EventReader<TerminalInputEvent>,
) {
for event in event_reader.read() {
diff --git a/src/input/systems.rs b/src/input/systems.rs
index 366ccba..9560e1e 100644
--- a/src/input/systems.rs
+++ b/src/input/systems.rs
@@ -51,4 +51,4 @@ pub fn input_handling(
_ => (),
}
}
-}
+} \ No newline at end of file
diff --git a/src/lib.rs b/src/lib.rs
index 11ee50c..f64bbd3 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -10,15 +10,13 @@ use std::{
use bevy::{
log::{
- tracing_subscriber::{self, prelude::*, Registry},
+ tracing_subscriber::{self, layer::SubscriberExt, EnvFilter, Layer, Registry},
Level, LogPlugin,
- },
- prelude::*,
- utils::tracing::level_filters::LevelFilter,
+ }, prelude::*, utils::tracing::{level_filters::LevelFilter, subscriber}
};
use bevy_dither_post_process::DitherPostProcessPlugin;
-use bevy_framebuffer_extract::FramebufferExtractPlugin;
+use bevy_headless_render::HeadlessRenderPlugin;
pub use crossterm;
use once_cell::sync::Lazy;
pub use ratatui;
@@ -53,29 +51,25 @@ impl Plugin for TerminalDisplayPlugin {
*LOG_PATH
.lock()
.expect("Failed to get lock on log path mutex") = self.log_path.clone();
+ let log_file = OpenOptions::new()
+ .write(true)
+ .create(true)
+ .truncate(true)
+ .open(
+ LOG_PATH
+ .lock()
+ .expect("Failed to get lock on log path mutex")
+ .clone(),
+ )
+ .unwrap();
+ let file_layer = tracing_subscriber::fmt::Layer::new()
+ .with_writer(log_file)
+ .with_filter(EnvFilter::builder().parse_lossy(format!("{},{}", Level::INFO, "wgpu=error,naga=warn")));
+ let subscriber = Registry::default().with(file_layer);
+ subscriber::set_global_default(subscriber).unwrap();
app.add_plugins((
DitherPostProcessPlugin,
- FramebufferExtractPlugin,
- LogPlugin {
- update_subscriber: Some(|_| {
- let log_file = OpenOptions::new()
- .write(true)
- .create(true)
- .truncate(true)
- .open(
- LOG_PATH
- .lock()
- .expect("Failed to get lock on log path mutex")
- .clone(),
- )
- .unwrap();
- let file_layer = tracing_subscriber::fmt::Layer::new()
- .with_writer(log_file)
- .with_filter(LevelFilter::from_level(Level::INFO));
- Box::new(Registry::default().with(file_layer))
- }),
- ..Default::default()
- },
+ HeadlessRenderPlugin,
))
.add_systems(Startup, input::systems::setup_input)
.add_systems(