OpenGL レンダリング パラメータのオーバーライド

提供: RAD Studio
移動先: 案内検索

FireMonkey アプリケーション ガイド への移動


iOS プラットフォームや Android プラットフォームでは、グラフィカル アプリケーションのパフォーマンスを向上させるために、OpenGL レンダリング パラメータをオーバーライドすることができます。

たとえば、3D モデルを使用しない場合は、深度バッファを無効にできます。同様に、塗りつぶされたパスなどのベクタ キャンバス図形を使用しない場合は、ステンシル バッファを無効にするのが安全です。見栄えよりもパフォーマンスの高さを重視する場合は、24 ビットや 32 ビットではなく 16 ビットの色深度を使用するとよいでしょう。

OpenGL パラメータをオーバーライドするには:

  1. お使いのユニットの uses リストに FMX.Platform.pas を追加します。
  2. レンダリング セットアップ手続きを次のように記述します。
    procedure RenderingSetupCallback(const Sender, Context: TObject; var ColorBits, DepthBits: Integer;
    var Stencil: Boolean; var Multisamples: Integer);
    begin
        // OpenGL レンダリング設定をオーバーライドしてカスタム値を使用する
        ColorBits := 16; // デフォルトは 24
        DepthBits := 0; // デフォルトは 24
        Stencil := False; // デフォルトは True
        Multisamples := 0; // デフォルトは TForm.Quality または TForm3D.Multisample によって決まる
    end;
    
  3. 登録手続きを次のように記述します。
    procedure RegisterRenderingSetup;
    var
        SetupService: IFMXRenderingSetupService;
    begin
        if TPlatformServices.Current.SupportsPlatformService(IFMXRenderingSetupService, IInterface(SetupService)) then
        SetupService.Subscribe(RenderingSetupCallback);
        // SetupService.Unsubscribe もある(この場合はフックを削除)
    end;
    
  4. ユニットの initialization セクションで RegisterRenderingSetup を呼び出します。

関連項目