git-svn-id: svn://db.shs.com.ru/libs@536 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -77,7 +77,7 @@ void GLRendererBase::setupAmbientLight(const QColor & a, bool first_pass) {
|
||||
|
||||
|
||||
void GLRendererBase::setupShadersLights(int lights_count) {
|
||||
/*foreach (__GLShaderProgram__ * i, view.shaders_ppl) {
|
||||
/*foreach (QOpenGLShaderProgram * i, view.shaders_ppl) {
|
||||
i->bind();
|
||||
i->setUniformValue("lightsCount", lights_count);
|
||||
i->setUniformValue("acc_light", lights_count > 0);
|
||||
@@ -190,7 +190,7 @@ void GLRendererBase::renderSingleObject(GLObjectBase & o, RenderingParameters &
|
||||
Material & mat(o.material_);
|
||||
QMatrix4x4 curview = rpl.view_matrix * rpl.cam_offset_matrix * o.itransform_, prevview = rpl.prev_view_matrix * rpl.cam_offset_matrix * o.itransform_;
|
||||
setupTextures(o, rpl, false);
|
||||
mat.apply((__GLShaderProgram__*)rpl.shaders);
|
||||
mat.apply((QOpenGLShaderProgram*)rpl.shaders);
|
||||
glSetPolygonMode(o.render_mode != GLObjectBase::View ? o.render_mode : (view.rmode != GLObjectBase::View ? view.rmode : GL_FILL));
|
||||
glLineWidth(o.line_width > 0. ? o.line_width : view.lineWidth_);
|
||||
glPointSize(o.line_width > 0. ? o.line_width : view.lineWidth_);
|
||||
@@ -218,19 +218,19 @@ void GLRendererBase::renderSingleObject(GLObjectBase & o, RenderingParameters &
|
||||
}
|
||||
if (rpl.shaders) {
|
||||
//qDebug() << o.name() << curview << curview.determinant();
|
||||
setUniformMatrices((__GLShaderProgram__*)rpl.shaders, rpl.proj_matrix, curview, rpl.prev_proj_matrix, prevview);
|
||||
setUniformMatrices((QOpenGLShaderProgram*)rpl.shaders, rpl.proj_matrix, curview, rpl.prev_proj_matrix, prevview);
|
||||
} else {
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
setGLMatrix(curview);
|
||||
}
|
||||
o.draw((__GLShaderProgram__*)rpl.shaders);
|
||||
o.draw((QOpenGLShaderProgram*)rpl.shaders);
|
||||
}
|
||||
foreach (GLObjectBase * i, o.children_)
|
||||
renderSingleObject(*i, rpl);
|
||||
}
|
||||
|
||||
|
||||
void GLRendererBase::renderShadow(Light * l, __GLShaderProgram__ * prog, QMatrix4x4 mat) {
|
||||
void GLRendererBase::renderShadow(Light * l, QOpenGLShaderProgram * prog, QMatrix4x4 mat) {
|
||||
Camera cam;
|
||||
QVector3D wp = l->worldPos();
|
||||
cam.setPos(wp);
|
||||
@@ -270,7 +270,7 @@ void GLRendererBase::renderSingleShadow(GLObjectBase & o, RenderingParameters &
|
||||
if (!o.visible_) return;
|
||||
if (rpl.shaders) {
|
||||
//qDebug() << o.name() << curview << curview.determinant();
|
||||
setUniformMatrices((__GLShaderProgram__*)rpl.shaders, rpl.proj_matrix, rpl.view_matrix * rpl.cam_offset_matrix * o.itransform_);
|
||||
setUniformMatrices((QOpenGLShaderProgram*)rpl.shaders, rpl.proj_matrix, rpl.view_matrix * rpl.cam_offset_matrix * o.itransform_);
|
||||
} else {
|
||||
glMatrixMode(GL_MODELVIEW);
|
||||
setGLMatrix(rpl.view_matrix * rpl.cam_offset_matrix * o.itransform_);
|
||||
@@ -278,7 +278,7 @@ void GLRendererBase::renderSingleShadow(GLObjectBase & o, RenderingParameters &
|
||||
glPolygonMode(GL_FRONT_AND_BACK, o.render_mode != GLObjectBase::View ? o.render_mode : (view.rmode != GLObjectBase::View ? view.rmode : GL_FILL));
|
||||
glLineWidth(o.line_width > 0. ? o.line_width : view.lineWidth_);
|
||||
glPointSize(o.line_width > 0. ? o.line_width : view.lineWidth_);
|
||||
o.draw((__GLShaderProgram__*)rpl.shaders, true);
|
||||
o.draw((QOpenGLShaderProgram*)rpl.shaders, true);
|
||||
foreach (GLObjectBase * i, o.children_)
|
||||
renderSingleShadow(*i, rpl);
|
||||
}
|
||||
@@ -303,7 +303,7 @@ void GLRendererBase::RenderingParameters::prepare() {
|
||||
}
|
||||
|
||||
|
||||
void GLRendererBase::RenderingParameters::setUniform(__GLShaderProgram__ * prog) {
|
||||
void GLRendererBase::RenderingParameters::setUniform(QOpenGLShaderProgram * prog) {
|
||||
if (!prog) return;
|
||||
prog->setUniformValue("qgl_ModelViewMatrix", view_matrix);
|
||||
prog->setUniformValue("qgl_ProjectionMatrix", proj_matrix);
|
||||
|
||||
Reference in New Issue
Block a user