Get rid of prepare_for_render as it is not needed anymore

This commit is contained in:
Kovid Goyal 2017-09-10 14:21:06 +05:30
parent 98daddc39a
commit cc9ed734cf
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 14 additions and 23 deletions

View File

@ -378,20 +378,13 @@ class Boss:
with self.sprites:
self.sprites.render_dirty_sprites()
tab.render()
render_data = {
window:
window.char_grid.prepare_for_render(self.cell_program)
for window in tab.visible_windows()
if not window.needs_layout}
with self.cell_program:
self.tab_manager.render(self.cell_program, self.sprites)
for window, rd in render_data.items():
if rd is not None:
window.render_cells(
rd, self.cell_program, self.sprites)
for window in tab.visible_windows():
if not window.needs_layout:
window.render_cells(self.cell_program, self.sprites)
active = self.active_window
rd = render_data.get(active)
if rd is not None:
if active is not None:
draw_cursor = True
if self.cursor_blinking and self.opts.cursor_blink_interval > 0 and self.window_is_focused:
now = monotonic() - self.cursor_blink_zero_time
@ -404,7 +397,7 @@ class Boss:
if draw_cursor:
with self.cursor_program:
active.char_grid.render_cursor(
rd, self.cursor_program,
self.cursor_program,
self.window_is_focused)
def gui_close_window(self, window):

View File

@ -96,7 +96,6 @@ class CharGrid:
def __init__(self, screen, opts):
self.vao_id = None
self.screen_reversed = False
self.render_data = None
self.data_buffer_size = None
self.screen = screen
self.opts = opts
@ -147,7 +146,6 @@ class CharGrid:
with cell_program.mapped_vertex_data(self.vao_id, self.data_buffer_size) as address:
cursor_changed, self.screen_reversed = self.screen.update_cell_data(
address, False)
self.render_data = self.screen_geometry
if cursor_changed:
c = self.screen.cursor
self.current_cursor = Cursor(c.x, c.y, c.shape, c.blink)
@ -232,21 +230,20 @@ class CharGrid:
def text_for_selection(self):
return ''.join(self.screen.text_for_selection())
def prepare_for_render(self, cell_program):
def render_cells(self, cell_program, sprites, invert_colors=False):
if self.vao_id is None:
self.vao_id = cell_program.create_sprite_map()
if self.screen.scroll_changed or self.screen.is_dirty:
self.update_cell_data(cell_program)
sg = self.render_data
if self.screen.is_selection_dirty():
with cell_program.mapped_vertex_data(self.vao_id, self.selection_buffer_size, bufnum=1) as address:
self.screen.apply_selection(address, self.selection_buffer_size)
return sg
render_cells(
self.vao_id, self.screen_geometry, cell_program, sprites,
self.screen.color_profile, invert_colors=invert_colors,
screen_reversed=self.screen_reversed)
def render_cells(self, sg, cell_program, sprites, invert_colors=False):
render_cells(self.vao_id, sg, cell_program, sprites, self.screen.color_profile, invert_colors=invert_colors, screen_reversed=self.screen_reversed)
def render_cursor(self, sg, cursor_program, is_focused):
def render_cursor(self, cursor_program, is_focused):
cursor = self.current_cursor
if not self.screen.cursor_visible or self.screen.scrolled_by:
return
@ -257,6 +254,7 @@ class CharGrid:
factor = 2 / (viewport_size.width if vert else viewport_size.height)
return w * factor
sg = self.screen_geometry
ul = cursor_program.uniform_location
left = sg.xstart + cursor.x * sg.dx
top = sg.ystart - cursor.y * sg.dy

View File

@ -283,13 +283,13 @@ class Window:
def buf_toggled(self, is_main_linebuf):
self.screen.scroll(SCROLL_FULL, False)
def render_cells(self, render_data, program, sprites):
def render_cells(self, program, sprites):
invert_colors = False
if self.start_visual_bell_at is not None:
invert_colors = monotonic() - self.start_visual_bell_at <= self.opts.visual_bell_duration
if not invert_colors:
self.start_visual_bell_at = None
self.char_grid.render_cells(render_data, program, sprites, invert_colors)
self.char_grid.render_cells(program, sprites, invert_colors)
# actions {{{