Jump to content

Recommended Posts

Posted (edited)

Well we can produce some parts of the mfd pages.

 

The thing is I dont extract the graphics from lockon to my mfds,,,

I export the actual data behind it ( like where I am and where my targets are )

and create my own graphics. The lockon F15 mpcd ingame is not interactive,

it is just a static sms display, so leavu is a full mfd and instrument software,

not just for displaying but it could actually be used to set up real instruments.....sort of ;)

When you press a button on the leavu mfd you it is not transmitted to lockon, but to

leavus internal instrument state, where the input is processed.

 

I added a noframe option, still have to do the keyboard though ;)

 

attachment.php?attachmentid=35020&d=1262311257

noFrame.thumb.png.fd820c8b711c3ebcd3f335c8f263df5a.png

Edited 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'

  • Replies 784
  • Created
  • Last Reply

Top Posters In This Topic

Posted (edited)
Well we can produce some parts of the mfd pages.

 

The thing is I dont extract the graphics from lockon to my mfds,,,

I export the actual data behind it ( like where I am and where my targets are )

and create my own graphics. The lockon F15 mpcd ingame is not interactive,

it is just a static sms display, so leavu is a full mfd and instrument software,

not just for displaying but it could actually be used to set up real instruments.....sort of ;)

When you press a button on the leavu mfd you it is not transmitted to lockon, but to

leavus internal instrument state, where the input is processed.

 

I added a noframe option, still have to do the keyboard though ;)

 

I should have read the information on the first page of this topic a little better:)

I don't know much about programming,but I think I understand more how Leavu2 works now.

No frame looks good and would look even better on my monitors behind the cougar MFD.

Its an awesome program.Opens up a large range of possibilities.

Would be great if the keyboard was one of those possibilities.

I appreciate your work very much.

Edited by Schizwiz

To see your opponent for who he or she is,is to put your blade in front of their deepest secrets and make them come up front,outward with a defeat or a win.

Posted (edited)

I'm looking at that right now :).

Thinking of using Jintellitype for windows global keyboard detection, and JXGrabKey for Linux/macOS.

 

I will experiment some with them and see what my results are.

 

Update : hmm... Jintellitype requires you to install microsoft keyboard software.....dont like that...

I need some good independent global hotkey detection for java in windows

 

 

Update 2 : This guys seems to have it nailed down

http://biletnikov-dev.blogspot.com/2009/09/global-hotkeys-for-java-applications_25.html

 

It works great, I will work on implementing this in leavu2 :).

Edited 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'

Posted
I'm looking at that right now :).

Thinking of using Jintellitype for windows global keyboard detection, and JXGrabKey for Linux/macOS.

 

I will experiment some with them and see what my results are.

 

Update : hmm... Jintellitype requires you to install microsoft keyboard software.....dont like that...

I need some good independent global hotkey detection for java in windows

 

 

Update 2 : This guys seems to have it nailed down

http://biletnikov-dev.blogspot.com/2009/09/global-hotkeys-for-java-applications_25.html

 

It works great, I will work on implementing this in leavu2 :).

 

Superb!

To see your opponent for who he or she is,is to put your blade in front of their deepest secrets and make them come up front,outward with a defeat or a win.

Posted

Im thinking of having a profiles file with key commands.

Something like this :

 

In the instruments list above the remove button there will be a keybinds button.

If you click that it loads a text file with keyboard settings profiles which appear next to

the active instruments list. You then highlight one profile and one target instrument,

and click "load key set" and you bind those bindings to that instrument...

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'

Posted (edited)
Im thinking of having a profiles file with key commands.

Something like this :

 

In the instruments list above the remove button there will be a keybinds button.

If you click that it loads a text file with keyboard settings profiles which appear next to

the active instruments list. You then highlight one profile and one target instrument,

and click "load key set" and you bind those bindings to that instrument...

 

That rocks!It will definitely do the trick,

very much appreciated how fast you came up

with a solution to implement this in you project.

Can't wait for FC 2.0 and Leavu2.

cheers

Edited by Schizwiz

To see your opponent for who he or she is,is to put your blade in front of their deepest secrets and make them come up front,outward with a defeat or a win.

Posted
That rocks!It will definitely do the trick,

very much appreciated how fast you came up

with a solution to implement this in you poject.

Can't wait for FC 2.0 and Leavu2.

cheers

 

Ah crap lockon hooks these keys so I cannot use this easy library...

I will have to do it the hard way :)

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'

Posted
Ah crap lockon hooks these keys so I cannot use this easy library...

I will have to do it the hard way :)

 

What doesn't kill us ,makes us stronger:)

To see your opponent for who he or she is,is to put your blade in front of their deepest secrets and make them come up front,outward with a defeat or a win.

