Any one up for OSX work.

Roger, how can I compile the pandatools? I still have the same problem (see below). Am I missing something?

  • I would like to use the maya2egg tool to get data into my prototype.

  • I would like to be able to create a *.bam and a *.pz file.

This is not an issue anymore.

To all who are working on the osx version… I recently made some changes to panda’s core, that require corresponding changes in the “osxdisplay” subdirectory. I tried to make the corresponding changes as best I could, but since I don’t have a mac, I can’t test my code. So if the contents of that directory don’t compile any more, contact me:

jyelon@andrew.cmu.edu

Josh,

when did you make the change? I got CVS head 24 hours ago and didn’t have a problem. I’ll try to cvs update tomorrow and see if it stays the same.

Hope that helps,
Kaweh

you need this patch to make it compile

Index: src/osxdisplay/osxGraphicsStateGuardian.cxx
===================================================================
RCS file: /cvsroot/panda3d/panda/src/osxdisplay/osxGraphicsStateGuardian.cxx,v
retrieving revision 1.4
diff -r1.4 osxGraphicsStateGuardian.cxx
62c62
<   GLGraphicsStateGuardian(properties),
---
>   GLGraphicsStateGuardian(pipe),

though pview doesn’t work anymore.

The pview-problem wasn’t osx-specific (ie, I broke pview completely, on all platforms). It’s fixed now.

I still have the same problem. I got CVS head, is the change already commited?

:display: loading display module: libpandagl.dylib
Known pipe types:
  osxGraphicsPipe
(all display modules loaded.)
Assertion failed: (void *)(osxgsg) != (void *)NULL at line 89 of osxGraphicsPipe.cxx
Assertion failed: (void *)(osxgsg) != (void *)NULL at line 89 of osxGraphicsPipe.cxx
Assertion failed: (void *)(osxgsg) != (void *)NULL at line 89 of osxGraphicsPipe.cxx
Assertion failed: (void *)(osxgsg) != (void *)NULL at line 89 of osxGraphicsPipe.cxx
Assertion failed: (void *)(osxgsg) != (void *)NULL at line 89 of osxGraphicsPipe.cxx
Assertion failed: (void *)(osxgsg) != (void *)NULL at line 89 of osxGraphicsPipe.cxx
Assertion failed: (void *)(osxgsg) != (void *)NULL at line 89 of osxGraphicsPipe.cxx
Assertion failed: (void *)(osxgsg) != (void *)NULL at line 89 of osxGraphicsPipe.cxx
Assertion failed: (void *)(osxgsg) != (void *)NULL at line 89 of osxGraphicsPipe.cxx
Assertion failed: (void *)(osxgsg) != (void *)NULL at line 89 of osxGraphicsPipe.cxx
:framework(error): Unable to create window.

Thanks,
kaweh

OK, that’s fixed.

Thanks, Josh. All fine now.

Has anyone got a slightly more condensed list of instructions for compiling Panda on OS X? I can follow along from the forum posts, but if someone has cleaned up and clarified instructions, that would probably save me a few hours. :laughing:

hi there,

i’ve now created a page with collected instructions and a binary package for Panda3D (the instructions do not include the means to compile Panda3D yourself, i will add that later for people interested - until then you have to dig through this thread).

have a look at knuddl.net/moin.cgi/InstallPanda3d

please be aware that this is totally experimental! if you do not follow the instruction as exactly as possible the package won’t probably work. use at your own risk! this is not an official package, but hacked together by myself to make it easier for me to install Panda3D on other Macs. you still need to use the terminal for various parts.

the package reflects the result of this thread. there is a second thread here with a patch by tetious, which i have already applied to my private workspace but not yet to the binary package. this will give us shader support and most of the pandatools. i need to clean this up a little and i hope to contribute a patch back to Panda3D with all of this.

i am hoping to improve the package over time. so stay tuned for a new version within a couple of days (can’t give an ETA sorry - this is a hobby project of mine).

hope that helps,
kaweh

you can reach me at: kaweh (at) knuddl (dot) net - please be aware that i can’t give any support - the package is “as is”. i’m interested in any feedback. if i can help and time permits, i will certainly do so.

