この記事は、Fangtian ウィンドウ エンジンを完全に理解するのに役立ちます

2023 年 5 月、openEuler は FangTian SIG を正式に設立しました。FangTian SIG は、表示サービス、ウィンドウ管理、グラフィック描画、合成、表示、その他のモジュールを含む FangTian ウィンドウ エンジンに焦点を当て、同時に、劣悪な Linux デスクトップ環境の問題を調査および解決するための新しい FT 表示プロトコルを開始します。経験を積んでください

2 か月以上の開発とデバッグを経て、FangTian SIG はデバイス上でデモ アプリケーションを実行することに成功しました。この記事では、FangTian SIG の最新の進歩を紹介し、FangTian ウィンドウ エンジンの包括的な解釈を提供します。

FangTian SIGの進捗状況

Fangtian ウィンドウ エンジン (以下、Fangtian エンジンと呼びます) は、デバイス上でデモ アプリケーションを正常に実行しました。

写真

具体的な効果は上の図に示されており、デモでは 2 つの時計ウィンドウと背景ウィンドウを含む 3 つのウィンドウが実装されており、ユーザーはマウスを制御してウィンドウをドラッグしたりズームしたりできます。

このデモでは、FangTian ウィンドウ エンジンのウィンドウの作成、破壊、カスケード、マルチウィンドウの基本機能、および入力イベントを識別して分配する機能を示し、マウスを介してウィンドウの移動、ズームなどの操作を実現できます。FangTian SIG は次の点に焦点を当てます。ウィンドウ エンジンを活用し、ユーザーに新しい表示エクスペリエンスを提供し続けます。

Fangtian Engine の包括的な理解

写真

Fangtian Engine は主に、ウィンドウ表示とウィンドウ管理の 2 つの部分に重点を置いています。ここでは、ソフトウェア アーキテクチャとプロトコルの 2 つの側面から Fangtian Engine を紹介します。

1. FangTian エンジンの全体的なアーキテクチャは C/S アーキテクチャであり、 FangTian クライアントはアプリケーション開発者または GUI フレームワーク開発者に API を提供し、入力などを設定します。FangTian Server はウィンドウ表示およびウィンドウ管理機能の中核であり、FangTian Server には 2 つのサービスが含まれています。

①ウィンドウ表示サービス。バッファ割り当て回転、Vsync、レンダリング、合成、表示などの機能を提供します。データ駆動型インターフェイスと統合レンダリング アーキテクチャを通じて、Fangtian Engine の高性能と低メモリの目標が達成されます。

②ウィンドウ管理サービス。ウィンドウの作成、破棄、移動、ズーム、レイアウトの機能を提供します。独立したウィンドウポリシーモジュールを通じて、モバイル端末、PC端末、その他のデバイスのさまざまなシナリオに適応できます。

Fangtian Engine に含まれるウィンドウ表示サービスとウィンドウ管理サービスに加えて、入力管理サービスにも依存する必要があります。入力管理サービスを提供し、入力デバイス管理と入力イベント識別および配信操作を提供し、マルチモード入力インタラクションシーンの適応と簡素化のために、タッチスクリーン、マウス、キーボード、タッチパッドなどのさまざまな周辺機器の統合管理を実現します

2. クライアントとサーバーは FT プロトコルを通じて対話します。主な機能は、統合レンダリングとデータ駆動型インターフェイスを提供することです。これは、レンダリングの負荷を軽減し、プロセス間のデータ対話の量を減らし、アニメーションを改善するために使用されます。アプリケーションの機能とパフォーマンス。

FT プロトコルは主に、基本ウィンドウ プロトコル、自己描画プロトコル、および統合レンダリング プロトコルの 3 つの部分で構成されます。以下では、主に自己描画プロトコルと統合レンダリング プロトコルを紹介します。

写真

自己描画とは、ダイレクト レンダリングとも呼ばれ、アプリケーションが CPU または GPU を直接使用して画像のレンダリングを完了し、レンダリングされたデータがバッファを通じてサーバー側に共有されることを意味します。Fangtian エンジンの自己描画インターフェイスは、Surface (バッファ ハンドルを含む) をサーバー側に送信し、サーバー側はレンダリングされたデータを合成に直接使用します。自己描画の利点は固有の並列性であり、アプリケーション間のレンダリングは相互に影響を与えることなく並行して実行できます。

ユニファイドレンダリングは自己描画モードとは異なり、C/S間で受け渡されるのはSurfaceではなく2D描画命令です。サーバーでは、さまざまなアプリケーションによって渡された 2D 命令が均一に描画されます。ユニファイド レンダリングの利点は、レンダリング プロセス中にウィンドウ間のオクルージョン情報を最大限に活用し、レンダリングの繰り返しを減らすことができることです。

Fangtian エンジンは上記 2 つのレンダリング モードを組み合わせて使用​​し、将来的には GUI フレームワークと連携してレンダリング モードの統一スケジューリングを実現し、パフォーマンスを確保しながらリソース消費を削減する予定です。さらに、統合レンダリング モードでは、Fangtian エンジンにデータ駆動型機能が追加され、各フレーム間で対応する変更情報を送信するだけで済むため、命令処理とレンダリングの負荷が軽減されます。

要約する

新しいウィンドウ エンジンのセットとして、Fangtian Engine はアプリケーションにウィンドウ表示機能を提供するだけでなく、新しい FT プロトコルを提案し、自己描画 + 統合レンダリング アーキテクチャとデータ駆動型表現を採用し、アプリケーション間でのインタラクティブ データの量を削減します。 SilentとServerを統合し、パフォーマンス、メモリ、消費電力などの向上を実現します。これにより、Fangtian エンジンは、PC とサーバーの両方のシナリオだけでなく、モバイル デバイスのシナリオにも適したものになります。

FangTian SIG は現在急速に改良されており、今後も改善を続け、より多くのウィンドウ機能を提供する予定です。詳細については、FangTian Engine のホームページをご覧ください。

https://www.openeuler.org/zh/sig/sig-detail/?name=sig-FangTian

おすすめ

転載: blog.csdn.net/openEuler_/article/details/131959838