1) Reworked void Plater::priv::reload_from_disk() to be more general
2) Added source data to class ModelVolume
3) Modified .3mf import/export to save/load volume matrices and source data
4) Incremented .3mf version to 2
Two bugs were fixed:
1) An entry in the GLVolume index was not always created when it should
have been.
2) Removing empty volumes from the list of GLVolumes did not update
the GLVolume index. This is an old issue, but it likely surfaced
now with the introduction of splitting the large GLVolumes
into multiple shorter ones.
as _set_current() tested for visibility of the window on the screen.
Improved memory management by:
1) Allocating small (around 3MB) vertex buffers to be sent to the GPU.
2) Passing the small vertex buffers to the GPU as quickly as possible.
A bit of copy / paste refactoring into common functions.
For an unknown reason, if the scrolling is performed on Windows
with the two finger gesture on touch pad, there is no Idle event
generated on some computers.
The Idle is not generated on Vojtech's laptop, it is generated
on Enrico's laptop.
evt.Skip() solves the issue on Vojtech's laptop.
including the alpha channels, which have their 3 lowest bits set to zero.
In case some blending occurs, the lowest 3 bits will likely be used
to interpolate between the false colors, therefore the 3 lowest bits
may be used to detect alpha blending or multi-sampling.
for the GLVolumes before sending to the GPU driver. The following commits
were partially reverted:
4269c8b23cb6878a20f468a916d0079ecaf647a0 Removed GLVolume non-VBO rendering
d15698e21e86a4e896bbb5f3c59440ec2dc721e9 GLVolume and GLIndexedVertexArray refactored to send data to gpu at the first render call
Namely, the GLVolume buffers are "shrink to size"'d before sending their
content to the OpenGL driver, and the vertex buffers are populated
as quickly as possible from the GLVolume, so that the same buffer is not
kept twice in RAM on systems, where the RAM is shared with the graphics
card.
Also the memory allocation reporting was improved for the GLVolumes.