[edit] - this can be ignored now. mayald was using gcc 3.3 to link instead of gcc 4.0 as the rest. i fixed mayald and am a happy person now.


now i try to build the pandatools. so far i was able to build most of them.

now i try to build the maya tools (linking against Maya 7.0 - on OS X) but i fail.

any idea how this could be resolved?


ld: Undefined symbols:
__ZN10TypeHandle5_noneE referenced from libegg expected to be defined in libinterrogatedb.dylib
__ZN11TypedObject12_type_handleE referenced from libegg expected to be defined in libinterrogatedb.dylib
__ZN11TypedObject9init_typeEv referenced from libegg expected to be defined in libinterrogatedb.dylib
__ZN11TypedObjectD2Ev referenced from libegg expected to be defined in libinterrogatedb.dylib
__ZN12TypeRegistry13register_typeER10TypeHandleRKSs referenced from libegg expected to be defined in libinterrogatedb.dylib
__ZN12TypeRegistry15is_derived_fromE10TypeHandleS0_P11TypedObject referenced from libegg expected to be defined in libinterrogatedb.dylib
__ZN12TypeRegistry17record_derivationE10TypeHandleS0_ referenced from libegg expected to be defined in libinterrogatedb.dylib
__ZN12TypeRegistry3ptrEv referenced from libegg expected to be defined in libinterrogatedb.dylib
__ZNK12TypeRegistry8get_nameE10TypeHandleP11TypedObject referenced from libegg expected to be defined in libinterrogatedb.dylib
__ZTI11TypedObject referenced from libegg expected to be defined in libinterrogatedb.dylib
__Z24init_system_type_handlesv referenced from libexpress expected to be defined in libinterrogatedb.dylib
__ZN12TypeRegistry21record_alternate_nameE10TypeHandleRKSs referenced from libputil expected to be defined in libinterrogatedb.dylib
__ZN10MutexDebug10do_releaseEv referenced from libputil expected to be defined in libpipeline.dylib
__ZN10MutexDebug7do_lockEv referenced from libputil expected to be defined in libpipeline.dylib
__ZN10MutexDebugC2ERKSsb referenced from libputil expected to be defined in libpipeline.dylib
__ZN10MutexDebugD2Ev referenced from libputil expected to be defined in libpipeline.dylib
__ZN12TypeRegistry18get_parent_towardsE10TypeHandleS0_P11TypedObject referenced from libputil expected to be defined in libinterrogatedb.dylib
__ZN12TypeRegistry21register_dynamic_typeERKSs referenced from libputil expected to be defined in libinterrogatedb.dylib
__ZN6Thread12_main_threadE referenced from libputil expected to be defined in libpipeline.dylib
__ZN6Thread16init_main_threadEv referenced from libputil expected to be defined in libpipeline.dylib
__ZN9CycleData17complete_pointersEPP13TypedWritableP9BamReader referenced from libputil expected to be defined in libpipeline.dylib
__ZN9CycleData6fillinER16DatagramIteratorP9BamReader referenced from libputil expected to be defined in libpipeline.dylib
__ZN9CycleData6fillinER16DatagramIteratorP9BamReaderPv referenced from libputil expected to be defined in libpipeline.dylib
__ZN9CycleDataD2Ev referenced from libputil expected to be defined in libpipeline.dylib
__ZNK10MutexDebug6outputERSo referenced from libputil expected to be defined in libpipeline.dylib
__ZNK12TypeRegistry16get_parent_classE10TypeHandlei referenced from libputil expected to be defined in libinterrogatedb.dylib
__ZNK12TypeRegistry22get_num_parent_classesE10TypeHandleP11TypedObject referenced from libputil expected to be defined in libinterrogatedb.dylib
__ZNK12TypeRegistry9find_typeERKSs referenced from libputil expected to be defined in libinterrogatedb.dylib
__ZNK9CycleData14write_datagramEP9BamWriterR8Datagram referenced from libputil expected to be defined in libpipeline.dylib
__ZNK9CycleData14write_datagramEP9BamWriterR8DatagramPv referenced from libputil expected to be defined in libpipeline.dylib
__ZNK9CycleData6outputERSo referenced from libputil expected to be defined in libpipeline.dylib
__ZTI10MutexDebug referenced from libputil expected to be defined in libpipeline.dylib
__ZTI9CycleData referenced from libputil expected to be defined in libpipeline.dylib
__ZTV11TypedObject referenced from libputil expected to be defined in libinterrogatedb.dylib
/usr/bin/libtool: internal link edit command failed
make[1]: *** [Opt2-osx/libmayaegg.dylib] Error 1
make: *** [install-mayaegg] Error 2

