New Orbiter SVN commit (r.71, Oct 14 2017)

dbeachy1

O-F Administrator
Administrator
Orbiter Contributor
Addon Developer
Donator
Beta Tester
Joined
Jan 14, 2008
Messages
9,214
Reaction score
1,560
Points
203
Location
VA
Website
alteaaerospace.com
Preferred Pronouns
he/him
Oh, you'll need to manually copy the XR2's beta-compatible 1.7 DLL to $ORBITER_HOME\Modules before running it -- I had to recompile the XR DLLs against the Orbiter beta libraries a while back. :p You can download the beta-compatible XR2 1.7 DLL here: XR2 1.7 Beta-1

I suspect the cause of the beta CTD with the Orbiter 2010-compatible XR2 DLL is because the vtables changed between Orbiter versions, because recompiling the XR DLLs fixed the startup CTD for me back in 2013. More information is here: http://orbiter-forum.com/showthread.php?p=430827&postcount=10
 

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,448
Reaction score
462
Points
83
Website
orbit.medphys.ucl.ac.uk
Ah ok, my bad. The beta-compatible DLL seems to have cleared up the problem. GDIPad::GetOrigin is now no longer called at all, so this does look like a vtable mismatch, as you say. Sorry for the false alarm.

With my fix for the Delta-glider, the original XR2 scenario including the DG also seems to work, so I'll upload a new beta asap.
 

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,448
Reaction score
462
Points
83
Website
orbit.medphys.ucl.ac.uk
New Orbiter Beta Released (r.46, Jan 27 2016)

Change log:
  1. API: oapiTriggerPanelRedrawArea and oapiTriggerRedrawArea deprecated
  2. Vessel API: added VESSEL::TriggerPanelRedrawArea and VESSEL::TriggerRedrawArea
  3. DeltaGlider: replaced deprecated redraw functions with new VESSEL versions (fix CTD in scenarios with non-focus DGs)
 

jarmonik

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

If there is a vtable mismatch and add-ons need to be re-compiled for the latest beta then would it be practical to add CopyRect and StretchRect functionality in the sketchpad interface ? To allow blitting in MFDs and avoid a need to release and re-acquire the sketchpad interface between drawing and blitting.

Also, In the D3D9 we would reroute all color-key, stretch, color conversion operations from oapiBlt to the modified sketchpad interface.

Any thoughts ?

BTW, does the DirectDraw support alpha-blending ?
 

T1234

New member
Joined
Jan 14, 2012
Messages
220
Reaction score
0
Points
0
With the XR2 and possibly XR5,after starting scenario and after a few orbits the map mfd goes black and then sim freezes,then have to control-alt-delete to close the sim.No outer vessels in scenario apart from XR2 and ISS, thought I report that.
 

jarmonik

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

Here is a new build. Surface tile mesh resolution control added. Missing GetOrigin() function added. Sky rendering related bug fixed.

Stock Atlantis is still causing a CTD in D3D9 due to some incompatible functions. http://www.orbiter-forum.com/showthread.php?p=520254&postcount=328


Also, there is a problem with fonts in MFD screen. Old style MFDs are displaying incorrect font. Problem appeared in Rev 40 with D3D9. Does not occur with inline engine. We could try to initialize the MFD drawing context from D3D9 but we can't identify which one is MFD drawing context. Font size algorithm in also unknown.

I don't recall any other major issues right now. And that's probably good :lol:

BTW, XR-2 is now running fine. No issues detected.
 

Attachments

  • D3D9ClientBeta16-forRev46.zip
    1.1 MB · Views: 109
Last edited:

birdmanmike

Active member
Joined
Jan 20, 2016
Messages
104
Reaction score
0
Points
31
Location
High Peak
If I may ask a possibly silly question . . . I have updated to r46 beta, and intend to install the XR2. I have downloaded the latest xr2 1.7 beta-1 .dll as above but note that it is still gives "date modified" as 22/07/2013. is this correct? Does an updated file retain the original modified date? I seem to have seen this in some other updates including the beta revisions and then the D3D9 client where the only recently dated item was the .dll. Or have I misunderstood something?

