(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-13
(45)【発行日】2022-10-21
(54)【発明の名称】文字列表示処理方法並びにその、装置、端末及びコンピュータプログラム
(51)【国際特許分類】
G06F 3/14 20060101AFI20221014BHJP
【FI】
G06F3/14 310B
(21)【出願番号】P 2021556972
(86)(22)【出願日】2020-08-28
(86)【国際出願番号】 CN2020112075
(87)【国際公開番号】W WO2021037201
(87)【国際公開日】2021-03-04
【審査請求日】2021-09-22
(31)【優先権主張番号】201910804833.6
(32)【優先日】2019-08-28
(33)【優先権主張国・地域又は機関】CN
(73)【特許権者】
【識別番号】517392436
【氏名又は名称】▲騰▼▲訊▼科技(深▲セン▼)有限公司
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】胡 力
【審査官】永野 志保
(56)【参考文献】
【文献】特開2009-258900(JP,A)
【文献】特開2004-199550(JP,A)
【文献】国際公開第2007/013566(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/14
(57)【特許請求の範囲】
【請求項1】
文字列表示処理方法であって、
文字表示命令を受信するステップであって、前記文字表示命令は表示すべき文字列セットをレンダリングすることを指示するものである、ステップと、
前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含まない場合、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って第1レンダリングデータセットを得、前記第1レンダリングデータセットに基づいて前記表示すべき文字列セットに関するレンダリング命令を生成することにより、目標文字画像に対して画像レンダリングを行うことを指示するステップであって、前記第1レンダリングデータセットは前記目標文字に対応する前記目標文字画像を含むものである、ステップと、
前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含む場合、前記目標文字列に対して第2レンダリング前処理を行って第2レンダリングデータセットを得、前記第2レンダリングデータセットに基づいて前記表示すべき文字列セットに関するレンダリング命令を生成することにより、文字列画像に対して画像レンダリングを行うことを指示するステップであって、前記第2レンダリングデータセットは前記目標文字列に対応する前記文字列画像を含むものである、ステップと、を含むことを特徴とする方法。
【請求項2】
前記表示すべき文字列セットは、前記目標文字列を除くほかの文字列をさらに含み、
前記ほかの文字列が前記所定のタイプの文字を含まない場合、前記レンダリング命令は、さらに前記ほかの文字列に含まれる文字に対応する文字画像に対して画像レンダリングを行うことを指示するステップと、
前記ほかの文字列が前記所定のタイプの文字を含む場合、前記レンダリング命令は、さらに前記ほかの文字列に対応する文字列画像に対して画像レンダリングを行うことを指示するステップと、をさらに含むことを特徴とする請求項1に記載の方法。
【請求項3】
前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って第1レンダリングデータセットを得る前記ステップは、
前記目標文字の文字タイプに応じて
、ユーザインターフェースに前記目標文字をフローティング表示するための第1表示パラメータを決定するステップと、
所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定するステップであって、前記所定の文字レンダリングテクスチャセットに少なくとも1つの文字に対応する文字画像を含む、ステップと、
前記第1表示パラメータ及び前記第1レンダリングパラメータに基づいて第1レンダリングデータセットを得るステップと、を含むことを特徴とする請求項1に記載の方法。
【請求項4】
前記第1レンダリングパラメータは、前記目標文字に対応する目標文字画像及び前記目標文字画像の位置情報を含み、所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定する前記ステップは、
前記文字レンダリングテクスチャセットには、前記目標文字にマッチングする文字画像が含まれると、マッチングする文字画像を前記目標文字に対応する目標文字画像として決定し、前記マッチングする文字画像の前記文字レンダリングテクスチャセットでの位置に基づいて前記目標文字画像の位置情報を決定するステップを含むことを特徴とする請求項3に記載の方法。
【請求項5】
所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定する前記ステップは、
前記文字レンダリングテクスチャセットには、前記目標文字にマッチングする文字画像が含まれていないと、文字レンダリング画像生成ルールを用いて前記目標文字に対応する目標文字画像を生成し、前記目標文字画像を所定の記憶ルールに従って前記文字レンダリングテクスチャセットに追加することにより、前記文字レンダリングテクスチャセットを更新するステップと、
前記所定の記憶ルールに従って、前記目標文字画像の更新後の文字レンダリングテクスチャセットでの位置情報を、前記目標文字画像の位置情報として決定するステップと、を含むことを特徴とする請求項4に記載の方法。
【請求項6】
文字レンダリング画像生成ルールを用いて前記目標文字に対応する目標文字画像を生成した後、この目標文字に対応する文字コードと目標文字画像に対応するコードとを関連付けて記憶し、この目標文字に対応する文字画像を取得する時、前記目標文字コード及び関連付け記憶関係に基づいてこの目標文字に対応する目標文字画像を見つけることを特徴とする請求項5に記載の方法。
【請求項7】
前記目標文字の文字タイプに応じて、前記ユーザインターフェースに前記目標文字を表示するための第1表示パラメータを決定する前記ステップは、
前記目標文字の文字タイプに対応するレイアウトルールに従って前記目標文字をレイアウトするステップと、
レイアウト後の目標文字及びフローティング表示に対応する構成情報に基づいて、前記目標文字に対応する第1表示パラメータを決定するステップと、を含むことを特徴とする請求項3に記載の方法。
【請求項8】
前記目標文字の第1表示パラメータは、前記目標文字に対応する文字画像の頂点座標を含み、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って第1レンダリングデータセットを得る前記ステップは、
前記目標文字列に含まれるすべての目標文字をレイアウトした後、すべての目標文字に対応する文字画像の頂点座標を合併し、前記すべての目標文字の文字画像を1つの全体テクスチャとするステップをさらに含むことを特徴とする請求項7に記載の方法。
【請求項9】
前記目標文字は第1文字及び第2文字を含み、前記目標文字の文字タイプに対応するレイアウトルールに従って前記目標文字をレイアウトする前記ステップは、
前記第1文字に対応する第1文字タイプと前記第2文字に対応する第2文字タイプが同じであると、前記第1文字タイプ又は前記第2文字タイプに対応するレイアウトルールで指示される揃えルールに従って前記第1文字及び前記第2文字をレイアウトするステップと、
前記第1文字タイプと前記第2文字タイプが異なると、前記第1文字タイプに対応するレイアウトルールで指示される揃えルールに従って前記第1文字をレイアウトし、前記第2文字タイプに対応するレイアウトルールで指示される揃えルールに従って前記第2文字をレイアウトするステップと、を含むことを特徴とする請求項7に記載の方法。
【請求項10】
前記第1文字タイプ及び前記第2文字タイプがいずれもテキストタイプであると、前記第1文字タイプ又は前記第2文字タイプに対応するレイアウトルールで指示される揃えルールに従って前記第1文字及び前記第2文字をレイアウトする前記ステップは、
デフォルトのベースライン上でレイアウトルールに従って前記第1文字及び前記第2文字をレイアウトするステップと、
レイアウト後の前記第1文字及び前記第2文字の、デフォルトのベースラインの下方にあるベースライン下方字形の高さを決定し、高さが最も大きいベースライン下方字形に対応するベースラインを前記目標文字のベースラインとするステップと、
前記第1文字及び前記第2文字の、デフォルトのベースラインの上方にあるベースライン上方字形の高さを決定し、高さが最も大きいベースライン上方字形の高さと、高さが最も大きいベースライン下方字形の高さとの和を前記目標文字の高さとするステップと、を含むことを特徴とする請求項9に記載の方法。
【請求項11】
前記第1文字タイプ及び前記第2文字タイプがいずれも画像タイプであると、前記第1文字タイプ又は前記第2文字タイプに対応するレイアウトルールで指示される揃えルールに従って前記第1文字及び前記第2文字をレイアウトする前記ステップは、
レイアウトルールに従って前記第1文字及び前記第2文字のうちサイズが最も大きい方の文字を先にレイアウトするステップと、
サイズが最も大きい文字の高さに基づいて他方の文字の左上頂点の座標を計算し、算出した左上頂点の座標に従って前記他方の文字をレイアウトするステップと、
そのうちサイズが最も大きい方の文字の高さを前記目標文字の高さとして決定するステップと、を含み、
左上頂点の座標=(最大文字の高さ-この文字の高さ)/2+この文字の高さ、という式によって、サイズが大きい文字の高さに基づいて他方の文字の左上頂点の座標を計算することを実現することを特徴とする請求項9に記載の方法。
【請求項12】
前記第1文字タイプに対応するレイアウトルールで指示される揃えルールに従って前記第1文字をレイアウトし、前記第2文字タイプに対応するレイアウトルールで指示される揃えルールに従って前記第2文字をレイアウトする前記ステップは、
前記第1文字のサイズと前記第2文字のサイズを比較するステップと、
前記第1文字のサイズが前記第2文字のサイズよりも大きいと、前記第1文字タイプに対応するレイアウトルールで指示される揃えルールに従って前記第1文字に対してレイアウト処理を行い、レイアウト処理結果に応じて前記目標文字列の高さを決定するステップと、
前記目標文字列の高さ、及び前記第2文字タイプに対応するレイアウトルールで指示される揃えルールに従って、前記第2文字に対してレイアウト処理を行うステップと、を含むことを特徴とする請求項9に記載の方法。
【請求項13】
第2レンダリングパラメータは、前記目標文字列に対応する文字列画像及び前記文字列画像の位置情報を含み、前記目標文字列に対して第2レンダリング前処理を行い、第2レンダリングデータセットを得る前記ステップは、
フローティング表示に対応する構成情報に基づいて、前記目標文字列の第2表示パラメータを決定するステップと、
文字列画像生成ルールを用いて前記目標文字列に対応する文字列画像を生成するステップと、
前記目標文字列に対応する文字列画像を所定の文字レンダリングテクスチャセットに追加することにより、前記所定の文字レンダリングテクスチャセットを更新し、前記目標文字列に対応する文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報を決定するステップと、
前記文字列画像及び文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報に基づいて第2レンダリングパラメータを決定し、前記第2レンダリングパラメータ及び前記第2表示パラメータに基づいて前記第2レンダリングデータセットを得るステップと、を含むことを特徴とする請求項1に記載の方法。
【請求項14】
端末は、呼び出しスレッド、解析スレッド及びレンダリングスレッドを実行し、
前記端末は、呼び出しスレッドを呼び出すことで、文字表示命令を受信すること、及び、前記目標文字列に含まれる目標文字を検出することを実行し、
前記端末は、解析スレッドを呼び出すことで、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って前記第1レンダリングデータセットを得ること、及び、前記目標文字列に対して第2レンダリング前処理を行って前記第2レンダリングデータセットを得ることを実行し、
前記端末は、レンダリングスレッドを呼び出すことで、前記第1レンダリングデータセットに基づいてレンダリング命令を生成すること、及び、前記第2レンダリングデータセットに基づいてレンダリング命令を生成することを実行することを特徴とする請求項1から13のいずれか一項に記載の方法。
【請求項15】
少なくとも前記解析スレッド及び前記レンダリングスレッドは、非同期スレッドであることを特徴とする請求項14に記載の方法。
【請求項16】
文字列表示処理装置であって、
文字表示命令を受信する受信ユニットであって、前記文字表示命令は表示すべき文字列セットをレンダリングすることを指示するためのものである、受信ユニットと、
前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含まない場合、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って第1レンダリングデータセットを得、前記第1レンダリングデータセットに基づいて前記表示すべき文字列セットに関するレンダリング命令を生成して送信する処理ユニットであって、前記第1レンダリングデータセットは前記目標文字に対応する目標文字画像を含み、前記レンダリング命令は、前記目標文字画像に対して画像レンダリングを行うことを指示するためのものである、処理ユニットと、を含み
前記処理ユニットは、さらに、前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含む場合、前記目標文字列に対して第2レンダリング前処理を行って第2レンダリングデータセットを得、前記第2レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成することにより、文字列画像に対して画像レンダリングを行うことを指示し、前記第2レンダリングデータセットは前記目標文字列に対応する前記文字列画像を含むものであることを特徴とする装置。
【請求項17】
前記処理ユニットは、目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って第1レンダリングデータセットを得る際に、
前記目標文字の文字タイプに応じて
、ユーザインターフェースに前記目標文字をフローティング表示するための第1表示パラメータを決定する操作と、
所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定する操作であって、前記所定の文字レンダリングテクスチャセットに少なくとも1つの文字に対応する文字画像を含む、操作と、
前記第1表示パラメータ及び前記第1レンダリングパラメータに基づいて第1レンダリングデータセットを得る操作と、を実行することを特徴とする請求項16に記載の装置。
【請求項18】
第2レンダリングパラメータは、前記目標文字列に対応する文字列画像及び前記文字列画像の位置情報を含み、前記処理ユニットは、前記目標文字列に対して第2レンダリング前処理を行い、第2レンダリングデータセットを得る際に、
フローティング表示に対応する構成情報に基づいて、前記目標文字列の第2表示パラメータを決定する操作と、
文字列画像生成ルールを用いて前記目標文字列に対応する文字列画像を生成する操作と、
前記目標文字列に対応する文字列画像を所定の文字レンダリングテクスチャセットに追加することにより、前記所定の文字レンダリングテクスチャセットを更新し、前記目標文字列に対応する文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報を決定する操作と、
前記文字列画像及び文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報に基づいて第2レンダリングパラメータを決定し、前記第2レンダリングパラメータ及び前記第2表示パラメータに基づいて前記第2レンダリングデータセットを得る操作と、を実行することを特徴とする請求項16に記載の装置。
【請求項19】
端末であって、
1つ又は複数の命令を実行するプロセッサと、
前記プロセッサによりロードされ、請求項1から15のいずれか一項に記載の方法を実行する1つ又は複数の命令が記憶されているコンピュータ記憶媒体と、を含むことを特徴とする端末。
【請求項20】
プロセッサ
に請求項1から15のいずれか一項に記載の方法を実行
させるコンピュータプログラ
ム。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2019年08月28日に提出された、出願番号が第201910804833.6号であり、発明の名称が「文字列表示処理方法、装置、端末及び記憶媒体」である中国特許出願の優先権を主張する。
【0002】
本出願はインターネットの技術分野に関し、特に文字列表示処理方法、装置、端末及び記憶媒体に関する。
【背景技術】
【0003】
科学技術の発展に伴い、ユーザエクスペリエンスを向上させるために、様々なアプリケーションは新たな機能を開発し続けている。例えば、多くのアプリケーションは、ユーザの注意を惹くために、ユーザインターフェースに特定の内容をフローティング表示することができる。例えば、ビデオアプリケーションでは、弾幕機能が開発されており、ユーザはクライアント機器を介してビデオを視聴しながらクライアント機器によってこのビデオのコメントを投稿することができ、ユーザが投稿したコメントはビデオ画面にリアルタイムに表示され、又はユーザはビデオ画面に表示されるほかのユーザのこのビデオに対するコメントを閲覧することができ、さらに、例えば、特定のウェブサイトのページには、例えば、広告コンテンツ、ウェブサイトの使用ガイダンスなどのようなユーザからの特別な注意が必要なこのウェブサイト中のコンテンツをフローティング表示する。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本出願の実施例は、異なるタイプの文字を含む目標文字列に対して異なるレンダリング処理を行い、端末のユーザインターフェースに目標文字列をフローティング表示することをうまく実現する、文字列表示処理方法、装置、端末及び記憶媒体を提供する。
【課題を解決するための手段】
【0005】
一態様によれば、本出願の実施例は、文字列表示処理方法を提供し、この文字列表示処理方法は、
表示すべき文字列セットをレンダリングすることを指示するための文字表示命令を受信するステップと、
前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含まない場合、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って、前記目標文字に対応する目標文字画像を含む第1レンダリングデータセットを得、前記第1レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成することにより、前記目標文字画像に対して画像レンダリングを行うことを指示するステップと、
前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含む場合、前記目標文字列に対して第2レンダリング前処理を行って、前記目標文字列に対応する文字列画像を含む第2レンダリングデータセットを得、前記第2レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成することにより、前記文字列画像に対して画像レンダリングを行うことを指示するステップと、を含む。
【0006】
一方、本出願の実施例は、文字列表示処理装置を提供し、この文字列表示処理装置は、
表示すべき文字列セットをレンダリングすることを指示するための文字表示命令を受信するための受信ユニットと、
前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含まない場合、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って、前記目標文字に対応する目標文字画像を含む第1レンダリングデータセットを得、前記第1レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成し、前記目標文字画像に対して画像レンダリングを行うことを指示するための処理ユニットとを含み、
前記処理ユニットは、さらに、前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含む場合、前記目標文字列に対して第2レンダリング前処理を行って、前記目標文字列に対応する文字列画像を含む第2レンダリングデータセットを得、前記第2レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成し、前記文字列画像に対して画像レンダリングを行うことを指示する。
【0007】
別の態様によれば、本出願の実施例は、端末を提供し、前記端末は、
1つ又は複数の命令を実現するプロセッサと、
1つ又は複数の命令が記憶されているコンピュータ記憶媒体と、を含み、前記1つ又は複数の命令は、前記プロセッサによりロードされ、
表示すべき文字列セットをレンダリングすることを指示するための文字表示命令を受信するステップと、
前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含まない場合、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行い、前記目標文字に対応する目標文字画像を含む第1レンダリングデータセットを得、前記第1レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成し、前記目標文字画像に対して画像レンダリングを行うことを指示するステップと、
前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含む場合、前記目標文字列に対して第2レンダリング前処理を行い、前記目標文字列に対応する文字列画像を含む第2レンダリングデータセットを得、前記第2レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成し、前記文字列画像に対して画像レンダリングを行うことを指示するステップとを実行する。
【発明の効果】
【0008】
本出願の実施例では、目標文字列が所定のタイプの文字を含むか否かに対して、異なるレンダリング前処理方式を用いて第1レンダリングデータセット及び第2のレンダリングデータセットを得、さらに第1レンダリングデータセット又は第2のレンダリングデータに基づいて、表示すべき文字列セットに関するレンダリング命令を生成し、目標文字列に含まれる文字のタイプによって、異なるレンダリング処理を行うことを実現し、従来技術ですべての目標文字列に対して、統一された処理方法を用いることに比べて、目標文字列の表示をより効果的に行うことができる。
【0009】
本出願の実施例技術案を明瞭に説明するために、以下、実施例の記述において必要な図面を用いて簡単に説明を行うが、当然ながら、以下に記述された図面は、本出願のいくつかの実施形態にすぎず、当業者にとって、創造的な労力を要することなく、これらの図面に基づいて他の図面に想到しうる。
【図面の簡単な説明】
【0010】
【
図1a】本出願の実施例による文字列表示処理の技術案の構造模式図である。
【
図1b】本出願の実施例による端末のユーザインターフェースの模式図である。
【
図1c】本出願の実施例による別の端末のユーザインターフェースの模式図である。
【
図1d】本出願の実施例による別の端末のユーザインターフェースの模式図である。
【
図1e】本出願の実施例による別の端末のユーザインターフェースの模式図である。
【
図1f】本出願の実施例によるユーザインターフェースに文字列を表示する模式図である。
【
図2】本出願の実施例による文字列表示処理方法のフローチャートである。
【
図3a】本出願の実施例による文字レンダリングテクスチャセットの模式図である。
【
図3b】本出願の実施例による別の文字レンダリングテクスチャセットの模式図である。
【
図3c】本出願の実施例による文字レンダリングの模式図である。
【
図3d】本出願の実施例による別の文字レンダリングの模式図である。
【
図3e】本出願の実施例による記憶される文字画像の模式図である。
【
図4a】本出願の実施例による別の文字列表示処理方法のフローチャートである。
【
図4b】本出願の実施例による別の文字列表示処理方法のフローチャートである。
【
図5a】本出願の実施例による目標文字をレイアウトする模式図である。
【
図5b】本出願の実施例による目標文字の模式図である。
【
図5c】本出願の実施例による別の目標文字をレイアウトする模式図である。
【
図5d】本出願の実施例によるまた別の目標文字をレイアウトする模式図である。
【
図5e】本出願の実施例によるまた別の目標文字をレイアウトする模式図である。
【
図6】本出願の実施例による文字列表示処理装置の構造模式図である。
【
図7】本出願の実施例による端末の構造模式図である。
【発明を実施するための形態】
【0011】
以下、本出願の実施例の図面を参照し、本出願の実施例の技術案について明瞭かつ完全に地説明する。
【0012】
ユーザインターフェース(例えば、ビデオを再生しているユーザインターフェース)にコンテンツをフローティング表示するいくつかの方法は、実際の使用で端末の多くの電力を消費し、且つ表示すべき文字列の数が多い場合、ビデオのラグ現象が発生しやすいため、現在、如何に端末のユーザインターフェースに、表示すべき文字列を効果的にフローティング表示するかは、研究のホットスポットとなる。
【0013】
本出願の実施例は、文字列表示処理の技術案を提供し、この文字列表示処理の技術案は、端末のユーザインターフェースに文字列をフローティング表示すべき適用シーンに適用できる。フローティング表示とは、ある文字列をユーザインターフェースに表示されたコンテンツに浮かんで表示することであり、例えば、ビデオを再生しているユーザインターフェースに、文字列を表示するビューをカバーする。これらの文字列は、弾幕などのコメントテキストであってもよいし、あるウェブサイトにおける広告の文字及び画像などであってもよい。前記文字列表示処理の技術案は、端末のユーザインターフェースに、表示すべき文字列セットをフローティング表示するために、端末が表示すべき文字列セットをレンダリングすることを指示するための文字表示命令を受信するステップと、表示すべき文字列セット中の目標文字列が所定のタイプの文字を含まない場合、目標文字列に含まれる目標文字に対して第1レンダリング前処理を行い、目標文字に対応する目標文字画像を含む第1レンダリングデータセットを得、第1レンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成して送信するステップであって、このレンダリング命令は、目標文字画像に対して画像レンダリングを行うことを指示するステップと、表示すべき文字列セット中の目標文字列が所定のタイプの文字を含む場合、目標文字列に対して第2レンダリング前処理を行い、目標文字列に対応する文字列画像を含む第2レンダリングデータセットを得、第2のレンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成し、文字列画像に対して画像レンダリングを行うことを指示するステップと、を含んでもよい。
【0014】
本出願の実施例による文字列表示処理の技術案を用いると、異なるタイプの文字を含む目標文字列に対して、異なるレンダリング前処理方法を用い、さらに異なるレンダリング前処理結果に応じて、表示すべき文字列セットに関するレンダリング命令を生成してレンダリングし、従来技術で任意の文字列に対しても、統一されたレンダリング処理方法を用いることに比べて、目標文字列の表示をより効果的に行うことができる。
【0015】
以下、前記文字列表示処理の技術案がビデオに弾幕を追加することに適用されることを例とする。本出願の実施例は、
図1aに示す文字列表示処理の技術案の構造模式図を提供する。
図1aに示す構造模式図は、サーバ101と少なくとも1つの端末102とを含むことができる。端末102は、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ウェアラブルデバイスなどであってもよく、サーバ101とは、クラウドサーバ又はローカルサーバであってもよく、端末102とサーバ101とは、接続し、情報のやり取りが可能である。
【0016】
一実施例では、端末102は、ビデオを再生するためのものである。例えば、端末102には、ビデオを再生するためのビデオプレーヤーがインストールされ、ユーザは、ビデオプレーヤーによってビデオを視聴してもよいし、又は、端末102によってウェブページにビデオを視聴してもよい。サーバ101には、端末102のビデオ業務にサービスサポートを提供するデータが記憶されてもよい。
【0017】
一実施例では、端末102は、ビデオを再生する際、弾幕を追加するための弾幕オプションを、ビデオを再生しているユーザインターフェースに表示させてもよい。ユーザは、この弾幕オプションをトリガーし、それにより、端末102は、文字入力を受信できる入力フレーム又は音入力を受信できるインターフェースなどを、ビデオを再生しているユーザインターフェースに表示させ、ユーザは、追加したい弾幕コンテンツ、すなわち、文字列をキーボード又はマイクロホンを介して入力する。端末102は、文字列セットをサーバ101に送信する。例えば、ユーザAが端末102によってビデオを見、
図1b及び
図1cは、本出願の実施例による端末がビデオを再生しているユーザインターフェースであり、再生しているビデオは、あるゲームビデオであるものとする。ユーザインターフェースは、弾幕ボタン103を含んでもよい。弾幕ボタン103が
図1bに示す状態である場合、ユーザAが弾幕機能をオフにしており、すなわち、ビデオを視聴しているほかのユーザがこのビデオに追加した弾幕をこのユーザインターフェースに表示せず、且つユーザAがユーザインターフェースに弾幕を追加できないことを示し、弾幕ボタン103が
図1cに示す状態である場合、ユーザAが弾幕機能をオンにしており、すなわち、このビデオを視聴している任意のユーザがこのビデオに追加した弾幕をこのユーザインターフェースに表示し、且つユーザAがこのユーザインターフェースに弾幕を追加できることを示す。
【0018】
図1cに示すユーザインターフェースは、ユーザAが弾幕機能をオンにした場合、弾幕設定ボタン104及び弾幕入力フレーム105をさらに含むものとする。ユーザAが弾幕設定ボタン104をクリックすると、端末が弾幕設定インターフェースを表示し、弾幕設定インターフェースは、弾幕のフォントサイズ、弾幕の数及び弾幕の色などを含んでもよい。ユーザAが弾幕入力フレーム105に弾幕入力動作を実行すると、ユーザがキーボードを介して弾幕入力フレームに弾幕コンテンツを入力しやすくするために、端末がキーボードを表示する。本出願の実施例によれば、例えば、端末がキーボードを表示したインターフェースは、決定ボタン106をさらに含んでもよい。端末102は、ボタン106がクリックされたことを判断すると、弾幕入力フレーム105における文字列をサーバ101に送信する。ユーザAが弾幕入力フレーム105をクリックすると、端末が
図1dに示すキーボードを表示し、ユーザAが
図1dにおける弾幕入力フレーム105に「〇〇〇さん、すげえ、いいね」を入力し、決定ボタン106をクリックする。
【0019】
一実施例では、複数のユーザが複数の異なる端末102によって同じビデオを視聴することができ、複数のユーザがそれぞれの端末102を介して文字列を入力すると、サーバ101が複数の文字列を受信する。例えば、ユーザBがユーザAと異なる端末102によって上記ビデオを視聴しているとし、
図1eを参照し、ユーザBに対応する端末102に弾幕を追加するユーザインターフェースである。同様に、
図1eも、弾幕入力フレーム107及び決定ボタン108を含み、ユーザBが
図1eの弾幕入力フレーム107に「防衛者の射撃の腕がいいね、感心した」を入力し、決定ボタン108をクリックする。
【0020】
この場合、ユーザAに対応する端末102と、ユーザBに対応する端末102は、それぞれの弾幕入力フレームにおける文字列をサーバ101に送信する。
【0021】
一実施例では、サーバ101は、ビデオコンテンツに基づいて、所定の時間範囲を設定し、この所定の時間範囲内の文字列を収集し、各文字列を表示すべき文字列セットとして構成し、文字表示命令に含め、現在の時点に同じビデオを視聴している各端末102に送信する。そして、サーバ101は、次の所定の時間範囲内の複数の文字列を収集し続ける。すなわち、サーバ101は、文字列を周期的に収集し、各端末102に送信する。ユーザAに対応する端末102により受信された表示すべき文字列セットは、ユーザAにより弾幕入力フレーム105を介して入力された文字列を含み、ユーザBにより弾幕入力フレーム107を介して入力された文字列をさらに含む。
【0022】
端末102は、サーバ101により送信された文字表示命令を受信すると、上記の文字列表示処理の技術案を実行することで、各端末102により収集された表示すべき文字列セット中の各文字列を端末のユーザインターフェースに表示することを実現する。例えば、ユーザAに対応する端末102が上記文字列表示処理の技術案を実行すると、ディスプレイに表示されたユーザインターフェースに表示された文字列セットは、
図1fに示す。
図1fから分かるように、ユーザAにより弾幕入力フレーム105に入力された「〇〇〇さん、すげえ、いいね」を含むとともに、ユーザBにより弾幕入力フレーム106に入力された「防衛者の射撃の腕がいいね、感心した」も含む。
【0023】
上記説明に基づいて、本出願の実施例は、
図2に示す文字列表示処理方法のフローチャートを提供する。
図2に記載の文字列表示処理方法は、端末により実行されてもよく、具体的には、端末のプロセッサにより実行されてもよい。
図2に示す文字列表示処理方法は、ステップS201~ステップS203を含むことができる。
【0024】
ステップS201において、表示すべき文字列セットをレンダリングすることを指示するための文字表示命令を受信する。
【0025】
一実施例では、端末により受信された文字表示命令は、サーバにより送信されてもよい。例えば、ビデオに弾幕を追加する適用シーンでは、各ビデオを再生している端末は、対応するユーザにより入力された弾幕追加動作を検出する(例えば、
図1d及び
図1fに示す)と、収集した弾幕コンテンツ(すなわち、文字列)をサーバに送信し、サーバは、各端末により送信された文字列に基づいて表示すべき文字列セットを得、表示すべき文字列セットを含む文字表示命令を生成し、文字表示命令を各端末に送信し、それにより、端末は、表示すべき文字列セットをレンダリングし、ビデオを再生しているユーザインターフェースに表示する。
【0026】
表示すべき文字列セットは、1つ又は複数の文字列を含んでもよく、目標文字列が表示すべき文字列セット中の任意の1つの文字列であるとする。前記1つ又は複数の文字列は、例えば、1つ又は複数のユーザアカウント又はユーザ端末に関連するものである。説明の便利上、以下、表示すべき文字列セット中の目標文字列を例として、本実施例に記載の文字列表示処理方法について具体的に説明する。表示すべき文字列セット中の、目標文字列を除くほかの文字列に対しても、目標文字列と同一の処理方法を用いることができる。
【0027】
ステップS202において、表示すべき文字列セット中の目標文字列が所定のタイプの文字を含まない場合、目標文字列に含まれる目標文字に対して第1レンダリング前処理を行い、目標文字に対応する目標文字画像を含む第1レンダリングデータセットを得、第1レンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成する。このレンダリング命令は、目標文字画像に対して画像レンダリングを行うことを指示するレンダリング命令である。弾幕の場合、ステップS202は、弾幕に対して文字レベルの描画を行う。
【0028】
本出願の実施例によれば、例えば、端末は、第1レンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成した後、レンダリング命令をレンダリングエンジンに送信し、レンダリングエンジンは、レンダリング命令を実行し、目標文字画像に対して画像レンダリングを行うことによって、端末のディスプレイに表示されたユーザインターフェース(例えば、ビデオを再生しているユーザインターフェース)に目標文字列を表示することを実現する。表示すべき文字列セット中の各文字列に含まれる文字タイプは、一般的に異なり、異なるタイプの文字の処理方法及びプロセスも同じわけではないことを理解すべきである。統一された方法を用いて、表示すべき文字列セット中の各文字列をレンダリングすると、特殊又は複雑な文字を含む文字列に対するレンダリング処理が遅い可能性があり、文字列表示の効率に影響を与える。文字タイプは、テキストタイプ、画像タイプ及びほかのタイプを含んでもよい。テキストタイプの文字は、ユーザインターフェースに文字として表示され、画像タイプの文字は、ユーザインターフェースに画像として表示される。ほかのタイプの文字は、一般的に特殊又は複雑なテキスト又は画像である。
【0029】
これに基づいて、文字列をうまく表示し、文字列表示効率を向上させるために、本出願の実施例は、いくつかの所定のタイプの文字を予め設定し、この所定のタイプの文字を含む文字列、及びこの所定のタイプを含まない文字の文字列に対して異なるレンダリング処理を行う。本出願の実施例によれば、例えば、所定のタイプの文字は、再使用率が低い文字であってもよい。前記再使用率が低いということは、この文字が次に弾幕に生じる可能性が低いと理解されてもよい。例えば、スーパー会員として登録したユーザしか送信できない文字、又は連続的に視聴する時間が所定の時間を超えたユーザしか送信できない文字は、再使用率が低い文字に属する。本出願の実施例に記載の所定のタイプの文字は、ほかのタイプの文字に属してもよい。
【0030】
一実施例では、端末は、文字列表示処理の履歴記録に基づいて所定のタイプを決定してもよい。例えば、数回の文字列表示処理プロセスにおいて、ある文字を含む文字列に対して表示処理を行うとき、この文字に対する処理が長い時間かかり、且つこの文字が次回の文字列表示処理プロセスに生じる確率が低いことに気づくと、この文字に対応する文字タイプを所定のタイプとして設定する。
【0031】
別の実施例では、所定のタイプの文字は、開発者により設定されてもよく、開発者は、各ユーザにより入力された文字列の履歴記録に基づいて、どのタイプの文字が、低い再使用率の特徴を満たすかを判断し、再使用率が低い文字タイプを所定のタイプとして設定し、所定のタイプにマッチングする文字は、所定のタイプの文字である。
【0032】
上記説明に基づいて、本出願の実施例は、表示すべき文字列セット中の各文字列をレンダリングする前、先ず、各文字列が所定のタイプの文字を含むか否かを決定し、そして、決定結果に応じて対応するレンダリング方法を用いてレンダリングする。本出願の実施例の以下の説明では、表示すべき文字列セットに含まれる目標文字列を例として、如何に決定結果に応じて、対応するレンダリング方法を用いてレンダリングするかを説明する。
【0033】
一実施例では、目標文字列が所定のタイプの文字を含まないことを検出すると、目標文字列に含まれる目標文字に対して第1レンダリング前処理を行い、目標文字に対応する目標文字画像を含む第1レンダリングデータセットを得、そして、第1レンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成し、レンダリング命令は、目標文字画像に対して画像レンダリングを行うことを指示するためのレンダリング命令である。目標文字列が所定のタイプの文字を含まないことは、目標文字列中のすべての目標文字の文字タイプが所定のタイプではなく、又は、目標文字中の文字タイプが所定のタイプの文字の数に等しく、数の閾値より小さいとのことであり、数の閾値は、1、2又はほかの値であってもよい。目標文字列が所定のタイプの文字を含むか否かを決定する方式については、本出願の実施例で具体的に限定せず、実際の使用需要及び端末のレンダリング性能に応じて決められてもよい。
【0034】
一実施例では、第1レンダリング前処理は、端末ディスプレイに表示されたユーザインターフェースに目標文字を表示するに必要な第1表示パラメータ、及び目標文字に対応する第1レンダリングパラメータを決定する処理であってもよい。具体的には、目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って第1レンダリングデータセットを得る前記ステップは、前記目標文字の文字タイプに応じて、前記ユーザインターフェースに前記目標文字をフローティング表示するための第1表示パラメータを決定するステップと、少なくとも1つの文字に対応する文字画像を含む所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定するステップと、前記第1表示パラメータ及び前記第1レンダリングパラメータに基づいて第1レンダリングデータセットを得るステップと、を含むことができる。
【0035】
第1表示パラメータは、目標文字の表示位置を含んでもよい。表示位置は、座標形式で示されてもよいし、ユーザインターフェースにおける所定点との距離及び角度で示されてもよい。例えば、ユーザインターフェースの左上角頂点を原点として座標系を作成すると、ユーザインターフェースにおける任意の位置を座標形式で示すことができ、例えば、目標文字の第1表示パラメータは、単位がセンチの(5,5)を含み、また例えば、ユーザインターフェースの左上角頂点を所定点として設定すると、目標文字の第1表示パラメータは、目標文字のユーザインターフェースでの位置の、所定点に対する位置を含んでもよく、例えば、「4センチ、真北から30度ほど東偏する」と示されてもよい。
【0036】
一実施例では、第1表示パラメータを決定する実施の形態は、端末により予め設定されたフローティング表示に対応する構成情報及び目標文字に対するレイアウト処理に応じて決定されてもよい。構成情報は、文字サイズ、表示する文字列とユーザインターフェースの最上部位置との距離、文字列の色や文字列のフォントなどの情報を含んでもよい。目標文字に対する前記レイアウト処理は、所定のレイアウトルールに従って、目標文字列に含まれる目標文字をレイアウトすることであってもよい。具体的に目標文字に対応する第1表示パラメータを如何に決定するかについては、以下に詳細に説明される。
【0037】
一実施例では、第1レンダリングパラメータは、目標文字に対応する目標文字画像及び前記目標文字画像の位置情報を含んでもよい。所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定することは、文字レンダリングテクスチャセットから目標文字画像を検索し、目標文字画像の位置情報を決定することであってもよいし、又は、目標文字に対応する目標文字画像を生成し、目標文字画像に基づいて所定の文字レンダリングテクスチャセットを更新し、そして、更新された文字レンダリングテクスチャセットから、目標文字画像の位置情報を取得することであってもよい。前記目標文字画像の位置情報は、例えば、前記目標文字画像の前記文字レンダリングテクスチャセットでのテクスチャ座標である。
【0038】
所定の文字レンダリングテクスチャセットは、少なくとも1つの文字に対応する文字画像を含み、所定の文字テクスチャセットは、予め設定されたものである。本出願の実施例によれば、例えば、端末がアイドルであり又は処理する業務の数が多くないと、常用の文字を取得し、文字画像生成ルールに従って各文字に対応する文字画像を生成し、各文字画像は、文字レンダリングテクスチャセットを構成する。所定の文字レンダリングテクスチャセットは、
図3aに示すテキストタイプテクスチャセット、及び
図3bに示す画像タイプテクスチャセットを含んでもよい。
図3aにおいて、テキストタイプテクスチャセット31は、番号32が表す「田」字の文字画像などの複数のテキスト文字の画像を含む。
図3bにおいて、画像タイプテクスチャセット33は、番号34が表す文字画像などの複数の画像文字の画像を含む。文字レンダリングテクスチャセットを用い、多くの小さい図(例えば、
図3aにおける文字画像32、
図3bにおける文字画像34)を大きい図(例えば、
図3aにおける番号31、
図3bにおける番号33で表れる)に組み合わせ、小さい図でレンダリングする際、小さい図の大きい図での座標により、大きい図において小さい図を測位し、小さい図のテクスチャをサンプリングする。この方式は、1枚の大きい図だけ読み取ればよく、このようにして、ファイルの読み取り回数を顕著に減少でき、複数の小さい図をそれぞれファイルとして記憶してそれぞれ読み取ることに比べて、読取り速度が速く、したがって、レンダリング効率がより高い。
【0039】
端末に記憶された文字レンダリングテクスチャセットには、各文字画像が対応するコード形式に変換されて記憶されることを理解すべきである。本出願の実施例によれば、端末は、1つの文字に対して、文字生成ルールを用いてこの文字に対応する文字画像を生成した後、この文字に対応する文字コードと文字画像に対応するコードとを関連付けて記憶する。この文字に対応する文字画像を取得する必要がある時、文字コード及び関連記憶関係に基づいてこの文字に対応する文字画像を見つける。例としては、表示すべき文字列セットに含まれる1つの文字列が
図3cに示されるものとし、端末は、この文字列中の文字の各々に対応する文字コードを検出する。冠画像301に対応する文字コードが660であるものとし、端末は、
図3dにおける302に示すように、文字列中の冠画像を文字コードに置き換え、文字列中のほかの文字をそれぞれに対応する文字コードに置き換え(
図3dに示されていない)(
図3dは、置き換えの例に過ぎない)、
図3dにおける各文字の表示パラメータ及びレンダリングパラメータを得ると、各文字の文字コードに基づいて対応する文字画像を見つけてレンダリングし、ユーザインターフェースに表示し
図3cに示す文字列を得る。
【0040】
異なる文字タイプの文字に対応する文字コードは、異なってもよいことを理解すべきである。例えば、上記冠画像の文字に対応する文字コードは、660であってもよく、絵文字Emojiの文字タイプに対応する文字コードは、
図3eに示されるものであってもよい。1列目のCN、JP及びKRは、対応するEmojiに対応するテキスト文字を示し、テキスト文字は、このEmojiの意味を示し、CNは、中国国旗を表し、JPは、日本国旗を表し、KRは、韓国国旗を表す。中間の1列は、各テキスト文字に対応するEmoji画像を表し、最後の1列は、端末における対応するEmojiに対応する文字コード範囲を表す。
【0041】
一実施例では、第1レンダリングデータセットを決定すると、端末は、第1レンダリングデータセットを含むレンダリング命令を生成し、レンダリング命令をレンダリングエンジンに送信し、レンダリングエンジンは、第1レンダリングデータセットに基づいて、目標文字画像をレンダリングし、それにより、ユーザインターフェースに目標文字列を表示することを実現する。
【0042】
ステップS203において、表示すべき文字列セット中の目標文字列が所定のタイプの文字を含む場合、目標文字列に対して第2レンダリング前処理を行い、目標文字列に対応する文字列画像を含む第2レンダリングデータセットを得、第2のレンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成する。このレンダリング命令は、文字列画像に対して画像レンダリングを行うことを指示するためのものである。弾幕の場合、ステップS203は、弾幕に対して非文字レベルの描画を行う。
【0043】
本出願の実施例によれば、端末は、第2のレンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成した後、このレンダリング命令をレンダリングエンジンに送信し、レンダリングエンジンは、目標文字列に対応する文字列画像に対して画像レンダリングを行い、それにより、端末のユーザインターフェースに目標文字列を表示することを実現する。一実施例では、第2のレンダリング前処理は、目標文字列に対応する第2のレンダリングパラメータ及び第2の表示パラメータを決定する処理であってもよい。具体的には、目標文字列に対して第2レンダリング前処理を行い、第2レンダリングデータセットを得る前記ステップは、フローティング表示に対応する構成情報に基づいて、前記目標文字列の第2表示パラメータを決定するステップと、文字列画像生成ルールを用いて前記目標文字列に対応する文字列画像を生成するステップと、前記目標文字列に対応する文字列画像を所定の文字レンダリングテクスチャセットに追加して、前記所定の文字レンダリングテクスチャセットを更新し、前記目標文字列に対応する文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報を決定するステップと、前記文字列画像及び文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報に基づいて、第2レンダリングパラメータを決定し、前記第2レンダリングパラメータ及び前記第2表示パラメータに基づいて前記第2のレンダリングデータセットを得るステップとを含んでもよい。
【0044】
対応する構成情報のフローティング表示は、以上の通りであり、前記構成情報は、文字サイズ、表示する文字列とユーザインターフェースの最上部位置との距離、文字列の色及び文字列のフォントなどの情報を含んでもよい。目標文字列の第2の表示パラメータは、表示位置を含んでもよく、表示位置は、座標形式で示されてもよく、距離及び角度の形式で示されてもよいが、ここで詳しく説明しない。
【0045】
一実施例では、前記第2のレンダリングパラメータは、目標文字列に対応する文字列画像及び文字列画像の位置情報を含んでもよい。この文字列画像の位置情報は、例えば、文字列画像の文字レンダリングテクスチャセットでのテクスチャ座標である。このようにして、この後にレンダリングするとき、文字列画像の位置情報に基づいて、所定の文字画像テクスチャから文字列画像を迅速に検索してレンダリングすることができ、レンダリング時間を節約することができる。上記から分かるように、端末の所定の文字レンダリングテクスチャセットは、いくつかの常用の文字に対応する文字画像のみを含み、文字列に対応する文字列画像を含まない可能性があり、端末は、文字列画像生成ルールに従って、目標文字列に対応する文字列画像を生成する必要がある。文字画像に対して統一管理を行うために、文字列画像を所定の文字レンダリングテクスチャセットに追加して記憶し、所定の文字レンダリングテクスチャセットを更新し、そして、文字列画像の文字レンダリングテクスチャセットでの位置情報を取得する。
【0046】
文字列画像及び文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報は、第2のレンダリングパラメータを構成し、第2のレンダリングパラメータ及び第2の表示パラメータを組み合わせて第2レンダリングデータセットを得ることができる。そして、第2のレンダリングデータセットを含むレンダリング命令を生成し、このレンダリング命令をレンダリングエンジンに送信し、レンダリングエンジンは、第2のレンダリングデータセットに基づいて、画像レンダリングを行うことで、端末のユーザインターフェースに、表示すべき文字列セットを表示することを実現する。
【0047】
一実施例では、表示すべき文字列セット中の任意の1つの文字列に対して、文字列表示処理を行う際、いずれも、
図2に示す文字列表示処理方法を用いてレンダリングする処理を行うことができ、端末のユーザインターフェースに、表示すべき文字列セット中の各文字列を表示することを実現する。
【0048】
一実施例では、表示すべき文字列セットが目標文字列を含む以外、ほかの文字列をさらに含む場合、前記ほかの文字列が前記所定のタイプの文字を含まない場合、前記レンダリング命令は、さらに、前記ほかの文字列に含まれる文字に対応する文字画像に対して画像レンダリングを行うことを指示するためのものであり、前記ほかの文字列が前記所定のタイプの文字を含む場合、前記レンダリング命令は、さらに、前記ほかの文字列に対応する文字列画像に対して画像レンダリングを行うことを指示するためのものである。
【0049】
具体的には、
図2に示す文字列表示処理方法に従って、ほかの文字列を処理する。ほかの文字列が所定のタイプの文字を含む場合、ほかの文字列に対して第1レンダリング前処理を行い、ほかの文字列に対応する文字列画像を含む第3レンダリングデータセットを得る。目標文字列が所定のタイプの文字を含む場合、第3レンダリングデータセット及び第2のレンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成し、この場合、レンダリング命令は、レンダリングエンジンがほかの文字列に対応する文字列画像及び目標文字列に対応する文字列画像をレンダリングすることを指示するためのものであり、目標文字列が所定のタイプの文字を含まない場合、第3レンダリングデータセット及び第1レンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成する。この時のレンダリング命令は、レンダリングエンジンが目標文字列中の目標文字に対応する目標文字画像及びほかの文字列に対応する文字列画像をレンダリングすることを指示するためのものである。
【0050】
別の実施例では、ほかの文字列が所定のタイプの文字を含まない場合、ほかの文字列に対して第1レンダリング前処理を行い、ほかの文字列に含まれるほかの文字に対応する文字画像を含む第4レンダリングデータセットを得、この場合、目標文字列が所定のタイプの文字を含まない場合、第4レンダリングデータセット及び第1レンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成し、レンダリングエンジンにレンダリング命令を送信し、この場合、レンダリング命令は、目標文字列中の目標文字に対応する目標文字画像及びほかの文字に対応する文字画像に対して画像レンダリングを行うことを指示するためのものであり、目標文字列が所定のタイプの文字を含む場合、第4レンダリングデータセット及び第2のレンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成し、このレンダリング命令をレンダリングエンジンに送信し、この場合、レンダリング命令は、ほかの文字に対応する文字画像をレンダリングし、目標文字列に対応する文字列画像をレンダリングすることを指示するためのものである。
【0051】
この説明に基づいて分かるように、表示すべき文字列セットが複数の文字列を含む場合、端末は、各文字列に対応するレンダリングデータセットを得、そして、各文字列に対応するレンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令をレンダリングエンジンに送信する。従来技術で、1つの文字列のレンダリングデータセットを得るたびに、レンダリングエンジンにこの文字列に関するレンダリング命令を送信することに比べて、レンダリングエンジンにレンダリング命令を送信する回数を効果的に減少させ、レンダリングエンジンとのインタラクションを減少させ、端末の消費電力オーバーヘッドを節約させる。
【0052】
本出願の実施例では、表示すべき文字列セットを含む文字表示命令を受信すると、表示すべき文字列セット中の目標文字列が所定のタイプの文字を含むとか否かを検出し、含まないと、目標文字列に含まれる目標文字列を処理して第1レンダリングデータセットを得、第1レンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成し、目標文字画像をレンダリングすることを指示し、含むと、目標文字列を1つの全体として処理し、第2レンダリングデータセットを得、第2のレンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成し、目標文字列に対応する文字列画像をレンダリングすることを指示する。つまり、本出願の実施例では、所定のタイプの文字を含まない目標文字列に対して、文字を最小単位としてレンダリングし、所定のタイプの文字を含む文字列に対して、目標文字列全体を単位としてレンダリングする。目標文字列に含まれる文字のタイプによって、異なるレンダリング処理を行うことを実現し、従来技術で、すべての目標文字列に対して統一された処理方法を用いることに比べて、目標文字列の表示をより効果的に行うことができる。
【0053】
表示すべき文字列セットが複数の文字列を含む場合、如何に本出願の実施例による文字列表示処理方法を用いてレンダリングするかについて具体的に説明するために、以下、表示すべき文字列セットが目標文字列、及び目標文字列と異なるほかの文字列を含み、且つ目標文字列が目標文字を含み、ほかの文字列がほかの文字を含み、目標文字及びほかの文字の数が少なくとも1つであり、また、端末は、業務呼び出しスレッド、解析スレッド及びレンダリングスレッドを実行し、異なるスレッドにより、表示すべき文字列に対して文字列セットの表示処理を行うことで各処理プロセスがお互いに独立し、お互いに影響せず、それにより、文字列表示の効率を向上させることができると仮定する。
【0054】
上記仮定に基づいて、本出願の実施例は、
図4aに示す別の文字列表示処理方法のフローチャートをさらに提供し、
図4aに示す文字列表示処理方法は、端末に適用でき、端末は、呼び出しスレッド、解析スレッド及びレンダリングスレッドを実行する。
図4aに示す文字列表示処理方法は、実際に、端末が上記3つのスレッドを呼び出すことで実行される。
図4aの例では、特定の色で塗りつぶされているステップは、この色に対応するスレッドで実行され、具体的には、
図4aに示す文字列表示処理方法は、ステップS401~ステップS4012を含む。
【0055】
ステップS401において、表示すべき文字列セットをレンダリングすることを指示するための文字表示命令を受信する。
【0056】
表示すべき文字列セットは、目標文字列及びほかの文字列を含んでもよく、目標文字列は、目標文字を含み、ほかの文字列は、ほかの文字を含む。目標文字列及びほかの文字列は、いずれも所定のタイプの文字を含まなくてもよく、又は、いずれも所定のタイプの文字を含んでもよく、あるいは、目標文字列及びほかの文字列のうちの一方は、所定のタイプの文字を含み、他方は、所定のタイプの文字を含まない。以下、目標文字列が所定のタイプの文字を含まず、ほかの文字列が所定のタイプの文字を含むことを例として説明する。
【0057】
一実施例では、ステップS401は、端末が呼び出しスレッドを呼び出すことで実行されてもよい。任意選択的には、呼び出しスレッドは、表示すべき文字列のレンダリング及び表示タスク、又は、弾幕業務のオンまたはオフなどの一部の実行すべき業務を受信するためのものである。
【0058】
ステップS402において、目標文字列及びほかの文字列が所定のタイプの文字を含むか否かを検出する。
【0059】
一実施例では、端末は、呼び出しスレッドを呼び出して目標文字列に含まれる目標文字及びほかの文字列に含まれるほかの文字を検出し、目標文字列及びほかの文字列が所定のタイプの文字を含むか否かを決定し、検出結果を解析スレッドに送信し、解析スレッドは、検出結果に応じて、それぞれ目標文字列及びほかの文字列を処理する。
【0060】
一実施例では、端末は目標文字列が所定のタイプの文字を含まないことを検出すると、ステップS403~ステップS407によって目標文字列中の目標文字に対して第1レンダリング前処理を行い、目標文字列に対応する第1レンダリングデータセットを得る。ステップS403~ステップS404、及びステップS406~ステップS407は、端末が解析スレッドを呼び出すことで実行されてもよく、ステップS405は、端末がレンダリングスレッドを呼び出すことで実行されてもよい。端末は目標文字列が所定のタイプの文字を含むことを検出すると、ステップS408~ステップS4011によってほかの文字列に対して第2レンダリング前処理を行い、ほかの文字列に対応する第3レンダリングデータセットを得る。ステップS408、ステップS4010及びステップS4011は、端末が解析スレッドを呼び出すことで実行されてもよく、ステップS409は、端末がレンダリングスレッドを呼び出すことで実行されてもよい。
【0061】
ステップS403において、目標文字列が所定のタイプの文字列を含まない場合、所定の文字レンダリングテクスチャセットが目標文字列に含まれる目標文字にマッチングする文字画像を含むか否かを検出する。
【0062】
一実施例では、
図2に示す実施例での説明から分かるように、目標文字列中の目標文字に対して第1レンダリング前処理を行うことは、目標文字に対応する第1表示パラメータ及び第1レンダリングパラメータを決定する処理であってもよい。目標文字に対応する第1レンダリングパラメータを決定する前記ステップは、ステップS403~ステップS405により実現されてもよく、具体的には以下に説明し、目標文字に対応する第1表示パラメータを決定する前記ステップは、ステップS406により実現されてもよい。
【0063】
一実施例では、目標文字の第1レンダリングパラメータは、目標文字に対応する目標文字画像及び目標文字画像の位置を含む。任意選択的には、端末には1つの文字レンダリングテクスチャセットが予め設定されており、この文字レンダリングテクスチャセットには、予め設定された一部の常用の文字に対応する文字画像が記憶される。端末は、目標文字に対応する目標文字画像を取得する際、先ず、文字レンダリングテクスチャセットに、目標文字に対応する目標文字画像があるか否かを検出し、ないと、文字画像の生成ルールに従って目標文字画像を生成し、さらに目標文字画像の位置情報を決定し、あると、文字レンダリングテクスチャセットから目標文字画像及びその位置情報を直接取得し、目標文字画像を生成するステップを節約し、端末の一部の消費電力オーバーヘッドを節約し、端末による文字列表示処理の速度を向上させることができる。
【0064】
ステップS404において、文字レンダリングテクスチャセットが目標文字にマッチングする文字画像を含む場合、マッチングする文字画像を目標文字に対応する目標文字画像として決定し、マッチングする文字画像の文字レンダリングテクスチャセットでの位置に基づいて目標文字画像の位置情報を決定する。
【0065】
一実施例では、端末により予め設定された文字レンダリングテクスチャセットには、少なくとも1つの文字に対応する文字画像が記憶され、これらの文字画像は、所定の記憶順序で記憶される。例えば、端末には、N行M列の記憶領域が予め設定されており、N及びMは、1よりも大きい正整数であり、列を基準として順に記憶してもよく、つまり、1番目の文字画像を1行目の1列目の位置に記憶し、2番目の文字画像を2行目の1列目の位置に記憶し、このようにして、1列目にいっぱい記憶した後、文字画像を次の列に記憶する。又は、行を基準として順に記憶してもよく、又は、ほかの記憶順序を含んでもよいが、本出願の実施例では具体的には限定しない。これに基づいて、端末は、文字レンダリングテクスチャセット中の各文字画像に対応する位置を記録することができる。
【0066】
一実施例では、端末は、所定の文字画像を記憶するとき、文字コードと文字画像とを関連付けて記憶してもよい。端末は、文字レンダリングテクスチャセットが目標文字にマッチングする文字画像を含むか否かを検出するとき、先ず目標文字に対して解析処理を行い、目標文字に対応する文字コードを得、そして、文字レンダリングテクスチャセットがこの文字コードに対応する文字画像を含むか否かを検出し、含むと、文字レンダリングテクスチャセットが目標文字にマッチングする文字画像を含むことを決定し、逆に含まない。端末は、マッチングする文字画像の位置を目標文字画像の位置情報として決定する。
【0067】
ステップS405において、文字レンダリングテクスチャセットが目標文字にマッチングする文字画像を含まない場合、文字レンダリング画像生成ルールを用いて目標文字に対応する目標文字画像を生成し、目標文字画像を所定の記憶ルールに従って所定の文字レンダリングテクスチャセットに追加して、文字レンダリングテクスチャセットを更新し、所定の記憶ルールに従って目標文字画像の更新後の文字レンダリングテクスチャセットでの位置情報を、前記目標文字画像の位置情報として決定する。
【0068】
一実施例では、端末は、文字レンダリングテクスチャセットが目標文字にマッチングする文字画像を含まない場合、文字レンダリング画像生成ルールに従って目標文字に対応する目標文字画像を生成する。所定の文字レンダリングテクスチャセットを豊かにするために、生成された目標文字画像を所定の文字レンダリングテクスチャセットに追加することができる。端末は、文字テクスチャ画像セットに文字画像を記憶するとき、所定の記憶順序で記憶するため、記憶順序に従って目標文字画像の文字レンダリングテクスチャセットでの位置情報を取得する。
【0069】
別の実施例では、端末は、文字レンダリングテクスチャセットを予め設定するとき、テキスト類文字画像及び画像類文字画像を1つの文字レンダリングテクスチャセットに記憶してもよいし、又は、端末は、2つの異なる文字レンダリングテクスチャセットを設定し、所定の表示すべきテキスト類文字画像及び画像類文字画像を記憶してもよい。端末がテキスト類文字画像の文字レンダリングテクスチャセット及び画像類文字画像の文字レンダリングテクスチャセットを設定すると、ステップS404を実行する前、目標文字を解析し、目標文字が属する文字タイプを決定し、そして、目標文字の文字タイプに応じて対応する文字レンダリングテクスチャセットを見つけ、目標文字画像を検索する。このようにして、端末が目標文字にマッチングする文字画像があるか否を検索する時間を節約でき、異なる文字レンダリングテクスチャセットにおいて検索することで、検索正確率を向上させることができる。
【0070】
ステップS406において、目標文字の文字タイプに応じて、ユーザインターフェースに目標文字をフローティング表示するための第1表示パラメータを決定する。
【0071】
以上からから分かるように、ステップS406での前記文字タイプは、テキストタイプ及び画像タイプを含んでもよく、様々な文字タイプは、レイアウトルールに対応している。ステップS406の具体的な実施形態は、前記目標文字の文字タイプに対応するレイアウトルールに従って前記目標文字をレイアウトし、レイアウト後の目標文字及び前記フローティング表示に対応する構成情報に基づいて前記目標文字に対応する第1表示パラメータを決定することであってもよい。
【0072】
一実施例では、レイアウトルールは、揃えルールをさらに含む。ある揃えルールに従って1つの文字列をレイアウトするとき、レイアウト結果中の文字列に含まれる各文字は、揃えられている。レイアウトルールは、ベースライン揃え、垂直中央揃えなどを含んでもよい。一実施例では、前記目標文字の文字タイプに対応するレイアウトルールに従って前記目標文字をレイアウトする前記ことは、実際に、目標文字の文字タイプに対応するレイアウトルールで指示された揃えルールに従って、目標文字をレイアウトすることであってもよい。任意選択的には、本出願の実施例でテキストタイプの文字に対応するレイアウトルールで指示された揃えルールは、ベースライン揃えであってもよく、画像タイプの文字に対応する揃えルールは、垂直中央揃えであってもよい。別の実施例では、レイアウトルールは、文字の間隔、文字の大きさ、文字の形状などの情報をさらに含む。
【0073】
一実施例では、異なる文字タイプに対応するレイアウトルールが異なる可能性があり、且つ目標文字の数が少なくとも1つであり、目標文字の数が複数である(目標文字が第1文字及び第2の文字を含むものとする)場合、目標文字タイプに対応するレイアウトルールで指示された揃えルールに従って目標文字をレイアウトするとき、各目標文字の文字タイプが同じであるか否かを考慮し、さらに異なる方法を取ってレイアウトする必要がある。
【0074】
具体的には、目標文字が第1文字及び第2の文字を含む場合、前記目標文字の文字タイプに対応するレイアウトルールに従って前記目標文字をレイアウトする前記ステップは、第1文字に対応する第1文字タイプと第2の文字に対応する第2の文字タイプとが同じであると、第1文字タイプ又は第2の文字タイプに対応するレイアウトルールで指示された揃えルールに従って第1文字及び第2の文字をレイアウトするステップと、第1文字タイプと第2の文字タイプが異なると、第1文字のサイズ、第2の文字のサイズ、第1文字タイプに対応する揃えルール及び第2の文字タイプに対応する揃えルールに従って第1文字及び第2の文字をレイアウトするステップと、を含む。
【0075】
一実施例では、第1文字タイプと第2の文字タイプとが同じであることは、両者がいずれもテキストタイプであること、又は、両者がいずれも画像タイプであることであってもよい。テキストタイプに対応するレイアウトルールで指示された揃えルールがベースライン揃えであり、画像タイプに対応するレイアウトルールで指示された揃えルールが垂直中央揃えであるとする。
【0076】
一実施例では、第1文字タイプ及び第2の文字タイプがいずれもテキストタイプであると、第1文字タイプ又は第2の文字タイプに対応するレイアウトルールで指示された揃えルールに従って第1文字及び第2の文字をレイアウトする実施の形態は、デフォルトのベースライン上においてレイアウトルールで指示された文字間隔などの情報に従って第1文字及び第2の文字をレイアウトし、レイアウト後の第1文字及び第2の文字の、ベースラインの下方にある部分(以下に説明しやすいために、第1文字及び第2の文字の、ベースラインの下方にある部分がベースラインの下方フォントと呼ばれ、第1文字及び第2の文字の、ベースラインの上方にある部分がベースラインの上方フォントと呼ばれる)を見つけ、各ベースラインの下方フォントの高さを取得し、高さが最も大きいベースラインの下方フォントに対応するベースラインを目標文字列のベースラインとし、目標文字列の底部の開始位置とする理解してもよく、ベースラインの上方フォントの高さを取得し、高さが最も大きいベースラインの上方フォントの高さと、高さが最も大きいベースラインの下方フォントの高さとの和を目標文字列の高さとする。
【0077】
例を挙げると、目標文字が「O」「p」「e」「n」「g」「l」を含むものとし、デフォルトのベースラインにおいてレイアウトルールで指示された文字間隔などの情報に従って、各文字をレイアウトし、レイアウト結果は、
図5aに示す。
図5aにおいて、501は、デフォルトのベースラインを表す。そして、各文字の、ベースラインの下方にあるフォントの高さを決定する。文字の「O」及び「l」「e」「n」がベースラインの下方フォントを含まず、文字の「p」及び「g」がベースラインの下方フォントを含み、この2つのベースラインの下方フォントの高さを決定する。文字の「p」のベースラインの下方フォントの長さを最大とすると、502に示すように、文字の「p」のベースラインを目標文字列のベースラインとする。さらに、各文字のベースラインの上方フォントの高さを決定する。文字の「O」及び文字の「l」のベースラインの上方フォントの高さを最大とすると、高さが最も大きいベースラインの上方フォントの高さと、高さが最も大きいベースラインの下方フォントの高さとの和を目標文字列の高さとすることができる。5aにおいて、
図5aにおける51に示すように、高さが最も大きいベースラインの上方フォントは、文字の「O」又は文字の「l」であり、
図5aにおける52に示すように、高さが最も大きいベースラインの下方フォントは、文字の「p」に対応するベースラインの下方フォントであり、51の高さと52の高さとの和を目標文字列の高さとして決定する。
【0078】
別の実施例では、第1文字タイプ及び第2の文字タイプがいずれも画像タイプであると、第1文字タイプ又は第2の文字タイプに対応するレイアウトルールで指示された揃えルールに従って、第1文字及び第2の文字をレイアウトする実施の形態は、レイアウトルールに従って第1文字及び第2の文字のうちサイズが最も大きい方を先にレイアウトし、そして、サイズが大きい文字の高さに基づいて他方の文字の左上角頂点の座標を計算し、算出した左上頂点の座標に従ってレイアウトし、両者のうちサイズが最も大きい方の文字の高さを目標文字の高さとして決定する。左上角頂点座標=(最大文字の高さ-この文字高さ)/2+この文字高さ、という式によって、サイズが最も大きい文字の高さに基づいて他方の文字の左上角頂点座標を計算することを実現する。
【0079】
例えば、
図5bに示すように、目標文字列に含まれる文字は、3つの画像タイプの文字であり、それぞれ「大泣き絵文字」「盾画像」及び「大笑い絵文字」であるものとする。この3つの文字のサイズのうち、「盾画像」のサイズを最大とし、ほかの2つのサイズを同じとする。3つの文字に対するレイアウトは、
図5cに示すように、レイアウトルールに従って「盾画像」を先にレイアウトし、そして、「盾画像」の高さ及び「大泣き絵文字」及び「大笑い絵文字」の高さに基づいて、それぞれ「大泣き絵文字」及び「大笑い絵文字」の左上角頂点座標を決定し、それぞれの頂点座標に従ってレイアウトし、そして、「盾画像」の高さを目標文字列の高さとして決定する。
【0080】
一実施例では、第1文字タイプと第2の文字タイプが異なると、第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って第1文字をレイアウトし、第2の文字タイプに対応するレイアウトルールで指示された揃えルールに従って第2の文字をレイアウトする。具体的には、前記第1文字のサイズと前記第2文字のサイズを比較するステップと、前記第1文字のサイズが前記第2文字のサイズよりも大きいと、前記第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第1文字に対してレイアウト処理を行い、レイアウト処理結果に応じて目標文字列の高さを決定するステップと、目標文字列の高さ及び前記第2の文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第2の文字に対してレイアウト処理を行うステップとを含んでもよい。同様に、第2の文字のサイズが第1文字のサイズよりも大きいと、前記第2の文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第2の文字に対してレイアウト処理を行い、レイアウト処理結果に応じて目標文字列の高さを決定し、目標文字列の高さ及び前記第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第1文字に対してレイアウト処理を行う。つまり、第1文字及び第2の文字のうちサイズが大きいものを先にレイアウトし、そして、サイズが小さいものをレイアウトする。
【0081】
一実施例では、第1文字タイプと第2の文字タイプが異なることは、第1文字タイプがテキストタイプ、第2の文字タイプが画像タイプであること、又は、第1文字タイプが画像タイプ、第2の文字タイプがテキストタイプであることを含む。例えば、
図5dを参照すると、本出願の実施例による目標文字レイアウトの模式図である。目標文字列がテキストタイプの文字の「O」「p」「e」「n」「g」「l」、及び、
図5bに示す「盾画像」と「大泣き絵文字」などの画像タイプの文字を含むものとする。「盾画像」のサイズが最大であり、「大泣き絵文字」が最小である場合、レイアウトする際、「盾画像」を先にレイアウトしてから、上記各テキストタイプの文字をレイアウトし、最後に「大泣き絵文字」をレイアウトする。具体的なレイアウトの実施の形態は、「盾画像」の高さを目標文字列の高さとし、垂直中央ルールに従って、テキストタイプの文字部分をレイアウトするとき占める高さ(テキストタイプの文字の底部位置503及び最上部位置504を含む)を決定し、テキストタイプの文字のうち、長さが最も大きい文字の「O」を最上部位置504に従ってレイアウトし、この後、「O」の底部の位置505をテキストタイプの文字をレイアウトする際のベースラインとし、上記のベースライン揃えルールに従ってほかの複数の文字を503と504との間にレイアウトすることであってもよい。各テキストタイプの文字をレイアウトした後、上記の垂直中央揃えルールに従って「大泣き絵文字」をレイアウトする。
【0082】
また例えば、
図5dにおいて、テキストタイプの文字のサイズが画像類文字のサイズよりも大きいと、ベースライン揃えルールに従って各文字を先にレイアウトし、
図5eに示すように、目標文字列の高さを決定し、506は、ベースラインを表し、507と508との距離は、目標文字列の高さを表し、目標文字列の高さ及び垂直揃えルールに従って画像タイプの文字のうちの最大の文字の左上角頂点座標を決定し、この座標に従って最大の画像タイプの文字をレイアウトして記憶し、ほかの画像タイプの文字に対して、上記に記載の画像タイプの文字レイアウトプロセスでレイアウトすることができ、ここで繰り返し説明しない。
【0083】
また、
図5a~5eでは、文字をレイアウトすることは、文字に対応するビットマップ及び/又は画像をレイアウトすることを含む。
【0084】
ステップS407において、目標文字画像及び目標文字画像の位置情報に基づいて目標文字に対応する第1レンダリングパラメータを決定し、第1レンダリングパラメータ及び第1表示パラメータに基づいて第1レンダリングデータセットを決定する。
【0085】
一実施例では、目標文字画像と文字画像の位置情報とを組み合わせて目標文字に対応する第1レンダリングパラメータを得、そして、第1レンダリングパラメータと第1表示パラメータを組み合わせて第1レンダリングデータセットを得る。
【0086】
ステップS408において、ほかの文字列が所定のタイプの文字を含む場合、文字列画像生成ルールを用いてほかの文字列に対応する文字列画像を生成する。
【0087】
ステップS409において、ほかの文字列に対応する文字列画像を所定の文字レンダリングテクスチャセットに追加して、文字レンダリングテクスチャセットを更新し、ほかの文字列に対応する文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報を決定する。
【0088】
ステップS4010において、フローティング表示に対応する構成情報に基づいて、ほかの文字列の第3表示パラメータを決定する。
【0089】
ステップS4011において、ほかの文字列に対応する文字列画像及びこの文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報に基づいて、ほかの文字列に対応する第3レンダリングパラメータを決定し、第3レンダリングパラメータ及び第3表示パラメータに基づいて第3レンダリングデータセットを得る。
【0090】
ステップS408~ステップS4011では、所定のタイプを含まないほかの文字列に対して、如何に第2レンダリング前処理を行い、第3レンダリングデータセットを得ることについて主に説明され、含まれる一部の実現可能な実施の形態については、
図2に示す実施例のステップS203での説明を参照でき、ここで詳しく説明されない。
【0091】
ステップS4012において、第1レンダリングデータセット及び第3レンダリングデータセットに基づいて表示すべき文字列セットに関するレンダリング命令を生成し、レンダリング命令をレンダリングエンジンに送信することによって、レンダリングエンジンが第2のレンダリングデータセット及び第3レンダリングデータセットに基づいて画像レンダリングを行う。
【0092】
一実施例では、第1レンダリングデータセット及び第3レンダリングデータセットが1つのレンダリング命令に含まれ、従来技術で各レンダリング命令が1つのレンダリングデータセットを含むことに比べて、レンダリング命令の数を減少させ、端末の消費電力オーバーヘッドを節約することができる。
【0093】
図4aは、目標文字列が所定のタイプの文字を含まず、ほかの文字列が所定のタイプの文字を含む場合、如何に文字列表示処理を行うかのみを示すことを理解すべきである。実際の適用では、目標文字列が所定のタイプの文字を含み、ほかの文字列が所定のタイプの文字を含まない場合、又は、目標文字列及びほかの文字列がいずれも所定のタイプの文字を含まない場合、又は、目標文字列及びほかの文字列がいずれも所定のタイプの文字を含む場合が存在しうる。この複数の場合の具体的な文字列表示処理プロセスについては、
図4aにおける対応するステップでの説明を参照でき、ここで繰り返し説明しない。
【0094】
本出願の実施例では、文字表示命令が目標文字列及びほかの文字列の2つの表示すべき文字列を含み、目標文字列が所定のタイプの文字を含まず、ほかの文字列が所定のタイプの文字を含む場合、目標文字列を処理するステップは、所定の文字レンダリングテクスチャセットが目標文字列に含まれる目標文字にマッチングする文字画像を含むか否かを検出するステップと、文字レンダリングテクスチャセットが目標文字にマッチングする文字画像を含む場合、マッチングする文字画像を目標文字に対応する目標文字画像として決定し、マッチングする文字画像の文字レンダリングテクスチャセットでの位置に基づいて目標文字画像の位置情報を決定するステップと、文字レンダリングテクスチャセットが目標文字にマッチングする文字画像を含まない場合、文字レンダリング画像生成ルールを用いて目標文字に対応する目標文字画像を生成し、目標文字画像を所定の記憶ルールに従って所定の文字レンダリングテクスチャセットに追加して、文字レンダリングテクスチャセットを更新するステップと、所定の記憶ルールに従って、目標文字画像の更新後の文字レンダリングテクスチャセットでの位置情報を前記目標文字画像の位置情報として決定するステップと、目標文字の文字タイプに応じて、ユーザインターフェースに目標文字をフローティング表示するための第1表示パラメータを決定するステップと、目標文字画像及び目標文字画像の位置情報に基づいて目標文字に対応する第1レンダリングパラメータを決定し、第1レンダリングパラメータ及び第1表示パラメータに基づいて第1レンダリングデータセットを決定するステップと、を含む。
【0095】
ほかの文字列を処理するステップは、文字列画像生成ルールを用いてほかの文字列に対応する文字列画像を生成するステップと、ほかの文字列に対応する文字列画像を所定の文字レンダリングテクスチャセットに追加して、文字レンダリングテクスチャセットを更新し、ほかの文字列に対応する文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報を決定するステップと、フローティング表示に対応する構成情報に基づいて、ほかの文字列の第3表示パラメータを決定するステップと、ほかの文字列に対応する文字列画像及びこの文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報に基づいてほかの文字列に対応する第3レンダリングパラメータを決定し、第3レンダリングパラメータ及び第3表示パラメータに基づいて第3レンダリングデータセットを得るステップと、
最後に第1レンダリングデータセット及び第3レンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成し、レンダリング命令をレンダリングエンジンに送信することによって、レンダリングエンジンが第2のレンダリングデータセット及び第3レンダリングデータセットに基づいて画像レンダリングを行うステップと、を含んでもよい。
【0096】
上記文字列表示処理プロセスでは、目標文字列に含まれる文字のタイプによって異なるレンダリング処理を行うことを実現し、従来技術ですべての目標文字列に対して、統一された処理方法を用いることに比べて、目標文字列の表示をより効果的に行うことができる。また、第1レンダリングデータセット及び第3レンダリングデータセットを1つのレンダリング命令に含めてレンダリングエンジンに送信することで、端末とレンダリングエンジンとのインタラクションを減少させ、端末の消費電力オーバーヘッドを節約させることができる。
【0097】
また、目標文字列中の目標文字に対して第1レンダリング前処理を行うとき、所定の文字レンダリングテクスチャセットを導入し、所定の文字レンダリングテクスチャセットが目標文字にマッチングする文字画像を含むか否かを先に検出し、含むと、目標文字に対応する目標文字画像を直接取得し、含まないと、目標文字に対応する目標文字列画像を生成し、生成される文字画像の数を効果的に減少させ、端末の消費電力を節約するとともに、レンダリング効率を向上させる。
【0098】
図4bは、本出願の実施例による別の文字列表示処理方法のフローチャートである。
図4bは、弾幕を追加することを例として説明する。
【0099】
図4bに示すように、端末は、ステップS4013でスレッドを呼び出すことで、弾幕追加命令を受信する。この弾幕追加命令は、例えばサーバにより送信された文字表示命令である。この後、端末は、ステップS4014でスレッドを呼び出すことで、文字レベル(1文字ずつ)において弾幕を描画するか否かを判断する。判断条件は、例えば、弾幕を構成し表示すべき文字列セット中の目標文字列が所定のタイプの文字を含むか否かを検出する(
図4aにおけるステップS402に示す)ことである。目標文字列が所定のタイプの文字を含まない場合、文字レベルで弾幕を描画することを判断し、目標文字列が所定のタイプの文字を含む場合、非文字レベルで弾幕を描画することを判断する。ほかの判断条件に応じて、文字レベルで弾幕を描画するか否かを判断してもよい。
【0100】
文字レベルで弾幕を描画すると、端末は、ステップS4016で解析スレッドにより、弾幕中の目標文字列に含まれる文字を1つずつ解析する。この解析は、例えば、各文字のコードなどを決定することである。端末は、目標文字列中の文字を解析した後、ステップS4017で解析スレッドにより、各文字に対応するビットマップが端末メモリにおける1つの文字レンダリングテクスチャセットにキャッシュされたか否かを判断する。ステップS4016及びS4017については、
図4aにおけるステップS403を参照することができる。端末は、文字に対応するビットマップが文字レンダリングテクスチャセットにキャッシュされていると、ステップS4021を実行する。端末は、ある文字に対応するビットマップがキャッシュされた文字レンダリングテクスチャセットにないと、解析スレッドS4019により、この文字のビットマップを取得/生成し、ステップS4020で、キャッシュメモリされた文字レンダリングテクスチャセットにレンダリングスレッドにより転送し、その後にステップS4021を行う。前記ステップS4019及びS4020については、
図4aにおけるステップS405を参照することができる。前記キャッシュされた文字レンダリングテクスチャセットは、最近最も使われていないようにデータを更新することができる。あるデータ(文字ビットマップ)が最近アクセスされると、将来アクセスされる確率がより高い。
【0101】
ステップS4021において、端末は、解析スレッドにより、各文字のビットマップの頂点及びテクスチャ座標を計算する。頂点は、文字のビットマップのディスプレイでの表示位置であり、テクスチャ座標は、文字のビットマップの文字レンダリングテクスチャセット(例えば、
図3a、3bにおける大きい
図31、33)での位置を識別するためのものである。この後、端末は、ステップS4022でレンダリングスレッドにより、テクスチャを単位とし、すべての文字ビットマップの座標を合併し、ステップS4023でレンダリングする。
【0102】
ステップS4014において文字レベルで弾幕を描画せず、例えば、全体描画することを判断すると、端末は、ステップS4015で、解析スレッドにより、弾幕全体ビットマップの頂点座標を計算し、ステップS4018でレンダリングスレッドにより弾幕全体ビットマップをテクスチャとして、キャッシュされた文字レンダリングテクスチャセットにアップロードする。この後、端末は、ステップS4022でレンダリングスレッドにより、テクスチャを単位としてすべての文字の座標を合併し、最後にステップS4023でレンダリングスレッドによりレンダリングする。
【0103】
テクスチャをレンダリングする際、符号付距離場を用いてフラット補間を行って文字ビットマップをレンダリングしてもよく、このようにして、小さいテクスチャ画像を用いることができ、拡大しても歪むことがない。
【0104】
本出願の実施例によれば、GPUが前記非同期の解析スレッド及びレンダリングスレッドを実行してもよく、GPUの能力を活用し、文字解析によるレンダリングへの影響を減少させ、また、レンダリング命令を減少させ、弾幕のラグを回避することができる。
【0105】
本出願の実施例の、文字列表示処理の高効率を検証するために、ビデオに弾幕を追加することを例とすると、本出願の実施例に示す文字列表示処理方法と、従来技術での弾幕追加方法とを比較する。以下の比較結果は、端末が1秒に100個の弾幕を表示する場合得られるものとし、以下の表1に示す。
【0106】
【0107】
表1から分かるように、本出願の実施例は、従来技術に比べて、主に以下の複数の利点を有する。
【0108】
第1には、従来技術では、どんな場合にもかかわらず、弾幕全体を単位としてレンダリングし、このようにして、生成された文字列画像の数と弾幕の数とが正比例する一方、本出願の実施例の文字列表示処理方法では、文字レンダリングテクスチャセットが予め設定されており、目標文字列が所定のタイプの文字を含むか否かに応じて、弾幕に含まれる文字を単位としてレンダリングするか、又は、弾幕全体を単位としてレンダリングするかを決定し、文字レンダリングテクスチャセットが弾幕にマッチングする文字画像又は文字列画像を含まない場合のみ、文字画像又は文字列画像を生成し、それにより、生成された文字画像又は文字列画像の数を減少させ、端末の消費電力オーバーヘッドを節約する。
【0109】
第2には、従来技術では、端末は、1つの弾幕に対応するレンダリングデータセットを生成した後、ンダリングエンジンにレンダリング命令を送信し、このようにして、レンダリング命令の数と弾幕の数とが正比例するため、レンダリングエンジンと頻繁にやり取り、レンダリング速度に悪影響を与えてしまう。一方、本出願の実施例では、複数の弾幕のレンダリングデータセットを同じレンダリング命令に含めてレンダリングエンジンに送信してレンダリングすることで、端末とレンダリングエンジンとの間のインタラクションを効果的に減少させ、それにより、レンダリング速度を向上させることができる。
【0110】
第3には、従来技術では、弾幕の解析、レンダリング及び表示は、全て同じスレッドで行われ、弾幕の数が多すぎると、文字列の表示ラグの現象が生じてしまう。一方、本出願の実施例では、弾幕の解析、レンダリングは、それぞれ業務呼び出しスレッド、解析スレッド及びレンダリングスレッドにより実行され、弾幕表示に影響を与えず、文字列の数が多くても、弾幕を順調に表示することができる。
【0111】
第4には、本出願の実施例の文字列表示処理方法を用いると、ビデオ画面のリフレッシュレートが従来技術でのリフレッシュレートよりも高くなり、また、本出願の実施例に記載の文字列表示処理方法では、プロセスが占用するメモリは、従来技術で占用するメモリより遥かに低く、さらに、本出願の実施例での文字列表示処理方法処理では、プロセッサ占有率が従来技術の占有率より遥かに低い。
【0112】
上記の文字列表示処理方法によれば、本出願の実施例は、
図2及び
図4aに示す文字列表示処理方法を実行できる文字列表示処理装置をさらに開示し、前記文字列表示処理装置は、端末に配置されてもよい。
図6を参照すると、前記文字列表示処理装置は、受信ユニット601及び処理ユニット602を実行することができる。
【0113】
受信ユニット601は、表示すべき文字列をレンダリングすることを指示するための文字表示命令を受信する。
【0114】
処理ユニット602は、前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含まない場合、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行い、前記目標文字に対応する目標文字画像を含む第1レンダリングデータセットを得、前記第1レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成し、前記目標文字画像に対して画像レンダリングを行うことを指示し、
前記処理ユニット602は、さらに、前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含む場合、前記目標文字列に対して第2レンダリング前処理を行い、前記目標文字列に対応する文字列画像を含む第2レンダリングデータセットを得、前記第2レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成し、前記文字列画像に対して画像レンダリングを行うことを指示する。
【0115】
一実施例では、表示すべき文字列セットは、目標文字列を除くほかの文字列をさらに含み、前記ほかの文字列が前記所定のタイプの文字を含まない場合、前記レンダリング命令は、さらに前記ほかの文字列に含まれる文字に対応する文字画像に対して画像レンダリングを行うことを指示し、前記ほかの文字列が前記所定のタイプの文字を含む場合、前記レンダリング命令は、さらに前記ほかの文字列に対応する文字列画像に対して画像レンダリングを行うことを指示する。
【0116】
一実施例では、前記処理ユニット602は、目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って第1レンダリングデータセットを得る際、前記目標文字の文字タイプに応じて、前記ユーザインターフェースに前記目標文字をフローティング表示するための第1表示パラメータを決定する操作と、少なくとも1つの文字に対応する文字画像を含む所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定する操作と、前記第1表示パラメータ及び前記第1レンダリングパラメータに基づいて第1レンダリングデータセットを得る操作と、を実行する。
【0117】
一実施例では、前記第1レンダリングパラメータは、前記目標文字に対応する目標文字画像及び前記目標文字画像の位置情報を含み、前記処理ユニット602は、所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定する際、前記文字レンダリングテクスチャセットには前記目標文字にマッチングする文字画像が含まれると、マッチングする文字画像を前記目標文字に対応する目標文字画像として決定し、前記マッチングする文字画像の前記文字レンダリングテクスチャセットでの位置に基づいて前記目標文字画像の位置情報を決定する操作を実行する。
【0118】
一実施例では、前記処理ユニット602は、所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定する際、前記文字レンダリングテクスチャセットには前記目標文字にマッチングする文字画像が含まれていないと、文字レンダリング画像生成ルールを用いて前記目標文字に対応する目標文字画像を生成し、前記目標文字画像を所定の記憶ルールに従って前記文字レンダリングテクスチャセットに追加し、前記文字レンダリングテクスチャセットを更新する操作と、前記所定の記憶ルールに従って、前記目標文字画像の更新後の文字レンダリングテクスチャセットでの位置情報を、前記目標文字画像の位置情報として決定する操作と、を実行する。
【0119】
一実施例では、前記処理ユニット602は、前記目標文字の文字タイプに応じて、前記ユーザインターフェースに前記目標文字を表示するための第1表示パラメータを決定する際、前記目標文字の文字タイプに対応するレイアウトルールに従って前記目標文字をレイアウトする操作と、レイアウト後の目標文字及びフローティング表示に対応する構成情報に基づいて前記目標文字に対応する第1表示パラメータを決定する操作と、を実行する。
【0120】
一実施例では、目標文字は、第1文字及び第2の文字を含み、前記処理ユニット602は、前記目標文字の文字タイプに対応するレイアウトルールに従って前記目標文字をレイアウトする際、前記第1文字に対応する第1文字タイプと前記第2文字に対応する第2文字タイプが同じであると、前記第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第1文字及び前記第2の文字をレイアウトする操作と、前記第1文字タイプと前記第2文字タイプが異なると、前記第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第1文字をレイアウトする操作と、前記第2文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第2の文字をレイアウトする操作と、を実行する。
【0121】
一実施例では、前記処理ユニット602は、前記第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第1文字をレイアウトし、前記第2文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第2の文字をレイアウトする際、前記第1文字のサイズと前記第2文字のサイズを比較する操作と、前記第1文字のサイズが前記第2文字のサイズよりも大きいと、前記第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第1文字に対してレイアウト処理を行い、レイアウト処理結果に応じて目標文字列の高さを決定する操作と、目標文字列の高さ及び前記第2の文字タイプに対応するレイアウトルールで指示された揃えルールに従って、前記第2の文字に対してレイアウト処理を行う操作と、を実行する。
【0122】
一実施例では、第2のレンダリングパラメータは、前記目標文字列に対応する文字列画像及び前記文字列画像の位置情報を含み、前記処理ユニット602は、前記目標文字列に対して第2レンダリング前処理を行い、第2レンダリングデータセットを得る際、フローティング表示に対応する構成情報に基づいて、前記目標文字列の第2表示パラメータを決定する操作と、文字列画像生成ルールを用いて前記目標文字列に対応する文字列画像を生成する操作と、前記目標文字列に対応する文字列画像を所定の文字レンダリングテクスチャセットに追加し、前記所定の文字レンダリングテクスチャセットを更新し、前記目標文字列に対応する文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報を決定する操作と、前記文字列画像及び文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報に基づいて、第2レンダリングパラメータを決定し、前記第2レンダリングパラメータ及び前記第2表示パラメータに基づいて前記第2のレンダリングデータセットを得る操作と、を実行する。
【0123】
一実施例では、端末は、呼び出しスレッド、解析スレッド及びレンダリングスレッドを実行し、前記端末は、呼び出しスレッドを呼び出すことで、文字表示命令を受信すること、及び、前記目標文字列に含まれる目標文字を検出することを実行し、前記端末は、解析スレッドを呼び出すことで、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って第1レンダリングデータセットを得ること、及び、前記目標文字列に対して第2レンダリング前処理を行い、第2レンダリングデータセットを得ることを実行し、前記端末は、レンダリングスレッドを呼び出すことで、第1レンダリングデータセットに基づいて、レンダリング命令を生成すること、及び、前記第2レンダリングデータセットに基づいてレンダリング命令を生成することを実行することを実行する。
【0124】
本出願の一実施例によれば、
図2及び
図4aに示す方法に係る各ステップは、
図6に示す文字列表示処理装置の各ユニットにより実行されてもよい。例えば、
図2に示すステップS201は、
図6に記載の文字列表示処理装置の受信ユニット601により実行されてもよく、ステップS202及びステップS203は、図に記載の文字列表示処理装置の処理ユニット602により実行されてもよく、また例えば、
図4aに示すステップS401は、
図6に示す文字列表示処理装置の受信ユニット601により実行されてもよく、ステップS402~ステップS4012は、
図6に示す文字列表示処理装置の処理ユニット602により実行されてもよい。
【0125】
本出願の別の実施例によれば、
図6に示す文字列表示処理装置の各ユニットは、1つまたは複数の別のユニットによって、別々に、または完全に組み合わせて構成されてもよく、又は、1つの(いくつかの)ユニットが機能的により小さい複数のユニットに分割されてもよい。このようにして、本出願の技術的効果の実装に影響を及ぼすことなしに、動作が実装され得る。上記ユニットは、論理機能に基づいて分割されている。実際の使用で、1つのユニットの機能は複数のユニットによっても実装されてもよく、複数のユニットの機能が1つのユニットによって実装される。本出願の他の実施例では、文字列表示処理装置は、他のユニットを含んでもよい。実際の使用で、これらの機能は、他のユニットの助けを借りて実装されてもよく、また複数のユニットによって協働して実装されてもよい。
【0126】
本出願の別の実施例によれば、中央処理装置(CPU)、ランダムアクセスメモリ(RAM)、および読出し専用メモリ(ROM)などの処理素子及び記憶素子を含む汎用コンピューティングデバイス(例えばコンピュータ)上で、
図2又は
図4aに示す対応する方法に係る各ステップを実行できるコンピュータプログラム(プログラムコードを含む)を実行することによって、
図6に示す文字列表示処理装置を構築し、本出願の実施例文字列表示処理方法を実現する。前記コンピュータプログラムは、例えばコンピュータの読み取り可能な記憶媒体に記録され得、コンピュータの読み取り可能な記憶媒体により上記コンピューティングデバイスにロードされ、その中で実行される。
【0127】
本出願の実施例では、表示すべき文字列セットを含む文字表示命令を受信すると、表示すべき文字列セット中の目標文字列が所定のタイプの文字を含むか否かを検出し、含まないと、目標文字列に含まれる目標文字列を処理して第1レンダリングデータセットを得、第1レンダリングデータセットに基づいて、表示すべき文字列セットに関するレンダリング命令を生成し、目標文字画像をレンダリングすることを指示し、含むと、目標文字列を1つの全体として処理し、第2レンダリングデータセットを得、第2のレンダリングデータセットに基づいて、表示すべき文字列に関するレンダリング命令を生成し、目標文字列に対応する文字列画像をレンダリングすることを指示する。つまり、所定のタイプの文字を含まない目標文字列に対して、文字を最小単位としてレンダリングし、所定のタイプの文字を含む文字列に対して、目標文字列全体を単位としてレンダリングする。目標文字列に含まれる文字のタイプによって異なるレンダリング処理を行うことを実現し、従来技術ですべての目標文字列に対して統一された処理方法を用いることに比べて、目標文字列の表示をより効果的に行うことができる。
【0128】
上記方法の実施例及び装置の実施例についての説明をベースとして、本出願の実施例は、端末をさらに提供し、
図7は、本出願の実施例による端末の構造模式図である。
図7に示すように、この端末は、プロセッサ701とコンピュータ記憶媒体702とを含んでもよい。
【0129】
コンピュータ記憶媒体702は、端末の記憶装置に記憶されてもよく、前記コンピュータ記憶媒体702は、プログラム命令を含むコンピュータプログラムを記憶するためのものであり、前記プロセッサ701は、前記コンピュータ記憶媒体702に記憶されるプログラム命令を実行するためのものである。プロセッサ701又はCPU(Central Processing Unit、中央処理装置)は、端末のコンピューティングコア及びコントロールコアであり、1つ又は複数の命令を実現し、具体的には、1つ又は複数の命令をロードして実行することにより、対応する方法プロセス又は対応する機能を実現する。一実施例では、前記プロセッサ701は、表示すべき文字列をレンダリングすることを指示するための文字表示命令を受信することと、前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含まない場合、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行い、前記目標文字に対応する目標文字画像を含む第1レンダリングデータセットを得、前記第1レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成し、前記目標文字画像に対して画像レンダリングを行うことを指示することと、前記表示すべき文字列セット中の目標文字列が所定のタイプの文字を含む場合、前記目標文字列に対して第2のレンダリング前処理を行い、前記目標文字列に対応する文字列画像を含む第2レンダリングデータセットを得、前記第2レンダリングデータセットに基づいて、前記表示すべき文字列セットに関するレンダリング命令を生成し、前記文字列画像に対して画像レンダリングを行うことを指示することとを実行する。
【0130】
本出願の実施例は、コンピュータ記憶媒体(Memory)をさらに提供し、前記コンピュータ記憶媒体は、電子機器における、プログラム及びデータを記憶するための記憶機器である。ここでのコンピュータ記憶媒体は、電子機器に内蔵される記憶媒体を含んでもよいし、当然ながら、電子機器がサポートする拡張記憶媒体を含んでもよいことが理解されうる。コンピュータ記憶媒体は、記憶領域を提供し、この記憶領域には、プロセッサ701によりロードされて実行される1つ又は複数の命令が記憶され、これらの命令は、1つ又は複数のコンピュータプログラム(プログラムコードを含む)であってもよい。なお、ここでのコンピュータ記憶媒体は、高速RAMメモリであってもよいし、少なくとも1つの磁気ディスクメモリなどの不揮発性メモリ(non-volatile memory)であってもよいし、任意選択的には、前記プロセッサから離れる少なくともコンピュータ記憶媒体であってもよい。
【0131】
一実施例では、表示すべき文字列セットが前記目標文字列を除くほかの文字列をさらに含み、プロセッサ701は、さらに、前記ほかの文字列が前記所定のタイプの文字を含まない場合、前記レンダリング命令がさらに前記ほかの文字列に含まれる文字に対応する文字画像に対して画像レンダリングを行うことを指示し、前記ほかの文字列が前記所定のタイプの文字を含む場合、前記レンダリング命令がさらに前記ほかの文字列に対応する文字列画像に対して画像レンダリングを行うことを指示する。
【0132】
一実施例では、プロセッサ701は、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って第1レンダリングデータセットを得る際、前記目標文字の文字タイプに応じて、前記ユーザインターフェースに前記目標文字をフローティング表示するための第1表示パラメータを決定する操作と、少なくとも1つの文字に対応する文字画像を含む所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定する操作と、前記第1表示パラメータ及び前記第1レンダリングパラメータに基づいて第1レンダリングデータセットを得る操作と、を実行する。
【0133】
一実施例では、前記第1レンダリングパラメータが前記目標文字に対応する目標文字画像及び前記目標文字画像の位置情報を含み、プロセッサ701は、所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定する際、前記文字レンダリングテクスチャセットには前記目標文字にマッチングする文字画像が含まれると、マッチングする文字画像を前記目標文字に対応する目標文字画像として決定し、前記マッチングする文字画像の前記文字レンダリングテクスチャセットでの位置に基づいて前記目標文字画像の位置情報を決定する操作を実行する。
【0134】
一実施例では、プロセッサ701は、所定の文字レンダリングテクスチャセットに基づいて、前記目標文字に対応する第1レンダリングパラメータを決定する際、前記文字レンダリングテクスチャセットには前記目標文字にマッチングする文字画像が含まれていないと、文字レンダリング画像生成ルールを用いて前記目標文字に対応する目標文字画像を生成し、前記目標文字画像を所定の記憶ルールに従って前記文字レンダリングテクスチャセットに追加し、前記文字レンダリングテクスチャセットを更新する操作と、前記所定の記憶ルールに従って、前記目標文字画像の更新後の文字レンダリングテクスチャセットでの位置情報を、前記目標文字画像の位置情報として決定する操作と、を実行する。
【0135】
一実施例では、プロセッサ701は、前記目標文字の文字タイプに応じて、前記ユーザインターフェースに前記目標文字を表示するための第1表示パラメータを決定する際、前記目標文字の文字タイプに対応するレイアウトルールに従って前記目標文字をレイアウトする操作と、レイアウト後の目標文字及びフローティング表示に対応する構成情報に基づいて前記目標文字に対応する第1表示パラメータを決定する操作と、を実行する。
【0136】
一実施例では、目標文字が第1文字及び第2の文字を含み、前記プロセッサ701は、前記目標文字の文字タイプに対応するレイアウトルールに従って前記目標文字をレイアウトする際、前記第1文字に対応する第1文字タイプと前記第2文字に対応する第2文字タイプが同じであると、前記第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第1文字及び前記第2の文字をレイアウトする操作と、前記第1文字タイプと前記第2文字タイプが異なると、前記第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第1文字をレイアウトし、前記第2文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第2の文字をレイアウトする操作と、を実行する。
【0137】
一実施例では、前記プロセッサ701は、前記第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第1文字をレイアウトし、前記第2文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第2の文字をレイアウトする際、前記第1文字のサイズと前記第2文字のサイズを比較する操作と、前記第1文字のサイズが前記第2文字のサイズよりも大きいと、前記第1文字タイプに対応するレイアウトルールで指示された揃えルールに従って前記第1文字に対してレイアウト処理を行い、レイアウト結果に応じて目標文字列の高さを決定する操作と、目標文字列の高さ及び前記第2の文字タイプに対応するレイアウトルールで指示された揃えルールに従って、前記第2の文字に対してレイアウト処理を行う操作と、を実行する。
【0138】
一実施例では、前記第2のレンダリングパラメータが前記目標文字列に対応する文字列画像及び前記文字列画像の位置情報を含み、前記プロセッサ701は、前記目標文字列に対して第2レンダリング前処理を行い、第2レンダリングデータセットを得る際に、フローティング表示に対応する構成情報に基づいて、前記目標文字列の第2表示パラメータを決定する操作と、文字列画像生成ルールを用いて前記目標文字列に対応する文字列画像を生成する操作と、前記目標文字列に対応する文字列画像を所定の文字レンダリングテクスチャセットに追加して、前記所定の文字レンダリングテクスチャセットを更新し、前記目標文字列に対応する文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報を決定する操作と、前記文字列画像及び文字列画像の更新後の文字レンダリングテクスチャセットでの位置情報に基づいて、第2レンダリングパラメータを決定し、前記第2レンダリングパラメータ及び前記第2表示パラメータに基づいて前記第2のレンダリングデータセットを得る操作と、を実行する。
【0139】
一実施例では、前記端末は、呼び出しスレッド、解析スレッド及びレンダリングスレッドを実行し、前記端末は、呼び出しスレッドを呼び出すことで、文字表示命令を受信すること、及び、前記目標文字列に含まれる目標文字を検出することを実行し、前記端末は、解析スレッドを呼び出すことで、前記目標文字列に含まれる目標文字に対して第1レンダリング前処理を行って第1レンダリングデータセットを得ること、及び、前記目標文字列に対して第2レンダリング前処理を行い、第2レンダリングデータセットを得ることを実行し、前記端末は、レンダリングスレッドを呼び出すことで、第1レンダリングデータセットに基づいて、レンダリング命令を生成すること、及び、前記第2レンダリングデータセットに基づいてレンダリング命令を生成することを実行する。
【0140】
本出願の実施例によれば、コンピュータプログラム製品又はコンピュータプログラムが提供され、このコンピュータプログラム製品又はコンピュータプログラムは、コンピュータの読み取り可能な記憶媒体に記憶されるコンピュータ命令を含む。コンピュータ機器のプロセッサは、コンピュータの読み取り可能な記憶媒体からこのコンピュータ命令を読み取り、このコンピュータ命令を実行することで、このコンピュータ機器に上記各任意選択的な実現形態に係る文字列表示処理方法を実行させる。
【0141】
当業者であれば理解できるように、上記実施例方法を実現する全部又は一部のプロセスは、関連するハードウェアが行うようにコンピュータプログラムにより命令し、前記プログラムは、コンピュータの読み取り可能な記憶媒体に記憶され、このプログラムが実行されると、上記各方法の実施例のプロセスを含む。前述した記憶媒体は、磁気ディスク、光ディスク、読み取り専用メモリ(Read-Only Memory、ROM)又はランダムアクセスメモリ(Random Access Memory、RAM)などであってもよい。
【0142】
以上に開示されるものは、本出願の実施形態の一部に過ぎず、もちろん、本出願の特許範囲を限定するものではない。従って。本出願の特許請求の範囲請求項に基づいて行われた同等変化は、依然として本出願に含まれる範囲に属する。
【符号の説明】
【0143】
101 サーバ
102 端末
103 弾幕ボタン
104 弾幕設定ボタン
105 弾幕入力フレーム
106 決定ボタン
107 弾幕入力フレーム
108 決定ボタン
601 受信ユニット
602 処理ユニット
701 プロセッサ
702 コンピュータ記憶媒体