thanks,
kaweh

A new version 0.3 of the Panda3D for Mac OS X package is available here.

Changes:

  • Updated to latest CVS.
  • Linked against the Cg Framework, shader support is enabled! If you upgrade from 0.2 to 0.3 you have to install the Cg Framework (instructions on page).
  • Includes many Panda3D tools (see list on page).
  • Added correct license to installer, improved installer.

Enjoy,
Kaweh

[Edit] New samples archive has been uploaded too now, including some of the shader samples.

[Edit] The patch against current CVS head can be found here: http://knuddl.net/Panda3D_MacOSX_0.3.patch. The used Config.pp can be found here: http://knuddl.net/Config.pp

Hey there,

is there a way to tell ppremake to generate Makefiles that strip the resulting .dylib/.so from symbols?

Thanks,
Kaweh

In the Linux case, it simply doesn’t pass -g to the compiler when OPTIMIZE=4, which achieves the same effect. (See the definition for CFLAGS_OPT1/2/3/4 in dtool/Config.pp).

I suspect the OSX ppremake scripts may not be set up to do the equivalent thing properly. Is there a compiler option on OSX, similar to -g, to avoid putting the symbols there in the first place? You can experiment with customizing your CFLAGS variable to see if you get this effect.

David

Thanks David. I’m currently using OPTIMIZE=2, I’ll give OPTIMIZE=4 a try and will look into Config.pp/Config.osx.pp.

Well, OPTIMIZE 4 compiles fine, but makes pview and custom code crash with:

/usr/local/panda/include/deletedChain.T:117: failed assertion `orig_flag == (PN_int32)DCF_alive’
Abort trap

I assume that the gcc 4.0 optimization in this case is a tad to aggressive? :wink:

Anyways I go back to OPTIMIZE 2 (and hand edited Config.pp to obmit the -g flag) for now. Nothing I will keep anyways for longer, just want to see the difference in size.

Thanks for the tip, David.

Cheers,
Kaweh

A new version of the “Panda3D for OS X” package is available:

knuddl.net/moin.cgi/InstallPanda3d

Changes:

  • Maya support and more tools added (bash configuration needs to be updated to make this work).
  • Fixed keyboard support (the Escape key is now working as expected).
  • Added mousewheel support.
  • Package size reduced (the package only includes the stripped libraries).

Please let me know if you run into any problems.

Cheers,
Kaweh

First off, thanks to everyone working on the OSX port of Panda3D.

My lab is quite interested in using Panda3D for running VR experiments to study spatial navigation, however, OSX/Intel support is a key.

We currently do most of our development in python, which is why Panda3D seems like the perfect fit.

Is there any reason why Panda3D would not compile with the Universal Cg-1.5 release from nVidia? It seems like that is the only non-universal dependency…

Also, I know that no one is working on sound, but shouldn’t it be possible to get it working because it is based on the fmod api, which runs on OSX.

Thanks again,
Per

both shouldn’t be a problem really (famous last words).

i just didn’t have the time to come around to create a Intel version and downloading/installing/re-compiling with fmod.

intel version shouldn’t be to far away, i’m planning to release a new version within the next week and might have time to try to get a Intel build up and running, too.

i didn’t yet use Cg 1.5 because at that time i created the package it was still in beta (as far as i remember).

essentially as soon as you got the compiling process running on OS X, it’s not a big deal to get other packages in (though i struggled a litte while with Maya and the compile process).

cheers,
kaweh