ntr_bootrom/trunk/IrisMainp/include/IrisGX_Primitive.h

233 lines
6.6 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//====================================================================
// IrisGX_Primitive.h
// IRISプリミティブ描画ディスプレイリスト生成
//
// Copyright (C) 2003 NINTENDO Co.,Ltd.
//====================================================================
#ifndef _IRIS_GX_PRIMITIVE_H
#define _IRIS_GX_PRIMITIVE_H
#include <IrisTarget.h>
#include <IrisTypes.h>
#ifdef __cplusplus
extern "C" {
#endif
// プリミティブ描画関数用テクスチャパラメータ構造体
typedef struct {
TexImageParamCnt img; // テクスチャイメージコマンドのパラメータ
TexPlttBaseCnt plt; // テクスチャパレットベースコマンドのパラメータ
TexCoord texStart; // テクスチャスタート座標
TexCoord texEnd; // テクスチャエンド座標
} PrimTexParam;
//----------------------------------------------------------------------
// 立方体の描画
//
//・立方体を描画します。
//
//・引数:
// width 一辺の長さ
// texParamp テクスチャパラメータへのポインタ
// フォーマットはPrimTexParam構造体を参照して下さい
//
//・戻り値: なし
//
//※I/Oレジスタ経由でジオメトリFIFOへ直接書き込むため、
// ディスプレイリスト転送中には実行しないで下さい。
//----------------------------------------------------------------------
void GX_DrawCube(u16 width, const u32 (* texParamp)[4]);
//----------------------------------------------------------------------
// 直方体の描画
//
//・直方体を描画します。
// texParamp テクスチャパラメータへのポインタ
// フォーマットはPrimTexParam構造体を参照して下さい
//
//・引数:
// width 幅
// height 高さ
// depth 奥行き
//
//・戻り値: なし
//
//※I/Oレジスタ経由でジオメトリFIFOへ直接書き込むため、
// ディスプレイリスト転送中には実行しないで下さい。
//----------------------------------------------------------------------
void GX_DrawBox(u16 width, u16 height, u16 depth, const u32 (* texParamp)[4]);
//----------------------------------------------------------------------
// 球の描画
//
//・球を描画します。
//
//・引数:
// radius 半径
// numMajor 緯度(latitude)の分割数
// numMinor 経度(longitude)の分割数
// texParamp テクスチャパラメータへのポインタ
// フォーマットはPrimTexParam構造体を参照して下さい
//
//・戻り値: なし
//
//※I/Oレジスタ経由でジオメトリFIFOへ直接書き込むため、
// ディスプレイリスト転送中には実行しないで下さい。
//----------------------------------------------------------------------
void GX_DrawSphere(s16 radius, s16 numMajor, s16 numMinor, const u32 (* texParamp)[4]);
//----------------------------------------------------------------------
// 正二十面体を再帰的に分割した球の描画
//
//・正二十面体を再帰的に分割した球を描画します。
//
//・引数:
// radius 半径
// numLevel 細分のレベル数
//
//・戻り値: なし
//
//※I/Oレジスタ経由でジオメトリFIFOへ直接書き込むため、
// ディスプレイリスト転送中には実行しないで下さい。
//----------------------------------------------------------------------
void GX_DrawSphereHedron(s16 radius, s16 numLevel);
//----------------------------------------------------------------------
// 円柱の描画
//
//・円柱を描画します。
//
//・引数:
// radius 半径
// height 高さ
// numEdges 円周の分割数
// texParamp テクスチャパラメータへのポインタ
// フォーマットはPrimTexParam構造体を参照して下さい
//
//・戻り値: なし
//
//※I/Oレジスタ経由でジオメトリFIFOへ直接書き込むため、
// ディスプレイリスト転送中には実行しないで下さい。
//----------------------------------------------------------------------
void GX_DrawCylinder(s16 radius, u16 height, s16 numEdges, const u32 (* texParamp)[4]);
//----------------------------------------------------------------------
// 円錐の描画
//
//・円錐を描画します。
//
//・引数:
// radius 底面の半径
// height 高さ
// numEdges 円周の分割数
// texParamp テクスチャパラメータへのポインタ
// フォーマットはPrimTexParam構造体を参照して下さい
//
//・戻り値: なし
//
//※I/Oレジスタ経由でジオメトリFIFOへ直接書き込むため、
// ディスプレイリスト転送中には実行しないで下さい。
//----------------------------------------------------------------------
void GX_DrawCone(s16 radius, u16 height, s16 numEdges, const u32 (* texParamp)[4]);
//----------------------------------------------------------------------
// トーラス(円環)の描画
//
//・トーラス(円環)を描画します。
//
//・引数:
// size トーラスの中心から回転される円の中心までの距離
// rc sizeと回転される円の半径の比率
// numc 回転される円の分割数
// numt 軸回転による円の分割数
// texParamp テクスチャパラメータへのポインタ
// フォーマットはPrimTexParam構造体を参照して下さい
//
//・戻り値:なし
//
//※I/Oレジスタ経由でジオメトリFIFOへ直接書き込むため、
// ディスプレイリスト転送中には実行しないで下さい。
//----------------------------------------------------------------------
void GX_DrawTorus(s16 size, s16 rc, s16 numc, s16 numt, const u32 (* texParamp)[4]);
//----------------------------------------------------------------------
// 正八面体の描画
//
//・正八面体を描画します。
//
//・引数:
// radius 半径
//
//・戻り値:なし
//
//※I/Oレジスタ経由でジオメトリFIFOへ直接書き込むため、
// ディスプレイリスト転送中には実行しないで下さい。
//----------------------------------------------------------------------
void GX_Draw8Hedron(s16 radius);
//----------------------------------------------------------------------
// 正十二面体の描画
//
//・正十二面体を描画します。
//
//・引数:
// radius 半径
//
//・戻り値:なし
//
//※I/Oレジスタ経由でジオメトリFIFOへ直接書き込むため、
// ディスプレイリスト転送中には実行しないで下さい。
//----------------------------------------------------------------------
void GX_Draw12Hedron(s16 radius);
//----------------------------------------------------------------------
// 正二十面体の描画
//
//・正二十面体を描画します。
//
//・引数:
// radius 半径
//
//・戻り値:なし
//
//※I/Oレジスタ経由でジオメトリFIFOへ直接書き込むため、
// ディスプレイリスト転送中には実行しないで下さい。
//----------------------------------------------------------------------
void GX_Draw20Hedron(s16 radius);
#ifdef __cplusplus
}
#endif
#endif // _IRIS_GX_PRIMITIVE_H