coding a quick inline process in .NET (visual basic)


Re: coding a quick inline process in .NET (visual basic)
#4
Unless I'm misunderstanding you, that's not true. Properly written LDraw-file-loading code definitely does not inline, and if you are inlining, it may explain the performance problems you are having. For example, when LDView loads an LDraw model, it reads and parses each ldraw file in the part library that is referenced from the top-level file (or any sub-file) exactly once. When the same file gets used in another location (which happens a lot with primitives), it simply refers to the already-instantiated object in memory that has already been created for that file.

This was actually somewhat difficult to do in C++ in 2000 when I started LDView, since C++ didn't really have good reference counting. (The std:Confusedhared_ptr class that handles reference-counted pointers was added in C++11, I think. I implemented my own reference counting.) It's much easier to do in C# and VB, because both of those use Garbage Collection, which takes care of the problem.

In order to render the model, you simply walk the tree. LDView flattens (inlines) parts when transforming the part data from an in-memory format that matches the original files into an in-memory format optimized for graphics output. It does this in order to improve run-time rendering performance, and if "Memory Usage" is set to "High", it sort of inlines the final geometry, but LDView's file loading code definitely doesn't inline.
Reply
« Next Oldest | Next Newest »



Messages In This Thread
Re: coding a quick inline process in .NET (visual basic) - by Travis Cobbs - 2014-06-27, 19:08

Forum Jump:


Users browsing this thread: 1 Guest(s)