diff options
| author | Carl Hetherington <cth@carlh.net> | 2019-05-10 23:42:31 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2019-05-10 23:43:55 +0100 |
| commit | 1e2ff3aad2e6feabc7d725f64e41feb0b5ba9439 (patch) | |
| tree | bd0bdf2d31b8ff4db3d5f9d43cc1a62f74447675 /src | |
| parent | 792e173027d5e6077375a29c6c64fca01f7a94d9 (diff) | |
Fix crash with small GL canvas sizes.v2.15.1
Diffstat (limited to 'src')
| -rw-r--r-- | src/wx/gl_video_view.cc | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/wx/gl_video_view.cc b/src/wx/gl_video_view.cc index fefc08849..39d418cbf 100644 --- a/src/wx/gl_video_view.cc +++ b/src/wx/gl_video_view.cc @@ -100,11 +100,17 @@ GLVideoView::draw () check_gl_error ("glDisable GL_DEPTH_TEST"); glBlendFunc (GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); + if (_canvas->GetSize().x < 64 || _canvas->GetSize().y < 0) { + return; + } + glViewport (0, 0, _canvas->GetSize().x, _canvas->GetSize().y); + check_gl_error ("glViewport"); glMatrixMode (GL_PROJECTION); glLoadIdentity (); gluOrtho2D (0, _canvas->GetSize().x, _canvas->GetSize().y, 0); + check_gl_error ("gluOrtho2d"); glMatrixMode (GL_MODELVIEW); glLoadIdentity (); @@ -125,9 +131,6 @@ GLVideoView::draw () glEnd (); } - glDisable (GL_TEXTURE_2D); - check_gl_error ("glDisable GL_TEXTURE_2D"); - dcp::Size const out_size = _viewer->out_size (); wxSize const canvas_size = _canvas->GetSize (); @@ -191,6 +194,7 @@ GLVideoView::set_image (shared_ptr<const Image> image) _size = image->size (); glPixelStorei (GL_UNPACK_ALIGNMENT, 1); + check_gl_error ("glPixelStorei"); glTexImage2D (GL_TEXTURE_2D, 0, GL_RGB8, _size->width, _size->height, 0, GL_RGB, GL_UNSIGNED_BYTE, image->data()[0]); check_gl_error ("glTexImage2D"); |
