Springhead
An open source physics engine for virtual reality, haptics and motion generation.
構造体 GRDeviceGLIf

OpenGLのレンダラー基本クラス

#include <SprGRRender.h>

GRDeviceGLIfに対する継承グラフ

Public メソッド

 SPR_IFDEF (GRDeviceGL)
 
bool CheckGLVersion (int major, int minor)
 OpenGLのバージョンをチェック
 
int GetGLMajorVersion ()
 OpenGLのバージョンを取得
 
int GetGLMinorVersion ()
 
void SetGLVersion (int major, int minor)
 OpenGLのバージョンを設定 あえて古いバージョンのAPIに限定したい場合に使用.
 
- Public メソッド inherited from GRDeviceIf
 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)
 頂点ブレンディングを有効/無効にする
 
GRShaderIfCreateShader (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)
 
ObjectIfGetObjectIf ()
 
const ObjectIfGetObjectIf () 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
 子オブジェクトの数
 
ObjectIfGetChildObject (size_t pos)
 子オブジェクトの取得
 
const ObjectIfGetChildObject (size_t pos) const
 
bool AddChildObject (ObjectIf *o)
 子オブジェクトの追加.複数のオブジェクトの子オブジェクトとして追加してよい. 例えば,GRFrameはツリーを作るが,全ノードがGRSceneの子でもある.
 
bool DelChildObject (ObjectIf *o)
 子オブジェクトの削除
 
void Clear ()
 すべての子オブジェクトの削除と、プロパティのクリア
 
ObjectIfCreateObject (const IfInfo *info, const void *desc)
 オブジェクトを作成し,AddChildObject()を呼ぶ.
 
template<class T >
ObjectIfCreateObject (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
}
 

この構造体の説明は次のファイルから生成されました: