Commit 372b82c5 authored by Sylvain Thery's avatar Sylvain Thery

Merge branch 'develop' of /home/git/repositories/cgogn/cgogn

parents 56d5dcfd b29a40b3
...@@ -78,7 +78,9 @@ void Viewer::initGUI() ...@@ -78,7 +78,9 @@ void Viewer::initGUI()
void Viewer::cb_initGL() void Viewer::cb_initGL()
{ {
Utils::GLSLShader::setCurrentOGLVersion(2) ; Utils::GLSLShader::setCurrentOGLVersion(3) ;
CGoGNout << "GL VERSION = "<< glGetString(GL_VERSION)<< CGoGNendl;
Utils::GLSLShader::areShadersSupported();
m_render = new Algo::Render::GL2::MapRender() ; m_render = new Algo::Render::GL2::MapRender() ;
m_topoRender = new Algo::Render::GL2::TopoRenderMap<PFP>() ; m_topoRender = new Algo::Render::GL2::TopoRenderMap<PFP>() ;
......
...@@ -206,6 +206,8 @@ void MyQT::cb_initGL() ...@@ -206,6 +206,8 @@ void MyQT::cb_initGL()
{ {
// choose to use GL version 2 // choose to use GL version 2
Utils::GLSLShader::setCurrentOGLVersion(2); Utils::GLSLShader::setCurrentOGLVersion(2);
CGoGNout << "GL VERSION = "<< glGetString(GL_VERSION)<< CGoGNendl;
Utils::GLSLShader::areShadersSupported();
// create the renders // create the renders
m_topo_render = new Algo::Render::GL2::Topo3RenderMap<PFP>(); m_topo_render = new Algo::Render::GL2::Topo3RenderMap<PFP>();
......
...@@ -31,12 +31,6 @@ MapHandlerGen* Surface_Import_Plugin::importFromFile(const QString& fileName) ...@@ -31,12 +31,6 @@ MapHandlerGen* Surface_Import_Plugin::importFromFile(const QString& fileName)
if(fi.exists()) if(fi.exists())
{ {
MapHandlerGen* mhg = m_schnapps->addMap(fi.baseName(), 2); MapHandlerGen* mhg = m_schnapps->addMap(fi.baseName(), 2);
std::cout << "IMPORT PLUGIN 2" << std::endl;
std::cout << "PTR="<< GenericMap::s_instances<< std::endl;
for (auto inst : *GenericMap::s_instances)
std::cout << inst<< std::endl;
if(mhg) if(mhg)
{ {
MapHandler<PFP2>* mh = static_cast<MapHandler<PFP2>*>(mhg); MapHandler<PFP2>* mh = static_cast<MapHandler<PFP2>*>(mhg);
......
...@@ -24,9 +24,13 @@ int main(int argc, char* argv[]) ...@@ -24,9 +24,13 @@ int main(int argc, char* argv[])
// get a smart pointer to the __main__ module of the Python interpreter // get a smart pointer to the __main__ module of the Python interpreter
PythonQtObjectPtr pythonContext = PythonQt::self()->getMainModule(); PythonQtObjectPtr pythonContext = PythonQt::self()->getMainModule();
PythonQtScriptingConsole pythonConsole(NULL, pythonContext);
CGoGN::SCHNApps::SCHNApps schnapps(app.applicationDirPath(), pythonContext, pythonConsole); // PythonQtScriptingConsole pythonConsole(NULL, pythonContext);
// CGoGN::SCHNApps::SCHNApps schnapps(app.applicationDirPath(), pythonContext, pythonConsole);
PythonQtScriptingConsole* pythonConsole = new PythonQtScriptingConsole(NULL, pythonContext);
CGoGN::SCHNApps::SCHNApps schnapps(app.applicationDirPath(), pythonContext, *pythonConsole);
schnapps.show(); schnapps.show();
pythonContext.addObject("schnapps", &schnapps); pythonContext.addObject("schnapps", &schnapps);
......
...@@ -108,7 +108,8 @@ void View::unlinkPlugin(PluginInteraction* plugin) ...@@ -108,7 +108,8 @@ void View::unlinkPlugin(PluginInteraction* plugin)
{ {
plugin->unlinkView(this); plugin->unlinkView(this);
emit(pluginUnlinked(plugin)); emit(pluginUnlinked(plugin));
updateGL(); // removed because of crash when application close
// updateGL();
} }
} }
...@@ -159,7 +160,8 @@ void View::unlinkMap(MapHandlerGen* map) ...@@ -159,7 +160,8 @@ void View::unlinkMap(MapHandlerGen* map)
emit(mapUnlinked(map)); emit(mapUnlinked(map));
updateCurrentCameraBB(); updateCurrentCameraBB();
updateGL(); // removed because of crash when application close
// updateGL();
disconnect(map->getFrame(), SIGNAL(modified()), this, SLOT(updateGL())); disconnect(map->getFrame(), SIGNAL(modified()), this, SLOT(updateGL()));
disconnect(map, SIGNAL(selectedCellsChanged(CellSelectorGen*)), this, SLOT(updateGL())); disconnect(map, SIGNAL(selectedCellsChanged(CellSelectorGen*)), this, SLOT(updateGL()));
......
...@@ -106,7 +106,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed) ...@@ -106,7 +106,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed)
DartMarker<MAP> cmf(map); DartMarker<MAP> cmf(map);
cmf.markOrbit<FACE>(faceSeed); cmf.template markOrbit<FACE>(faceSeed);
propag.push_back(faceSeed); propag.push_back(faceSeed);
while (!propag.empty() || !propag_inv.empty()) while (!propag.empty() || !propag_inv.empty())
...@@ -120,7 +120,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed) ...@@ -120,7 +120,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed)
do do
{ {
Dart e = map.phi2(d); Dart e = map.phi2(d);
if (map.isBoundaryMarked2(e)) if (map.template isBoundaryMarked<2>(e))
{ {
e = findOtherInCouplesOfDarts(couples,d); e = findOtherInCouplesOfDarts(couples,d);
if (e!=NIL) if (e!=NIL)
...@@ -129,7 +129,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed) ...@@ -129,7 +129,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed)
{ {
propag_inv.push_back(e); propag_inv.push_back(e);
face2invert.push_back(e); face2invert.push_back(e);
cmf.markOrbit<FACE>(e); cmf.template markOrbit<FACE>(e);
} }
cmf.mark(map.phi2(e));// use cmf also to mark boudary cycle to invert cmf.mark(map.phi2(e));// use cmf also to mark boudary cycle to invert
} }
...@@ -140,7 +140,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed) ...@@ -140,7 +140,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed)
if (!cmf.isMarked(e)) if (!cmf.isMarked(e))
{ {
propag.push_back(e); propag.push_back(e);
cmf.markOrbit<FACE>(e); cmf.template markOrbit<FACE>(e);
} }
} }
d= map.phi1(d); d= map.phi1(d);
...@@ -157,7 +157,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed) ...@@ -157,7 +157,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed)
do do
{ {
Dart e = map.phi2(d); Dart e = map.phi2(d);
if (map.isBoundaryMarked2(e)) if (map.template isBoundaryMarked<2>(e))
{ {
e = findOtherInCouplesOfDarts(couples,d); e = findOtherInCouplesOfDarts(couples,d);
if (e!=NIL) if (e!=NIL)
...@@ -165,7 +165,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed) ...@@ -165,7 +165,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed)
if (!cmf.isMarked(e)) if (!cmf.isMarked(e))
{ {
propag.push_back(e); propag.push_back(e);
cmf.markOrbit<FACE>(e); cmf.template markOrbit<FACE>(e);
} }
cmf.mark(map.phi2(d));// use cmf also to mark boudary cycle to invert cmf.mark(map.phi2(d));// use cmf also to mark boudary cycle to invert
} }
...@@ -176,7 +176,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed) ...@@ -176,7 +176,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed)
{ {
propag_inv.push_back(e); propag_inv.push_back(e);
face2invert.push_back(e); face2invert.push_back(e);
cmf.markOrbit<FACE>(e); cmf.template markOrbit<FACE>(e);
} }
} }
d= map.phi1(d); // traverse all edges of face d= map.phi1(d); // traverse all edges of face
...@@ -195,7 +195,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed) ...@@ -195,7 +195,7 @@ void uniformOrientationCC(MAP& map, Dart faceSeed)
if (cmf.isMarked(e)) // check cmf for wrong orientation if (cmf.isMarked(e)) // check cmf for wrong orientation
{ {
reverse2MapFaceKeepPhi2<MAP>(map,e); reverse2MapFaceKeepPhi2<MAP>(map,e);
cmf.unmarkOrbit<FACE>(e); cmf.template unmarkOrbit<FACE>(e);
} }
} }
......
...@@ -16,13 +16,13 @@ void main(void) ...@@ -16,13 +16,13 @@ void main(void)
N = normalize (vec3(NormalMatrix*vec4(N,0.0))); N = normalize (vec3(NormalMatrix*vec4(N,0.0)));
vec3 center = POSITION_IN(0).xyz + POSITION_IN(1).xyz + POSITION_IN(2).xyz; vec3 center = POSITION_IN(0).xyz + POSITION_IN(1).xyz + POSITION_IN(2).xyz;
center /= 3.0; center /= 3.0;
vec4 newPos = ModelViewMatrix * vec4(center,0.0); vec4 newPos = ModelViewMatrix * vec4(center,1.0);
vec3 L = normalize (lightPosition - newPos.xyz); vec3 L = normalize (lightPosition - newPos.xyz);
float lambertTerm = dot(N,L); float lambertTerm = dot(N,L);
ColorFS = ambient; ColorFS = ambient;
if(lambertTerm > 0.0) if(lambertTerm > 0.0)
ColorFS += diffuse * lambertTerm; ColorFS += diffuse * lambertTerm;
int i; int i;
for(i=0; i< NBVERTS_IN; i++) for(i=0; i< NBVERTS_IN; i++)
......
...@@ -148,10 +148,35 @@ bool GLSLShader::areGeometryShadersSupported() ...@@ -148,10 +148,35 @@ bool GLSLShader::areGeometryShadersSupported()
bool GLSLShader::areShadersSupported() bool GLSLShader::areShadersSupported()
{ {
if ( ! glewGetExtension("GL_ARB_vertex_shader")) return false; if ( ! glewIsSupported("GL_ARB_vertex_shader"))
if ( ! glewGetExtension("GL_ARB_fragment_shader")) return false; {
if ( ! glewGetExtension("GL_ARB_shader_objects")) return false; CGoGNerr << " vertex shaders not supported!" <<CGoGNendl;
if ( ! glewGetExtension("GL_ARB_shading_language_100")) return false; return false;
}
if ( ! glewIsSupported("GL_ARB_fragment_shader"))
{
CGoGNerr << " fragment shaders not supported!" << CGoGNendl;
return false;
}
if ( ! glewIsSupported("GL_ARB_geometry_shader4"))
{
CGoGNerr << " geometry shaders not supported!" << CGoGNendl;
return false;
}
if ( ! glewIsSupported("GL_ARB_shader_objects"))
{
CGoGNerr << " shaders not supported!" << CGoGNendl;
return false;
}
if ( ! glewIsSupported("GL_ARB_shading_language_100"))
{
CGoGNerr << " GLSL no supported!" << CGoGNendl;
return false;
}
return true; return true;
} }
...@@ -399,7 +424,7 @@ bool GLSLShader::loadGeometryShaderSourceString( const char *geom_shader_source ...@@ -399,7 +424,7 @@ bool GLSLShader::loadGeometryShaderSourceString( const char *geom_shader_source
*m_geom_shader_object=0; *m_geom_shader_object=0;
} }
/*** create shader object ***/ /*** create shader object ***/
*m_geom_shader_object = glCreateShader(GL_GEOMETRY_SHADER_EXT); *m_geom_shader_object = glCreateShader(GL_GEOMETRY_SHADER);
if( !*m_geom_shader_object ) if( !*m_geom_shader_object )
{ {
...@@ -1088,9 +1113,9 @@ void GLSLShader::enableVertexAttribs(unsigned int stride, unsigned int begin) co ...@@ -1088,9 +1113,9 @@ void GLSLShader::enableVertexAttribs(unsigned int stride, unsigned int begin) co
this->bind(); this->bind();
for (std::vector<Utils::GLSLShader::VAStr>::const_iterator it = m_va_vbo_binding.begin(); it != m_va_vbo_binding.end(); ++it) for (std::vector<Utils::GLSLShader::VAStr>::const_iterator it = m_va_vbo_binding.begin(); it != m_va_vbo_binding.end(); ++it)
{ {
assert(((it->vbo_ptr->nbElts()==0) || (it->vbo_ptr->dataSize()!=0) ) || !"dataSize of VBO is 0 ! could not draw");
glBindBuffer(GL_ARRAY_BUFFER, it->vbo_ptr->id()); glBindBuffer(GL_ARRAY_BUFFER, it->vbo_ptr->id());
glEnableVertexAttribArray(it->va_id); glEnableVertexAttribArray(it->va_id);
assert((it->vbo_ptr->dataSize()!=0) || !"dataSize of VBO is 0 ! could not draw");
glVertexAttribPointer(it->va_id, it->vbo_ptr->dataSize(), GL_FLOAT, false, stride, (const GLvoid*)((unsigned long)(begin))); glVertexAttribPointer(it->va_id, it->vbo_ptr->dataSize(), GL_FLOAT, false, stride, (const GLvoid*)((unsigned long)(begin)));
} }
// this->unbind(); // this->unbind();
......
...@@ -193,7 +193,6 @@ glm::vec3& GLWidget::getObjPos() ...@@ -193,7 +193,6 @@ glm::vec3& GLWidget::getObjPos()
void GLWidget::initializeGL() void GLWidget::initializeGL()
{ {
std::cout << "GL VERSION = "<< glGetString(GL_VERSION)<< std::endl;
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
if (m_cbs) if (m_cbs)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment