aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/renderer/mod.rs
diff options
context:
space:
mode:
authorJosh Rahm <rahm@google.com>2021-10-05 14:36:31 -0600
committerJosh Rahm <rahm@google.com>2021-10-05 14:36:31 -0600
commit7a209fa45f1f4d07cb4a885e8ea3d03e47cf48ae (patch)
tree026d75fdc19e19952cfba3020c118f24df4ac412 /alacritty/src/renderer/mod.rs
parent1725e30e144b04e2e2e30efc76eb968c97a0eabf (diff)
parent98fbb3f9285d8c00836e3bcfa6e1e13bf809e2a2 (diff)
downloadr-alacritty-7a209fa45f1f4d07cb4a885e8ea3d03e47cf48ae.tar.gz
r-alacritty-7a209fa45f1f4d07cb4a885e8ea3d03e47cf48ae.tar.bz2
r-alacritty-7a209fa45f1f4d07cb4a885e8ea3d03e47cf48ae.zip
Merge remote-tracking branch 'betaboon/graphics' into experimental
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 0173769c..fba47c40 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,
@@ -843,6 +861,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,