News:

 

Topic: Making NVil run on Linux...  (Read 28800 times)

0 Members and 1 Guest are viewing this topic.

  • No avatar
  • Posts: 976
  • Polygon
October 10, 2017, 08:09:58 pm
Have anyone managed to successfully run NVil under Wine or through a local Mono installation in Linux environment?

What I already tried:
1. Wine: with dotnet40 installation through winetricks (sucks because it requires WINEARCH=win32, so not really useful for production), SlimDX for .NET 4.0.
2. Wine: with .NET 4.0 installed through redistributable MSI package. SlimDX also installed.
3. Same as (1), but with an additional installation of d3d9_43 (through winetricks).
4. Same as (1), but with an additional installation of d3d9 (through winetricks).
5. Ran with Mono in pure Debian environment.
6 .Some more combinations that I can't recall ATM.

The closest I could get to a fully working NVil, is what can be seen on the screenshot below. Pretty much nothing works. UI is does not respond, there are artifacts leaking from the desktop to the main window (if I run NVil in its own window - not the case on the screenshot), viewport is not rendered at all. :(


  • Posts: 514
  • Polygon
October 10, 2017, 11:39:17 pm
I like the flat look to the buttons.

  • No avatar
  • Posts: 2103
  • Polygon
October 11, 2017, 01:53:58 am
I attempted Nvil on linux some time ago, but failed.


  • No avatar
  • Posts: 2103
  • Polygon
October 11, 2017, 01:57:58 am
I like the flat look to the buttons.

The rounded buttons can be disabled in Nvil via "Edit > Preferences > Colors > Enable visual style" (untick/disable that option and restart Nvil)

The rounded buttons will also be disabled if you have disabled windows service "Themes"


  • Posts: 514
  • Polygon
October 11, 2017, 09:06:13 am

The rounded buttons can be disabled in Nvil via "Edit > Preferences > Colors > Enable visual style" (untick/disable that option and restart Nvil)


Thanks for that tip. I just tried and it works well for default interface buttons but not for custom buttons (which is the majority of my interface). No big deal, but the flatter buttons do give the interface a slightly more modern look.

Sorry rubberDuck, back to the topic at hand.
« Last Edit: October 11, 2017, 09:11:03 am by kevjon »

  • No avatar
  • Posts: 976
  • Polygon
October 11, 2017, 09:10:38 pm
Sorry rubberDuck, back to the topic at hand.
No problemo. ;)

I attempted Nvil on linux some time ago, but failed.
I wonder if the broken UI is caused by some incompatibility of Wine and .NET 4.0 or is it related to D3D9.

Anyway, I just installed the most recent version of Mono - 5.2.0 SR4 (5.2.0.224) and gave NVil-May-16-17 a go.
Ran it directly from shell via: mono NVil\ 1.0 exe.
Code: [Select]
Unhandled Exception:
System.MissingFieldException: Field 'DigitalFossil.AbstractGraphicWindow.IsSteam' not found.
[ERROR] FATAL UNHANDLED EXCEPTION: System.MissingFieldException: Field 'DigitalFossil.AbstractGraphicWindow.IsSteam' not found.

  • No avatar
  • Posts: 2103
  • Polygon
October 11, 2017, 09:20:28 pm
For Nvil to run on mono, I believe Nvil would need to be compiled for mono.
I do not think Slimdx is compatible with mono, you would probably need sharpDX.




  • No avatar
  • Posts: 976
  • Polygon
October 11, 2017, 11:30:00 pm
Interesting.
The problem is that SharpDX is a nuget package. I tried running it through nuget.exe (Nuget CLI), but nuget itself won't run at all. Currently testing on Wine with dotnet40 installed through winetricks.
Seems like nuget can't detect mscoree.dll (which is set to 'native' in winecfg):

