デスクトップアプリケーションでは、時々モニターの解像度を検出する必要があります。コードは以下のように表示されます。
Display *d;
Screen *s;
d = XOpenDisplay(":0");
if (NULL == d) {
g_print("XOpenDisplay failed\n");
return;
}
s = DefaultScreenOfDisplay(d);
if (NULL == s) {
g_print("DefaultScreenOfDisplay failed\n");
return;
}
g_print("Display size: %dx%d\n", s->width, s->height);
ただし、もう1つの要件は、このコードが依存するlightdmサービスとXサーバーも終了する必要があることです。
Xlibサポートなしで解像度を検出する他の方法はありますか?ありがとう
ベストアンサー1
Xサーバーがなくても、EDID情報を直接照会して(デフォルト/最大)モニター解像度を見つけることができます。バラよりシングルモニターのEDIDを取得するには?。経験はグラフィックカードとドライバーによって異なります。