-
Notifications
You must be signed in to change notification settings - Fork 160
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
Build Editor for x64 #2197
Build Editor for x64 #2197
Conversation
de09684
to
33bbe23
Compare
I suggest not to bother trying to bridge x86<->x64 plugins. They should be compiled as separate dlls just like it's done in every other game engine. Only thing necessary is to make sure x86 builds still work. Fixing x64 editor issues can be done later, it's more important to have the build option available so we can test it in real scenarios. |
To explain the problem with plugins, it’s that Windows plugins for the Engine ALSO have Editor features, for one it reads the header but also it can do extra things, like showing additional options in the plugin context menu in the editor. I think it needs a Windows directory there where the different archs of the engine can be placed, along with their plugins. But the core issue is the x64 editor will crash when trying to build with plugins for windows right now. Still, it’s possible to add the way it’s now and just fix the CI and move onto these things later. |
9a84153
to
8536364
Compare
8536364
to
55b17e1
Compare
Found out that this is wrong in 64-bit ags/Editor/AGS.Editor/Utils/Utilities.cs Line 517 in b0b63f1
Obviously the address can't be an int32, this will crash. There's no reason for this too, the IntPtr can be manipulated directly - the type exists exactly for this! |
ef08d99
to
533be91
Compare
I chose this approach and upgraded the Editor project in a way it does builds for x64 but that it still builds for x86. Still, I had to remove the AnyCPU and Mixed Platforms as a general target for the Solution (they kinda make sense in fully managed dlls, but not when there is Native dlls involved). |
For the record, this is also an issue related to 64-bit support, perhaps it makes sense to do next: #2274 |
Yes, this has to be tackled next before providing builds of the Editor to ensure we don't get weird things when compiling script. I did a |
533be91
to
854bd8d
Compare
Use Win32 naming to match with Engine
fix Win32 Editor build for Common and Compiler DebugMD and ReleaseMD targets
- should be compatible with both x86 and x64 - also adjust installer to use AnyCPU Magick - use a custom code in the csproj to copy the correct native dll
Hey, I tried to preserve things as is as possible for the x86 builds of the Editor but some things DID change, please review this with care and evaluate if we update this in 3.6.1 or leave for 3.6.2.
fix #2088
The Editor does successfully build on the x64 target and it does starts up!
check x64 p/invoke and other direct access to windows dll still work or adjustApparently it works but I don't understand howHandle x86 engineabandoned here, leaving for the future.dll
plugins in x64 Editor (and possibly vice-versa)CI for x64 builds of the Editor will not be done in this PR.