Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RFC: D3D9 client merge into main #146

Merged
merged 1,136 commits into from
Sep 4, 2022
Merged

RFC: D3D9 client merge into main #146

merged 1,136 commits into from
Sep 4, 2022

Conversation

DarkWanderer
Copy link
Contributor

@DarkWanderer DarkWanderer commented Oct 10, 2021

Suggest to review & discuss proposed merge of D3D9Client into Orbiter main. Full history of d3d9client has been merged, and CMake intergrated with main build. Potential points of contention:

  • API backward compatibility
  • Increased size of build
  • Documentation/includes placement

All credit of course goes to @jarmonik & other D3D9 contributors (I only helped to integrate it into Orbiter repo) - however, I think kicking off discussion on this early would be beneficial

jarmonik and others added 30 commits December 20, 2019 16:31
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1244 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1246 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1247 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- .vcxproj files: GDIOverlay.hlsl added.
- .filter files: mainly gcCore.* & WindowMgr.* added.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1249 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- Debug build of gcAPI.lib (gcAPI_dbg.lib) added (NOT included in release package!).
- fixed 'typo' in Visual Studio 2010 project file.
- Solution file fixed (Debug build compiled as Release).
- .vcxproj files: GDIOverlay.hlsl added.
- .filter files: mainly gcCore.* & WindowMgr.* added.
- added build and publishing of 'DX9ExtMFD.dll'.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1252 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1253 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- debug build needs 'MinimalRebuild' to be disabled.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1254 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- added gcAPI as dependent project.
- *debug* builds will (re-)generate gcAPI_dbg.dll,
  *release* builds do *not* (re-)generate gcAPI.dll.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1255 c0f5cd98-1510-604a-8459-bf7538b8c9c2
…roject files.

- applied missed changes from r1255.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1256 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- reduced number of 'gcAPI' Project-files.
- changed Solution-files to work with different Visual Studio versions.
- rewrote 'build_release.bat' to be less "verbose".

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1257 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1258 c0f5cd98-1510-604a-8459-bf7538b8c9c2
=> MultiThreadedDLL for release builds &
   MultiThreadedDebugDLL for debug builds.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1259 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- step 1: (re)move helper_vswhere.bat from trunk & regular branches.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1260 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- step 2: add external(s).

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1261 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- fixed missing return (@ oapi::FVECTOR4::mul) in gcConst.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1268 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- fixed "nameless structs containing variables with same name" in gcConst.
- added some const correctness.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1270 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- Compiles, links and runs; but Planetary elevations are wrong! To be done!

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1272 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1273 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1274 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1275 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1276 c0f5cd98-1510-604a-8459-bf7538b8c9c2
…onst again.

  A union was missing resulting in a 28 byte sized object instead of 16 bytes.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1277 c0f5cd98-1510-604a-8459-bf7538b8c9c2
…G code).

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1279 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1282 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1283 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1284 c0f5cd98-1510-604a-8459-bf7538b8c9c2
- Olympus shadows fix
- minor typo fix ;)
  Scene::GetTergetElevation() => Scene::GetTargetElevation()
- simplified FVECTOR4 even more (no need for '_a' & '_w' in extra struct).
- added some more size-checking tests for FVECTOR4.

git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1291 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1292 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1296 c0f5cd98-1510-604a-8459-bf7538b8c9c2
git-svn-id: svn://mirror.orbiter-radio.co.uk/D3D9client/trunk@1298 c0f5cd98-1510-604a-8459-bf7538b8c9c2
@dbeachy1
Copy link
Member

Is it still the intention to merge D3D9 into Orbiter's main branch? Does this still need more testing after the merge conflicts are resolved?

@jarmonik
Copy link
Contributor

Yes, it is intended to be merged to main. However there are some commits made by riojax that I haven't had time to test. So, making some test runs before merge would be a good idea. But otherwise as far as I can remember it should be ready for merge. There is plenty of new code in my current work-branch jarmonik/atmo-remake which will rewrite the atmospheric rendering and it's 95% complete but I don't know when I find time to finish the remaining 5%. Which is gas-giant rendering and haze on vessels/base-structures, There is no need to wait for that with the merge.

riojax and others added 6 commits April 8, 2022 14:37
@derkweijers
Copy link

Lets get this moving shall we?
As proposed here I'd like to propose that we merge this into a fork that will include enhancements over the Orbiter core.

@derkweijers derkweijers added the enhancement New feature or request label Jun 10, 2022
…to conform with the PlanetTexDir configuration option.
…terface in the D3D9Client cmake file. I am assuming that this was in error (it sometimes caused a rebuild to fail). I removed the 'target' version and ketp the 'output' version. I added a custom target to create a dependency in the D3D9Client target to make sure the interface is built.
…les/D3D9Client in build dir so that the D3D9Client can be run in build (useful for debugging).
@spacex15
Copy link
Contributor

Martin, I see that you improved a lot the D3D9client CMakefiles.txt,
Thanks a lot for that

I still do not understand this line
set(ORBITER_SOURCE_SDK_INCLUDE_DIR "${CMAKE_BINARY_DIR}/Orbitersdk/include" "${CMAKE_SOURCE_DIR}/Orbitersdk/include")

I do not see why d3d9client needs to search for "${CMAKE_BINARY_DIR}/Orbitersdk/include" ?
binary dir instead of source dir ?

I suggest to change to set(ORBITER_SOURCE_SDK_INCLUDE_DIR "${CMAKE_SOURCE_DIR}/Orbitersdk/include")

for me it causes build to fail when it is not a clean rebuild all

…tories from D3D9Client cmake file. This is done elsewhere.
… file. Added a basic find module for DXSDK. If the SDK is not found, the D3D9Client build is skipped.
@mschweiger
Copy link
Collaborator

@spacex15 you are right, it is a bit strange that both the source and binary directories are included. I don't think the line was written by me, so I am not sure what the idea here was. The build directory version of Orbitersdk/include may have been added to include dynamically generated header files.

Even stranger, there is also an "IncludeDir" which points to the source Orbitersdk/include, but is used as an output target for dynamically generated header files, which seems very unclean.

I'll try to figure out the intent here and see if I can come up with an alternative solution.

…gcGUI.h to build directory instead of source directory, to keep source directory clean.
@mschweiger
Copy link
Collaborator

@spacex15 : does this latest commit work better for you?

@spacex15
Copy link
Contributor

spacex15 commented Aug 30, 2022

Yes it works for me
minor problem still persistent

It builds everytime the following D3d9client DLLs

DrawOrbits,TerrainToolbox,DX9ExtMFD,GenericCamera

even if nothing was touched

…d on each build, triggering rebuild of D3D9client samples.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants