New Release D3D9Client Development

Donamy

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Oct 16, 2007
Messages
6,904
Reaction score
196
Points
138
Location
Cape
Unfortunately no. It depends on a features of OrbiterBeta so no GUI for 2016. Unless we find a solid way to implement mouse and keyboard hooks. My previous attempts has caused some weird mouse behavior.

Are the cross-hairs working ? I forgot to place a texture in a camera package but the texture also comes with the client itself.
.


Cross-hairs are working. Thanks for the option to turn them off if not needed.
 

Wolf

Donator
Donator
Joined
Feb 10, 2008
Messages
1,091
Reaction score
11
Points
38
Location
Milan
Here are the latest builds of the D3D9Client and DockingCamera. Also a small teaser of an upcoming project OrbiterGUI is uploaded. I probably should launch a new thread for that project later on. I am on a little tight schedule right now. :lol: I have never tested the GUI on an other machine but if it's working, a window dock bars should appear from left and right edges of the screen. etc..

Happy Orbiting...

edit: The GUI probably doesn't work very well on 4k, I need to develop better artwork and scaling for it.


D3D9 and Docking camera for O2016 installed but I have CTD everytime I select the camera MFD... (custom cameras is enabled in the D3D9 settings)
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
D3D9 and Docking camera for O2016 installed but I have CTD everytime I select the camera MFD... (custom cameras is enabled in the D3D9 settings)

If you are trying run an addon build for Orbiter beta on Orbiter 2016 it will likely CTD especially if it is using a Sketchpad. The same applies the other-way-around. That's why we have "-forBeta" and "-for2016" designations.

If the problem is something else then I would need to be able to reproduce the problem so that I can track it down.
 

Wolf

Donator
Donator
Joined
Feb 10, 2008
Messages
1,091
Reaction score
11
Points
38
Location
Milan
If you are trying run an addon build for Orbiter beta on Orbiter 2016 it will likely CTD especially if it is using a Sketchpad. The same applies the other-way-around. That's why we have "-forBeta" and "-for2016" designations.

If the problem is something else then I would need to be able to reproduce the problem so that I can track it down.

It is for 2016. I ll post the logfile
 

Donamy

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Oct 16, 2007
Messages
6,904
Reaction score
196
Points
138
Location
Cape
You want to select generic camera, not docking camera.
 

Sbb1413

Well-known member
Joined
Aug 14, 2018
Messages
948
Reaction score
373
Points
78
Location
India
Preferred Pronouns
he/his/him
I beg for you, please say any solution to work D3D9 R3.3!
I'm on Windows 7.
 
Last edited:

Wolf

Donator
Donator
Joined
Feb 10, 2008
Messages
1,091
Reaction score
11
Points
38
Location
Milan
You want to select generic camera, not docking camera.

Yes, that is what I m doing. As soon as I select it the sim freezes and then I have CTD. I couldn t find anything specific in the logfile... :shrug:
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
Yes, that is what I m doing. As soon as I select it the sim freezes and then I have CTD. I couldn t find anything specific in the logfile...

Here's a debug build of the client. Just the *.DLL(s), place them in Modules/Plugin/

If you have a Visual Studio then Open Orbiter Launchpad and Visual Studio. From title-menu-bar select "Debug"->"Attach to process" and slelect the Orbiter process. After that run the Orbiter and Make it to crash with the Docking Camera which shows as "Generic Camera" in the MFD menu. Take a screen shot from the debugger.

If you don't have Visual Studio then, make the Orbiter to crash and then select.
My Computer (with RMB)(desktop icon) -> Select "Manage" -> Open "Event Viewer" tree -> Select Administrative Events. Then Pick the top most "Error" from the list. It should be "Orbiter.exe" Process. Copy paste the information here. It should be something like this:

