Skip to content
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

Upgrading LWJGL to version 3 #3969

Merged
merged 51 commits into from
Oct 24, 2020
Merged

Upgrading LWJGL to version 3 #3969

merged 51 commits into from
Oct 24, 2020

Conversation

DarkWeird
Copy link
Contributor

@DarkWeird DarkWeird commented May 19, 2020

Contains

LWJGL change:

  • Windowing system - GLFW
  • Input system - GLFW
  • GL methods, which use buffers (+suffix)
  • Some GL Extensions moved

We can replace jinput library to GLFW for joystics(controllers) after merge.

Related PRs

MovingBlocks/TeraNUI#24 - after extraction NUI
MovingBlocks/SplashScreen#4 - GLFW splash screen's classes. (Old Swing screen crashes LWJGL3's OpenGL initialization - deep side effect)
Terasology/CoreRendering#15 - Update CoreRendering for lwjgl3

How to test

Checkout Terasology/CoreRendering#15.
Run and play as usual, check :)

Platforms:

  • - MacOs
  • - Windows
  • - Linux(X)
  • - Linux(Wayland) - non goal, GLFW provides support for Wayland LWJGL3 haven't proper code. possibly in next release

Checklist:

  • Input system:
    • Keyboard:
      • keys working, keybindings working
      • chat and console receive chars as usual - your language work, special symbols work, uppercase correct
    • Mouse:
      • position in NUI work correctly
      • scroll works
      • mouse acceleration works correctly
  • Windowing system:
    • Windows resizing works
    • Fullscreen works
    • Pseudo fullscreen works
  • Rendering works, not glitches
  • OpenVR works (I hope)
  • Natives publishes in distribution
  • Check switchable graphics on MacOS

[bonus] measure performance on discrete graphics

Outstanding before merging

  • Return SkySphere, LWJGL 3 lost glu packages
  • Merge GLFW's char and key callbacks products... or separate NUIs key events
    Its works separatelly now. Generates two independent KeyboardEvent streams.
    [!] You are moving when type in chat or console in-game!
  • Repair type adapter for configuration (Resolution not saves)
  • Repair LwjglPortlet (for TeraEd, or use another way)
  • Repair framelimit
  • Fix Resolution in settings gui (used Object's toString)
  • Expose LWJGL 3 to modules
  • Saving window position
  • Refactor Debug/Error outputs for LWJGL 3
  • Overall refactoring
  • Replace SwingSplashScreen with LWJGL 3 solution (GLFW+ LWJGL's opengl).
  • Merge Add classes for implement GLFW splash screen. SplashScreen#4

@DarkWeird DarkWeird marked this pull request as draft May 19, 2020 06:12
@DarkWeird DarkWeird marked this pull request as ready for review May 19, 2020 06:38
@skaldarnar
Copy link
Member

Wow, thanks for putting all the effort into this @DarkWeird 👍 highly appreciated, I hope we can pull this change off 💪

@lgtm-com
Copy link

lgtm-com bot commented May 25, 2020

This pull request introduces 1 alert when merging 9da53be into 1367fa1 - view on LGTM.com

new alerts:

  • 1 for Implicit narrowing conversion in compound assignment

@lgtm-com
Copy link

lgtm-com bot commented May 25, 2020

This pull request introduces 1 alert when merging f8e6fcf into 1367fa1 - view on LGTM.com

new alerts:

  • 1 for Implicit narrowing conversion in compound assignment

…tect. otherwise System.setProperty haven't any effect on Lwjgl Configuration.
…independ (it can break writing lwjgl's path natives)
# Conflicts:
#	engine/src/main/java/org/terasology/engine/subsystem/lwjgl/LwjglGraphics.java
#	engine/src/main/java/org/terasology/rendering/ShaderManagerLwjgl.java
@DarkWeird DarkWeird added the Api label Oct 13, 2020
@pollend
Copy link
Member

pollend commented Oct 18, 2020

I made some tweaks to mouse to correct for some stuttering issues I've been having:

DarkWeird#1

@jdrueckert
Copy link
Member

LWJGL3

@DarkWeird DarkWeird mentioned this pull request Oct 19, 2020
6 tasks
@lgtm-com
Copy link

lgtm-com bot commented Oct 23, 2020

This pull request introduces 2 alerts when merging 02736ba into 4d73f9d - view on LGTM.com

new alerts:

  • 1 for Spurious Javadoc @param tags
  • 1 for Implicit narrowing conversion in compound assignment

…pendencies. Seems, broken after upgrading gradle to version 6.7
@lgtm-com
Copy link

lgtm-com bot commented Oct 23, 2020

This pull request introduces 2 alerts when merging adb8075 into 4d73f9d - view on LGTM.com

new alerts:

  • 1 for Spurious Javadoc @param tags
  • 1 for Implicit narrowing conversion in compound assignment

Cervator added a commit to Terasology/ModularComputers that referenced this pull request Oct 24, 2020
@Cervator Cervator mentioned this pull request Oct 24, 2020
@Cervator Cervator merged commit c83655f into MovingBlocks:develop Oct 24, 2020
@Cervator Cervator added this to the v4.1.0 milestone Oct 24, 2020
@Cervator Cervator added the Topic: Architecture Requests, Issues and Changes related to software architecture, programming patterns, etc. label Oct 24, 2020
@Cervator
Copy link
Member

Did final testing on both Mac + Windows, made a few tweaks via #4216, and merged this. Thanks for both the momentous work and the patience in keeping it up to date and continuously improving it @DarkWeird :-)

Cervator added a commit to Terasology/WorkstationCrafting that referenced this pull request Oct 24, 2020
Cervator added a commit to Terasology/BasicCrafting that referenced this pull request Oct 24, 2020
Cervator added a commit to Terasology-Archived/WoodAndStone that referenced this pull request Oct 24, 2020
Cervator added a commit to Terasology/Equipment that referenced this pull request Oct 24, 2020
Cervator added a commit to Terasology-Archived/GooKeeper that referenced this pull request Oct 24, 2020
Cervator added a commit to Terasology/Anatomy that referenced this pull request Oct 24, 2020
@skaldarnar skaldarnar removed the Api label May 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Category: Performance Requests, Issues and Changes targeting performance Topic: Architecture Requests, Issues and Changes related to software architecture, programming patterns, etc. Topic: Rendering Requests, Issues and Changes related to lighting, meshes, camera, etc. Topic: UI/UX Requests, Issues and Changes related to screens, artwork, sound and overall user experience
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Upgrade to LWJGL 3 (or LibGDX)
6 participants