aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/renderer/mod.rs
diff options
context:
space:
mode:
authorAyose <ayosec@gmail.com>2021-03-10 20:21:36 +0000
committerbetaboon <betaboon@0x80.ninja>2021-08-17 15:44:40 +0200
commit0fd3793a963015e8f91021e35dbb2169d15c3211 (patch)
treea83c1f53a123f84376a58cf2a5114ad581092e0a /alacritty/src/renderer/mod.rs
parentc24d7dfd0d2d8849f0398d7cb1a65d6562ee7a0d (diff)
downloadr-alacritty-0fd3793a963015e8f91021e35dbb2169d15c3211.tar.gz
r-alacritty-0fd3793a963015e8f91021e35dbb2169d15c3211.tar.bz2
r-alacritty-0fd3793a963015e8f91021e35dbb2169d15c3211.zip
Add Sixel support
Fixes #910
Diffstat (limited to 'alacritty/src/renderer/mod.rs')
-rw-r--r--alacritty/src/renderer/mod.rs19
1 files changed, 19 insertions, 0 deletions
diff --git a/alacritty/src/renderer/mod.rs b/alacritty/src/renderer/mod.rs
index 11ccfc63..71ed6e28 100644
--- a/alacritty/src/renderer/mod.rs
+++ b/alacritty/src/renderer/mod.rs
@@ -14,6 +14,7 @@ use fnv::FnvHasher;
use log::{error, info};
use unicode_width::UnicodeWidthChar;
+use alacritty_terminal::graphics::UpdateQueues;
use alacritty_terminal::index::Point;
use alacritty_terminal::term::cell::Flags;
use alacritty_terminal::term::color::Rgb;
@@ -24,8 +25,10 @@ use crate::config::ui_config::{Delta, UiConfig};
use crate::display::content::RenderableCell;
use crate::gl;
use crate::gl::types::*;
+use crate::renderer::graphics::GraphicsRenderer;
use crate::renderer::rects::{RectRenderer, RenderRect};
+pub mod graphics;
pub mod rects;
// Shader source.
@@ -439,6 +442,7 @@ pub struct QuadRenderer {
batch: Batch,
rect_renderer: RectRenderer,
+ graphics_renderer: GraphicsRenderer,
}
#[derive(Debug)]
@@ -638,6 +642,7 @@ impl QuadRenderer {
let mut renderer = Self {
program,
rect_renderer: RectRenderer::new()?,
+ graphics_renderer: GraphicsRenderer::new()?,
vao,
ebo,
vbo_instance,
@@ -682,6 +687,19 @@ impl QuadRenderer {
}
}
+ /// Run the required actions to apply changes for the graphics in the grid.
+ #[inline]
+ pub fn graphics_run_updates(&mut self, update_queues: UpdateQueues, size_info: &SizeInfo) {
+ self.graphics_renderer.run_updates(update_queues, size_info);
+ }
+
+ /// Draw graphics visible in the display.
+ #[inline]
+ pub fn graphics_draw(&mut self, render_list: graphics::RenderList, size_info: &SizeInfo) {
+ self.graphics_renderer.draw(render_list, size_info);
+ self.active_tex = 0;
+ }
+
pub fn with_api<F, T>(&mut self, config: &UiConfig, props: &SizeInfo, func: F) -> T
where
F: FnOnce(RenderApi<'_>) -> T,
@@ -842,6 +860,7 @@ impl<'a> RenderApi<'a> {
point: Point::new(point.line, point.column + i),
character,
zerowidth: None,
+ graphic: None,
flags: Flags::empty(),
bg_alpha: 1.0,
fg,