画面解像度を変更するクロスプラットフォーム (Windows、Linux、MacOSX) の方法はありますか? Java も .Net-Mono もできません。ネイティブ API 呼び出しのみ。非常に奇妙な状況です。画面の解像度を取得するための明確な (管理された) メソッドはありますが、設定するためのメソッドがありません。この機能は非常に危険または複雑ですか? 他のクロスプラットフォーム システム (Parrot、RealBasic など) はこれを行いますか?
5 に答える
libSDL を使用しているかどうかはわかりませんが、これを確認してください: http://docs.huihoo.com/sdl/1.2/sdlsetvideomode.html
PS ところで、まだご存じない場合は、LibSDL は主にゲーム向けのクロスプラットフォーム ライブラリです。 http://www.libsdl.org/
実際-画面解像度の設定はOS/X-Serverによって異なります。本当に必要な場合はそれについて考え、必要な場合は、OS固有の実装を使用してある種の抽象化レイヤーを作成する必要があります。そして、テスト環境のセットアップ(特に異なるLinuxフレーバーを使用)は地獄になります!
うーん、それは本当にプラットフォームに依存します (win32、Mac OS X、Linux はすべてこれを異なる方法で行います [異なるディスプレイ ドライバ])。そもそも、なぜ画面解像度を変更する必要があるのか、自問自答する必要があります。
解像度を変更する代わりに、コンテンツを低い画面解像度でレンダリングし、それを画面に合わせて (塗りつぶして) 拡大縮小することも簡単にできます。それは同じことです。
いい質問です。それを行うクロスプラットフォームシステムを知りません。画面の解像度を自動的に変更するアプリケーションに取り組んだことがありますが、もう一度やり直す必要があるとしたら、そのように設計することはなかったでしょう。解像度を変更することは、ユーザーにとって混乱を招きます。足元の地面を動かすようなものです。LCD モニターは、はるかに見栄えの良い「自然な」解像度を備えています。それを変更すると、ユーザーは非常にイライラする可能性があります。
解像度を変更できないデバイスはたくさんあります。電話、たとえば *Mac OSX または Linux を実行するものもあります)。ただし、デスクトップでも解像度を変更する機能はありません。ある種のスーパーユーザー アカウントが必要になる場合があります。これらの制限を念頭に置くと、クロスプラットフォーム ツールが問題にならないのは理にかなっているように思えます。