[Interest] Qt3D not deleting buffers
Juan José Casafranca
jjcasmar at gmail.com
Mon Oct 3 13:40:36 CEST 2016
Hello!
I'm posting to act some questions about Qt3D.
I'm trying to show some information for my program. This information consist
on a regular grid (I'm painting the lines that define the voxels), a distance
map (in each voxel vertex I store a distance value) and the sources for the
distance (zones where distance is 0)
The software supports resizing the grid or changing the sources so the views
must be updated accordingly. To achieve that, I emit a signal when a change in
the distance or the grid is done and connect that signal to a slot that
performs the scene preparation. It isn't the best solution but for now is
enough.
The scene preparation slots cleans the previously allocated scene
(m_rootEntity->deleteLater()) and reconstructs the scene.
The reconstruction generates the geometry data for the different things I want
to view, creates the renderer and the materials and adds this components to
different entities. Finally, this entities are added to the root entity.
To reduce code paths, the first view also performs this steps (removes the
previously scene, which is null) and creates the new one. This works well.
My problem is when trying to delete an existing scene. I have been debugging
with gDEBugger and I have seen that buffers are not deleted (I imagine that VAO
are also kept) though the buffers are constructed with the geometry as parent,
and the geometry es an entity children (the entity is delete when I delete
m_rootEntity).
After 2 or 3 remeshing steps, the screen goes black and I cant see any
information.
I'm using the Qt3D version shipped with Qt 5.7.
Any idea what I'm doing wrong? I can provide some code if you ask for it, but
as the software I'm developing is big, I prefer to show the code when you ask
for it, so I don't fill this question with a lot of code that wouldn't be
necessary.
Thanks!
More information about the Interest
mailing list