- Joined
- Mar 28, 2008
- Messages
- 2,500
- Reaction score
- 623
- Points
- 128
I have a new build of D3D9Client and the Orbiter prepared for testing. This is a 32-bit build with a reworked semi-native surface interface with a DX7 fallback for add-ons those depend on it. It's much more simpler and more reliable than the old one. MFDs created for the Orbiter 2016 should be compatible with this build (Inline and D3D9). Although, any addon using Sketchpad2 interface would need to be recompiled, since, Sketchpad2 is now integrated to default DrawAPI and Sketchpad2.h no longer exists.
XR2Ravenstar, Dan's DGIV, NASSP work fine but depends on DX7 fallback. SSU will start but no HUD or MFDs are visible and the Orbiter.log shows plenty of HDC errors. Likely due to use of Sketchpad::GetDC() which is not supported.
-Stock vessel are translated to use Sketchpad instead of GDI.
-MFD mipmaps are enabled for virtual cockpit.
-Overlapping enum types oapi::Font::Style and oapi::FontStyle has been fixed.
-Terrain collision should now work properly also with cubic interpolation.
- I have also written some 2D API documentation and it's located in /Orbitersdk/doc/Orbiter2DGraphics.pdf
This package can be extracted on a top of existing Orbiter Beta r.90 installation:
users.kymp.net/p501474a/TestPackage.zip
The implementation should be tested if it works well enough to be merged to Orbiter main branch.
New OAPI functions:
New types:
XR2Ravenstar, Dan's DGIV, NASSP work fine but depends on DX7 fallback. SSU will start but no HUD or MFDs are visible and the Orbiter.log shows plenty of HDC errors. Likely due to use of Sketchpad::GetDC() which is not supported.
-Stock vessel are translated to use Sketchpad instead of GDI.
-MFD mipmaps are enabled for virtual cockpit.
-Overlapping enum types oapi::Font::Style and oapi::FontStyle has been fixed.
-Terrain collision should now work properly also with cubic interpolation.
- I have also written some 2D API documentation and it's located in /Orbitersdk/doc/Orbiter2DGraphics.pdf
This package can be extracted on a top of existing Orbiter Beta r.90 installation:
users.kymp.net/p501474a/TestPackage.zip
The implementation should be tested if it works well enough to be merged to Orbiter main branch.
New OAPI functions:
C++:
OAPIFUNC oapi::Font* oapiCreateFontEx(int height, char* face, int width = 0, int weight = 400, FontStyle style = FontStyle::FONT_NORMAL, float spacing = 0.0f);
OAPIFUNC int oapiMeshMaterialEx(DEVMESHHANDLE hMesh, DWORD idx, MatProp prp, oapi::FVECTOR4* out);
OAPIFUNC int oapiSetMaterialEx(DEVMESHHANDLE hMesh, DWORD idx, MatProp prp, const oapi::FVECTOR4* in);
OAPIFUNC const char* oapiGetObjectFileName(OBJHANDLE hObj);
OAPIFUNC SURFHANDLE oapiLoadSurfaceEx(const char* fname, DWORD attrib);
OAPIFUNC bool oapiGetSurfaceSize(SURFHANDLE hSrf, int* width, int* height);
New types:
C++:
#define OAPISURFACE_ANTIALIAS 0x0800 ///< Create a surface with anti-aliasing the level will depend on launchpad settings.
#define OAPISURFACE_SHARED 0x1000 ///< Create a shared (global) resource
FONT_STRIKEOUT = 0x8,
FONT_CRISP = 0x10, ///< Override app-default, No Anti-aliasing
FONT_ANTIALIAS = 0x20 ///< Override app-default, Use Anti-aliasing
Last edited: