aboutsummaryrefslogtreecommitdiff
path: root/alacritty/src/renderer/rects.rs
diff options
context:
space:
mode:
Diffstat (limited to 'alacritty/src/renderer/rects.rs')
-rw-r--r--alacritty/src/renderer/rects.rs42
1 files changed, 4 insertions, 38 deletions
diff --git a/alacritty/src/renderer/rects.rs b/alacritty/src/renderer/rects.rs
index fafa7a78..2cf43a34 100644
--- a/alacritty/src/renderer/rects.rs
+++ b/alacritty/src/renderer/rects.rs
@@ -11,6 +11,7 @@ use alacritty_terminal::term::SizeInfo;
use crate::display::content::RenderableCell;
use crate::gl::types::*;
+use crate::renderer::shader::ShaderProgram;
use crate::{gl, renderer};
#[derive(Debug, Copy, Clone)]
@@ -221,7 +222,7 @@ pub struct RectRenderer {
vao: GLuint,
vbo: GLuint,
- program: RectShaderProgram,
+ program: ShaderProgram,
vertices: Vec<Vertex>,
}
@@ -230,7 +231,7 @@ impl RectRenderer {
pub fn new() -> Result<Self, renderer::Error> {
let mut vao: GLuint = 0;
let mut vbo: GLuint = 0;
- let program = RectShaderProgram::new()?;
+ let program = ShaderProgram::new(RECT_SHADER_V, RECT_SHADER_F)?;
unsafe {
// Allocate buffers.
@@ -283,7 +284,7 @@ impl RectRenderer {
// Bind VBO only once for buffer data upload only.
gl::BindBuffer(gl::ARRAY_BUFFER, self.vbo);
- gl::UseProgram(self.program.id);
+ gl::UseProgram(self.program.id());
}
let half_width = size_info.width() / 2.;
@@ -352,38 +353,3 @@ impl Drop for RectRenderer {
}
}
}
-
-/// Rectangle drawing program.
-#[derive(Debug)]
-pub struct RectShaderProgram {
- /// Program id.
- id: GLuint,
-}
-
-impl RectShaderProgram {
- pub fn new() -> Result<Self, renderer::ShaderCreationError> {
- let vertex_shader = renderer::create_shader(gl::VERTEX_SHADER, RECT_SHADER_V)?;
- let fragment_shader = renderer::create_shader(gl::FRAGMENT_SHADER, RECT_SHADER_F)?;
- let program = renderer::create_program(vertex_shader, fragment_shader)?;
-
- unsafe {
- gl::DeleteShader(fragment_shader);
- gl::DeleteShader(vertex_shader);
- gl::UseProgram(program);
- }
-
- let shader = Self { id: program };
-
- unsafe { gl::UseProgram(0) }
-
- Ok(shader)
- }
-}
-
-impl Drop for RectShaderProgram {
- fn drop(&mut self) {
- unsafe {
- gl::DeleteProgram(self.id);
- }
- }
-}