@@ -184,7 +184,7 @@ void setup_scroll(OSWindow *os_window) {
184184 glGenTextures (1 , & os_window -> scroll_texture_id );
185185 glBindTexture (GL_TEXTURE_2D , os_window -> scroll_texture_id );
186186 printf ("%d %d\n" , os_window -> viewport_width , os_window -> viewport_height );
187- glTexImage2D (GL_TEXTURE_2D , 0 , GL_RGBA , os_window -> viewport_width , os_window -> viewport_height , 0 , GL_RGBA , GL_UNSIGNED_BYTE , NULL );
187+ glTexImage2D (GL_TEXTURE_2D , 0 , GL_RGBA , os_window -> viewport_width , os_window -> viewport_height + 100 , 0 , GL_RGBA , GL_UNSIGNED_BYTE , NULL );
188188 //glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, 640, 400, 0, GL_RGBA, GL_UNSIGNED_BYTE, NULL);
189189 glTexParameteri (GL_TEXTURE_2D , GL_TEXTURE_MIN_FILTER , GL_LINEAR );
190190 glTexParameteri (GL_TEXTURE_2D , GL_TEXTURE_MAG_FILTER , GL_LINEAR );
@@ -217,7 +217,7 @@ void before_render() {
217217 // first pass
218218 glBindFramebuffer (GL_FRAMEBUFFER , scroll_framebuffer );
219219 //glClearColor(0.1f, 0.1f, 0.1f, 1.0f);
220- glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); // we're not using the stencil buffer now
220+ // glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // we're not using the stencil buffer now
221221}
222222
223223void after_render (OSWindow * os_window , double pixels ) {
@@ -360,6 +360,7 @@ cell_prepare_to_render(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen, GLfloa
360360 bool disable_ligatures = screen -> disable_ligatures == DISABLE_LIGATURES_CURSOR ;
361361
362362 if (screen -> scroll_changed || screen -> is_dirty || (disable_ligatures && cursor_pos_changed )) {
363+ screen -> render_not_only_pixel_scroll = true;
363364 sz = sizeof (GPUCell ) * screen -> lines * screen -> columns ;
364365 address = alloc_and_map_vao_buffer (vao_idx , sz , cell_data_buffer , GL_STREAM_DRAW , GL_WRITE_ONLY );
365366 screen_update_cell_data (screen , address , fonts_data , disable_ligatures && cursor_pos_changed );
@@ -373,6 +374,7 @@ cell_prepare_to_render(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen, GLfloa
373374 }
374375
375376 if (screen_is_selection_dirty (screen )) {
377+ screen -> render_not_only_pixel_scroll = true;
376378 sz = screen -> lines * screen -> columns ;
377379 address = alloc_and_map_vao_buffer (vao_idx , sz , selection_buffer , GL_STREAM_DRAW , GL_WRITE_ONLY );
378380 screen_apply_selection (screen , address , sz );
@@ -381,6 +383,7 @@ cell_prepare_to_render(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen, GLfloa
381383 }
382384
383385 if (gvao_idx && grman_update_layers (screen -> grman , screen -> scrolled_by , xstart , ystart , dx , dy , screen -> columns , screen -> lines , screen -> cell_size )) {
386+ screen -> render_not_only_pixel_scroll = true;
384387 send_graphics_data_to_gpu (screen -> grman -> count , gvao_idx , screen -> grman -> render_data );
385388 changed = true;
386389 }
0 commit comments