Posted (edited)

Ok my current solution is the JNI below

 


JNIEXPORT jshort JNICALL Java_leavu_Win32_keyHeld(JNIEnv *env, jclass cls, jint keyCode) {
return (jshort)GetKeyState((int)keyCode);
}

JNIEXPORT jshort JNICALL Java_leavu_Win32_keyStateChanged(JNIEnv *env, jclass cls, jint keyCode) {
return (jshort)GetAsyncKeyState((int)keyCode);
}

 

Unless someone has a better idea I will go with this and a polling solution.

I will have a java thread spinning at some rate looking at keys and giving callbacks,

when the poll returns some specific values.

These two native calls seem to work regardless of lockon being active or not.

Edited 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'

Posted
Ok my current solution is the JNI below

 


JNIEXPORT jshort JNICALL Java_leavu_Win32_keyHeld(JNIEnv *env, jclass cls, jint keyCode) {
   return (jshort)GetKeyState((int)keyCode);
}

JNIEXPORT jshort JNICALL Java_leavu_Win32_keyStateChanged(JNIEnv *env, jclass cls, jint keyCode) {
   return (jshort)GetAsyncKeyState((int)keyCode);
}

 

Unless someone has a better idea I will go with this and a polling solution.

I will have a java thread spinning at some rate looking at keys and giving callbacks,

when the poll returns some specific values.

These two native calls seem to work regardless of lockon being active or not.

 

I don't understand much of it,but I saw the word "solution":)

grt

To see your opponent for who he or she is,is to put your blade in front of their deepest secrets and make them come up front,outward with a defeat or a win.

Posted (edited)

Ok Ive made my first successful tests in controlling my MFD with keyboard :)

 

now i must create a simple way to set up and save controls.

 

Update : ok this is decent enough, I will try to create a demo video

Youtube processing.....is slow

Edited 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'

Posted (edited)

Keyboard input video is up!

 

for some reason it only works in HD.

Edited 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'

Posted
Keyboard input video is up!

 

for some reason it only works in HD.

 

 

The video shows it nicely,awesome work Yoda.

Thank you very much:)

To see your opponent for who he or she is,is to put your blade in front of their deepest secrets and make them come up front,outward with a defeat or a win.

Posted

Yoda this looks excellent, congratulations!.

Dont let the haters get to you this looks like an excellent and worthwhile project

Hornet, Super Carrier, Warthog & (II), Mustang, Spitfire, Albatross, Sabre, Combined Arms, FC3, Nevada, Gulf, Normandy, Syria AH-6J

i9 10900K @ 5.0GHz, Gigabyte Z490 Vision G, Cooler Master ML120L, Gigabyte RTX3080 OC Gaming 10Gb, 64GB RAM, Reverb G2 @ 2480x2428, TM Warthog, Saitek pedals & throttle, DIY collective, TrackIR4, Cougar MFDs, vx3276-2k

Combat Wombat's Airfield & Enroute Maps and Planning Tools

 

cw1.png

Posted (edited)

Steam Gauges

 

Ok now I feel I'm basically done with the MFD and the main parts of the LEAVU

architecture, i've heard that many people are looking for steamgauges, general instruments.

 

So I'd like to know what you think is the best way of rendering these things.

It has to scale with size/resolution though so just a fixed size bitmap wont work, but a texture

on top of geometry could work...

 

But what I really would like is to have a blank resizeable windo where you can remove or

add instruments to. Like you start the steamgauges instrument in leavu, then you get

two windows, one with the available gauges and another where you can drop them.

 

Does this sound like a reasonable solution to you ?

 

Otherwise the easiest solution is probably just to render each gauge in a separate window.

The problem here is that the window becomes square or rectangular, java does not support anything else...

Thinking about it, this is probably the best idea...

 

Now question :

is it important for the gauges to be rendered in 3D? Will it look nicer ?

It is probably the same amount of work so im just wondering if you think it will be prettier.. I am not sure

Edited 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'

Posted

Steam gauges will make LEAVU a complete package. Very cool that you are considering them. Either option sounds good, just be sure to please include a save option so that you don't have to place them with each start LEAVU. 2D panels are just fine IMO. Maybe they'll take less resources.

  • Like 1
Posted
Steam Gauges

 

But what I really would like is to have a blank resizeable windo where you can remove or

add instruments to. Like you start the steamgauges instrument in leavu, then you get

two windows, one with the available gauges and another where you can drop them.

 

Does this sound like a reasonable solution to you ?

 

Otherwise the easiest solution is probably just to render each gauge in a separate window.

The problem here is that the window becomes square or rectangular, java does not support anything else...

Thinking about it, this is probably the best idea...

 

Now question :

is it important for the gauges to be rendered in 3D? Will it look nicer ?