Code: [Select]
***@debian:~$ wine ~/.wine/drive_c/users/***/Temp/nuget.exe
err:module:import_dll Library mscoree.dll (which is needed by L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorsvw.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"C:\\windows\\Microsoft.NET\\Framework\\v4.0.30319\\mscorsvw.exe" failed, status c0000135
err:service:service_send_command service protocol error - failed to write pipe!
err:module:import_dll Library mscoree.dll (which is needed by L"C:\\users\\***\\Temp\\nuget.exe") not found
err:module:LdrInitializeThunk Main exe initialization for L"C:\\users\\***\\Temp\\nuget.exe" failed, status c0000135

Maybe it will work with .NET 4.0 installed through a redistributable .msi.

Have you already explored this route? Wine with Mono (its windows version http://dl.winehq.org/wine/wine-mono/4.7.1/, not the Linux one) or .NET 4.0 and SharpDX?
« Last Edit: October 11, 2017, 11:33:52 pm by rubberDuck »

  • No avatar
  • Posts: 2103
  • Polygon
October 12, 2017, 03:36:45 am
I did not explain.
Nvil would probably need to use sharpdx, so Nvil would need to be changed internally to use sharpdx.

I do not see any easy route for Nvil on Linux.



  • No avatar
  • Posts: 976
  • Polygon
October 12, 2017, 12:43:25 pm
Yeah, I guess you're right.  :-\

Well, there are still two years left until Microsoft cuts the extended support of Windows 7. Perhaps during this time Wine community will come up with a better .NET 4.0 and DX compatibility, who knows. I'll keep my fingers crossed for that.

  • No avatar
  • Posts: 2103
  • Polygon
October 12, 2017, 04:04:04 pm
Whatever happens, win7 is the last MS_windows I will be using, it is just "Software bloat" now. It is only Nvil that has kept me with MS_windows, but for how much longer I do not know.


  • No avatar
  • Posts: 2103
  • Polygon
October 13, 2017, 08:04:34 am
Thanks for that tip. I just tried and it works well for default interface buttons but not for custom buttons (which is the majority of my interface). No big deal, but the flatter buttons do give the interface a slightly more modern look.

You would need to go with icons. I am using text icons for a custom UI I am building.

Example:-


« Last Edit: October 13, 2017, 08:10:26 am by steve »

  • Posts: 514
  • Polygon
October 13, 2017, 10:58:36 am
That UI is looking good steve. I'll be interested in seeing it when you've finished.

The text and the square box is a single image file ?

So when creating a new button you only have "show image" checked, "show text" is not checked ?

  • No avatar
  • Posts: 976
  • Polygon
October 13, 2017, 02:29:26 pm
Whatever happens, win7 is the last MS_windows I will be using, it is just "Software bloat" now. It is only Nvil that has kept me with MS_windows, but for how much longer I do not know.
Me too. I'm already running Debian on two machines and the performance, as well as overall user experience, is amazing. Night and day when compared to the time when I had Vista and Seven installed on them. And I consider Seven to be Microsoft's best operating system ever.
I'm holding off with conversion of my workstation to a Linux machine until the end of Seven's lifecycle. There are still a couple of programs that I use which don't have official Linux production builds yet (like Unity - still experimental). But there are only a couple of them left.
---

I'm not an expert in this kind of things, but if IStonia ever decides to port NVil to Linux, then Mono + OpenTK combo might be worth investigating.

Mono compatibility: http://www.mono-project.com/docs/about-mono/compatibility/
Mono class status pages: http://go-mono.com/status/
Mono doesn't support WPF and they have no plans of implementing it. Possible solutions are to use GTK# accross Windows, Linux and OS X systems (http://www.mono-project.com/docs/gui/gtksharp/) or split the UI and use native toolkits for each platform. I've also seen XWT being mentioned as another option (https://github.com/mono/xwt).

OpenTK:
https://github.com/opentk/opentk/
Quote
The Open Toolkit library is a fast, low-level C# binding for OpenGL, OpenGL ES and OpenAL. It runs on all major platforms and powers hundreds of apps, games and scientific research.
Use OpenTK to add cross-platform 3d graphics, audio, compute and haptics to your C# application. Integrate it into your existing user interface or use it standalone without any external dependencies.

  • No avatar
  • Posts: 3752
  • Developer
  • Administrator
  • Polygon
October 14, 2017, 10:01:38 am
I don't think I will be able to look into this soon. It is a very huge task.