-
Notifications
You must be signed in to change notification settings - Fork 3
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
Remote method fixes #98
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- OmsiRemoteMethods is no longer static and can be accessed through the instance of OmsiHook/Memory - Updated dependent classes to use the instance of OmsiRemoteMethods - D3DTexture implements IDisposable to prevent memory leaks - Memory and OmsiHook now implement IDisposable to tidy up resources - Implemented fast path for local plugins for all Memory read/write/allocate operations in Memory - Enabled unsafe compilation of OmsiHook to support fast path for Memory operations - Various other local plugin related bug fixes - Fixed dereferencing bug in OmsiCreateTextureAsync when using local plugins - HookD3D - Implemented small test for D3DTexture usage in a local plugin - Updated DNNE
- OmsiRemoteMethods is no longer static and can be accessed through the instance of OmsiHook/Memory - Updated dependent classes to use the instance of OmsiRemoteMethods - D3DTexture implements IDisposable to prevent memory leaks - Memory and OmsiHook now implement IDisposable to tidy up resources - Implemented fast path for local plugins for all Memory read/write/allocate operations in Memory - Enabled unsafe compilation of OmsiHook to support fast path for Memory operations - Various other local plugin related bug fixes - Fixed dereferencing bug in OmsiCreateTextureAsync when using local plugins - HookD3D - Implemented small test for D3DTexture usage in a local plugin - Updated DNNE
This changes a bunch of Memory marshalling code and introduces some unsafe code, it will need thorough testing before it can be merged into main. |
Will look through properly at the weekend normally |
- Added D3DTexture mipmap support (fixes #92) - Added RPC method to get texture level count - Added a few null checks to the local plugin path for Memory Read/Write operations to prevent crashes - Fixed some bugs with MonitorStateTask in local plugins - Disposing of OmsiRemoteMethods (which is done automatically when disposing of OmsiHook) now closes the RPC session correctly - CloseRPCSession() is now awaitable - Various RPC/Remote method updates to support the new textrue API - Updated OmsiHookPlugin example to test a few more features in a local plugin -> seems to work...
+ MakeVehicle
Co-authored-by: Thomas Mathieson <thomas@mathieson.dev>
Make Vehicle & Remote Method Enhancements
- Updated project/docfx version number - Added MemArray for TOList - Fixed some broken arrays in OmsiComplObj - Fixed an incorrectly parsed string in OmsiMap - FastBinaryWriter now uses MemoryMarshal instead of BitConverter for no particular reason - Improved error reporting in Memory.cs - Improved safety/performance of some core methods in Memory.cs - Replaced Marshal.SizeOf with Unsafe to SizeOf, it's more correct for our use case - Slightly improved the performance of string reading - Rewrote MarhsalStruct/UnMarshalStruct to make use of compiled Expression Trees to allow for much faster marshalling of data without the need for reflection every time. (A cached reflection based fallback has been implemented as well) - Fixed OmsiAmpelGroup marshalling - Fixed OmsiOFTTex marshalling - Some bugfixes to multiple sessions with OmsiHookRPCPlugin
This PR should fix #103 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Various bugfixes for remote methods and textures in local plugins:
OmsiRemoteMethods
is no longer static and can be accessed through the instance ofOmsiHook
/Memory
OmsiRemoteMethods
D3DTexture
implementsIDisposable
to prevent memory leaksMemory
andOmsiHook
now implementIDisposable
to tidy up resourcesMemory
Memory
operationsOmsiCreateTextureAsync
when using local pluginsD3DTexture
usage in a local pluginD3DTexture
mipmap supportMonitorStateTask
(used for OmsiHook events) in local pluginsOmsiRemoteMethods
(which is done automatically when disposing ofOmsiHook
) now closes the RPC session correctlyCloseRPCSession()
is now awaitableFixed #96
Fixed #97
Fixed #92