Code:
Faulting application name: orbiter.exe, version: 0.0.0.0, time stamp: 0x57c23356
Faulting module name: D3D9Client.dll, version: 3.4.0.0, time stamp: 0x5c224375
Exception code: 0xc0000005
Fault offset: 0x0004b1f4
Faulting process id: 0x31a4
Faulting application start time: 0x01d49c6298d7d792
Faulting application path: C:\Software\Orbiter2016-Official\modules\server\orbiter.exe
Faulting module path: C:\Software\Orbiter2016-Official\Modules\Plugin\D3D9Client.dll
Report Id: e0703dde-1c71-47ba-99ff-854f9480607b
Faulting package full name: 
Faulting package-relative application ID:
 

Attachments

  • D3D9ClientDebugBuild.zip
    1.2 MB · Views: 5

Wolf

Donator
Donator
Joined
Feb 10, 2008
Messages
1,091
Reaction score
11
Points
38
Location
Milan
Here's a debug build of the client. Just the *.DLL(s), place them in Modules/Plugin/

If you have a Visual Studio then Open Orbiter Launchpad and Visual Studio. From title-menu-bar select "Debug"->"Attach to process" and slelect the Orbiter process. After that run the Orbiter and Make it to crash with the Docking Camera which shows as "Generic Camera" in the MFD menu. Take a screen shot from the debugger.

If you don't have Visual Studio then, make the Orbiter to crash and then select.
My Computer (with RMB)(desktop icon) -> Select "Manage" -> Open "Event Viewer" tree -> Select Administrative Events. Then Pick the top most "Error" from the list. It should be "Orbiter.exe" Process. Copy paste the information here. It should be something like this:

Code:
Faulting application name: orbiter.exe, version: 0.0.0.0, time stamp: 0x57c23356
Faulting module name: D3D9Client.dll, version: 3.4.0.0, time stamp: 0x5c224375
Exception code: 0xc0000005
Fault offset: 0x0004b1f4
Faulting process id: 0x31a4
Faulting application start time: 0x01d49c6298d7d792
Faulting application path: C:\Software\Orbiter2016-Official\modules\server\orbiter.exe
Faulting module path: C:\Software\Orbiter2016-Official\Modules\Plugin\D3D9Client.dll
Report Id: e0703dde-1c71-47ba-99ff-854f9480607b
Faulting package full name: 
Faulting package-relative application ID:


Thanks for your help Jarmonik, I'll try that.

---------- Post added at 08:27 PM ---------- Previous post was at 07:51 PM ----------

I ran Visual Studio and it says some exceptions were generated, an acces violation during the reading of the following path 0x000000CC



Also (on the lower right side of the VS screen) there is a list of frames: it says they are wrong or missing and it also says simbols for D3D9 client were not loaded. Does that have anything to do with symbolic links?

These messages are all in italian (I have an italian version of VS) hence pardon my terrible translation.

Strange thing is if I reinstall a previous version of your camera it does work... I can't remember where I downloaded it from, maybe it was in this thread? Did you release any version anywhere else?
 
Last edited:

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128

Attachments

  • D3D9ClientTest.zip
    496.2 KB · Views: 5

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
I ran Visual Studio and it says some exceptions were generated, an acces violation during the reading of the following path 0x000000CC

Also (on the lower right side of the VS screen) there is a list of frames: it says they are wrong or missing and it also says simbols for D3D9 client were not loaded.


This isn't much of a help.



Does that have anything to do with symbolic links?
No, It doens't have anything to do with them.



Strange thing is if I reinstall a previous version of your camera it does work... I can't remember where I downloaded it from, maybe it was in this thread? Did you release any version anywhere else?


The problem is obviously something new that's been added like it usually is. There are older versions released by Kuddel and me in this thread. I don't recall any releases anywhere else.
 

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,878
Reaction score
2,870
Points
188
Website
github.com
The latest SSU that I have is very different from the one in a screen shot. Is there a prebuild binaries for that one ?


I found a problem that could have caused the issue shown in the screen shot but I can't really test it and verify.


Here's a DLL for OrbiterBeta for testing:

The only thing that jumps out in the logs is
Code:
[ERROR] Sketchpad2: Source is not a texture

With this version the ADI ball mesh is now placed in the correct place (and moves correctly), but the tapes are still not shown, regardless of the (GDI compatibility setting).
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
....but the tapes are still not shown, regardless of the (GDI compatibility setting).

