Commit 25725eba authored by Sylvain Thery's avatar Sylvain Thery

mac+qt5+GLcore 3.3

parent e8571f58
......@@ -77,6 +77,8 @@ void MyQT::cb_initGL()
glEnable(GL_TEXTURE_2D);
std::cout << Utils::GLSLShader::MAJOR_OGL_CORE << " / "<< Utils::GLSLShader::MINOR_OGL_CORE << std::endl;
std::cout << glGetString(GL_VERSION)<< std::endl;
}
void MyQT::cb_redraw()
......
......@@ -74,7 +74,7 @@ protected:
int m_current_button;
public:
QGLView(SimpleQGLV* ptr, QGLFormat& format, QWidget *parent = 0);
QGLView(SimpleQGLV* ptr, QWidget *parent = 0);
~QGLView();
void setObjectBB(float* bbmin, float* bbmax);
......
......@@ -8,6 +8,6 @@ uniform vec4 ambient;
FRAG_OUT_DEF;
void main()
{
gl_FragData[0] = ambient*texture2D(textureUnit,fragTexCoord);
gl_FragData[0] = ambient*TEXTURE2D(textureUnit,fragTexCoord);
gl_FragData[1] = vec4( 0.5*normalize(N)+vec3(0.5), 1.0 );
}
\ No newline at end of file
}
......@@ -18,7 +18,7 @@ void main()
vec3 L = normalize (LightDir);
float lambertTerm = dot(N,L);
vec4 finalColor = ambientCoef * texture2D(textureUnit,texCoord);
vec4 finalColor = ambientCoef * TEXTURE2D(textureUnit,texCoord);
#ifdef DOUBLE_SIDED
if (lambertTerm < 0.0)
......@@ -32,7 +32,7 @@ void main()
vec3 E = normalize(EyeVector);
vec3 R = reflect(-L, N);
float specular = pow( max(dot(R, E), 0.0), shininess );
vec3 diffuse = (1.0 - ambientCoef) * texture2D(textureUnit,texCoord).rgb;
vec3 diffuse = (1.0 - ambientCoef) * TEXTURE2D(textureUnit,texCoord).rgb;
finalColor += vec4(diffuse*lambertTerm,0.0) + materialSpecular*specular;
}
FRAG_OUT=finalColor;
......
......@@ -6,5 +6,5 @@ uniform sampler2D textureUnit;
FRAG_OUT_DEF;
void main()
{
FRAG_OUT=texture2D(textureUnit,texCoord);
}
\ No newline at end of file
FRAG_OUT=TEXTURE2D(textureUnit,texCoord);
}
......@@ -7,6 +7,6 @@ uniform sampler2D textureDepthUnit;
FRAG_OUT_DEF;
void main()
{
gl_FragDepth = texture2D(textureDepthUnit,texCoord).r;
FRAG_OUT = texture2D(textureUnit,texCoord);
}
\ No newline at end of file
gl_FragDepth = TEXTURE2D(textureDepthUnit,texCoord).r;
FRAG_OUT = TEXTURE2D(textureUnit,texCoord);
}
......@@ -7,8 +7,8 @@ uniform sampler2D textureUnitMask;
FRAG_OUT_DEF;
void main()
{
float m = texture2D(textureUnitMask,texCoord).r;
float m = TEXTURE2D(textureUnitMask,texCoord).r;
if (m < 0.5)
discard;
FRAG_OUT=texture2D(textureUnit,texCoord)*m;
FRAG_OUT=TEXTURE2D(textureUnit,texCoord)*m;
}
......@@ -6,5 +6,5 @@ uniform sampler2D textureUnit;
FRAG_OUT_DEF;
void main()
{
FRAG_OUT=texture2D(textureUnit,texCoord);
FRAG_OUT=TEXTURE2D(textureUnit,texCoord);
}
......@@ -6,5 +6,5 @@ uniform vec4 color;
FRAG_OUT_DEF;
void main (void)
{
float lum = texture2D(FontTexture, tex_coord).s;;
float lum = TEXTURE2D(FontTexture, tex_coord).s;;
// no } because it is added in the shader class code (with other things)
......@@ -59,7 +59,9 @@ std::string GLSLShader::DEFINES_GL2=\
"#define VARYING_FRAG varying\n"
"#define FRAG_OUT_DEF float pipo_FRAGDEF\n"
"#define FRAG_OUT gl_FragColor\n"
"#define INVARIANT_POS float pipo_INVARIANT\n";
"#define INVARIANT_POS float pipo_INVARIANT\n"
"#define TEXTURE2D texture2D\n"
;
std::string GLSLShader::DEFINES_GL3=\
......@@ -70,7 +72,8 @@ std::string GLSLShader::DEFINES_GL3=\
"#define VARYING_FRAG in\n"
"#define FRAG_OUT_DEF out vec4 outFragColor\n"
"#define FRAG_OUT outFragColor\n"
"#define INVARIANT_POS invariant gl_Position\n";
"#define INVARIANT_POS invariant gl_Position\n"
"#define TEXTURE2D texture\n";
std::string* GLSLShader::DEFINES_GL = NULL;
......@@ -98,7 +101,7 @@ GLSLShader::GLSLShader() :
*m_uniMat_Normal = -1;
if (DEFINES_GL == NULL)
DEFINES_GL = &DEFINES_GL2;
setCurrentOGLVersion(MAJOR_OGL_CORE,MINOR_OGL_CORE);
m_nbMaxVertices = 16;
......
......@@ -56,16 +56,14 @@ SimpleQGLV::SimpleQGLV() :
QGLFormat format;
if (GLSLShader::CURRENT_OGL_VERSION >= 3)
{
format.setProfile(QGLFormat::CoreProfile);
format.setVersion(GLSLShader::MAJOR_OGL_CORE, GLSLShader::MINOR_OGL_CORE);
format.setDepth(true);
format.setDepthBufferSize(24);
format.setDoubleBuffer(true);
QGLFormat glFormat;
glFormat.setVersion( Utils::GLSLShader::MAJOR_OGL_CORE, Utils::GLSLShader::MINOR_OGL_CORE);
glFormat.setProfile( QGLFormat::CoreProfile ); // Requires >=Qt-4.8.0
glFormat.setSampleBuffers( true );
QGLFormat::setDefaultFormat(glFormat);
}
else
format = QGLFormat::defaultFormat();
m_qglWidget = new QGLView(this,format);
m_qglWidget = new QGLView(this);
setCentralWidget(m_qglWidget);
setWindowTitle(tr("CGoGN"));
......@@ -143,7 +141,7 @@ SimpleQGLV::SimpleQGLV(const SimpleQGLV& sqt):
m_transfo_matrix(m_mat.m_matrices[2])
{
QGLFormat format = sqt.m_qglWidget->format();
m_qglWidget = new QGLView(this,format);
m_qglWidget = new QGLView(this);
setCentralWidget(m_qglWidget);
......@@ -172,8 +170,7 @@ SimpleQGLV::~SimpleQGLV()
void SimpleQGLV::operator=(const SimpleQGLV& sqt)
{
QGLFormat format = sqt.m_qglWidget->format();
m_qglWidget = new QGLView(this,format);
m_qglWidget = new QGLView(this);
setCentralWidget(m_qglWidget) ;
......
......@@ -44,8 +44,8 @@ namespace QT
{
QGLView::QGLView(SimpleQGLV* ptr, QGLFormat& format, QWidget *parent):
QGLViewer(format,parent),
QGLView::QGLView(SimpleQGLV* ptr, QWidget *parent):
QGLViewer(parent),
m_sqgl(ptr),m_state_modifier(0)
{
}
......
......@@ -56,17 +56,13 @@ SimpleQT::SimpleQT() :
{
if (GLSLShader::CURRENT_OGL_VERSION >= 3)
{
QGLFormat format;
format.setProfile(QGLFormat::CoreProfile);
format.setVersion(GLSLShader::MAJOR_OGL_CORE, GLSLShader::MINOR_OGL_CORE);
format.setDepth(true);
// format.setDepthBufferSize(24);
format.setDoubleBuffer(true);
m_glWidget = new GLWidget(this,format);
QGLFormat glFormat;
glFormat.setVersion( Utils::GLSLShader::MAJOR_OGL_CORE, Utils::GLSLShader::MINOR_OGL_CORE);
glFormat.setProfile( QGLFormat::CoreProfile ); // Requires >=Qt-4.8.0
glFormat.setSampleBuffers( true );
QGLFormat::setDefaultFormat(glFormat);
}
else
m_glWidget = new GLWidget(this);
m_glWidget = new GLWidget(this);
setCentralWidget(m_glWidget);
......
......@@ -140,7 +140,7 @@ LIST(APPEND CGoGN_DEFS -DGLM_FORCE_RADIANS)
LIST(APPEND CGoGN_DEFS -DCGOGN_ASSERT_BOOL=${CGoGN_ASSERT_ACTIVED})
IF(CGoGN_USE_OGL_CORE_PROFILE)
LIST(APPEND CGoGN_DEFS -DCGoGN_USE_OGL_CORE_PROFILE=1)
LIST(APPEND CGoGN_DEFS -DCGOGN_USE_OGL_CORE_PROFILE=1)
ENDIF()
LIST(APPEND CGoGN_DEFS -DSHADERPATH=\"${CGoGN_ROOT_DIR}/lib/Shaders/\")
......
......@@ -40,8 +40,8 @@ class SCHNAPPS_API View : public QGLViewer
public:
static unsigned int viewCount;
View(const QString& name, SCHNApps* s, QGLFormat& format);
View(const QString& name, SCHNApps* s, QGLFormat& format, const QGLWidget* shareWidget);
View(const QString& name, SCHNApps* s);
View(const QString& name, SCHNApps* s, const QGLWidget* shareWidget);
~View();
const QString& getName() const { return m_name; }
......
......@@ -44,12 +44,6 @@ SCHNApps::SCHNApps(const QString& appPath, PythonQtObjectPtr& pythonContext, Pyt
{
GenericMap::initAllStatics(&m_sp);
#ifdef CGoGN_USE_OGL_CORE_PROFILE
CGoGN::Utils::GLSLShader::setCurrentOGLVersion(3);
#else
CGoGN::Utils::GLSLShader::setCurrentOGLVersion(2);
#endif
this->setupUi(this);
// create & setup control dock
......@@ -117,6 +111,15 @@ SCHNApps::SCHNApps(const QString& appPath, PythonQtObjectPtr& pythonContext, Pyt
b_rootSplitterInitialized = false;
m_centralLayout->addWidget(m_rootSplitter);
if (Utils::GLSLShader::CURRENT_OGL_VERSION >= 3)
{
QGLFormat glFormat;
glFormat.setVersion( Utils::GLSLShader::MAJOR_OGL_CORE, Utils::GLSLShader::MINOR_OGL_CORE);
glFormat.setProfile( QGLFormat::CoreProfile ); // Requires >=Qt-4.8.0
glFormat.setSampleBuffers( true );
QGLFormat::setDefaultFormat(glFormat);
}
m_firstView = addView();
setSelectedView(m_firstView);
m_rootSplitter->addWidget(m_firstView);
......@@ -197,27 +200,7 @@ View* SCHNApps::addView(const QString& name)
if (m_views.contains(name))
return NULL;
QGLFormat format;
if (Utils::GLSLShader::CURRENT_OGL_VERSION >= 3)
{
format.setProfile(QGLFormat::CoreProfile);
format.setVersion(Utils::GLSLShader::MAJOR_OGL_CORE, Utils::GLSLShader::MINOR_OGL_CORE);
format.setDepth(true);
format.setDoubleBuffer(true);
format.setBlueBufferSize(8);
std::cout << "CORE_PROFILE GL"<< std::endl;
}
else
{
format = QGLFormat::defaultFormat();
std::cout << "DEFAULT GL"<< std::endl;
}
View* view = NULL;
if(m_firstView == NULL)
view = new View(name, this, format);
else
view = new View(name, this, format, m_firstView);
View* view = new View(name, this, m_firstView);
m_views.insert(name, view);
......
......@@ -21,9 +21,8 @@ namespace SCHNApps
{
unsigned int View::viewCount = 0;
View::View(const QString& name, SCHNApps* s, QGLFormat& format) :
QGLViewer(format, NULL, NULL),
View::View(const QString& name, SCHNApps* s) :
QGLViewer(),
b_updatingUI(false),
m_name(name),
m_schnapps(s),
......@@ -83,8 +82,8 @@ View::View(const QString& name, SCHNApps* s, QGLFormat& format) :
connect(m_schnapps, SIGNAL(schnappsClosing()), this, SLOT(closeDialogs()));
}
View::View(const QString& name, SCHNApps* s, QGLFormat& format, const QGLWidget* shareWidget) :
QGLViewer(format, NULL, shareWidget),
View::View(const QString& name, SCHNApps* s, const QGLWidget* shareWidget) :
QGLViewer( NULL, shareWidget),
b_updatingUI(false),
m_name(name),
m_schnapps(s),
......@@ -354,11 +353,8 @@ void View::init()
glewExperimental = GL_TRUE; // needed for GL Core Profile 3.3
glewInit();
// int major = 0;
// int minor = 0;
// glGetIntegerv(GL_MAJOR_VERSION, &major);
// glGetIntegerv(GL_MINOR_VERSION, &minor);
// std::cout << this->getName().toStdString() << "is using GL "<< major <<"."<< minor << std::endl;
std::cout << "using " << glGetString(GL_VERSION) << std::endl;
qglviewer::Camera* c = this->camera();
this->setCamera(m_currentCamera);
......
......@@ -16,7 +16,7 @@ project(PythonQt)
find_package(PythonLibs 2.7 REQUIRED)
include_directories("${PYTHON_INCLUDE_DIR}")
add_definitions("-DPYTHONQT_USE_RELEASE_PYTHON_FALLBACK")
FILE(WRITE ${CGoGN_ROOT_DIR}/include/python_version.h ${PYTHONLIBS_VERSION_STRING})
#-----------------------------------------------------------------------------
# Build options
......
......@@ -363,8 +363,8 @@ void QGLViewer::postDraw()
glEnable(GL_RESCALE_NORMAL);
#endif
glDisable(GL_COLOR_MATERIAL);
qglColor(foregroundColor());
// glDisable(GL_COLOR_MATERIAL);
// qglColor(foregroundColor());
if (cameraIsEdited())
camera()->drawAllPaths();
......
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