Commit Graph
297 Commits
Author SHA1 Message Date
khanhduytran0 ed57e98a9b Draft (doesn't work now): MGL renderer
This is currently only for debugging purpose
2023-03-23 06:51:32 +07:00
khanhduytran0 740d53723c Fix(GLFW): missing forward-compatible functions 2023-03-22 22:05:53 +07:00
Duy Tran Khanh 83b43238c9 Fix(JNA): snprintf() output has been truncated
Update JNA to 5.13.0:
https://github.com/java-native-access/jna/blob/767662a/lib/native/darwi
n-aarch64.jar
$ vtool -arch arm64 -set-build-version 2 12.0 16.0 -replace -output
libjnidispatch.dylib libjnidispatch.dylib
$ install_name_tool -change
/System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
/System/Library/Frameworks/Foundation.framework/Foundation
libjnidispatch.dylib
2023-03-19 16:04:15 +07:00
Duy Tran Khanh 881dc5cf54 Fixes: Invisible toolbar views on iOS 12-13
Correct GLFWInputImplementation.java location
Add back Swipeable Hotbar option (removed by accident)
2023-03-10 07:11:45 +07:00
Duy Tran Khanh c431f9eb6f Fix #512: move spiral gamedir properties 2023-02-24 04:56:57 +07:00
Duy Tran Khanh 7f65ad1e4f Fix window size for Minecraft 1.2.1-1.2.4 (https://github.com/PojavLauncherTeam/PojavLauncher/commit/4c43522) 2023-01-31 22:15:33 +07:00
Duy Tran Khanh 54a7f2b152 Fix(input_bridge): crash due to window resize called in wrong way
Actually, this pick up changes in
https://github.com/PojavLauncherTeam/PojavLauncher/commit/e2641813562c8
4290281c9f01d560ebca39ad595
2023-01-31 21:19:47 +07:00
Duy Tran Khanh b9b0e0959b Fix: broken mouse coord input again
Turns out another fix broke it
2023-01-30 21:59:51 +07:00
Duy Tran Khanh fd436d9f88 Fix: issues with legacy versions
This picks up the following commits from Android repo:
*
https://github.com/PojavLauncherTeam/PojavLauncher/commit/4716e99df12ab
5bfcaade881774e3b07e8e35450: Don't call Display.create in AWTGLCanvas
constructor (fixes Minecraft 1.2.1-1.2.4)
*
https://github.com/PojavLauncherTeam/PojavLauncher/commit/693cff45b09b3
ca09784a3038a3f9c89cacd391f: Infdev cursor grab: the Pojav part +
Window resize on first key even poll (actual on iOS is on grab state
changes because Android's approach does not work)
*
https://github.com/PojavLauncherTeam/PojavLauncher/commit/ee39334bf31ed
0687c750f37229cf6bea8919b4c (Comment out unnecessary calls to resize)
2023-01-30 09:57:15 +07:00
khanhduytran0 b0203d6fc7 Text input for jar launcher, update lib, fixes
News
- Added text input support for jar launcher.
- Updated MoltenVK to https://github.com/KhronosGroup/MoltenVK/commit/d880f4c

Internal changes
- Added more handling cases to avoid missing call to pojav_initOpenGL()
- Moved custom control’s global functions and properties to ControlLayout.
- Moved dylib framework outside its folder, as it’s not necessary to be bundled in framework.
- Reusing custom controls to produce flexible buttons in jar launcher, which might be extended in the future.

Fixes
- Multistage text input (Japanese, Chinese, etc) should now work again.
- Pointer lock should now function properly again.

- Updated README.md to reflect current stuff
2023-01-19 09:54:55 +07:00
Duy Tran Khanh 652316e8f6 Various fixes and enhancements
- Change setNeedsUpdateOfPrefersPointerLocked logic to hopefully fix
issues with mouse not recognizing on iPhones
- Change reloadVersionList logic to load Installed version list
instantly at startup
- Enable game's CALayer opaque and drawsAsynchronously to improve
rendering performance
- Handle natives_directory variable for legacy modded versions
- Set LD_LIBRARY_PATH to silent Caciocavallo NPE error in locating
Android-only code
- Tapping Play when no version selected will now bring up the version
picker instead of doing nothing
2023-01-13 20:11:50 +07:00
Duy Tran Khanh 61929eb9ad Fix modded client library priority
Removed ancient(v2) parameter: optifineLib

Wrap invokeAfterJITEnabled's handler in main_queue for a more clean
stack
2023-01-07 21:33:49 +07:00
Duy Tran Khanh 7c6c986b68 Fix: missing JNA version override 2023-01-05 11:59:47 +07:00
Duy Tran Khanh 18c59126ba Fix Realms API broke due to UUID with dashes
It’s weird that Realms API just returns empty list whenever UUID with dashes is passed. Without dashes, Realms is now working.
2022-12-20 17:52:32 +07:00
Duy Tran Khanh 85563047a8 GLFW.java: add glfwExtensionSupported 2022-12-06 18:41:09 +07:00
khanhduytran0 99c9e05f1c Add missing icons + tweaks
Fixes/changes
- Compile error in input_bridge_v3.m
- Removed calls to end editing of text fields in CustomControlsViewController.m
- Simplified FlatLAF patch error
2022-11-25 19:52:54 +07:00
Duy Tran Khanh 2125c87f14 Removed fullscreen/size launch arguments
These are no longer necessary.
2022-11-24 22:10:02 +07:00
Duy Tran Khanh 5eae6015d6 Rearranged UI layout
* Moved account selection to the secondary NavigationController
* Added logo to fill in the primary one
* Moved buttons to the sidebar:
- Custom controls
- Install jar
- Send logs
* Fixed object memory leakage in LauncherNavigationController
* Set fullscreen=false on startup, workaround < 1.13 resizing issue
* Reduced mouse_pointer size

TODOs:
* Add icons for new items, will prefer copying from the Android
version.
* Remove LoginViewController: integrate add account to the account
selector, move Techno text+check to sidebar, etc..
* Instead of separate Microsoft, Demo login; display demo warning
before MS login.
2022-11-21 22:03:59 +07:00
Duy Tran Khanh 5cfa1c33eb Add xuid to MinecraftAccount 2022-11-20 15:56:46 +07:00
Duy Tran Khanh 8f8ec8df89 Cleanup some stuff 2022-11-13 09:15:24 +07:00
Duy Tran Khanh 8ca77a1b73 Support resizable for iPadOS Stage Manager
On iPadOS, PojavLauncher can be launched in portrait mode
Declare controller support in Info.plist
Sync LWJGL changes from Android repo
2022-10-31 11:13:03 +07:00
Duy Tran Khanh cf9d0d136d Use FileSystemPreferencesFactory instead of OSX 2022-09-25 10:52:35 +07:00
khanhduytran0 a7a4e015f4 Don't exclude jinput; Updated gl4es to https://github.com/PojavLauncherTeam/gl4es-114-extra/commit/29ce130 2022-09-16 10:39:25 +07:00
khanhduytran0 1669857401 Fix Forge 1.19.2; wait timeout for CS_DEBUGGED in main()
Removed module-info.class from lwjgl jar files
2022-09-13 09:20:42 +07:00
Duy Tran Khanh b23678692a Merge commit 'e1bd237d69f7ad95b0fa01c629a62f5880cf9943'
Conflicts:
	.github/workflows/development.yml
	.github/workflows/release.yml
	Makefile
	Natives/main.m
2022-08-30 17:02:07 +07:00
khanhduytran0 8433a7d739 Added missing lwjglx funcs, perform some filters in currentVC func 2022-08-29 21:33:14 +07:00
Duy Tran Khanh 0783f2d43a Java 8: Fix awt_xawt and Caciocavallo 2022-08-25 07:14:31 +07:00
Duy Tran Khanh 56c5df0305 Update cacio-tta-1.18-SNAPSHOT.jar 2022-08-24 21:47:17 +07:00
Duy Tran Khanh b7cc2d097e Added Caciocavallo17; Get JRE build from Actions 2022-08-24 12:34:06 +07:00
Duy Tran Khanh d75f203bf3 Use RTLD_DEFAULT instead of try to reload exec twice 2022-08-22 06:11:46 +07:00
Duy Tran Khanh 19ebae62c2 Make switches functional + warnings + some fixes 2022-08-21 21:34:02 +07:00
Duy Tran Khanh 0c4c53c953 Finish auto renderer selection 2022-08-18 19:09:12 +07:00
Duy Tran Khanh 9a5cee04c6 wip auto renderer 2022-08-18 08:09:46 +07:00
Duy Tran Khanh 10aa3d07e8 Simplify scrollPanGesture handling 2022-08-14 09:12:19 +07:00
Duy Tran Khanh cf8a5609c0 Fixes a crash that could occur with Java 17
Additional change: added increased-memory-limit entitlement for iOS 15
2022-08-14 09:05:17 +07:00
Duy Tran Khanh 38c41d65d9 Auto disable Forge splash screen 2022-08-12 18:26:38 +07:00
Duy Tran Khanh 1592d50f65 Attempt to unlock 120Hz for ProMotion display 2022-08-12 12:09:41 +07:00
Duy Tran Khanh ae1c86b113 Various fixes
- GLFW display mode array, fix 0x0 resolution bug
- OSMesa library (copied back 64f4042)
- Hacks for getting Spiral Knights to launch
- Error is now logged properly
2022-08-12 11:53:02 +07:00
Duy Tran Khanh d8459effc0 WIP: New User interface
UISplitViewController is being used to create split menu.
Currently, autolayout is not yet done.
Added account switcher to the split view.

Fixes:
- auth_session parameter for legacy Minecraft versions
- Updating self.view background color is now automated by
UIColor.systemBackgroundColor
2022-07-22 08:02:40 +07:00
Duy Tran Khanh ee2c68fb98 Fixes
Makefile: fix path
Moved GameSurfaceView to a separate class
Renamed MinecraftDownloader to MinecraftResourceUtils

Fix: Some versions fails because GLFW_CLIENT_API is not set
2022-07-01 07:02:25 +07:00
khanhduytran0 97433a5596 Add support for mods that use Vulkan for rendering
Known mods: Blaze4D (untested), VulkanMod, more?
- VulkanMod: needs a tiny modification to get it work with LWJGL 3.2.3
2022-06-10 12:13:23 +07:00
Duy Tran Khanh a282074914 Handle ingame opening folder/link 2022-06-07 05:56:18 +07:00
Duy Tran Khanh 5d7c77d697 Forge 1.17+ support 2022-05-29 20:03:04 +07:00
Duy Tran Khanh 984647084b Fixes
- [Internal] Changed how setting current viewController work
- [Internal] Correct 018e46a: avoid duplicating code
- [Internal] Saving JSON now uses NSData to write directly
- Correct a check of the Launch .jar option
- Set the AWT window size for the game
2022-05-27 21:54:26 +07:00
Duy Tran Khanh 581acd1732 Tab -> spaces 2022-05-27 16:38:45 +07:00
khanhduytran0 bf12743457 Moved the JVM entry point to start when needed 2022-05-27 05:48:25 +07:00
khanhduytran0 2a9d3909f8 Internal, renderer and UI changes + 1.19-pre1 support
Minecraft 1.19 support:
- Since 1.19-pre1, LWJGL 3.3.1 is used. However, LWJGL 3.2.3 still works with it, at least for this Minecraft release.
- Added a hack to skip calling to ObjC codes (skipped an asset file to skip setting the icon)
- JNA version replacing: now only change to 5.8.0 if version < 5.8.0

Internal changes:
- Cleanup: moved global functions to a new place
- Handle demo user correctly: actually authenticate the game with demo's access token and use the Xbox gamertag as the username
- Start moving strings to Localizable.strings (WIP)
- Re-wrote the Microsoft authentication and account management to Objective-C
- Assets downloading: added a tiny sleep call so that the UI won’t be frozen when too many tasks are executed at the same time

Renderers changes
- gl4es: `init_constructor` is now enabled, therefore moved the preload part to before `eglInitialize` (or EGL will be de-init after gl4es's hardware test).
- gl4es-extra (aka holy gl4es 1.1.4) is now used to replace the regular gl4es. This fixes VBO issue on version < 1.13 and some extra stuff. https://github.com/PojavLauncherTeam/gl4es-114-extra/commit/d6cf5c4
- Removed gl4es 1.1.5 and `Disable gl4es shaderconv` as it's unnecessary for now
- Removed vgpu, as it requires some missing extensions when come to shaders

User interface:
- The account selection list now displays the skin head (or the Xbox gamerpic if demo) and the account type
2022-05-22 11:31:14 +07:00
khanhduytran0 1d7e8a8214 Experimental Minecraft Downloader
This is not yet finished, there are 3 main things left
- Make sure everything works
- (Assets) download old structure
- Cleanup

What are implemented?
- Downloading file is handled with AFNetworking
- SHA1 validation, can be turned off in Preferences
- inheritsFrom support (need testing)
- Downloading assets with 20 jobs parallel

Known issue
- Assets SHA1 validating freezes the UI

Additional things
- [Custom controls] Dynamic position error is now handled instead of just crashes
- [Custom controls] The editor animation is now changed to fade in/out (for now, later might change)
- VGPU renderer is now made hidden, since it's too limited on iOS, removal planned
- [Code cleanup] Use NSDictionary instead of a set of fields for renderer list; Fix wrong field name.
- Some more stuff...
2022-04-20 20:45:47 +07:00
Duy Tran Khanh 580da57855 Set GLFW window attrib; Proper external mouse lock
Setting window attribute fixes DynamicFPS mod being broken
2022-03-17 07:24:41 +07:00
Adam Tunnic 70c150af38 Make the debug logging switch actually do something
Pretty much disables everything except for [Pre-Init] and [Init], as well as Renderer Init Success. Toggle debug logging off to see.

regLog(message) -> logs all the time
debugLog(message) -> logs only when debug logging is enabled
2022-03-13 21:23:02 -04:00