The GDI compatibility checkbox haven't been used for a while now as far as I can remember.
I don't recall any changes those could have effected to a tape visibility. Have the tapes ever worked under D3D9 ?
A Mesh can be only rendered with a texture. Not with a plain GDI surface. The same applies to the Sketchpad. It will convert input instructions to a mesh and then renders it. So, (as an example) the input surface to a Sketchpad::CopyRect() must be a texture.

The Error indicates that a non-texture surface is assigned in somewhere where a texture is required.

How do you paint/draw the tapes ?

Have you tried to crerate the surface for the tapes with:
oapiCreateSurfaceEx() Using "OAPISURFACE_TEXTURE | OAPISURFACE_RENDERTARGET | OAPISURFACE_NOMIPMAPS" flags.
 

GLS

Well-known member
Orbiter Contributor
Addon Developer
Joined
Mar 22, 2008
Messages
5,878
Reaction score
2,870
Points
188
Website
github.com
The GDI compatibility checkbox haven't been used for a while now as far as I can remember.
I don't recall any changes those could have effected to a tape visibility. Have the tapes ever worked under D3D9 ?
A Mesh can be only rendered with a texture. Not with a plain GDI surface. The same applies to the Sketchpad. It will convert input instructions to a mesh and then renders it. So, (as an example) the input surface to a Sketchpad::CopyRect() must be a texture.

The Error indicates that a non-texture surface is assigned in somewhere where a texture is required.

How do you paint/draw the tapes ?

Have you tried to crerate the surface for the tapes with:
oapiCreateSurfaceEx() Using "OAPISURFACE_TEXTURE | OAPISURFACE_RENDERTARGET | OAPISURFACE_NOMIPMAPS" flags.

Yep, it's getting warmer: currently they are created with "OAPISURFACE_RENDERTARGET | OAPISURFACE_SKETCHPAD", and I changed one of the tapes to the values you posted and that one works fine, and the others are now showing the same tape, but moving as they should.
I'll change all of them and report back.

Yes, we use CopyRect() to copy the pre-draw tape to the MDU surface at runtime.

---------- Post added at 04:01 PM ---------- Previous post was at 03:59 PM ----------

BTW: isn't the OAPISURFACE_SKETCHPAD be needed for me to call oapiGetSketchpad()?

---------- Post added at 04:14 PM ---------- Previous post was at 04:01 PM ----------

Yep, those consts fix the issue, thanks!
 

Sbb1413

Well-known member
Joined
Aug 14, 2018
Messages
948
Reaction score
373
Points
78
Location
India
Preferred Pronouns
he/his/him
I will jump from the window! But before jump, I want the D3D9 3.2.
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
BTW: isn't the OAPISURFACE_SKETCHPAD be needed for me to call oapiGetSketchpad()?

"OAPISURFACE_SKETCHPAD" is translated to "OAPISURFACE_RENDERTARGET" so either one of those will do. It means that a Sketchpad along with many other things can draw/write into the surface. However, the Sketchpad as well as many other things can't read the surface. "OAPISURFACE_TEXTURE" property must be specified to allow the GPU to read/render from the surface.

---------- Post added at 19:46 ---------- Previous post was at 19:33 ----------

I will jump from the window! But before jump, I want the D3D9 3.2.


To get the V3.4 to run you need June 2010 redistributable package:
https://www.microsoft.com/en-us/download/details.aspx?id=8109

Some of the client builds may require February 2010 package instead:
https://www.microsoft.com/en-us/download/details.aspx?id=9033


1.) Download the package
2.) Extract the package to your harddrive by running "directx_Jun2010_redist.exe" However, This does NOT install the files
3.) Then, Locate DXSETUP.exe from the folder you specified in a previous step and run it. This should install the files to your computer.
 
Last edited:

Sbb1413

Well-known member
Joined
Aug 14, 2018
Messages
948
Reaction score
373
Points
78
Location
India
Preferred Pronouns
he/his/him
Thank you! I can finally get the blue haze of the Earth!:hailprobe:
DG.PNG
 
Top