Yes, it is done in component listener
addComponentListener(new ComponentAdapter() {
@Override
public void componentResized(ComponentEvent e) {
resizeRenderer(getSize());
}
});
I'd like to add some more info which hopefully can help to identify the reason of issue. I was thinking what's special about those elements remaining visible. It turns out we have elements added in batches and have ones added directly. Apparently those not using batches remain visible.
Here is a part of code where the world is created:
public void setupWorld() {
...
HashSet<Element> nonBatched = new HashSet<>();
// add non batched elements here
...
worldObject = Object3D.createDummyObj();
for (Group group : getElementGroups()) {
List<Object3D> objects = new ArrayList<Object3D>();
for (Element element : group.getElements()) {
try {
Object3D object = new Object3D(0);
element.setObject3D(object);
if (element.isBatchEnabled() && !nonBatched.contains(element)) {
objects.add(object);
} else {
object.setAdditionalColor(RGBColor.white);
object.compile(true, true, true, true, 8000);
world.addObject(object);
group.addObject3D(object);
}
} catch (Exception e) {
_log.error("Unable to create Object3D for element : " + element, e);
}
}
Object3D object = null;
if (objects.size() > 0) {
object = Object3D.mergeAll(objects.toArray(new Object3D[objects.size()]));
object.setTexture(TextureHandler.ELEMENTS_TEXTURENAME);
object.setName(group.getName());
object.setVisibility(group.isVisible());
object.setAdditionalColor(Color.white);
object.compileAndStrip();
world.addObject(object);
worldObject.addChild(object);
group.addObject3D(object);
}
}
...
}