Try and avoid crashing on gl context creation failure in the 3d viewer
Sentry event id 0ad4afa6b86a4a03ad7f8fdbcdb72f86
(cherry picked from commit 5ccf205788
)
This commit is contained in:
parent
3dfc502814
commit
76ccb8c31f
|
@ -383,6 +383,15 @@ void EDA_3D_CANVAS::DoRePaint()
|
||||||
if( m_glRC == nullptr )
|
if( m_glRC == nullptr )
|
||||||
m_glRC = GL_CONTEXT_MANAGER::Get().CreateCtx( this );
|
m_glRC = GL_CONTEXT_MANAGER::Get().CreateCtx( this );
|
||||||
|
|
||||||
|
// CreateCtx could and does fail per sentry crash events, lets be graceful
|
||||||
|
if( m_glRC == nullptr )
|
||||||
|
{
|
||||||
|
warningReporter.Report( _( "OpenGL context creation error" ), RPT_SEVERITY_ERROR );
|
||||||
|
warningReporter.Finalize();
|
||||||
|
m_is_currently_painting.clear();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
GL_CONTEXT_MANAGER::Get().LockCtx( m_glRC, this );
|
GL_CONTEXT_MANAGER::Get().LockCtx( m_glRC, this );
|
||||||
|
|
||||||
// Set the OpenGL viewport according to the client size of this canvas.
|
// Set the OpenGL viewport according to the client size of this canvas.
|
||||||
|
|
|
@ -257,6 +257,13 @@ void EDA_3D_MODEL_VIEWER::OnPaint( wxPaintEvent& event )
|
||||||
if( m_glRC == nullptr )
|
if( m_glRC == nullptr )
|
||||||
m_glRC = GL_CONTEXT_MANAGER::Get().CreateCtx( this );
|
m_glRC = GL_CONTEXT_MANAGER::Get().CreateCtx( this );
|
||||||
|
|
||||||
|
// CreateCtx could and does fail per sentry crash events, lets be graceful
|
||||||
|
if( m_glRC == nullptr )
|
||||||
|
{
|
||||||
|
wxLogTrace( m_logTrace, wxT( "EDA_3D_MODEL_VIEWER::OnPaint creating gl context failed" ) );
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
GL_CONTEXT_MANAGER::Get().LockCtx( m_glRC, this );
|
GL_CONTEXT_MANAGER::Get().LockCtx( m_glRC, this );
|
||||||
|
|
||||||
// Set the OpenGL viewport according to the client size of this canvas.
|
// Set the OpenGL viewport according to the client size of this canvas.
|
||||||
|
|
Loading…
Reference in New Issue