git-svn-id: svn://db.shs.com.ru/libs@665 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2019-12-10 10:22:09 +00:00
parent 86f4e0ad78
commit 9d05dbe6da
24 changed files with 186 additions and 137 deletions

View File

@@ -58,23 +58,26 @@ void RendererSelection::resize(int width, int height) {
void RendererSelection::generateObjectsID(Scene & scene) {
ids.clear();
aim_ids.clear();
QMapIterator<Mesh*, QList<ObjectBase*> > it(scene.geometries_used);
while (it.hasNext()) {
it.next();
foreach (ObjectBase * o, it.value()) {
uint id = qHash(o);
ids[id] = o;
o->id_ = id;
QList<int> passes = scene.geometries_used.keys();
foreach (int p, passes) {
QMapIterator<Mesh*, ObjectBaseList> it(scene.geometries_used[p]);
while (it.hasNext()) {
it.next();
foreach (ObjectBase * o, it.value()) {
uint id = qHash(o);
ids[id] = o;
o->id_ = id;
}
}
}
QMapIterator<int, QList<Light*>> lit(scene.lights_used);
while (lit.hasNext()) {
lit.next();
foreach (ObjectBase * o, lit.value()) {
uint id = qHash(o);
ids[id] = o;
aim_ids[id + 1] = o;
o->id_ = id;
QMapIterator<int, QList<Light*>> lit(scene.lights_used);
while (lit.hasNext()) {
lit.next();
foreach (ObjectBase * o, lit.value()) {
uint id = qHash(o);
ids[id] = o;
aim_ids[id + 1] = o;
o->id_ = id;
}
}
}
}
@@ -121,7 +124,8 @@ void RendererSelection::renderSelection(Scene & scene) {
glEnableDepth();
glClearFramebuffer(QColor(0,0,0,0));
r->setUniformCamera(prog, view->camera());
r->renderObjects(scene, Renderer::rpSelection);
r->renderObjects(scene, rpSolid);
r->renderObjects(scene, rpTransparent);
view->glClear(GL_DEPTH_BUFFER_BIT);
RendererService & rs(r->rend_service);