Thanks
 

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,448
Reaction score
462
Points
83
Website
orbit.medphys.ucl.ac.uk
No, as Doug mentioned, the latest beta-compatible XR2 dll is from 2013, in response to a vtable change in a beta before that. Since then, no more vtable mismatches have occurred, so no later recompiles of the dll were necessary.
 

birdmanmike

Active member
Joined
Jan 20, 2016
Messages
104
Reaction score
0
Points
31
Location
High Peak
Thanks Martin - I misread/misunderstood it - assumed for latest D3D9 client the .dll was updated. I have a lot to learn. Now if only the Mk II . . . :cheers: Mike

---------- Post added at 04:16 PM ---------- Previous post was at 03:07 PM ----------

Nope, bigger problem - when trying for the XR2 the link to Doug's page is giving some page trying to get me to get an investment loan! url is dougsorbiterpage.com - then it's "try for an instalment loan now"

His page been hi-jacked or me?
 
Last edited:

DaveS

Addon Developer
Addon Developer
Donator
Beta Tester
Joined
Feb 4, 2008
Messages
9,429
Reaction score
680
Points
203
Thanks Martin - I misread/misunderstood it - assumed for latest D3D9 client the .dll was updated. I have a lot to learn. Now if only the Mk II . . . :cheers: Mike

---------- Post added at 04:16 PM ---------- Previous post was at 03:07 PM ----------

Nope, bigger problem - when trying for the XR2 the link to Doug's page is giving some page trying to get me to get an investment loan! url is dougsorbiterpage.com - then it's "try for an instalment loan now"

His page been hi-jacked or me?
No issues here at all.
 

birdmanmike

Active member
Joined
Jan 20, 2016
Messages
104
Reaction score
0
Points
31
Location
High Peak
Then it's really odd - I get it from three different browsers on three different computers - it's only the links to Doug's from the Orbiter Hangar I'll try changing DNS servers
but if anyone else can check too . .

---------- Post added at 06:40 PM ---------- Previous post was at 06:21 PM ----------

Bad news is, it's not DNS and I've got other people miles away trying it. If you type say XR2 in search in the hangar you get the hangar page for Doug's addons - but it's when you click on the link to a specific download or his web page - it goes to www.dougsorbiterpage.com and comes up with some presumably spamming page about loans
 

birdmanmike

Active member
Joined
Jan 20, 2016
Messages
104
Reaction score
0
Points
31
Location
High Peak
Thanks - thought I was going round the proverbial. . there are unfortunately a few old links around, including the links page. Thanks for the tip too!

---------- Post added at 08:53 PM ---------- Previous post was at 06:53 PM ----------

Aargh, sorry, more questions - don't know if this is right place - getting the XR2, it says must have UMmu, only package that has that is with the DG IV. Obviously I can pick out the UMmu bits by installing in a temp folder, but does the DG IV work with the 2015(2016) beta or need another beta .dll? (And of course begs the question - what about the XR1 and XR5? Thanks. Then I'll shut up till flown a bit more . . .
 

turtle91

Active member
Joined
Nov 1, 2010
Messages
319
Reaction score
7
Points
33
For the other XR vessels, there are new builds, too.
You can find all builds within this thread:
http://www.orbiter-forum.com/showthread.php?t=29363

Regarding UMMU support:
In my case, I have installed the DGIV-pack-2010.
The DGIV would crash current Orbiter-2015, switching to UMMUs, too.

So the easiest way is, just install the pack into Orbiter-2015 but don't use the DGIV and not do any EVAs.
There is currently no Orbiter-2015 DGIV/Sound/UMMU/UCGO build available(as far as I know).
 

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,448
Reaction score
462
Points
83
Website
orbit.medphys.ucl.ac.uk
Also, there is a problem with fonts in MFD screen. Old style MFDs are displaying incorrect font. Problem appeared in Rev 40 with D3D9. Does not occur with inline engine. We could try to initialize the MFD drawing context from D3D9 but we can't identify which one is MFD drawing context.
Does the D3D9 client implement the oapi::Font::GetGDIFont method? This is how old-style MFD modes query their HFONT. The default oapi::Font::GetGDIFont behaviour is to return 0, which selects the default system font.
Font size algorithm in also unknown.
The four default MFD fonts are created with these parameters:
Code:
int h = (IH*9)/200;
mfdfont[0] = gc->clbkCreateFont (-h, false, "Fixed");
mfdfont[1] = gc->clbkCreateFont (-(h*3)/4, true, "Sans");
mfdfont[2] = gc->clbkCreateFont (-(h*3)/4, true, "Sans", oapi::Font::NORMAL, 900);
mfdfont[3] = gc->clbkCreateFont (-h, true, "Sans");
where IH is the MFD display height [pixels].
 

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,448
Reaction score
462
Points
83
Website
orbit.medphys.ucl.ac.uk
New Orbiter Beta Released (r.47, Jan 29 2016)

