Usage of Fog

Even then, it can’t be related to the libRocket module unless wezu is explicitly importing panda3d.rocket.

I’ve uninstalled 1.7.2 before I installed buildbot 1.80 some time ago, then uninstalled that and used the newest build. I used the same directory forall the buildbot versions, but I did check if the uninstaller deleted all the files in that dir (and it did, it deleted the whole dir, even with the samples tha I put there myself). The only thing left was the egg plugin for 3dsmax (but in 3ds’ scripts dir).

I think something else installed python (2.7) on my machine, so I run pphyton to be on the safe side. But even pview won’t run, so I don’t think it’s a python thing.

If there is something still from an old version - how can I test that?

When I’ll get back home I’ll also check if I can get 1.7x working again. But I think there must be something wrong with my PC. I’ll try a different dir or even drive, reboot after uninstalling, reboo after installing, don’t know what else can I do.

Uninstalled 1.8.0 (456)
Installed 1.7.2 ->all ok
Unistalled 1.7.2, Installed 1.8.0 (376) ->all ok
Unistalled 1.8.0 (376), Installed 1.8.0 (449) ->error
Unistalled 1.8.0 (449), Installed 1.8.0 (450) ->error
Unistalled 1.8.0 (450), Installed 1.8.0 (453) ->error
Unistalled 1.8.0 (453), Installed 1.8.0 (456) ->error

v450 (from 2012.01.17) works on a Vista laptop, I wanted to test it with the newest build, but due to a missclick I tested this one.

v450 gives me the same error on a different machine also running Windows XP, but Panda3d was never installed there before.

…I think this part of the topic should be moved, It’s not about fog any more.

457 works fine on Windows 7 for me.

I can confirm that it runs on Windows 7.
So this is a Windows XP bug only.
And I think I can call it a bug since it looks the same on 2 different PCs.
If there’s something I can do to help find/fix it then just let me know.

Could you put something like “print module, pathname” (or use pdb to find out) or so before the line that generates the exception and let me know which module it’s having trouble importing?

Sure… if you only tell me how :blush:

The line that’s giving me problems is:
from panda3d.core import*

I also tried:
from panda3d.ai import*
from panda3d.bullet import*
from panda3d.direct import*
from panda3d.egg import*
from panda3d.fx import*
from panda3d.ode import*
from panda3d.physics import*
from panda3d.vision import*
result is always this:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Panda3D-1.8.0\panda3d.py", line 147, in __getattr__
    mod = self.__manager__.libimport(self.__library__)
  File "C:\Panda3D-1.8.0\panda3d.py", line 128, in libimport
    return cls.imp.load_dynamic(name, target)
ImportError: DLL load failed with error code -1073741795

I also tried some random stuff from the core:
from panda3d.core import AmbientLight
from panda3d.core import AnimInterface
from panda3d.core import ButtonThrower
from panda3d.core import CollisionSegment
from panda3d.core import ConnectionWriter
from panda3d.core import DepthTestAttrib
from panda3d.core import FadeLODNode
from panda3d.core import GraphicsEngine
from panda3d.core import LoaderOptions
from panda3d.core import NetDatagram
from panda3d.core import PartBundleHandle
from panda3d.core import Point2D
from panda3d.core import PTA_int
from panda3d.core import SimpleLru
from panda3d.core import SubfileInfo
from panda3d.core import VertexTransform
result:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Panda3D-1.8.0\panda3d.py", line 202, in __getattr__
    mod = self.__manager__.libimport(lib)
  File "C:\Panda3D-1.8.0\panda3d.py", line 128, in libimport
    return cls.imp.load_dynamic(name, target)
ImportError: DLL load failed with error code -1073741795

If the error occurs here:

  File "C:\Panda3D-1.8.0\panda3d.py", line 128, in libimport 
    return cls.imp.load_dynamic(name, target)

Then edit C:\Panda3D-1.8.0\panda3d.py using a text editor, find line 128, and put this line before it:

    print name, target

Then show me what it prints out right before the exception.

Can you also try opening the DLL in question (it’s probably going to be libpandaexpress.dll or libpanda.dll) using Dependency Walker (Google it) and make a screenshot of the window?

Ok. done.

It prints (twice):
libpandaexpress C:\Panda3D-1.8.0\bin\libpandaexpress.dll

The dependency walker shows this for libpandaexpress.dll:

img840.imageshack.us/img840/2063/depwalk4.jpg
img404.imageshack.us/img404/9812/depwalk1.jpg
img813.imageshack.us/img813/6250/depwalk2.jpg
img688.imageshack.us/img688/4043/depwalk3.jpg

The problem (missing?) files seam to be:
IESHIMS.DLL
WER.DLL
EFSADU.DLL

…and there’s also a reddish icon at windows\system32\MPR.DLL

I’ve googled a bit and I don’t think the dll I’ve wrote are the problem - unless panda3d really uses them.
wer.dll is part of the vista/7 error reporting system
ieshims.dll is some compatibility gizmo for IE 8 again used only on vista/7
efsadu.dll if for the microsoft encrypted file system that is not part of win xp home edition.

I can try and copy these files from a vista pc, but I’d be stuned if that works…

There are some topics on various boards with problems like mine and these dlls reported by dependency walker, but none give any solution (that I understand).

I’m not sure about this, but if the libpandaexpress message shows up twice, then it must mean it has passed that code twice, and the first time it must have succeeded. So the issue is probably that it’s trying to load the same library twice for some reason. I’ll look into how this is possible.

OK, can you try the latest version of panda3d.py?
panda3d.cvs.sourceforge.net/view … panda3d.py

You might need to update it in two locations: in the bin directory, and in direct/ffi.

With that panda3d.py I get:

C:\>ppython
Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> from panda3d.core import *
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Panda3D-1.8.0\panda3d.py", line 200, in __getattr__
    for obj in dir(self.__manager__.libimport(lib)):
  File "C:\Panda3D-1.8.0\panda3d.py", line 133, in libimport
    lib = cls.imp.load_dynamic(name, target)
ImportError: DLL load failed with error code -1073741795
>>>

…but I don’t have a copy of panda3d.py in he bin folder, just in the main panda folder and in direct/ffi.

What do you get with the print statement added back in?

I’ve added the print statement like this (in both panda3d.py files, in the main dir and in direct/ffi):

 # Now import the file explicitly.
        print name, target
        lib = cls.imp.load_dynamic(name, target)
        cls.__libraries__[name] = lib
        return lib

It prints exactly this:

>>> from panda3d.core import *
libpandaexpress C:\Panda3D-1.8.0\bin\libpandaexpress.dll
libpandaexpress C:\Panda3D-1.8.0\bin\libpandaexpress.dll
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Panda3D-1.8.0\panda3d.py", line 201, in __getattr__
    for obj in dir(self.__manager__.libimport(lib)):
  File "C:\Panda3D-1.8.0\panda3d.py", line 134, in libimport
    lib = cls.imp.load_dynamic(name, target)
ImportError: DLL load failed with error code -1073741795
>>>

I don’t understand how that can happen, unless perhaps both of the files are imported. Can you put a different print statement in both files to verify if somehow, both files are ending up being imported? And if that is the case, can you delete the one in ffi and try again?

Only the one from the main dir gets executed.
I also noticed that the first time I run it there’s a 0.5-1 second delay between the first print and the second one. Don’t know if that’s relevant, probably not.

What’s the traceback if you trigger an assertion error at that location?

If you can only give me a tip on how to do that, I’ll write what I get.

I’m just a rookie scripter, not a pro programer, I hardlly know what a assertion error is anyway.

assert False

Or raise an exception of your choice. I’m just interested in the traceback.