Anatoscope / sofa

Real-time multi-physics simulation with an emphasis on medical simulation.
https://www.sofa-framework.org
2 stars 1 forks source link

Remove OpenGL calls from non-visual functions #11

Open ocarre opened 7 years ago

ocarre commented 7 years ago

Many calls to OpenGL are done during component initialization, requiring a valid OpenGL context even if we are not drawing anything and crashing if there is none.

maxime-tournier commented 7 years ago

Do we need an initGL api ? Or should we handle that internally on first draw ?

void Component::draw() { 
  if(!initGL) { 
     // ...
     initGL = true;
  }
  // ... 
}
matthieu-nesme commented 7 years ago

Les VisualModels ont déjà une fonction initVisualpour ça.

@ocarre tu parles de composants visuels, ou de composant lambda qui ont un rendu de debug? Pourrais-tu commencer par lister les composants problématiques ici ?

ocarre commented 7 years ago

De composants qui crashent à l'init ou à l'update s'il n'y a pas de contexte opengl. Ce qui est dans les fonctions ***visual n'est en effet pas gênant. Oui il faudrait faire un listing, après faut les trouver les classes concernées ... lancer des scènes sans contextes opengl et sans visu et voir lesquels crashent -_- Je crois qu'il y en a pas mal dans le plugin image.