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