Page 2 of 3

Re: Plasma Explorer "PFR"

PostPosted: Fri Jul 04, 2008 12:39 pm
by Tsar Hoikas
Paradox wrote:Please ensure that you use globalization for file paths as well. In order for the program to run under Mono on Mac or Linux, the file paths need the / character rather than \ (Windows).


You know, I actually took that in consideration this time and used System.IO.Path.DirectorySeparatorChar... Now, you just have to be sure that Mono/DotGNU/.NET/Whatever sets that variable appropriately, and paths are generated correctly.

Re: Plasma Explorer "PFR"

PostPosted: Fri Jul 04, 2008 2:20 pm
by Branan
I don't think there's a Manged DX runtime available on Mono, and probably not even with .NET under Wine.

Depending on how badly the DX is tied in with the rest of everything, I might be able to port it to OGL using the Tao framework - that will work on all platforms. I'd be willing to maintain the rendering code if I did the port, of course.

Re: Plasma Explorer "PFR"

PostPosted: Fri Jul 04, 2008 2:56 pm
by Tsar Hoikas
I didn't think there was, and I made the move to SlimDX the day of this release because Managed DirectX has been discontinued by Microsoft.

The impact of the DirectX code is currently somewhat minor. Some of the SlimDX math classes are used in the Matrix and Bounding Box code. That would need to be stripped out and a generic component replaced (Does Tao.OpenGl provide those?). The two biggest concerns of mine are that DirectX is heavily used in the Matrix editor (another thing that could be solved by other generic math classes) and in the Mipmap implementation. Cyan stores many of its mipmaps in a "DDS-esque" format, and I handle that by generating the appropriate header and shipping the data off to Direct3D and save the highest mip level to a System.Drawing.Bitmap (PNG).

If you're still interested in porting the DirectX stuff to OpenGL, let me know! I'm not quite at the point where I'm going to actively do much with DirectX yet, though... It's coming soon.

Re: Plasma Explorer "PFR"

PostPosted: Fri Jul 04, 2008 3:42 pm
by Branan
It doesn't look like Tao.OpenGl provides any matrix classes. Those would have to be re-written - maybe as bindings to something like Eigen (link here)?

The DDS stuff would also have to be done by hand, but that's not a huge amount of code to write.

EDIT: A better binding than Tao would probably be OpenTK (link here). It has a Winforms-based control that works on Windows and Linux. The only options with Tao are a windows-only winform control and a GTK# based cross-platform control. OpenTK also has a matrix library, so that just leaves re-writing the DDS stuff.

EDIT2: OpenTK Does have a DDS Loader! I really should learn to read the whole documentation for something before I post about it *sigh*. Whether this loader will work for what Uru does is another matter, but it ought to using the exact same technique Hoikas is using to make the DX DDS Loader work.

Re: Plasma Explorer "PFR"

PostPosted: Mon Jul 07, 2008 9:05 am
by diafero
Looks nice so far :) Compared to PRPExplorer, the tabs make the right part much less cluttered. I only wonder how it'll look with really many objects opened.
The only thing I do not understand is why some unknown object types open a hex editor and others say "no editor associated".
Which editors I want? Ehm, all of them :D

One question regarding dependencies: For PRPExplorer, it was possible to use it without the DirectX SDK (which is quite big) after some dll files were added to the folder of the exe file. Is this possible here as well?
I'll yet have to test if it also works in my Virtual Machine - PRP Explorer does not because it seems to depend on a graphics card which accelerates DirectX which of course the VM (VirtualBox) does not have.

Re: Plasma Explorer "PFR"

PostPosted: Mon Jul 07, 2008 12:02 pm
by Tsar Hoikas
The "No editor associated" bit is pretty complicated. When you get that message, it usually means that there is support for reading that object in the core library, but it's not "hooked up" to any editor. The less common reason is if the object has an editor, but the core library throws an certain exception. This happens when you try to view uncompressed MipMaps. When you open a lot of object, you may want to float some of the windows...

I actually haven't tested that. I did try distributing SlimDX with the application, but my QA gerbils promptly told me that cause fun errors... I would *imagine* that it *might* work without the DX SDK though.

Re: Plasma Explorer "PFR"

PostPosted: Mon Jul 07, 2008 2:38 pm
by Branan
Just FYI, SlimDX fails to install under Wine due to verification of signed executables not being implemented.

Re: Plasma Explorer "PFR"

PostPosted: Tue Jul 08, 2008 1:00 pm
by TomahnaGuy
Code: Select all
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.FileNotFoundException: Could not load file or assembly 'SlimDX, Version=2.0.4.38, Culture=neutral, PublicKeyToken=b1b0c32fd1ffe4f9' or one of its dependencies. The system cannot find the file specified.
File name: 'SlimDX, Version=2.0.4.38, Culture=neutral, PublicKeyToken=b1b0c32fd1ffe4f9'
   at SampleFramework.Sample..ctor()
   at plExplorer.Editors.ObjectViewer..ctor(plKeyImp so)
   at plExplorer.Controls.PageTree.fRenderKey_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleMouseUp(MouseEventArgs e)
   at System.Windows.Forms.ToolStripItem.FireEventInteractive(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStripItem.FireEvent(EventArgs e, ToolStripItemEventType met)
   at System.Windows.Forms.ToolStrip.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.ToolStripDropDown.OnMouseUp(MouseEventArgs mea)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.ToolStrip.WndProc(Message& m)
   at System.Windows.Forms.ToolStripDropDown.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog].



************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
Plasma Explorer
    Assembly Version: 0.0.0.40532
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/EwanS/My%20Documents/Plasma%20Explorer.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.1433 (REDBITS.050727-1400)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
Plasma
    Assembly Version: 0.0.0.37215
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/EwanS/My%20Documents/Plasma.DLL
----------------------------------------
WeifenLuo.WinFormsUI.Docking
    Assembly Version: 2.2.2864.18696
    Win32 Version: 2.2.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/EwanS/My%20Documents/WeifenLuo.WinFormsUI.Docking.DLL
----------------------------------------
DXFramework
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/EwanS/My%20Documents/DXFramework.DLL
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.


Got this when trying to open a custom avatar and render it.

Re: Plasma Explorer "PFR"

PostPosted: Tue Jul 08, 2008 1:08 pm
by Branan
look like you forgot to install SlimDX. The DLLs for that don't come with Plasma Explorer

Re: Plasma Explorer "PFR"

PostPosted: Wed Jul 09, 2008 12:59 am
by T_S_Kimball
diafero: What version of VirtualBox are you running? They had a major update a month or two back, in part to work better with Solaris (they're part of Sun now after all ;) ). Dunno if that would fix your DX issues or not; I could not get an older version running on my main XP box, but that was the nLite'd one so I may have taken out one too many things. :P

I've not had a chance to install it yet, but quick question regarding PFR's renderer... Is this doing a 'static' render (locked camera) or something more dynamic (movable camera a la Blender or SL)? I believe there was an OpenGL UI solution put in place both under some obscure projects related to libsecondlife, as well as the Linux/FOSS Viewer for SL itself (would be an ultimate irony to borrow from this code). I tried to scour various old haunts but can't find the source of what I'm looking for anymore. :( Bah.

--TSK