![]() |
GL CHOCO ENGINE
|
VAOモジュールが提供する機能をグラフィックスAPIによって差し替え可能な仮想関数テーブルを提供する More...
#include <stddef.h>#include <stdbool.h>#include <stdint.h>#include "engine/renderer/renderer_backend/renderer_backend_types.h"#include "engine/renderer/renderer_core/renderer_types.h"

Go to the source code of this file.
Data Structures | |
| struct | renderer_vao_vtable |
| VAO機能仮想関数テーブル More... | |
Typedefs | |
| typedef renderer_result_t(* | pfn_vertex_array_create) (renderer_backend_vao_t **vertex_array_) |
| VAO構造体インスタンスのメモリを確保し、初期化(VAOの生成)する | |
| typedef void(* | pfn_vertex_array_destroy) (renderer_backend_vao_t **vertex_array_) |
| VAOを無効化し、VAO構造体インスタンスのメモリを解放する | |
| typedef renderer_result_t(* | pfn_vertex_array_bind) (const renderer_backend_vao_t *vertex_array_, uint32_t *out_vao_id_) |
| VAOのbindを行う | |
| typedef renderer_result_t(* | pfn_vertex_array_unbind) (const renderer_backend_vao_t *vertex_array_) |
| VAOのunbindを行う | |
| typedef renderer_result_t(* | pfn_vertex_array_attribute_set) (const renderer_backend_vao_t *vertex_array_, uint32_t layout_, int32_t size_, renderer_type_t type_, bool normalized_, size_t stride_, size_t offset_) |
| VAOで管理する頂点情報のレイアウト情報を設定する | |
| typedef struct renderer_vao_vtable | renderer_vao_vtable_t |
| VAO機能仮想関数テーブル | |
VAOモジュールが提供する機能をグラフィックスAPIによって差し替え可能な仮想関数テーブルを提供する
| typedef renderer_result_t(* pfn_vertex_array_attribute_set) (const renderer_backend_vao_t *vertex_array_, uint32_t layout_, int32_t size_, renderer_type_t type_, bool normalized_, size_t stride_, size_t offset_) |
VAOで管理する頂点情報のレイアウト情報を設定する
| [in] | vertex_array_ | 設定対象VAO構造体インスタンスへのポインタ |
| layout_ | シェーダープログラム内のどのバッファ変数の設定値かを指定 | |
| size_ | 頂点情報に含まれるデータの数([x, y, z]の3次元座標のみであれば3) | |
| type_ | バッファに格納されているデータの型 renderer_type_t | |
| normalized_ | 与えられた頂点データを正規化するかどうかを指定 | |
| stride_ | 頂点情報1つあたりのサイズを指定(GLfloat型の[x, y, z]であれば、sizeof(GLfloat) x 3を指定) | |
| offset_ | 「この頂点属性の先頭が、現在GL_ARRAY_BUFFERにバインドされているバッファの先頭から何バイト目にあるか」を指定 |
| RENDERER_INVALID_ARGUMENT | vertex_array_ == NULL |
| RENDERER_RUNTIME_ERROR | type_の値が既定値外 |
| RENDERER_SUCCESS | 処理に成功し、正常終了 |
| 上記以外 | グラフィックスAPIごとの実装依存 |
| typedef renderer_result_t(* pfn_vertex_array_bind) (const renderer_backend_vao_t *vertex_array_, uint32_t *out_vao_id_) |
VAOのbindを行う
| [in] | vertex_array_ | bind対象VAO構造体インスタンスへのポインタ |
| [in,out] | out_vao_id_ | bindされたVAO ID格納先 |
| RENDERER_INVALID_ARGUMENT | 以下のいずれか
|
| RENDERER_SUCCESS | bindに成功し、正常終了 |
| 上記以外 | グラフィックスAPIごとの実装依存 |
| typedef renderer_result_t(* pfn_vertex_array_create) (renderer_backend_vao_t **vertex_array_) |
VAO構造体インスタンスのメモリを確保し、初期化(VAOの生成)する
| [in,out] | vertex_array_ | VAO構造体インスタンスへのダブルポインタ |
| RENDERER_INVALID_ARGUMENT | 以下のいずれか
|
| RENDERER_BAD_OPERATION | backend_context_が未初期化 |
| RENDERER_NO_MEMORY | メモリ確保失敗 |
| RENDERER_LIMIT_EXCEEDED | メモリ管理システムのシステム使用可能範囲上限を超過 |
| RENDERER_SUCCESS | 処理に成功し、正常終了 |
| 上記以外 | グラフィックスAPI実装依存 |
| typedef void(* pfn_vertex_array_destroy) (renderer_backend_vao_t **vertex_array_) |
VAOを無効化し、VAO構造体インスタンスのメモリを解放する
| [in,out] | vertex_array_ | 無効化、メモリ開放対象VAO構造体インスタンスへのダブルポインタ |
| typedef renderer_result_t(* pfn_vertex_array_unbind) (const renderer_backend_vao_t *vertex_array_) |
VAOのunbindを行う
| [in] | vertex_array_ | unbind対象VAO構造体インスタンスへのポインタ |
| RENDERER_INVALID_ARGUMENT | vertex_array_ == NULL |
| RENDERER_SUCCESS | unbindに成功し、正常終了 |
| 上記以外 | グラフィックスAPIごとの実装依存 |
| typedef struct renderer_vao_vtable renderer_vao_vtable_t |
VAO機能仮想関数テーブル