gDPPipelineMode.htm
2.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<HTML>
<HEAD>
<TITLE>HTML 文書</TITLE>
<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0j">
</HEAD>
<BODY>
<P>
<A NAME="_Toc366998310"></A><B><FONT FACE="Arial">gDPPipelineMode(3P)
<BR>
</FONT></B>
<P>
<B>関数名
<BR>
</FONT></B>
<P>
gDPPipelineMode, gsDPPipelineMode
<P>
→ スパンキャッシュのパイプラインモード干渉性をイネーブル/ディスエーブルにします。
<BR>
<P>
<B>構文 <BR>
</B>
<P>
#include "gbi.h"
<P>
gDPPipelineMode(Gfx *gdl, unsigned int mode)
<P>
gsDPPipelineMode(unsigned int mode)
<P>
<P>
<B>パラメータ <BR>
</B>
<P>
<B>*gdl</B>
グラフィックディスプレイポインタ。</FONT>
<P>
<B>mode</B>
RDP パイプラインモード。G_PM_1PRIMITIVE
またはG_PM_NPRIMITIVE。
<BR>
</FONT>
<P>
<B>説明 <BR>
</B>
<P>
RDPはレンダリングを効率的に行うために内部スパンキャッシュを持っています。このスパンキャッシュの使用方法には、以下の2通りがあります。
<BR>
</FONT>
<P>
G_PM_1PRIMITIVEは"キャッシュ・コヒーレント"モードを選択します。同じスクリーン中で2スパンが連続して後ろにレンダリングされる場合、2番目のスパンはフレームピクセルソースとして最初のスパンのフレームバッファ値(まだフレームバッファには書き込んでいません。)を使用します。これは最初のスパンのリード/モディファイ/ライトオペレーションに依存する2番目のスパンのリード/モディファイ/ライトオペレーションを正確にするために重要です。このモードを実行するにはいくつかのピクセルを使用します。
<BR>
</FONT>
<P>
G_PM_NPRIMITIVEパイプラインモードは干渉性を持たずにスパンキャッシュを使用しますが、より高いパフォーマンスを持っています。通常はアンチエイリアス・レンダリングモードで、アーティファクトを参照できます。これは2つの隣接した三角形が同じピクセルの2バックスパンを共有するからです。もし2番目のスパンが最初のスパン処理の終了を待たなければ、フレームバッファから間違った値を読み込んでしまいます。(その時点でフレームバッファに不正な値を書き込みます。)
<BR>
</FONT>
<P>
プリミティブ間のアイドルサイクルのために、G_PM_1PRIMITIVE
モードは、フィルレートのロスを生じることがあります。ロスが最大の時で、1.5M
ピクセル/秒となります。実際のゲームでは、プリミティブを重ねることによって起こる視覚の偏差がそれほどひどくないので、G_PM_NPRIMITIVEモードを使用することでより性能をアップできます。
<BR>
</FONT>
<P>
<B>参照 <BR>
</B>
<P>
<a href="../gdp/gDPSetRenderMode.htm">gDPSetRenderMode(3P)</a>
<BR>
<BR>
</FONT>
</BODY>
</HTML>