mirror of
https://github.com/rvtr/ntr_bootrom.git
synced 2025-10-31 07:11:11 -04:00
233 lines
6.6 KiB
C
233 lines
6.6 KiB
C
//====================================================================
|
||
// 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
|
||
|