New Release D3D9Client Development

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,407
Reaction score
341
Points
83
Website
orbit.medphys.ucl.ac.uk
Just checking in to say hello (it doesn't happen very often these days). I wanted to ask @jarmonik and the D3D9 developers about the d3d9client branch on github orbitersim/orbiter: is it ok with you guys if I merge the branch? I did upload a few commits to it (mainly minor stuff - rebasing to fix conflicts with main and some streamlining of the cmake files. The only real change was an update to the tile loading calls to add support for the PlanetTexDir config option, which is useful for the git sources, because most people will have their planet textures installed elsewhere, and it avoids having to drop symbolic links in the Textures directory.

If you want to review my changes I will hold off merging for now. There is no rush - I will be incommunicado again from next week for two weeks, so unless I do it instantly it will have to wait a few weeks anyway.
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,389
Reaction score
461
Points
83
Website
users.kymp.net
Just checking in to say hello...

Hi, it's great to hear from you.

Yes, it would be good idea to merge it as soon as possible. It would clarify the situation a lot especially for contributors, also having two branches drifting apart too much increases the change for merge conflicts and makes them more difficult to solve. So, go for merge. I have also reviewed the changes and they look good to me, Thanks. The PlanetTexDir has been on a wishlist quite some time and it's very good to have it.
 

kuddel

Donator
Donator
Joined
Apr 1, 2008
Messages
1,841
Reaction score
359
Points
83
Is it ok to delete the d3d9client branch? I tend to delete merged branches to keep the branch list clean.
For me it's totally fine! All the changes I've made in thta branch on my fork were such minor things, that it's much easier to work only on the main branch.
Also workflow for automatic builds as a bonus :D
 

DaveS

Space Shuttle Ultra Project co-developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,282
Reaction score
563
Points
203
Perfect - thanks for the quick response!
All done now - enjoy the D3D9 client on the Orbiter main branch!
Is it ok to delete the d3d9client branch? I tend to delete merged branches to keep the branch list clean.
It doesn't seem to include a built binary in the actual artifact build process output archive. Is this intended?
 

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,407
Reaction score
341
Points
83
Website
orbit.medphys.ucl.ac.uk
For me it's totally fine! All the changes I've made in thta branch on my fork were such minor things, that it's much easier to work only on the main branch.
Also workflow for automatic builds as a bonus :D
That is actually not quite what I meant. It is just that now that the d3d9client feature branch is merged into main, all commits to d3d9client are now commits to main. So for future modifications to the D3D9Client it would be cleaner to branch off main than to continue to commit to the merged d3d9client branch (which won't contain any of the commits to main from here on, so would require continued re-basing).

I would still not recommend to commit directly to main, because that bypasses any discussion/review of the new features to be worked on. The workflow I would recommend (which incidentally is the one I use at work) is:
  • when you want to add a feature or fix a bug, create an issue describing what you found or intend to do
  • create a new branch referencing the issue
  • commit your work to the new branch
  • when done, create a pull request, and ask for reviews from the relevant people, if applicable
  • merge to main and close the issue
  • delete the branch
Or in other words, the main branch should always be stable. All developmental/experimental stuff should happen in feature branches and only be merged once you are satisfied that it works as intended and doesn't break anything else.
 
Last edited:

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,407
Reaction score
341
Points
83
Website
orbit.medphys.ucl.ac.uk
It doesn't seem to include a built binary in the actual artifact build process output archive. Is this intended?
I am not actually sure what this means. Are you saying your build doesn't produce a D3D9Client.dll in Modules/Plugin of your build directory when you build Orbiter? Do you get any error messages?
 

DaveS

Space Shuttle Ultra Project co-developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,282
Reaction score
563
Points
203

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,407
Reaction score
341
Points
83
Website
orbit.medphys.ucl.ac.uk

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
4,984
Reaction score
1,617
Points
138
A few questions:
a) is MOGE gone, or will it "share the stage" with D3D9?
b) what version of the DirectX SDK is needed/recommended to compile D3D9?
c) is the D3D9/vessel interface still via gcCore?
 

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,407
Reaction score
341
Points
83
Website
orbit.medphys.ucl.ac.uk
A few questions:
a) is MOGE gone, or will it "share the stage" with D3D9?
b) what version of the DirectX SDK is needed/recommended to compile D3D9?
c) is the D3D9/vessel interface still via gcCore?
a) It's not gone yet. The inline and DX7 clients still build with the current sources (32-bit target only). When the 32-bit platform gets dropped, which will happen eventually, the DX7-based clients will be history. For now, they are still useful to me, because I am more familiar with them, so I can test things quicker.
b) This is explained in Doc/D3D9Client.pdf, section DirectX Runtimes. The download contains not only the runtime dlls but also the development headers and libs. If you install the SDK in a non-standard location, you have to set the cmake DXSDK_DIR path.
c) I have to refer this to the D3D9Client developers.
 
  • Like
