Springhead
An open source physics engine for virtual reality, haptics and motion generation.
|
グラフィックスレンダラーのデバイスクラス.OpenGLやDirectXのラッパ
#include <SprGRRender.h>
Public メソッド | |
SPR_IFDEF (GRDevice) | |
void | Init () |
初期化 | |
void | Print (std::ostream &os) const |
デバッグ用の状態レポート | |
Public メソッド inherited from GRRenderBaseIf | |
SPR_IFDEF (GRRenderBase) | |
void | SetViewport (Vec2f pos, Vec2f sz) |
ビューポートの設定 | |
Vec2f | GetViewportPos () |
ビューポートの基点座標の取得 | |
Vec2f | GetViewportSize () |
ビューポートのサイズの取得 | |
void | ClearBuffer (bool color=true, bool depth=true) |
バッファクリア [詳細] | |
void | SwapBuffers () |
バッファの入れ替え(表示) | |
void | GetClearColor (Vec4f &color) |
背景色の取得 | |
void | SetClearColor (const Vec4f &color) |
背景色の設定 | |
void | BeginScene () |
レンダリングの開始前に呼ぶ関数 | |
void | EndScene () |
レンダリングの終了後に呼ぶ関数 | |
void | SetViewMatrix (const Affinef &afv) |
カレントの視点行列をafvで置き換える | |
void | GetViewMatrix (Affinef &afv) |
カレントの視点行列を取得する | |
void | SetProjectionMatrix (const Affinef &afp) |
カレントの投影行列をafpで置き換える | |
void | GetProjectionMatrix (Affinef &afp) |
カレントの投影行列を取得する | |
void | PushProjectionMatrix () |
void | PopProjectionMatrix () |
void | SetModelMatrix (const Affinef &afw) |
カレントのモデル行列をafwで置き換える | |
void | GetModelMatrix (Affinef &afw) |
カレントのモデル行列を取得する | |
void | MultModelMatrix (const Affinef &afw) |
カレントのモデル行列に対してafwを掛ける | |
void | PushModelMatrix () |
カレントのモデル行列をモデル行列スタックへ保存する | |
void | PopModelMatrix () |
モデル行列スタックから取り出し、カレントのモデル行列とする | |
void | ClearBlendMatrix () |
ブレンド変換行列の全要素を削除する | |
void | SetBlendMatrix (const Affinef &afb, unsigned int id=0) |
ブレンド変換行列を設定する | |
void | SetVertexFormat (const GRVertexElement *e) |
頂点フォーマットの指定 | |
void | DrawDirect (GRRenderBaseIf::TPrimitiveType ty, void *vtx, size_t count, size_t stride=0) |
頂点シェーダーの指定 API化候補.引数など要検討 2006.6.7 hase [詳細] | |
void | DrawIndexed (GRRenderBaseIf::TPrimitiveType ty, GLuint *idx, void *vtx, size_t count, size_t stride=0) |
頂点とインデックスを指定してプリミティブを描画 | |
void | DrawArrays (GRRenderBaseIf::TPrimitiveType ty, GRVertexArray *arrays, size_t count) |
頂点の成分ごとの配列を指定して,プリミティブを描画 | |
void | DrawArrays (GRRenderBaseIf::TPrimitiveType ty, size_t *idx, GRVertexArray *arrays, size_t count) |
インデックスと頂点の成分ごとの配列を指定して,プリミティブを描画 | |
void | DrawPoint (Vec3f p) |
点を描画 | |
void | DrawLine (Vec3f p0, Vec3f p1) |
線分を描画 | |
void | DrawSpline (Vec3f p0, Vec3f v0, Vec3f p1, Vec3f v1, int ndiv=12) |
スプライン曲線を描画 [詳細] | |
void | DrawArrow (Vec3f p0, Vec3f p1, float rbar, float rhead, float lhead, int slice, bool solid) |
矢印を描画 | |
void | DrawBox (float sx, float sy, float sz, bool solid=true) |
直方体を描画 | |
void | DrawSphere (float radius, int slices, int stacks, bool solid=true) |
球体を描画 | |
void | DrawEllipsoid (Vec3f radius, int slices, int stacks, bool solid=true) |
楕円体を描画 | |
void | DrawCone (float radius, float height, int slice, bool solid=true) |
円錐の描画 | |
void | DrawCylinder (float radius, float height, int slice, bool solid=true, bool cap=true) |
円筒の描画 | |
void | DrawDisk (float radius, int slice, bool solid=true) |
円板の描画 | |
void | DrawCapsule (float radius, float height, int slice=20, bool solid=true) |
カプセルの描画 | |
void | DrawRoundCone (float rbottom, float rtop, float height, int slice=20, bool solid=true) |
球円錐の描画 | |
void | DrawGrid (float size, int slice, float lineWidth=1.0f) |
グリッドを描画 [詳細] | |
void | DrawCurve (const Curve3f &curve) |
曲線を描画 [詳細] | |
int | StartList () |
ディスプレイリストの作成(記録開始) | |
void | EndList () |
ディスプレイリストの終了(記録終了) | |
void | DrawList (int i) |
ディスプレイリストの描画 | |
void | ReleaseList (int i) |
ディスプレイリストの解放 | |
void | SetFont (const GRFont &font) |
フォントの設定(Windows限定) [詳細] | |
void | DrawFont (Vec2f pos, const std::string str) |
2次元テキストの描画 | |
void | DrawFont (Vec3f pos, const std::string str) |
3次元テキストの描画 [詳細] | |
void | SetMaterial (const GRMaterialDesc &mat) |
描画マテリアルの設定(デスクリプタ版) | |
void | SetMaterial (const GRMaterialIf *mat) |
描画マテリアルの設定(オブジェクト版) | |
void | SetMaterial (int matname) |
描画マテリアルの設定(予約マテリアルの名前で指定) | |
void | SetMaterial (int matname, float alpha) |
描画マテリアルの設定(予約マテリアルの名前とアルファ値で指定) | |
void | SetPointSize (float sz, bool smooth=false) |
描画する点の大きさの設定 [詳細] | |
void | SetLineWidth (float w, bool smooth=false) |
描画する線の太さの設定 [詳細] | |
void | PushLight (const GRLightDesc &light) |
光源スタックをPush | |
void | PushLight (const GRLightIf *light) |
void | PopLight () |
光源スタックをPop | |
int | NLights () |
設定されている光源の数 | |
void | SetDepthWrite (bool b) |
デプスバッファへの書き込みを許可/禁止する | |
void | SetDepthTest (bool b) |
デプステストを有効/無効にする | |
void | SetDepthFunc (GRRenderBaseIf::TDepthFunc f) |
デプスバッファ法に用いる判定条件を指定する | |
void | SetAlphaTest (bool b) |
アルファブレンディングを有効/無効にする | |
void | SetAlphaMode (GRRenderBaseIf::TBlendFunc src, GRRenderBaseIf::TBlendFunc dest) |
アルファブレンディングのモード設定(SRCの混合係数, DEST混合係数) | |
void | SetLighting (bool l) |
シェーディングON(glMaterial) or OFF(glColor) | |
void | SetTexture2D (bool b) |
テクスチャマッピングを有効/無効にする | |
void | SetTexture3D (bool b) |
unsigned int | LoadTexture (const std::string filename) |
テクスチャのロード(戻り値:テクスチャID) | |
void | SetTextureImage (const std::string id, int components, int xsize, int ysize, int format, const char *tb) |
テクスチャ画像の設定 | |
void | SetBlending (bool b) |
頂点ブレンディングを有効/無効にする | |
GRShaderIf * | CreateShader (const GRShaderDesc &sd) |
シェーダの初期化 [詳細] | |
bool | SetShader (GRShaderIf *shader) |
シェーダを選択 [詳細] | |
void | SetShadowLight (const GRShadowLightDesc &sld) |
シェーダオブジェクトの作成、GRDeviceGL::shaderへの登録(あらかじめShaderFile名を登録しておく必要がある) [詳細] | |
void | EnterShadowMapGeneration () |
シャドウマップ生成パスへ切り替え | |
void | LeaveShadowMapGeneration () |
シャドウマップ生成パスから通常パスへ戻る | |
Public メソッド inherited from ObjectIf | |
SPR_IFDEF (Object) | |
ObjectIf * | GetObjectIf () |
const ObjectIf * | GetObjectIf () const |
int | DelRef () const |
void | Print (std::ostream &os) const |
デバッグ用の表示。子オブジェクトを含む。 | |
void | PrintShort (std::ostream &os) const |
デバッグ用の表示。子オブジェクトを含まない。 | |
void | DumpObjectR (std::ostream &os, int level=0) const |
オブジェクトツリーのメモリイメージをダンプ | |
int | AddRef () |
int | RefCount () |
size_t | NChildObject () const |
子オブジェクトの数 | |
ObjectIf * | GetChildObject (size_t pos) |
子オブジェクトの取得 | |
const ObjectIf * | GetChildObject (size_t pos) const |
bool | AddChildObject (ObjectIf *o) |
子オブジェクトの追加.複数のオブジェクトの子オブジェクトとして追加してよい. 例えば,GRFrameはツリーを作るが,全ノードがGRSceneの子でもある. | |
bool | DelChildObject (ObjectIf *o) |
子オブジェクトの削除 | |
void | Clear () |
すべての子オブジェクトの削除と、プロパティのクリア | |
ObjectIf * | CreateObject (const IfInfo *info, const void *desc) |
オブジェクトを作成し,AddChildObject()を呼ぶ. | |
template<class T > | |
ObjectIf * | CreateObject (const T &desc) |
CreateObjectを呼び出すユーティリティ関数 | |
const void * | GetDescAddress () const |
デスクリプタの読み出し(参照版 NULLを返すこともある). これが実装されていなくても,ObjectIf::GetDesc()は実装されていることが多い. | |
bool | GetDesc (void *desc) const |
デスクリプタの読み出し(コピー版 失敗する(falseを返す)こともある). ObjectIf::GetDescAddress() が実装されていなくても,こちらは実装されていることがある. | |
void | SetDesc (const void *desc) |
デスクリプタの設定 | |
size_t | GetDescSize () const |
デスクリプタのサイズ | |
const void * | GetStateAddress () const |
状態の読み出し(参照版 NULLを返すこともある). これが実装されていなくても,ObjectIf::GetState()は実装されていることがある. | |
bool | GetState (void *state) const |
状態の読み出し(コピー版 失敗する(falseを返す)こともある). ObjectIf::GetStateAddress() が実装されていなくても,こちらは実装されていることがある. | |
void | SetState (const void *state) |
状態の設定 | |
bool | WriteStateR (std::ostream &fout) |
状態の書き出し | |
bool | WriteState (std::string fileName) |
bool | ReadStateR (std::istream &fin) |
状態の読み込み | |
bool | ReadState (std::string fileName) |
size_t | GetStateSize () const |
状態のサイズ | |
void | ConstructState (void *m) const |
メモリブロックを状態型に初期化 | |
void | DestructState (void *m) const |
状態型をメモリブロックに戻す | |
Additional Inherited Members | |
Public 型 inherited from GRRenderBaseIf | |
enum | TPrimitiveType { POINTS, LINES, LINE_STRIP, LINE_LOOP, TRIANGLES, TRIANGLE_STRIP, TRIANGLE_FAN, QUADS } |
プリミティブの種類 | |
enum | TMaterialSample { INDIANRED, LIGHTCORAL, SALMON, DARKSALMON, LIGHTSALMON, RED, CRIMSON, FIREBRICK, DARKRED, PINK, LIGHTPINK, HOTPINK, DEEPPINK, MEDIUMVIOLETRED, PALEVIOLETRED, CORAL, TOMATO, ORANGERED, DARKORANGE, ORANGE, GOLD, YELLOW, LIGHTYELLOW, LEMONCHIFFON, LIGHTGOLDENRODYELLOW, PAPAYAWHIP, MOCCASIN, PEACHPUFF, PALEGOLDENROD, KHAKI, DARKKHAKI, LAVENDER, THISTLE, PLUM, VIOLET, ORCHILD, FUCHSIA, MAGENTA, MEDIUMORCHILD, MEDIUMPURPLE, BLUEVIOLET, DARKVIOLET, DARKORCHILD, DARKMAGENTA, PURPLE, INDIGO, DARKSLATEBLUE, SLATEBLUE, MEDIUMSLATEBLUE, GREENYELLOW, CHARTREUSE, LAWNGREEN, LIME, LIMEGREEN, PALEGREEN, LIGHTGREEN, MEDIUMSPRINGGREEN, SPRINGGREEN, MEDIUMSEAGREEN, SEAGREEN, FORESTGREEN, GREEN, DARKGREEN, YELLOWGREEN, OLIVEDRAB, OLIVE, DARKOLIVEGREEN, MEDIUMAQUAMARINE, DARKSEAGREEN, LIGHTSEAGREEN, DARKCYAN, TEAL, AQUA, CYAN, LIGHTCYAN, PALETURQUOISE, AQUAMARINE, TURQUOISE, MEDIUMTURQUOISE, DARKTURQUOISE, CADETBLUE, STEELBLUE, LIGHTSTEELBLUE, POWDERBLUE, LIGHTBLUE, SKYBLUE, LIGHTSKYBLUE, DEEPSKYBLUE, DODGERBLUE, CORNFLOWERBLUE, ROYALBLUE, BLUE, MEDIUMBLUE, DARKBLUE, NAVY, MIDNIGHTBLUE, CORNSILK, BLANCHEDALMOND, BISQUE, NAVAJOWHITE, WHEAT, BURLYWOOD, TAN, ROSYBROWN, SANDYBROWN, GOLDENROD, DARKGOLDENROD, PERU, CHOCOLATE, SADDLEBROWN, SIENNA, BROWN, MAROON, WHITE, SNOW, HONEYDEW, MINTCREAM, AZURE, ALICEBLUE, GHOSTWHITE, WHITESMOKE, SEASHELL, BEIGE, OLDLACE, FLORALWHITE, IVORY, ANTIQUEWHITE, LINEN, LAVENDERBLUSH, MISTYROSE, GAINSBORO, LIGHTGRAY, SILVER, DARKGRAY, GRAY, DIMGRAY, LIGHTSLATEGRAY, SLATEGRAY, DARKSLATEGRAY, BLACK, MATERIAL_SAMPLE_END } |
レンダラーで用意してある材質 | |
enum | TDepthFunc { DF_NEVER, DF_LESS, DF_EQUAL, DF_LEQUAL, DF_GREATER, DF_NOTEQUAL, DF_GEQUAL, DF_ALWAYS } |
enum | TBlendFunc { BF_ZERO, BF_ONE, BF_SRCCOLOR, BF_INVSRCCOLOR, BF_SRCALPHA, BF_INVSRCALPHA, BF_DESTALPHA, BF_INVDESTALPHA, BF_DESTCOLOR, BF_INVDESTCOLOR, BF_SRCALPHASAT, BF_BOTHINVSRCALPHA, BF_BLENDFACTOR, BF_INVBLENDFACTOR } |