Author Topic: Delay Initialization Direct3D - OS X and Linux  (Read 8138 times)

Metzen

  • Full Member
  • ***
  • Posts: 35
    • View Profile
Delay Initialization Direct3D - OS X and Linux
« on: September 29, 2007, 07:40:25 PM »
Hi,

I'm a long time TopoFusion user that has switched from PC to Mac OS X, and quite like the Mac.  But I miss TF.

I had it working under Parallels, but their latest update made it stop working, now it dies with the error "Fatal Error: Couldn't create memory pool surface".

Of course, this is all due to Parallels' (and VMWare Fusion's) limited and flaky support for Direct3D.

This got me wondering if the 2D aspects of TF wouldn't work just fine if the 3D weren't initialized.

Is it possible to delay the initialization of TF?  Or possibly have a shortcut in the Start Menu that starts TF in "2D Only Mode".

I don't understand the inner workings of TF, of course, but if Direct3D isn't used for anything but the actual 3D functions, adding a $without_3d variable (or whatever) that prevents the initialization of Direct3D and hides the 3D related buttons and file options seems like it would work.

I have seen other people searching the net for the same solution, for TF specifically.  In fact, one had it installed under Linux and it ran, but died at the Direct3D initialization.  I wouldn't be surprised if the 2D things worked quite well under OS X and Linux with the 3D parts disabled.

Thanks,
Metzen

P.S.  If anyone else would find this useful, speak up...   :}

Krein

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 1203
  • TopoFusion Author
    • View Profile
    • http://www.topofusion.com/diary
Delay Initialization Direct3D - OS X and Linux
« Reply #1 on: September 29, 2007, 09:08:29 PM »
Hi,

Interesting that the latest Parallels broke TF support.

I like your thinking on a 2D-only version of TF.  The idea has some potential, however, it won't help in this case, or in any Linux/OS X support.

The 2D functions still use Direct3D (the Basic version uses DirectDraw in DX7), because in DX8+ directdraw is incorporated into Direct3D.

The error message about a memory pool surface not being created is a purely 2D function that's failing.  It's the memory cache of map tiles that speeds up regular display of maps.

Hopefully they'll sort out the D3D support in future versions of Parallels.  I don't think there is too much we can do about it until then.

Thanks for writing in, as always.

Metzen

  • Full Member
  • ***
  • Posts: 35
    • View Profile
Delay Initialization Direct3D - OS X and Linux
« Reply #2 on: September 30, 2007, 05:11:50 PM »
Thanks for the reply.

Oh, well, it was a beautiful dream while it lasted.

There are a number of Linux projects to emulate Direct3D (such as http://sourceforge.net/projects/dxglwrap, which maps it to OpenGL and supposedly supports up to DX8), hopefully they'll progress enough to support TF under Linux.

Both Parallels and VMWare Fusion are still under very active development, so I'm confident one of them will figure it out soon.  Fusion just crashes after using TF for a few minutes, though a better video card may help (it says mine is lacking features).

Party on!

Metzen

Krein

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 1203
  • TopoFusion Author
    • View Profile
    • http://www.topofusion.com/diary
Delay Initialization Direct3D - OS X and Linux
« Reply #3 on: September 30, 2007, 05:34:09 PM »
Yep - that's the price we pay for going with the latest and greatest (DX9... well, 10 is out now too, but still).

If you don't need any Pro specific stuff, you might try version 2.971 (basic).  It's DX7 and will likely emulate much better.

Thanks for keeping us posted on emulation issues.

Metzen

  • Full Member
  • ***
  • Posts: 35
    • View Profile
Delay Initialization Direct3D - OS X and Linux
« Reply #4 on: October 01, 2007, 07:00:50 AM »
Good idea, thanks for the suggestion on the Basic version.

I'll give it a try.