My application

Join the team. This area is for people who want to participate in OpenMW's development in one way or another.
Post Reply
User avatar
AngleBracket
Posts: 32
Joined: 01 Jan 2013, 02:53

My application

Post by AngleBracket »

Hi all, I'm a mid-level C++ programmer with experience maintaining similar projects under Linux and Windows, the best example being a fork of a GPL'd MMO client written in C++. Most of my recent work has been with .NET under Windows, but I'm comfortable developing under both Linux. I also have experience with web development using PHP and Python.

I found out about the project through a blog post about it, and since Morrowind was my favorite game as a kid I decided I'd see what I could do to help get Morrowind running natively under Linux.

I've started implementing the code for Feature #449 in my OpenMW fork and my OIS fork (only for Windows and Linux right now.) This is helpful for people (like me) who use a window manager that doesn't release the mouse or switch windows when pressing Alt-Tab.

I have a decent amount of time to contribute to the project, and it seems like a good fit for a project to contribute to in my spare time. Looking forward to working with you all :D!
User avatar
Zedd
Posts: 288
Joined: 05 Sep 2012, 12:08

Re: My application

Post by Zedd »

Hi there,

welcome to the community. Hope you enjoy working on the project. I'm sure you'll be making a loy of devs happy when you succesfully have implemented this feature .
User avatar
AngleBracket
Posts: 32
Joined: 01 Jan 2013, 02:53

Re: My application

Post by AngleBracket »

Zedd wrote:Hi there, I'm sure you'll be making a loy of devs happy when you succesfully have implemented this feature .
Thanks, that's exactly what I'm hoping for!

Right now it should work for anyone running Linux or Windows, you just have to set the OIS_HOME env variable to ois-fork's path to get OpenMW to use the modified OIS. I don't have a Mac to write the Mac-specific code for OIS, that's the major blocker ATM.

I'm not sure if the OpenMW code is ready to be used yet either (I have calls to switch to non-exclusive mode anywhere the main menu is hidden or shown.) Would it be better to add a special case to the window management functions to dis/enable non-exclusive focus mode when the main menu is pushed or popped from the window list?
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: My application

Post by Zini »

Not exactly keen on using a modified OIS. Will require everybody to manually handle one more library. Can we get around that somehow? Like turning the additional OIS code into a new OpenMW component?
User avatar
AngleBracket
Posts: 32
Joined: 01 Jan 2013, 02:53

Re: My application

Post by AngleBracket »

Zini wrote:Not exactly keen on using a modified OIS. Will require everybody to manually handle one more library. Can we get around that somehow? Like turning the additional OIS code into a new OpenMW component?
Honestly, OIS is small enough that it might make sense to package it with OpenMW. According to the wiki, the OSX build already requires you use a modified version.

I don't think there's a good way to achieve this without using a modified OIS. With OIS' upstream code, there's a lot of inconsistency in how events are reported across platforms. For example, on Windows, OIS will report mouse movement so long as the window is in the foreground, while under Linux (and presumably OSX) the cursor needs to be over the client. In my fork I tried to make it the same across platforms.

Further, the only way to stop the Linux version of OIS from regrabbing the cursor automatically after we call XUngrabPointer ourselves would be to destroy the OISMouse object and recreate it with non-exclusive focus mode set, and I'm not sure what repurcussions that would have elsewhere in OpenMW.

So, it's kind of an option of including a modified OIS or writing a wrapper that tries to fight vanilla OIS with platform-specific fixups.
User avatar
Zini
Posts: 5538
Joined: 06 Aug 2011, 15:16

Re: My application

Post by Zini »

Honestly, OIS is small enough that it might make sense to package it with OpenMW.
That would be an option. The place to put it is extern/ois and the build system must be adjusted so that it is picked up correctly (even if vanilla OIS is installed on the system). That probably means we need to link to it staticly. And obviously it needs to work on all major platforms before we can merge it into master.

I suggest you make a new thread for it in the development forum. This will probably require a bit of discussion/help from some platform maintainers.
User avatar
AngleBracket
Posts: 32
Joined: 01 Jan 2013, 02:53

Re: My application

Post by AngleBracket »

Zini wrote:
I suggest you make a new thread for it in the development forum. This will probably require a bit of discussion/help from some platform maintainers.
Will do
Chris
Posts: 1626
Joined: 04 Sep 2011, 08:33

Re: My application

Post by Chris »

Could probably also consider switching to SDL for input. It's rather ubiquitous, probably not many systems it doesn't run on, and it allows grabbing and ungrabbing the mouse.
User avatar
raevol
Posts: 3093
Joined: 07 Aug 2011, 01:12
Location: Caldera

Re: My application

Post by raevol »

Chris wrote:Could probably also consider switching to SDL for input. It's rather ubiquitous, probably not many systems it doesn't run on, and it allows grabbing and ungrabbing the mouse.
We're not already using SDL? :? I don't know why I excpected that we would be...

Also, welcome AngleBracket!
User avatar
cdoublejj
Posts: 120
Joined: 05 Oct 2012, 21:50

Re: My application

Post by cdoublejj »

Nice avatar, I guess being a programmer you have done some sort of fancy book learning eh?
Post Reply