From abb71c81c8a351cda9a2918dcaa7ee61e6c125c5 Mon Sep 17 00:00:00 2001 From: Normand Briere <nbriere@noware.ca> Date: Thu, 01 Aug 2019 00:20:19 -0400 Subject: [PATCH] Call list issue. --- Object3D.java | 20 +++++++++++++------- 1 files changed, 13 insertions(+), 7 deletions(-) diff --git a/Object3D.java b/Object3D.java index c74c81c..f760249 100644 --- a/Object3D.java +++ b/Object3D.java @@ -1015,6 +1015,9 @@ if (material == null || material.multiply) return true; + if (projectedVertices != null && projectedVertices.length > 2 && projectedVertices[2].y >= 10000) + return false; + // Transparent objects are dynamic because we have to sort the triangles. return material.opacity > 0.99; } @@ -5909,8 +5912,10 @@ if (support != null) support = support; - //boolean usecalllists = IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null || !link2master); // !(this instanceof cSpring) && !(this instanceof BezierPatch); - boolean usecalllists = false; //!IsLive(); // IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null) && !link2master; // !(this instanceof cSpring) && !(this instanceof BezierPatch); + boolean usecalllists = !IsLive() && IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null || !link2master); // !(this instanceof cSpring) && !(this instanceof BezierPatch); + //boolean usecalllists = false; //!IsLive(); // IsStatic() && GetBRep() != null && (!CameraPane.SUPPORT || support == null) && !link2master; // !(this instanceof cSpring) && !(this instanceof BezierPatch); + + //usecalllists &= display.DrawMode() == display.DEFAULT; // Don't compute list in shadow pass. if (!usecalllists && bRep != null && bRep.displaylist > 0) { @@ -5920,8 +5925,9 @@ // usecalllists &= !(parent instanceof RandomNode); // usecalllists = false; - if (GetBRep() != null) - usecalllists = usecalllists; + if (display.DrawMode() == display.SHADOW) + //GetBRep() != null) + usecalllists = !!usecalllists; //System.out.println("draw " + this); //new Exception().printStackTrace(); @@ -5943,7 +5949,7 @@ if (!(this instanceof Composite)) touched = false; //if (displaylist == -1 && usecalllists) - if ((bRep != null && bRep.displaylist <= 0) && usecalllists) // june 2013 + if (bRep.displaylist <= 0 && usecalllists) // && display.DrawMode() == display.DEFAULT) // june 2013 { bRep.displaylist = display.GenList(); assert(bRep.displaylist != 0); @@ -5954,7 +5960,7 @@ //System.out.println("\tnew list " + list); //gl.glDrawBuffer(gl.GL_NONE); - if (usecalllists) + if (usecalllists && bRep.displaylist > 0) { // System.err.println("new list " + bRep.displaylist + " for " + this); display.NewList(bRep.displaylist); @@ -5963,7 +5969,7 @@ CallList(display, root, selected, blocked); // compiled = true; - if (usecalllists) + if (usecalllists && bRep.displaylist > 0) { // System.err.println("end list " + bRep.displaylist + " for " + this); display.EndList(); -- Gitblit v1.6.2