dtool folder

hi guys,

I am studying the Panda3d source code, and I wish to understand the content inside the dtool folder.

While reading the code, and following(tracking dependences) the order in the imports sequence (header files), I saw that the dtoolbase.h is imported by the pandabase.h, which is the first include in the pandaFramework.h … so, I guess that the content in the dtool folder, are some sort of foundation to the Panda system. Am I right?

And while giving a quick look over the classes, they seem to define some general types…

But anyway, I wish to ask what are the role of those classes (in the dtool folder) in the Panda3D system?

Obviously, an overview. :slight_smile:

thanks,
Paulo

You are correct, the classes in dtool generally serve as a foundation for the rest of Panda. The name “dtool” is supposed to suggest the fundamental tools on which Panda itself is built.

In practice, most of the stuff in dtool is for the purpose of supporting interrogate, which is used to generate the Python interfaces for the rest of Panda. There are also several low-level classes like Filename, Mutex, TypedObject, and the whole Config system.

David

Thanks David!

Just a couple of questions more. How can I identify the classes that intend to support interrogate? And the ones which are the system foundation?

Another problem; I’ve downloaded the source code, but seems to lack the dtool_config.h file. I’ve tried to substitute it by the file I had in a previous Panda’s version (1.6), but it seems not to work, and reading this file I saw none reference to the iPhone.

Could you send me this file?

Thanks again,
Paulo

interrogate consists of cppparser, interrogate, interrogatedb, test_interrogate, and parser-inc. The remaining directories are support for all of Panda (including interrogate).

dtool_config.h is generated during the build process, either by ppremake or by makepanda.

David

Ok!

I was trying to build Panda in Xcode… so i believe it will never generate the dtool_config.h

I will compile it using the console commands, and later on copy the dtool_config.h into the Xcode project… let see if it works :slight_smile:

Thank you David!