Find a file
Yan c083a7cc90 Force OpenGL Core Profile context on macOS
By default, SDL creates an OpenGL 2.1 context on macOS for an OpenGL
renderer. As a consequence, mipmapping is not supported.

Force to use a core profile context, to get a higher version.

Before:

    INFO: Renderer: opengl
    INFO: OpenGL version: 2.1 NVIDIA-14.0.32 355.11.11.10.10.143
    WARN: Trilinear filtering disabled (OpenGL 3.0+ or ES 2.0+ required)

After:

    INFO: Renderer: opengl
    DEBUG: Creating OpenGL Core Profile context
    INFO: OpenGL version: 4.1 NVIDIA-14.0.32 355.11.11.10.10.143
    INFO: Trilinear filtering enabled

when running with:

    scrcpy --verbosity=debug --render-driver=opengl

Note: Since SDL_CreateRenderer() causes a fallback to OpenGL 2.1, the
profile and version attributes have to be set and the context created
_after_.

PR #3895 <https://github.com/Genymobile/scrcpy/pull/3895>

Signed-off-by: Romain Vimont <rom@rom1v.com>
2023-04-12 21:26:24 +02:00
.github/ISSUE_TEMPLATE Improve bug report template 2020-05-06 22:26:43 +02:00
app Force OpenGL Core Profile context on macOS 2023-04-12 21:26:24 +02:00
assets Update README 2018-03-07 18:04:38 +01:00
config Upgrade Android checkstyle to 9.0.1 2021-10-30 11:23:51 +02:00
doc Add --audio-output-buffer 2023-03-14 23:54:07 +01:00
gradle/wrapper Upgrade gradle build tools to 7.4.0 2023-03-03 11:13:48 +01:00
scripts Use portable shebang for all bash scripts 2020-09-15 13:54:00 +02:00
server Remove Options setters 2023-04-09 20:02:39 +02:00
.gitignore Add local.properties to gitignore 2020-11-03 17:09:03 +01:00
build.gradle Upgrade gradle build tools to 7.4.0 2023-03-03 11:13:48 +01:00
bump_version Add script to bump version 2021-12-10 19:50:17 +01:00
cross_win32.txt Upgrade SDL (2.26.4) for Windows 2023-03-12 02:04:58 +01:00
cross_win64.txt Upgrade SDL (2.26.4) for Windows 2023-03-12 02:04:58 +01:00
FAQ.md Merge branch 'master' into dev 2023-03-12 02:05:24 +01:00
gradle.properties Enable video output file, with pts set by server 2018-11-11 16:30:23 +01:00
gradlew Update to Gradle 6.3 2020-04-03 18:11:35 +02:00
gradlew.bat Update to Gradle 6.3 2020-04-03 18:11:35 +02:00
install_release.sh Update links to v2.0 2023-03-12 02:49:28 +01:00
LICENSE Happy new year 2023! 2023-03-12 02:04:58 +01:00
meson.build Bump version to 2.0 2023-03-12 02:05:37 +01:00
meson_options.txt Add compilation flag for USB features 2022-02-12 14:15:07 +01:00
README.md Replace link to enable USB debugging in README 2023-03-13 10:19:22 +01:00
release.mk Upgrade platform-tools (34.0.1) for Windows 2023-03-12 02:04:58 +01:00
release.sh Rename release.make to release.mk 2021-01-01 15:51:10 +01:00
run Fix icon path in ./run 2022-03-30 14:00:05 +02:00
settings.gradle Convert server to an Android project 2018-01-30 12:01:36 +01:00

scrcpy (v2.0)

scrcpy

pronounced "screen copy"

This application mirrors Android devices (video and audio) connected via USB or over TCP/IP, and allows to control the device with the keyboard and the mouse of the computer. It does not require any root access. It works on Linux, Windows and macOS.

screenshot

It focuses on:

  • lightness: native, displays only the device screen
  • performance: 30~120fps, depending on the device
  • quality: 1920×1080 or above
  • low latency: 35~70ms
  • low startup time: ~1 second to display the first image
  • non-intrusiveness: nothing is left installed on the Android device
  • user benefits: no account, no ads, no internet required
  • freedom: free and open source software

Its features include:

Prerequisites

The Android device requires at least API 21 (Android 5.0).

Audio forwarding is supported from API 30 (Android 11).

Make sure you enabled USB debugging on your device(s).

On some devices, you also need to enable an additional option USB debugging (Security Settings) (this is an item different from USB debugging) to control it using a keyboard and mouse.

Get the app

User documentation

The application provides a lot of features and configuration options. They are documented in the following pages:

Resources

Articles

Contact

If you encounter a bug, please read the FAQ first, then open an issue.

For general questions or discussions, you can also use:

Donate

I'm @rom1v, the author and maintainer of scrcpy.

If you appreciate this application, you can support my open source work.

Licence

Copyright (C) 2018 Genymobile
Copyright (C) 2018-2023 Romain Vimont

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.