Reactions: GLS

Ajaja

Active member
Joined
Apr 20, 2008
Messages
177
Reaction score
49
Points
28
Is something wrong with my Orbiter config? Or it's a D3D9Client issue?
Scenarios\Delta-glider\Brighton Beach.scn:
dx7.png
dx9.png
 

DaveS

Space Shuttle Ultra Project co-developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,282
Reaction score
563
Points
203
I think I fixed the build script for the github runner. Can you please check if it works for you now?
I can confirm that it does indeed work now and all of the files are included.
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,389
Reaction score
461
Points
83
Website
users.kymp.net
A few questions:
a) is MOGE gone, or will it "share the stage" with D3D9?
b) what version of the DirectX SDK is needed/recommended to compile D3D9?
c) is the D3D9/vessel interface still via gcCore?

The future of gcCode interface depends on the community. Right now there are many functions that depend on DX9 and can't be implemented on DX7 so it might be better to keep it as it is for now. We have to think about the future of gcCore after the DX7 is removed which may lead to transfer of the functions to oapi* namespace but it's a community decision.

After the removal of DX7, D3D9 will continue to support DX7 based add-ons under it's DX7 "emulator" mode which is toggled on per surface basis.

Recommended SDK is June 2010
 

Abloheet

Addon Developer
Addon Developer
Joined
Apr 18, 2009
Messages
197
Reaction score
16
Points
33
Location
Kolkata,West Bengal
What is the version of d3d9 client integrated into current OpenOrbiter hosted on GitHub? What are its new features? Anyway to get this information? Also, does it support the 64 bit build?
 

kuddel

Donator
Donator
Joined
Apr 1, 2008
Messages
1,841
Reaction score
359
Points
83
What is the version of d3d9 client integrated into current OpenOrbiter hosted on GitHub?
It's basically the same version as 30.7 (for orbiter BETA) - as could be downloaded here .
The version information (Windows File Version info via right click on D3D9Client.dll) will show that, too.

What are its new features?
Nothing mayor. Mainly it was "tweaked" to be included in the OpenOrbiter build-chain and to be build as 64-bit version!

Anyway to get this information?
No, sorry. The "what's new" page is not (yet) planned ;)
Most of the changes are discussesd and addressed in this forum thread.
I know that that is not a good solution.

Also, does it support the 64 bit build?
Yes, yes it does!
The latest 64-bit build atrifact contains the 64-bit versions of OpenOrbiter & D3D9Client.
 

Abloheet

Addon Developer
Addon Developer
Joined
Apr 18, 2009
Messages
197
Reaction score
16
Points
33
Location
Kolkata,West Bengal
It's basically the same version as 30.7 (for orbiter BETA) - as could be downloaded here .
The version information (Windows File Version info via right click on D3D9Client.dll) will show that, too.


Nothing mayor. Mainly it was "tweaked" to be included in the OpenOrbiter build-chain and to be build as 64-bit version!


No, sorry. The "what's new" page is not (yet) planned ;)
Most of the changes are discussesd and addressed in this forum thread.
I know that that is not a good solution.


Yes, yes it does!
The latest 64-bit build atrifact contains the 64-bit versions of OpenOrbiter & D3D9Client.
Thanks for the reply, kuddel

Regarding the version and new features, I remember jarmonik posting about remaking the shaders and adding/reworking features and graphics effects in the client, and wanting to leave behind the d3d9 client codebase for orbiter 2016. I was wondering whether that new version of d3d9 client was the version integrated into OpenOrbiter
 
Top