RvEYoda Posted July 9, 2009 Author Share Posted July 9, 2009 (edited) I dont know how you would do this. You would probably need to hook into the lockon graphics engine. That is something I have no clue of how to do and I don't really want to go there. Replacing the ingame mpcd is something that I also consider extremely low prio, if it is even possible. It is not something I am planning to do, nor do I know how to do it. This project is complex enough as it is imo ;) You can alwys put the mpcd(s) on a second screen or second computer even. Edited July 9, 2009 by =RvE=Yoda S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
Boberro Posted July 9, 2009 Share Posted July 9, 2009 If I correctly understood Topol-m I think it is easyier and it doesn't needs weird procedures to programme - add option to allign MFD to corner screen, set up always on top and maybe transparency level xD. Reminder: Fighter pilots make movies. Bomber pilots make... HISTORY! :D | Also to be remembered: FRENCH TANKS HAVE ONE GEAR FORWARD AND FIVE BACKWARD :D ಠ_ಠ ツ Link to comment Share on other sites More sharing options...
104th_Crunch Posted July 9, 2009 Share Posted July 9, 2009 Couldn't you just have Lock On in windowed mode and then have the EAU screen 'always on top' over the Lock On window? Link to comment Share on other sites More sharing options...
RvEYoda Posted July 9, 2009 Author Share Posted July 9, 2009 (edited) If I correctly understood Topol-m I think it is easyier and it doesn't needs weird procedures to programme - add option to allign MFD to corner screen, set up always on top and maybe transparency level xD. How do you make it always be on top? Any ideas? Edit, working on it. Might be able to get it to be topmost. Will try to make it keyboard activated so. Press Key ** , it pops up, you click it with mouse ^^^^ (it hopefully wont minimize lockon :P) Press key ** again, it disappears Edit: Shit it becomes like an overlay :P. But I am not sure this will work. I dont think "topmost" will put it above a full screen d3d screen (lockon) NO GO, just tried it Edited July 9, 2009 by =RvE=Yoda S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
Moa Posted July 9, 2009 Share Posted July 9, 2009 (edited) I would make your drawing surface full-screen and fully transparent apart from your little window in the position your want (bottom right, or perhaps user-configurable). You'd then need to set the 'Z-order' of this window to be higher than of LockOn. As a quick hack you could simply use ALT-Tab to place your (mostly) transparent fullscreen window over LockOn and leave it there. In Win32 the z-order of a window can be changed with SetWindowPos. You might be able to use this on the application window you render Direct3D into. The hard part is then passing all mouse and keyboard events through your mostly transparent window to LockOn below (not so bad once you get the window handle of the lower window). I'd suggest you always leave the transparent window on top (so it intercepts keypresses) and your 'hide' key merely shows or hides your instrument panel within your glass pane. If you lower your glass pane below LockOn you'll lose your key interception (which means you won't be able to re-show your window as easily). I'm sure there are plenty of dodgy hackers out there with code to log keypresses and pass them through to other windows, just ask the eastern european mafias or cantonese triads :) Incidentally, doing this kind of stuff with Java Swing + JoGL (Java OpenGL) is a quite easy and also very easy to set your 'glass pane' to always-on-top. That's why I suggested using OpenGL some-time back (plus you can re-use the parts of the same code on multiplatform, Android, iPhone etc). I guess you're using DirectX so no point changing now. ps. Thanks Crunch for pointing out this thread. pps. With this 'compositing' method you could actually overwrite the *entire* cockpit display of lockon and just have the external environment (rendered by LockOn) showing through. That is, you could make a completely *custom* cockpit (not just re-skinned) if you grabbed the aircraft performance data from the export.lua in real time! Shame I'm too busy to do this myself :( Edited July 9, 2009 by Moa Typo Link to comment Share on other sites More sharing options...
RvEYoda Posted July 9, 2009 Author Share Posted July 9, 2009 (edited) I use setWindowPos to modify the NOACTIVATE extended style already, or more precisely, I create a Cwindow and call "ModifyStyleEx". (this guarantees the window doesnt grab focus when you click it, but still receive commands) but when trying to do the same for "SET TOPMOST" it didnt do anything at all...it didnt become topmost whatsoever, which is kind of wierd. I had no luck with this parameter. EDIT: After some reading it would seem WS_EX_TOPMOST cannot be used as a passive style. It must be used together with a "bring topmost" call to setWindow....Crap ;). I may try it again later. It might be possible to make this transparent. However one thing is still in there. When DirectX (lockon) runs in full screen, I dont think you can have any *normal* window on top of it (like windows forms app). It might be possible to get the DX window on top, but the buttons and stuff is...hmm... I dont know tbh. Btw how do you use JNI (more explicitly) in java to call SetWindowPos? I had no luck and due to the amount of data sent, I had MAJOR performance issues when doing just the rwr in java. Memory usage went off the scale and CPU usage was bad too. I gave up java swing+OGL approach when my java mem usage went really high and I discovered all these issues with trying to call windows APIs from java (through JNI) Also another reason java would be difficult is keyboard input detection, because it must be global, but that is not hte main problem. The main problem is that Lockon hooks your keyboard entirely, and you must intercept this at low level (ie DirectX DirectInput) to get past this. This was one of the issues when making AMRACT earlier, basic simulated keyboard input doesnt work on lockon, you have to use directx keyboard input or some other low level calls. Edited July 9, 2009 by =RvE=Yoda S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
RvEYoda Posted July 9, 2009 Author Share Posted July 9, 2009 (edited) Successfully made the window topmost without stealing focus! (and it stays topmost unfocused even when I click other windows) Thanks Moa ;). Now trying with lockon.. No Go Like I feared, when dragged above lockon it simply goes behind. Also tried calling the "Set top" when lockon was already up, but it was the same. (Now using SetWindowPos directly) It is actually topmost (because when I click it it works, even though it is not visible on top of lockon :P) I believe this problem is caused by the nature of Direct3d in full screen simply does not let anything else be painted (this is in the d3d stuff I have read elsewhere as well) - talking about LOCKON's direct3d here, not mine And the ways to get around this would either be to hook into the d3d engine and use the game's engine to display my image, (but thereby removing my buttons on my MPCD), or some directDraw on top of lockon. Simply placing a window on top wont work, (DirectX full screen does not care about which window is on top it seems) This is too much work for something I don't really see as a high prio right now. But if someone somehow finds a way for me to do it, then im sure I can implement it, but it is nothing I wish to do research on at this point. Right now working on Markpoints, both local and datalinked. Edited July 9, 2009 by =RvE=Yoda 1 S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
Moa Posted July 9, 2009 Share Posted July 9, 2009 Ok. It's nearly the weekend here (timezone +12) so I'll do some homework on whether its possible to compositing to another application's direct3d window. Incidentally, we do fullscreen video at 70+ fps using JNI (we have a Java application using open-source ffmpeg library [used in vlc and others] running on Windows, Linux and OS X). It is possible to get it going fast, you have to make sure you minimise or eliminate buffer copying. We also don't call Win32 directly. Wrote a native C library wrapper for the things we need that internally handles the Win32 types and Java/JNI just calls the nice POSIX-compliant C interface instead of Win32's macro mess. Link to comment Share on other sites More sharing options...
RvEYoda Posted July 9, 2009 Author Share Posted July 9, 2009 (edited) Ok. It's nearly the weekend here (timezone +12) so I'll do some homework on whether its possible to compositing to another application's direct3d window. Incidentally, we do fullscreen video at 70+ fps using JNI (we have a Java application using open-source ffmpeg library [used in vlc and others] running on Windows, Linux and OS X). It is possible to get it going fast, you have to make sure you minimise or eliminate buffer copying. We also don't call Win32 directly. Wrote a native C library wrapper for the things we need that internally handles the Win32 types and Java/JNI just calls the nice POSIX-compliant C interface instead of Win32's macro mess. that seems really great :). But for me who basically wrote his first java project, it was too complicated with how to make JNI work. Thanks, if you do that work, and you find some solution, we can definitely try to implement it! (im sticking with cpp though!) Quick note, i will leave on sunday evening and wont be back for almost 2 weeks Edited July 10, 2009 by =RvE=Yoda S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
RvEYoda Posted July 9, 2009 Author Share Posted July 9, 2009 (edited) THE FOLLOWING IS A PICTURE FROM LEAVU 1, and is NOT valid for leavu 2! Working on MARK points right now. Early MFD design and some settings. comparing MARK points off, and on. (the circle is not the finished mark point design ;) ) THE FOLLOWING IS A PICTURE FROM LEAVU 1, and is NOT valid for leavu 2! Edited February 17, 2010 by =RvE=Yoda S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
RvEYoda Posted July 10, 2009 Author Share Posted July 10, 2009 Uploaded a version that has working mark points included (previous versions got the math mixed up) S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
RvEYoda Posted July 10, 2009 Author Share Posted July 10, 2009 (edited) THE FOLLOWING IS A PICTURE FROM LEAVU 1, and is NOT valid for leavu 2! Datalinked Mark points are online! Edited February 17, 2010 by =RvE=Yoda S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
wilbur81 Posted July 10, 2009 Share Posted July 10, 2009 (edited) LEAVU not working for me Hey Guys, I've loaded the latest EAU and it's not working. I bring it up, click "add mpcd," then click any Button on the display and the MPCD comes alive. I then click "start import thread" and go into lockon. When I select an F-15 mission and it begins, my MPCD still shows "no data." Any thoughts? Edited July 10, 2009 by wilbur81 i7 8700K @ Stock - Win10 64 - 32 RAM - RTX 3080 12gb OC - 55 inch 4k Display Link to comment Share on other sites More sharing options...
RvEYoda Posted July 10, 2009 Author Share Posted July 10, 2009 (edited) THE FOLLOWING IS A PICTURE FROM LEAVU 1, and is NOT valid for leavu 2! ,download the export.lua from the main post on the first page and make sure in config.lua that exports are enabled. Update: Further improved the precision of the mark points. They should now be _VERY_accurate ;) Here is my flying a mission Edited February 17, 2010 by =RvE=Yoda S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
topol-m Posted July 11, 2009 Share Posted July 11, 2009 ^^^ Amazing. What are these numbers 87 46/86 8 on the left? [sIGPIC][/sIGPIC] Link to comment Share on other sites More sharing options...
GGTharos Posted July 11, 2009 Share Posted July 11, 2009 Bullseye reference - bearing/range. [sIGPIC][/sIGPIC] Reminder: SAM = Speed Bump :D I used to play flight sims like you, but then I took a slammer to the knee - Yoda Link to comment Share on other sites More sharing options...
RvEYoda Posted July 11, 2009 Author Share Posted July 11, 2009 Blue are mine, Yellow, my PDT's S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
wilbur81 Posted July 11, 2009 Share Posted July 11, 2009 Thanks sir Thanks Yoda, The config.lua change to enable exports worked. Thanks for the tip. Also, When I play lockon with the EAV MPCD activated...certain textures on Lockon blink and flicker occasionally. Any idea what causes this or has anyone else reported the problem? It only happens when I'm running EAU. WIlbur81 i7 8700K @ Stock - Win10 64 - 32 RAM - RTX 3080 12gb OC - 55 inch 4k Display Link to comment Share on other sites More sharing options...
topol-m Posted July 11, 2009 Share Posted July 11, 2009 When the Master completes this mod he should release some manual for a better compehension of the new features implemented. ;) [sIGPIC][/sIGPIC] Link to comment Share on other sites More sharing options...
RvEYoda Posted July 11, 2009 Author Share Posted July 11, 2009 Thanks Yoda, The config.lua change to enable exports worked. Thanks for the tip. Also, When I play lockon with the EAV MPCD activated...certain textures on Lockon blink and flicker occasionally. Any idea what causes this or has anyone else reported the problem? It only happens when I'm running EAU. WIlbur81 what is your graphic card setup? are you running leavu on a different monitor, if so, are you certain it is ONLY on the second monitor? Third - never alt tab out of lockon after it has been started. This will cause flickering (this is lockon normal, not caused by leavu) S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
RvEYoda Posted July 11, 2009 Author Share Posted July 11, 2009 When the Master completes this mod he should release some manual for a better compehension of the new features implemented. ;) Yes, but mostly, you can use the F4 Allied force manual. Some small differences are there S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
topol-m Posted July 11, 2009 Share Posted July 11, 2009 Yes, but mostly, you can use the F4 Allied force manual. Some small differences are there Oh great, but which one of these: http://www.f-16.net/downloads_f4manuals.html 1 [sIGPIC][/sIGPIC] Link to comment Share on other sites More sharing options...
RvEYoda Posted July 11, 2009 Author Share Posted July 11, 2009 (edited) no just use the manual that comes with the Game ALlied Force. For the mfds. look for the details in the hsd page, but even this is a lil diff from mine. yeah i might make a manual at some point. Edited July 11, 2009 by =RvE=Yoda S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
RvEYoda Posted August 6, 2009 Author Share Posted August 6, 2009 (edited) Here is a little tech demo. Not showing ingame action, just fooling around with AA, resolution and menu settings. Just to give people an idea of what it is. I dont claim that it's realistic to have gray buttons. I dont claim that it is realistic for a mark point to be green on the MPCD or that it is even in the same shape or triggered by the same button. This is a proof of concept, sort of, and a useful interface imo. http://yoda.reservoirselite.com/LEAVU/demo1.avi Will release an ingame demo later and then also a datalink demo Edited August 6, 2009 by =RvE=Yoda S = SPARSE(m,n) abbreviates SPARSE([],[],[],m,n,0). This generates the ultimate sparse matrix, an m-by-n all zero matrix. - Matlab help on 'sparse' Link to comment Share on other sites More sharing options...
Ells228 Posted August 7, 2009 Share Posted August 7, 2009 Cool video, good job bro Link to comment Share on other sites More sharing options...
Recommended Posts