AVNC always tried to open the left/start drawer when connecting for the
first time, to highlight it for the new users. But if a user changes the
toolbar alignment to 'End' before ever connecting to a server, AVNC will
crash when connecting for the first time, because there won't be any
'left' drawer.
Fix it by opening the toolbar directly.
Android requires the aspect ratio of PiP window to be within 1:2.39 range
in either orientation. If aspect ratio of framebuffer was outside this
range, it would crash the app.
Also guarded against unlikely possibility of fbWidth/fbHeight being 0.
Until now, connection was started at the very end of onCreate(). As a
result components like Dispatcher could not rely on VncViewModel's
profile during their initialization. Now initialization happen at
the beginning.
It also comes with a tiny bit of performance improvement.
Receiver thread can now start the connection early, while main thread
is still creating the UI.
In OpenGL ES 2, support for sampling non-power-of-two textures in
fragment shaders is only guaranteed when wrap mode is GL_CLAMP_TO_EDGE.
Although most modern GPUs don't enforce this requirement, some devices
(like Tegra from Nvidia) do.
Related Github Issue: #85
For a_Position attribute, Frame.bind() only assign the x,y components,
but a_Position was declared as vec4.
While this generally does not cause any issue, its much better to
use the correct data type to avoid any possible misbehavior.
Program validation verifies the shaders against current OpenGL state.
So doing it in onSurfaceCreated() is not helpful, because uniforms
& attributes are not set at that stage and texture is not properly
initialized.
Now program is validated just before the draw command is issued.
Added new language using Weblate (German)
Translated using Weblate (Norwegian Bokmål)
Translated using Weblate (Ukrainian)
Translated using Weblate (Polish)
Translated using Weblate (Chinese (Simplified))
Translated using Weblate (Turkish)
Translated using Weblate (French)
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Andrij Mizyk <andmizyk@gmail.com>
Co-authored-by: WaldiS <sto@tutanota.de>
Co-authored-by: Pure Incompetence <inc@mailbox.org>
Co-authored-by: GT-610 <myddz1005@163.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Nathan <bonnemainsnathan@gmail.com>
Added new language using Weblate (Polish)
Added new language using Weblate (Chinese (Simplified))
Translated using Weblate (Turkish)
Translated using Weblate (Ukrainian)
Translated using Weblate (French)
Translated using Weblate (Portuguese (Brazil))
Translated using Weblate (Norwegian Bokmål)
Co-authored-by: Andrij Mizyk <andmizyk@gmail.com>
Co-authored-by: Саша Петровић <salepetronije@gmail.com>
Co-authored-by: Allan Nordhøy <epost@anotheragency.no>
Co-authored-by: Nathan <bonnemainsnathan@gmail.com>
Co-authored-by: J. Lavoie <j.lavoie@net-c.ca>
Co-authored-by: Luiz-bro <luiznneto1@gmail.com>
Co-authored-by: wang <wwj402@sina.com>
Co-authored-by: Oğuz Ersen <oguz@ersen.moe>
Co-authored-by: WaldiS <sto@tutanota.de>
If supported by server, client-side cursor rendering gives us significant
boost in cursor responsiveness. This also unlocks many other features:
1. Most servers will now report mouse movements done unilaterally on server.
This info will help with touchpad/relative action mode.
2. We can now add the ability to follow cursor while zoomed-in (it was possible
before, but looked really ugly).
3. It serves as a workaround for cursor-invisibility in TightVNC.