Skip to content

Commit 33d52bf

Browse files
author
Dr.Abc
committed
添加白色边框
1 parent e0557b3 commit 33d52bf

File tree

1 file changed

+26
-17
lines changed

1 file changed

+26
-17
lines changed

src/Source/HUD/vgui/neteasemusic.cpp

+26-17
Original file line numberDiff line numberDiff line change
@@ -1020,7 +1020,7 @@ void QRCheck(vgui::CQRLoginPanel* panel, std::string& qrkey) {
10201020
}, panel, qrkey)->Start();
10211021
}
10221022
void vgui::CQRLoginPanel::Login(){
1023-
GetTaskManager()->Add<loginshare_obj*>([]() -> loginshare_obj*{
1023+
GetTaskManager()->Add<loginshare_obj*>([]() -> loginshare_obj* {
10241024
static loginshare_obj obj;
10251025
obj.qrkey = s_pNeteaseApi.load()->GetUser()->RequestQRKey();
10261026
std::string url = "https://music.163.com/login?codekey=" + obj.qrkey;
@@ -1029,31 +1029,40 @@ void vgui::CQRLoginPanel::Login(){
10291029
static int s_size;
10301030

10311031
int qrsize = qrcode.getSize();
1032-
if (qrsize > s_size) {
1033-
s_size = qrsize;
1032+
int newSize = qrsize + 4;
1033+
if (newSize > s_size) {
1034+
s_size = newSize;
10341035
delete[] s_qrbyte;
10351036
s_qrbyte = new byte[s_size * s_size * 4];
10361037
}
10371038
size_t c = 0;
1038-
for (int x = 0; x < qrsize; x++) {
1039-
for (int y = 0; y < qrsize; y++) {
1040-
bool p = qrcode.getModule(x, y);
1041-
s_qrbyte[c * 4 + 0] = p ? 0 : 255;
1042-
s_qrbyte[c * 4 + 1] = p ? 0 : 255;
1043-
s_qrbyte[c * 4 + 2] = p ? 0 : 255;
1044-
s_qrbyte[c * 4 + 3] = 255;
1039+
for (int x = 0; x < newSize; x++) {
1040+
for (int y = 0; y < newSize; y++) {
1041+
if (x < 2 || x >= newSize - 2 || y < 2 || y >= newSize - 2) {
1042+
s_qrbyte[c * 4 + 0] = 255;
1043+
s_qrbyte[c * 4 + 1] = 255;
1044+
s_qrbyte[c * 4 + 2] = 255;
1045+
s_qrbyte[c * 4 + 3] = 255;
1046+
}
1047+
else {
1048+
bool p = qrcode.getModule(x - 2, y - 2);
1049+
s_qrbyte[c * 4 + 0] = p ? 0 : 255;
1050+
s_qrbyte[c * 4 + 1] = p ? 0 : 255;
1051+
s_qrbyte[c * 4 + 2] = p ? 0 : 255;
1052+
s_qrbyte[c * 4 + 3] = 255;
1053+
}
10451054
c++;
10461055
}
10471056
}
10481057
obj.qrimagebyte = s_qrbyte;
1049-
obj.size = qrsize;
1058+
obj.size = newSize;
10501059
return &obj;
1051-
})->ContinueWith([](loginshare_obj* obj, CQRLoginPanel* panel) {
1052-
s_pQRCodeImage->InitFromRGBA(obj->qrimagebyte, obj->size, obj->size);
1053-
panel->m_pQRImagePanel->SetImage(s_pQRCodeImage);
1054-
panel->SetVisible(true);
1055-
QRCheck(panel, obj->qrkey);
1056-
}, this)->Start();
1060+
})->ContinueWith([](loginshare_obj* obj, CQRLoginPanel* panel) {
1061+
s_pQRCodeImage->InitFromRGBA(obj->qrimagebyte, obj->size, obj->size);
1062+
panel->m_pQRImagePanel->SetImage(s_pQRCodeImage);
1063+
panel->SetVisible(true);
1064+
QRCheck(panel, obj->qrkey);
1065+
}, this)->Start();
10571066
}
10581067
void vgui::CQRLoginPanel::ResetText(){
10591068
m_pNotice->SetText("#Netease_QRNoticeText");

0 commit comments

Comments
 (0)