114 Commits
Author SHA1 Message Date
Duy Tran KhanhandDuy Tran Khanh 33cb7d0125 Custom Controls revisions implemenation (#292)
* Move control loaders to CustomControlsUtils.m

* WIP Drawer support (currently broken)

Also, updated MetalANGLE for helping debug stuff on crash.

* temp

* ControlDrawer: free orientation

* Avoid scrolling the hotbar in grab mode

* Popover: fix the frame inside the arrow

* Changes

- Attempt to allow Microsoft login when offline.
- Custom controls: drawer and sub-buttons are now visible.
- Pickers in Preferences: pre-select at the saved index.

* Bump version code to 4, hide sub-button by default

* Fix text trucanting

* impl scroll buttons, rewrite some parts to objc

* Virtual mouse implementation

Also, possible fix for popover crashes on iPad

Exception type: NSInternalInconsistencyException
> Reason: Tried to set <UIBarButtonItem: 0x10fee5660> menuOnTouchDown
menu=0x2810dce10 image=<UIImage:0x280149050 symbol(system:
ellipsis.circle) {20, 19} baseline=3.5,contentInsets={1, 1.5, 1,
1.5},alignmentRectInsets={-0.5, 0, -0.5, 0}
config=<traits=(UserInterfaceIdiom = Pad, DisplayScale = 2,
DisplayGamut = sRGB, HorizontalSizeClass = Regular, VerticalSizeClass
= Regular, UserInterfaceStyle = Dark, UserInterfaceLayoutDirection =
LTR, PreferredContentSizeCategory = L, AccessibilityContrast =
Normal)>> as sourceView of
<_UIAlertControllerActionSheetRegularPresentationController:
0x12043f5a0>, even though it is not a kind of UIView.

* Swap item between hands by double-tap item moment

* Basic editor (only several stuff implemented)

There's no save/load yet, so it's just a preview for now.

* Control editor (preview only)
TODO: Color picker for iOS < 14

* Save, load and set default are here

* Changes

- Ported Snap and Align from Android
- Added options: create and delete button

TODO:
- color picker for iOS < 14
- drawer editor
- maybe more

* Editor: Added orientation changer for drawer

Added some more check to determine whether dynamic position should be
visible (when the button is not a sub-button, or the parent drawer
doesn't use the FREE orientation)

* Editor: implemented adding drawer and sub-button

* Added a warning about unfinished custom controls

Co-authored-by: Duy Tran Khanh <[email protected]>
2021-11-26 10:35:21 +07:00
Duy Tran KhanhandDuy Tran Khanh db0074d1e5 Merge custom control changes (#284)
* Move control loaders to CustomControlsUtils.m

* WIP Drawer support (currently broken)

Also, updated MetalANGLE for helping debug stuff on crash.

* temp

* ControlDrawer: free orientation

* Avoid scrolling the hotbar in grab mode

* Popover: fix the frame inside the arrow

* Changes

- Attempt to allow Microsoft login when offline.
- Custom controls: drawer and sub-buttons are now visible.
- Pickers in Preferences: pre-select at the saved index.

* Bump version code to 4, hide sub-button by default

* Fix text trucanting

* impl scroll buttons, rewrite some parts to objc

* Virtual mouse implementation

Also, possible fix for popover crashes on iPad

Exception type: NSInternalInconsistencyException
> Reason: Tried to set <UIBarButtonItem: 0x10fee5660> menuOnTouchDown
menu=0x2810dce10 image=<UIImage:0x280149050 symbol(system:
ellipsis.circle) {20, 19} baseline=3.5,contentInsets={1, 1.5, 1,
1.5},alignmentRectInsets={-0.5, 0, -0.5, 0}
config=<traits=(UserInterfaceIdiom = Pad, DisplayScale = 2,
DisplayGamut = sRGB, HorizontalSizeClass = Regular, VerticalSizeClass
= Regular, UserInterfaceStyle = Dark, UserInterfaceLayoutDirection =
LTR, PreferredContentSizeCategory = L, AccessibilityContrast =
Normal)>> as sourceView of
<_UIAlertControllerActionSheetRegularPresentationController:
0x12043f5a0>, even though it is not a kind of UIView.

Co-authored-by: Duy Tran Khanh <[email protected]>
2021-10-15 05:16:17 +07:00
Duy Tran Khanh c2a0e3ae80 Changes in LauncherPreferencesViewController
- Java arguments edit text box: moved the done button to the return button.
- New option: slideable hotbar. This option allows you to use a finger to slide between hotbar slots.
- View tag IDs are moved to macros.
2021-10-03 12:35:05 +07:00
Duy Tran Khanh b7e2334639 Bug fix: scroll the hotbar
since scrolling is too fast, disable it moment
2021-10-02 14:12:26 +07:00
Duy Tran Khanh 4f59e0ffff PojavCore is now inside the main executable
This took so long since there was a failed attempt in unloading and
reloading JVM to support Forge 1.17.x. Next attempt would be rewrite
everything to Objective-C and move the JVM entry point to the start of
the game.
2021-10-01 11:14:05 +07:00
Duy Tran Khanh 64f4042103 Changes
- Downgraded to Mesa 21.0 since 21.2.? goes brrr
- Zink renderer is now visible in the renderer picker.
- Makefile: test multi-line ssh script moment
2021-09-18 19:52:09 +07:00
Duy Tran Khanh b2ffd5edc3 Changes
- libpojavexec.dylib is now PojavCore.framework.
- More changes for Zink renderer. Note that Mesa 21.0 is included instead of 21.2.1 due to the new version seems to be broken, only display glClearColor.
2021-09-17 07:00:14 +07:00
Duy Tran Khanh 5dcacb6d00 Changes
- Fixes #272
- Replaced MGLLayer with EGL calls
- Re-implemented Zink renderer to work with new Renderer selection system (currently hidden due to unfinished)
2021-09-14 10:57:24 +07:00
Duy Tran Khanh dd9be6e0c4 New renderer: Tiny GL wrapper for ANGLE
This renderer allows Minecraft 21w10a and newer to be rendered directly
in OpenGL ES through ANGLE with several wrapped functions, so the game
may runs with better performance.
Source code:
https://github.com/PojavLauncherTeam/gl4es/tree/master/tinygl4angle
2021-09-05 10:39:00 +07:00
Duy Tran Khanh 49125524d3 Preliminary support for v2 (code 3) control
TODO:
- Control editor
- Implement Drawer

FIXME:
-[MGLLayer init] crashes. Maybe replace with CAMetalLayer?
2021-08-30 07:13:39 +07:00
Duy Tran Khanh f00b09af2e Changes
- [Custom controls] Implemented `isSwipeable` property.
- VGPU has error at `sampler2DShadow`, so ignore it for now.
- WIP changes on jailed version.
2021-08-27 20:55:38 +07:00
Duy Tran Khanh f571e96662 Changes
- Replace MGLKView with UIView + MGLLayer. Attempt to fix crash at "[MGLKView initWithFrame]". Known issue: hotbar offset is a bit wrong when scale ≠ 100%
- Cleanup some unused files.
2021-08-24 11:36:01 +07:00
Duy Tran Khanh d8115fab9d Attempt to fix crash 2021-08-23 13:28:16 +07:00
Duy Tran Khanh 5ce5dbcc00 Changes
- Avoid printing "Session ID". Several Minecraft versions do that.
- Fixes Minecraft 1.13 snapshot due to the usage of LWJGL functions from an older version.
- Minecraft's built in Fullscreen Resolution scaler is available now, but not working properly.
- Regal internal changes (still fail at )
2021-08-23 11:19:54 +07:00
Duy Tran Khanh ce3cc585cf Fix crash when logging surfaceRect 2021-08-22 09:27:03 +07:00
Duy Tran Khanh a4fca52430 Check surfaceRect 2021-08-22 07:28:17 +07:00
Duy Tran Khanh fe5f9e77a9 Changes
- Added a check to prevent attempt to launch 1.17+ with Java 8.
- Added an option to disable gl4es shaderconv in order to let ANGLE
processes them directly. This option lets Minecraft 1.17+ work
without the patch resource pack, OptiFine works aswell :)
- Changing renderer library no longer requires restart the launcher.
- Fixed some alert dialogs not displaying.
- PList default values are now set every time it loads.
2021-08-13 07:25:17 +07:00
Duy Tran Khanh a739cf7202 Resolution downscaler moment 2021-08-10 19:42:10 +07:00
Duy Tran Khanh 0212022859 Bug fix: the GUI button hides itself 2021-08-08 13:02:09 +07:00
Duy Tran Khanh 8eac9fefd5 Maybe this is not needed 2021-08-07 10:29:52 +07:00
Duy Tran Khanh c617b645b9 oof 2021-08-07 10:25:34 +07:00
Duy Tran Khanh 66bee901db Layout converter v1 -> unfinished v2
"i want new keyboard for pojavluancher" x20 by @𝙵𝚊𝚔ȇ̈_A𝕣ᴄᴀᴅᴇ#7200
2021-08-07 10:17:52 +07:00
Duy Tran Khanh e079e86a80 Changes
- Automatically set overrideWidth and overrideHeight
- Multi-context moment.
Current status of Forge 1.12.2:

Exception type: EXC_BAD_ACCESS (SIGSEGV)
Exception subtype: KERN_INVALID_ADDRESS: 0x964
Exception codes: 0x0000000000000001, 0x0000000000000964
Culprit: Unknown
VM Protection: 0x964 is not in any region.

Triggered by thread: 20
Thread name:
Call stack:
0   libgl4es_115.dylib  0x000000012196738c 0x121900000 + 422796  //
realize_glenv
1   libgl4es_115.dylib  0x00000001219672dc 0x121900000 + 422620  //
realize_glenv
2   libgl4es_115.dylib  0x0000000121966e78 0x121900000 + 421496  //
fpe_glDrawArrays
3   libgl4es_115.dylib  0x000000012199d4e4 0x121900000 + 644324  //
draw_renderlist
4   libgl4es_115.dylib  0x000000012197e39c 0x121900000 + 517020  //
gl4es_flush
5   libgl4es_115.dylib  0x00000001219609e4 0x121900000 + 395748  //
proxy_glEnable
2021-08-05 15:17:56 +07:00
Duy Tran Khanh a3976102a9 Removed MinecraftSurface storyboard dependence 2021-08-04 05:48:43 +07:00
Duy Tran Khanh 0668d016bf Changes
- Added Caciocavallo (libawt_xawt stubs) support library.
- Added support lauching Minecraft 1.5.2 and older (requires latest
JRE8 build)
- [Custom controls] Implemented opacity property.
- Version info is now updated through macro instead of `sed` command.
2021-08-01 10:41:02 +07:00
Duy Tran Khanh d82a73a35a Update SurfaceViewController.m 2021-07-26 08:20:35 +07:00
Duy Tran Khanh b6b8e24189 Scroll using 2 fingers (known issue: too fast) 2021-07-26 08:17:02 +07:00
Duy Tran Khanh c896da08bb A lot of more changes
* Custom controls:
- Unfinished v2 control
- Auto generate default.json, removed internal fallback control
- Compatible with Android's dp (might need scaling)
- Implemented properties: keycodes, bgColor, strokeColor, strokeWidth,
cornerRadius

* Other changes
- Updated MetalANGLE to 0.0.7
- Updated gl4es 1.1.5

* TODO:
- Control converter
- Drawer buttons
- Multiple keys support (?)
- Implement properties: opacity, isSwipeable, isToggle,
passThruEnabled, (maybe more?)
2021-07-23 16:51:51 +07:00
Duy Tran Khanh 11e11a6ccf [Unfinished] Custom controls implementation 2021-07-19 20:02:58 +07:00
Duy Tran Khanh 8f5059e741 Changes
- [Custom controls] Removed control size limit, prepare custom controls
screen.
- [Jailed] Use  directory as home instead of

- [Preference] Added "button scale"
- [Preferences] Moved into launcher_preferences.plist
2021-07-17 07:18:03 +07:00
Duy Tran Khanh 12f6fcf1b6 Bug fixes around interacting with hotbar
- GUI scale is never set, so hotbar offset becomes wrong.
- Touching from hotbar to outside and vice versa cause camera to jump
randomly.
2021-07-12 16:27:54 +07:00
Duy Tran Khanh 65eb859a13 Bug fix: text typing on MC <= 1.12.2 (still buggy) 2021-07-09 06:38:16 +07:00
Duy Tran Khanh a7866235af Merge egl_bridge_ios.m into egl_bridge.m 2021-07-08 16:11:18 +07:00
Duy Tran Khanh be1646c8ce Now this can be installed as an IPA :trollface: 2021-07-02 20:05:59 +07:00
Duy Tran Khanh a742e5b14f Updated gl4es: probably fixes 1.17 empty terrain 2021-06-30 06:48:00 +07:00
Duy Tran Khanh 255e896fdc Changes
* Bug fixes:
- Duplicate version in picker list.
- Version list does not get automatic updated.
- Version picker does not scroll to the current selected version.

* Code changes.
2021-06-19 09:49:23 +07:00
Adam Tunnic bf49ea8291 Better implementation of hiding the home bar 2021-06-09 21:36:07 +07:00
Adam Tunnic 719b96829d Minor changes to System Gestures
Change from UIRectEdgeAll to UIRectEdgeBottom, so that the notification center and iPhone X/iPad CC can be pulled without two swipes. Useful for screen recording.
2021-06-02 12:36:56 +07:00
Duy Tran Khanh 40aa7434a4 Update SurfaceViewController.m 2021-05-26 20:53:53 +07:00
Duy Tran Khanh 8d2ec668f9 [Safe area] fixed touch view not full screen
Clean a piece of duplicated code
2021-05-26 20:49:04 +07:00
Duy Tran Khanh cddd176a27 [notch offset] ok, we should take left insets only 2021-05-26 20:41:49 +07:00
Duy Tran Khanh 32010a6979 [clipboard request] Fixed the check
Also cleaned other compile warnings
2021-05-25 20:38:07 +07:00
Duy Tran Khanh 3be87bfa46 Changes
- Added preferences screen (currently empty)
- Cleaned compiler warnings
- Implemented GLFW clipboard
2021-05-24 20:50:40 +07:00
Adam Tunnic 56bc70d999 PojavLauncher now feels like a game :)
Hiding the home bar and preventing accidental swipes from interrupting?
Check.
2021-04-25 02:12:45 -04:00
Adam Tunnic c650b72cd2 Attempt to hide on all the ViewControllers 2021-04-24 12:24:19 -07:00
Adam Tunnic a1bbd3e57c Readd HomeIndicAutoHidden 2021-04-24 15:06:23 -04:00
Adam Tunnic 048f509770 All instead of Bottom 2021-04-24 15:02:59 -04:00
Adam Tunnic 76264d4030 Try if(@available(iOS 12.0, *)
Still working on the home bar
2021-04-24 10:34:13 -07:00
Adam Tunnic 29cb728d67 Readd prefersHomeIndicatorAutoHidden 2021-04-24 12:20:56 -04:00
Adam Tunnic 8d2bc9661c setNeedsUpdateOfScreenEdgesDeferringSystemGestures 2021-04-24 11:52:33 -04:00