It is probably the same amount of work so im just wondering if you think it will be prettier.. I am not sure

 

I'm not sure about 2d vs. 3d either (my instinct says 3d), but the drag and drop gauges sound just about perfect to me. :thumbup:

EVGA GeForce GTX 1070 Gaming | i5 7600K 3.8 GHz | ASRock Z270 Pro4 | Corsair Vengeance LPX DDR4 3200 16 GB | PNY CS2030 NVMe SSD 480 GB | WD Blue 7200 RPM 1TB HDD | Corsair Carbide 200R ATX Mid-Tower | Win 10 x64
Posted

In some ways I think 3d would be easier than 2d

  • Like 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'

Posted

I would say put each in a separate window, it will help for pit builders to be able to move them, also the ability to resize will be important to suit multiple windows.

In terms of 2D/3D why not start with a simple 2d and revisit when you need to. you can always use a image of a 2D image of a 3d dial, maybe see if someone like Walmis or the guys on lockonfiles will let you use their texture replacements.

Hornet, Super Carrier, Warthog & (II), Mustang, Spitfire, Albatross, Sabre, Combined Arms, FC3, Nevada, Gulf, Normandy, Syria AH-6J

i9 10900K @ 5.0GHz, Gigabyte Z490 Vision G, Cooler Master ML120L, Gigabyte RTX3080 OC Gaming 10Gb, 64GB RAM, Reverb G2 @ 2480x2428, TM Warthog, Saitek pedals & throttle, DIY collective, TrackIR4, Cougar MFDs, vx3276-2k

Combat Wombat's Airfield & Enroute Maps and Planning Tools

 

cw1.png

Posted (edited)

Ok I have started implementing 3d rendering into leavu, i'm currently coding

and testing some basic shapes.

 

Don't mind the colors here, I mean, they are TEST colors :).

I will replace them, and maybe texture map the whole thing.. Maybe add lighting.

 

Picture below renders a half sphere (white) with a full circle of 10 degree markers.

 

adi.png

 

Update , some colors :

 

adiFcr.png

 

Update :

 

adi7.png

 

update 4 :

adi8.png

 

Now I just need to implement material properties

Edited 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'

Posted

ADI mostly finished, some cpu usage test results on the new leavu 3d renderer

 

adi9.png

 

cpu.png

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'

Posted

Nice work. Looking great. I am glad you decided to add gauges. Looks better than I thought it ever could! It does want to make me ask you again though, can it be possible to disable the datalink option server side so people can use LEAVU without datalink. Must be some way? 2 slightly different versions of LEAVU etc? Be a shame if you can't and servers normally have LEAVU disabled.

 

Thanks!

Posted (edited)
Nice work. Looking great. I am glad you decided to add gauges. Looks better than I thought it ever could! It does want to make me ask you again though, can it be possible to disable the datalink option server side so people can use LEAVU without datalink. Must be some way? 2 slightly different versions of LEAVU etc? Be a shame if you can't and servers normally have LEAVU disabled.

 

Thanks!

 

Leavu is open source, so even if you downloaded a version without datalink they could

just go in and change one parameter and bling it works again. Also the server cannot control

it because the datalink has really nothing to do with lockon. In fact LEAVU is intended to eventually

work with any sim, so tying such things to lockon would be counter productive. ( But I think it's

not even possible to tie it to any specific sim )

 

Once Leavu gets "my information" from lockon, then the nothing goes through lockon anymore.

It is like LOVP or touch buddy, you could limit the amount of information available to be exported

from lockon, but datalink doesnt require anything more than LEAVU does in general. It just needs

"where am I" and "where are my targets" ( this information is also used to draw the radar screen)

 

I'm sure there will be servers who go both ways, at least my server will :).

It will run russian datalink on red side an leavu datalink on blue.

 

Eventually i am thinking of including a GCI package in leavu for red side, so the datalink

does what the real red dlink does : GCI can control your radar to let you attack targets!

I really want to integrate leavu with ATC software :).

 

Improved shading a little bit

 

adi10.png

 

If anybody has suggestions where I can get new 3d models, how to generate new ones etc,

that would be very welcome, or if you want to code them yourself that is even better :).

 

All contributions to leavu would be very welcome.

Edited 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'

Posted

Hi Yoda,

Have you looked at the OpenGL Texture Mapping FAQ?

 

http://www.opengl.org/resources/faq/technical/texture.htm

 

That might help with your texture mapping (which the

com.sun.opengl.util.j2d.TextRenderer will be done under the covers)

 

Section "21.030 Why doesn't lighting work when I turn on" might be useful.

 

You should also consider learning how to use texture-mapping. It is very very fast to do (consumer-grade cards are principaly optimised for texture mapping).

 

 

texture mapping?

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...