9.1. イミディエート関数一覧
イミディエート関数の一覧を以下に示します。
クラス | 関数 |
---|---|
nn::gd::CombinerStage
|
SetTextureCombinerUnitConstantColor()
|
nn::gd::FogStage
|
UploadFogLookUpTableFloat()
|
UploadFogLookUpTableNative()
|
|
UploadGasLookUpTableFloat()
|
|
UploadGasLookUpTableNative()
|
|
nn::gd::LightingStage
|
SetGlobalColorAmbient()
|
UploadLookUpTableFloat()
|
|
UploadLookUpTableNative()
|
|
nn::gd::Light
|
SetColorAmbient()
|
SetColorDiffuse()
|
|
SetColorSpecular0()
|
|
SetColorSpecular1()
|
|
SetPosition()
|
|
SetDirection()
|
|
SetSpotDirection()
|
|
SetLightType()
|
|
SetDistanceAttenuationScaleBias()
|
|
EnableTwoSideDiffuse()
|
|
EnableGeomFactor0()
|
|
EnableGeomFactor1()
|
|
UploadLookUpTableFloat()
|
|
UploadLookUpTableNative()
|
|
nn::gd::ProceduralTextureStage
|
UploadLookUpTableRgbMapFloat()
|
UploadLookUpTableRgbMapNative()
|
|
UploadLookUpTableAlphaMapFloat()
|
|
UploadLookUpTableAlphaMapNative()
|
|
UploadLookUpTableNoiseMapFloat()
|
|
UploadLookUpTableNoiseMapNative()
|
|
UploadLookUpTableColorMapFloat()
|
|
UploadLookUpTableColorMapNative()
|
|
nn::gd::ShaderStage
|
SetFloatConstantBuffer()
|
nn::gd::OutputStage
|
SetPenumbraScaleBias()
|
nn::gd::RasterizerStage
|
SetCulling()
|
SetViewport()
|
|
EnableClippingPlane()
|
|
SetClippingPlane()
|
|
EnableScissor()
|
|
SetScissor()
|
9.2. 関数内で確保されるメモリのサイズ
下記のサイズは GX ライブラリの初期化時に指定したアロケータへ渡される値です。
備考欄に記載されていない限り、用途は NN_GX_MEM_SYSTEM
、メモリの指定は NN_GX_MEM_FCRAM
です。
関数 | サイズ | 備考 |
---|---|---|
System::Initialize()
|
24 Byte | 管理情報 |
12 Byte | 管理情報 | |
12 Byte | 管理情報 | |
28 Byte | 管理情報 | |
12 Byte | 管理情報 | |
1536 Byte | 管理情報 | |
52 Byte | 管理情報 | |
28 Byte | 管理情報 | |
12 Byte | 管理情報 | |
1664 Byte | 管理情報 | |
56 Byte | 管理情報 | |
28 Byte | 管理情報 | |
12 Byte | 管理情報 | |
2688 Byte | 管理情報 | |
28 Byte | 管理情報 | |
12 Byte | 管理情報 | |
14208 Byte | 管理情報 | |
616 Byte | 管理情報 | |
28 Byte | 管理情報 | |
12 Byte | 管理情報 | |
1664 Byte | 管理情報 | |
60 Byte | 管理情報 | |
28 Byte | 管理情報 | |
12 Byte | 管理情報 | |
640 Byte | 管理情報 | |
328 Byte | 3D コマンド (ジオメトリシェーダを使用する設定に共用プロセッサを変更する) |
|
328 Byte | 3D コマンド (ジオメトリシェーダを使用しない設定に共用プロセッサを変更する) |
|
Resource::CreateTexture2DResource()
|
52 Byte | 管理情報 |
16 Byte | 管理情報 | |
データによる | 初期データあり、かつコピーなしでなければ、指定されたメモリに NN_GX_MEM_TEXTURE で確保されます |
|
Resource::
|
64 Byte | 管理情報 |
Resource::Helper::
|
データによる | 変換で使用する一時的なバッファのため、関数の終了時に解放されます |
Resource::Helper::ConvertCompressed
|
データによる | 変換で使用する一時的なバッファのため、関数の終了時に解放されます |
Resource::CreateRenderTarget()
|
48 Byte | 管理情報 |
Resource::CreateDepthStecilTarget()
|
52 Byte | 管理情報 |
TextureStage::CreateTexture2D()
|
64 Byte | 管理情報 |
TextureStage::CreateTextureCube()
|
112 Byte | 管理情報 |
ShaderStage::CreateShaderBinary()
|
28 Byte | 管理情報 |
データによる | 管理情報 | |
データによる | 管理情報 | |
データによる | 管理情報 | |
データによる | 管理情報 | |
データによる | 管理情報 | |
データによる | 管理情報 | |
20 Byte | 管理情報 | |
データによる | 3D コマンド | |
データによる | 3D コマンド | |
ShaderStage::CreateShader()
|
20 Byte | 管理情報 |
データによる | 3D コマンド | |
ShaderStage::CreateShaderPipeline()
|
148 Byte | 管理情報 |
データによる | 3D コマンド | |
データによる | ユニフォーム設定の値 (頂点シェーダ) |
|
データによる | ユニフォーム設定の値 (ジオメトリシェーダ) |
|
VertexInputStage::CreateInputLayout()
|
204 Byte | 管理情報 |
データによる |
InputElementDescription クラス(複数の場合あり) |
|
Resource::CreateVertexBufferResource()
|
24 Byte | 管理情報 |
データによる | 初期データあり、かつコピーなしでなければ、指定されたメモリに NN_GX_MEM_VERTEXBUFFER で確保されます |
|
CombinerStage::
|
616 Byte | 管理情報 |
92 Byte | 管理情報 | |
TextureStage::CreateSamplerState()
|
60 Byte | 管理情報 |
OutputStage::CreateDepthStecilState()
|
52 Byte | 管理情報 |
OutputStage::CreateBlendState()
|
56 Byte | 管理情報 |
System::StartRecordingPackets()
|
36 Byte | 管理情報 |
System::StopRecordingPackets()
|
データによる | 記録された 3D コマンド |
9.3. デバッグサポート機能
GD ライブラリでは、描画時の動作を変更するフィルタ機能など、デバッグに便利な機能を用意しています。
9.3.1. フィルタ機能
フィルタ機能では、フラグ指定で描画時の動作を変更することができます。フィルタ機能は、Debug または Development でコンパイルされたときのみ有効です。
static nnResult nn::gd::System::Debug::SetFilter( u32 filterFlag, u32 drawStartIndex, s32 drawCount);
drawStartIndex
で指定された回数の描画が行われたあと、drawCount
で指定された回数の描画が行われるまでフィルタ機能が有効になります。
filterFlag
には、以下のフラグから有効にする機能を論理和で指定します。
フラグ | 説明 |
---|---|
FILTER_NONE
|
単独で指定するとフィルタ機能が無効になります。 |
FILTER_TEXTURE_8X8
|
描画に使用するテクスチャすべてを固定の 8x8 テクスチャに変更します。 |
FILTER_TEXTURE_CUSTOM
|
描画に使用するテクスチャすべてを SetCustomTexture() で指定されたカスタムテクスチャに変更します。カスタムテクスチャが指定されていない場合は、固定の 8×8 テクスチャが使用されます。 |
FILTER_SAMPLER_STATE_FILTER_
|
テクスチャの縮小時フィルタの設定を、強制的に GL_NEAREST_MIPMAP_NEAREST に設定します。 |
FILTER_SAMPLER_STATE_FILTER_
|
テクスチャの縮小時フィルタの設定を、強制的に GL_LINEAR_MIPMAP_NEAREST に設定します。 |
FILTER_VIEWPORT_1X1
|
ビューポートの設定を 1×1 に変更します。 |
FILTER_SIMPLE_COMBINER
|
コンバイナの設定を変更し、すべてのピクセルが緑で出力されます。 |
FILTER_DISABLE_BLENDING
|
ブレンディングを無効にします。 |
FILTER_DISABLE_DEPTH_STENCIL_TEST
|
デプス、ステンシルのテストを無効にします。 |
FILTER_DISABLE_ALPHA_TEST
|
アルファテストを無効にします。 |
FILTER_LIGHTING_STAGE_1_LIGHT_MAX
|
ライティングの最大数を 1 に変更します。複数のライトを有効に設定した場合は、最初に有効となったライトのみが有効になります。 |
FILTER_LIGHTING_STAGE_SIMPLE_
|
ライティングに必要なサイクル数が最小となるレイヤコンフィグレーションに変更します。 |
FILTER_DISABLE_DRAW
|
描画を無効にします。 |
FILTER_VISUALIZE_OVERDRAW
|
描画されたピクセルが徐々に白くなるようにブレンディングの設定を追加し、重複して描画が行われるピクセルを視覚化します。デプス、ステンシルを無効にするフィルタを併用することで、テストで破棄される(破棄されない)ピクセルを確認することができます。 |
FILTER_DISABLE_CULLING
|
カリングを無効に変更します。 |
FILTER_ENABLE_CULLING_CLOCKWISE
|
カリングを時計回りに変更します。 |
FILTER_ENABLE_CULLING_COUNTERCLOCKWISE
|
カリングを反時計回りに変更します。 |
9.3.2. ミップマップレベルの視覚化
nn::gd::System::Debug::ColorizeMipmaps()
は、テクスチャリソースを指定されたミップマップレベルごとに指定された色で塗りつぶし、ミップマップレベルの視覚化をサポートします。
static nnResult nn::gd::System::Debug::ColorizeMipmaps( nn::gd::Texture2DResource* texture2DResource, s32 minMipLevelIndex, s32 maxMipLevelIndex, u8 colors[][4]);
minMipLevelIndex
と maxMipLevelIndex
にはそれぞれ、塗りつぶすミップマップレベルの最小のインデックスと最大のインデックスを指定します。どちらの引数も、-1 が指定された場合は texture2DResource
で指定されたテクスチャリソースが持つ、最大のミップマップレベルを指定したことになります。
colors
で指定されたカラーは、minMipLevelIndex
で指定されたミップマップレベルから順に使用されます。つまり、minMipLevelIndex
に指定されたミップマップレベルのテクスチャが colors[0]
に指定されたカラーで塗りつぶされ、次のミップマップレベルのテクスチャは colors[1]
に指定されたカラーで塗りつぶされます。
colors
に NULL
を指定したときは、デフォルトのカラー配列を使用して塗りつぶします。デフォルトのカラー配列については、関数リファレンスを参照してください。