diff --git a/QtScrcpy/device/device.cpp b/QtScrcpy/device/device.cpp index a91c4fd..341afe4 100644 --- a/QtScrcpy/device/device.cpp +++ b/QtScrcpy/device/device.cpp @@ -10,6 +10,7 @@ #include "stream.h" #include "videoform.h" #include "controller.h" +#include "config.h" Device::Device(DeviceParams params, QObject *parent) : QObject(parent) @@ -27,8 +28,7 @@ Device::Device(DeviceParams params, QObject *parent) m_decoder = new Decoder(m_vb, this); m_fileHandler = new FileHandler(this); m_controller = new Controller(params.gameScript, this); - //m_videoForm = new VideoForm(false); - m_videoForm = new VideoForm(); + m_videoForm = new VideoForm(Config::getInstance().getSkin()); m_videoForm->setSerial(m_params.serial); if (m_controller) { m_videoForm->setController(m_controller); diff --git a/QtScrcpy/dialog.cpp b/QtScrcpy/dialog.cpp index baf9dbb..eadd467 100644 --- a/QtScrcpy/dialog.cpp +++ b/QtScrcpy/dialog.cpp @@ -153,7 +153,7 @@ void Dialog::on_startServerBtn_clicked() params.maxSize = videoSize; params.bitRate = bitRate; // on devices with Android >= 10, the capture frame rate can be limited - params.maxFps = 60; + params.maxFps = Config::getInstance().getMaxFps(); params.recordFileName = absFilePath; params.closeScreen = ui->closeScreenCheck->isChecked(); params.useReverse = ui->useReverseCheck->isChecked(); diff --git a/QtScrcpy/dialog.ui b/QtScrcpy/dialog.ui index 53d449b..0f33bc2 100644 --- a/QtScrcpy/dialog.ui +++ b/QtScrcpy/dialog.ui @@ -6,7 +6,7 @@ 0 0 - 600 + 513 637 @@ -169,7 +169,7 @@ 0 - 240 + 200 diff --git a/QtScrcpy/main.cpp b/QtScrcpy/main.cpp index b4bdb29..63d9ad1 100644 --- a/QtScrcpy/main.cpp +++ b/QtScrcpy/main.cpp @@ -18,9 +18,7 @@ void installTranslator(); int main(int argc, char *argv[]) { - //QApplication::setAttribute(Qt::AA_UseDesktopOpenGL); - //QApplication::setAttribute(Qt::AA_UseOpenGLES); - //QApplication::setAttribute(Qt::AA_UseSoftwareOpenGL); + QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling); g_oldMessageHandler = qInstallMessageHandler(myMessageOutput); Stream::init(); @@ -64,6 +62,15 @@ int main(int argc, char *argv[]) file.close(); } + int opengl = Config::getInstance().getDesktopOpenGL(); + if (0 == opengl) { + QApplication::setAttribute(Qt::AA_UseSoftwareOpenGL); + } else if (1 == opengl){ + QApplication::setAttribute(Qt::AA_UseOpenGLES); + } else if (2 == opengl) { + QApplication::setAttribute(Qt::AA_UseDesktopOpenGL); + } + g_mainDlg = new Dialog; g_mainDlg->setWindowTitle(Config::getInstance().getTitle()); g_mainDlg->show(); diff --git a/QtScrcpy/util/config.cpp b/QtScrcpy/util/config.cpp index 0c57eb0..aa7fc8a 100644 --- a/QtScrcpy/util/config.cpp +++ b/QtScrcpy/util/config.cpp @@ -15,6 +15,14 @@ #define COMMON_SERVER_VERSION_KEY "ServerVersion" #define COMMON_SERVER_VERSION_DEF "1.12.1" +#define COMMON_MAX_FPS_KEY "MaxFps" +#define COMMON_MAX_FPS_DEF 60 + +#define COMMON_DESKTOP_OPENGL_KEY "UseDesktopOpenGL" +#define COMMON_DESKTOP_OPENGL_DEF -1 + +#define COMMON_SKIN_KEY "UseSkin" +#define COMMON_SKIN_DEF 1 QString Config::s_configPath = ""; @@ -67,6 +75,33 @@ QString Config::getServerVersion() return server; } +int Config::getMaxFps() +{ + int fps = 60; + m_settings->beginGroup(GROUP_COMMON); + fps = m_settings->value(COMMON_MAX_FPS_KEY, COMMON_MAX_FPS_DEF).toInt(); + m_settings->endGroup(); + return fps; +} + +int Config::getDesktopOpenGL() +{ + int opengl = 0; + m_settings->beginGroup(GROUP_COMMON); + opengl = m_settings->value(COMMON_DESKTOP_OPENGL_KEY, COMMON_DESKTOP_OPENGL_DEF).toInt(); + m_settings->endGroup(); + return opengl; +} + +int Config::getSkin() +{ + int skin = 1; + m_settings->beginGroup(GROUP_COMMON); + skin = m_settings->value(COMMON_SKIN_KEY, COMMON_SKIN_DEF).toInt(); + m_settings->endGroup(); + return skin; +} + QString Config::getTitle() { QString title; diff --git a/QtScrcpy/util/config.h b/QtScrcpy/util/config.h index a7c1016..8279a9b 100644 --- a/QtScrcpy/util/config.h +++ b/QtScrcpy/util/config.h @@ -14,6 +14,9 @@ public: QString getRecordPath(); void setRecordPath(const QString& path); QString getServerVersion(); + int getMaxFps(); + int getDesktopOpenGL(); + int getSkin(); private: explicit Config(QObject *parent = nullptr); diff --git a/config/config.ini b/config/config.ini index f36d228..da79ca6 100644 --- a/config/config.ini +++ b/config/config.ini @@ -1,4 +1,7 @@ [common] -WindowTitle=abc -RecordPath=C:/Users/bytedance/Desktop +WindowTitle=QtScrcpy +RecordPath= +MaxFps=60 ServerVersion=1.12.1 +UseSkin=1 +UseDesktopOpenGL=-1 diff --git a/docs/TODO.md b/docs/TODO.md index 1dbda13..4488032 100644 --- a/docs/TODO.md +++ b/docs/TODO.md @@ -5,6 +5,7 @@ - 中文输入(server需要改为apk,作为一个输入法,暂不实现)(或者有其他方式案件注入方式,例如搜狗手机输入法可以监听当前注入?) - [跳过帧改为动态配置,而不是静态编译](https://github.com/Genymobile/scrcpy/commit/ebccb9f6cc111e8acfbe10d656cac5c1f1b744a0) - [单独线程统计帧率](https://github.com/Genymobile/scrcpy/commit/e2a272bf99ecf48fcb050177113f903b3fb323c4) +- text转换 https://github.com/Genymobile/scrcpy/commit/c916af0984f72a60301d13fa8ef9a85112f54202?tdsourcetag=s_pctim_aiomsg - ui提供show touch设置 ## 中优先级 @@ -12,11 +13,9 @@ - 自动打包脚本 - 脚本 - 群控 -- 配置文件 -- 软硬解配置,去皮肤配置 -- 窗口可改变大小 - 竖屏全屏不拉伸画面 - 分辨率码率可自定义 +- opengles 3.0 ## 高优先级 - linux打包以及版本号