@@ -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 ) {
@@ -351,6 +351,7 @@ cell_prepare_to_render(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen, GLfloa
351351 }
352352
353353 if (screen -> scroll_changed || screen -> is_dirty ) {
354+ screen -> render_not_only_pixel_scroll = true;
354355 sz = sizeof (GPUCell ) * screen -> lines * screen -> columns ;
355356 address = alloc_and_map_vao_buffer (vao_idx , sz , cell_data_buffer , GL_STREAM_DRAW , GL_WRITE_ONLY );
356357 screen_update_cell_data (screen , address , fonts_data );
@@ -359,6 +360,7 @@ cell_prepare_to_render(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen, GLfloa
359360 }
360361
361362 if (screen_is_selection_dirty (screen )) {
363+ screen -> render_not_only_pixel_scroll = true;
362364 sz = screen -> lines * screen -> columns ;
363365 address = alloc_and_map_vao_buffer (vao_idx , sz , selection_buffer , GL_STREAM_DRAW , GL_WRITE_ONLY );
364366 screen_apply_selection (screen , address , sz );
@@ -367,6 +369,7 @@ cell_prepare_to_render(ssize_t vao_idx, ssize_t gvao_idx, Screen *screen, GLfloa
367369 }
368370
369371 if (gvao_idx && grman_update_layers (screen -> grman , screen -> scrolled_by , xstart , ystart , dx , dy , screen -> columns , screen -> lines , screen -> cell_size )) {
372+ screen -> render_not_only_pixel_scroll = true;
370373 send_graphics_data_to_gpu (screen -> grman -> count , gvao_idx , screen -> grman -> render_data );
371374 changed = true;
372375 }
0 commit comments