Change log:
  1. GraphicsClient: added clbkMeshMaterial(DEVMESHHANDLE,DWORD,MATERIAL*)
  2. API: added oapiMeshMaterial(DEVMESHHANDLE,DWORD,MATERIAL*)
  3. Atlantis: fixed bug crashing D3D9
This should fix default Atlantis crashing in the D3D9 client.

There is a new OVP commit (r.46) that implements point 1 in the D3D7 client.

Note that this commit requires a recompile of graphics clients, (function added to GraphicsClient interface), although I realized afterwards that the Atlantis problem could be fixed without this new function.

I noticed that while D3D9 doesn't crash anymore, the functionality (dimming of MFD displays) doesn't seem to be working. Does D3D9 implement GraphicsClient::clbkSetMeshMaterial(DEVMESHHANDLE,DWORD,const MATERIAL*) ?
 

jarmonik

Well-known member
Orbiter Contributor
Addon Developer
Beta Tester
Joined
Mar 28, 2008
Messages
2,651
Reaction score
785
Points
128
Does the D3D9 client implement the oapi::Font::GetGDIFont method?

Actually No.:facepalm: After fixing that issue the fonts are working properly.

---------- Post added at 17:06 ---------- Previous post was at 16:54 ----------

Does D3D9 implement GraphicsClient::clbkSetMeshMaterial(DEVMESHHANDLE,DWORD,const MATERIAL*) ?

Yes, that one is implemented. There appears to be a problem in shader code. Material is ignored during MFD rendering for some reason. I'll have to do some cleaning up with the mesh interface and with the shader code.

There appears to be a few other problems. The MFD brightness isn't working with the inline engine. Also, in the original code the "mat" structure is uninitialized.

PHP:
char text[256];
	sprintf_s(oapiDebugString(), 256, "0x%X", vis);

	// update MFD brightness
	if (vis) {
		int i;
		MATERIAL mat;
		DEVMESHHANDLE hMesh = GetDevMesh (vis, mesh_vc);
		for (i = 0; i < 10; i++) {
			oapiMeshMaterial(hMesh, 10+i, &mat);
			mat.emissive.r = mat.emissive.g = mat.emissive.b = (float)mfdbright[i];
			oapiSetMaterial (hMesh, 10+i, &mat);
			sprintf_s(text, 256, " %f",(float)mfdbright[i]);
			strcat_s(oapiDebugString(), 256, text);
		}
	}

When running the Atlantis with the inline engine "vis" appears to be NULL for some reason. :hmm: Also, "mfdbright" is 1.0 and I haven't find a way to tune it from the VC. I am assuming the round knob in a lower-right corner to be the brightness control.

With the original unmodified Atlantis I get random MFD color changes when touching the brightness knob.
 

martins

Orbiter Founder
Orbiter Founder
Joined
Mar 31, 2008
Messages
2,448
Reaction score
462
Points
83
Website
orbit.medphys.ucl.ac.uk
Ah ok, I'll look into that. I was pushing out the new commit after 4am this morning, which is never a good idea, especially if you have to get up a few hours later for work :zzz:

Anyway, it looks as if I left a superfluous oapiMeshMaterial call in the loop. That line should probably go.

Yes, the brighness dial is the round knob on the lower right of the MFD. Clicking on the left half of the button should dim the display, clicking on the right half should brighten it.

I don't know why the vis handle would be zero. I'll investigate.
 
Top