![]() |
GL CHOCO ENGINE
|
プラットフォームシステムのInterface構造体を提供する More...
#include <stddef.h>#include "engine/core/event/keyboard_event.h"#include "engine/core/event/mouse_event.h"#include "engine/core/event/window_event.h"#include "engine/platform/platform_core/platform_types.h"

Go to the source code of this file.
Data Structures | |
| struct | platform_vtable |
| プラットフォーム処理共通化のための仮想関数テーブル(実装はsrc/platform/以下のソースファイルに格納) More... | |
Typedefs | |
| typedef struct platform_backend | platform_backend_t |
| typedef void(* | pfn_platform_backend_preinit) (size_t *memory_requirement_, size_t *alignment_requirement_) |
| 内部状態管理構造体のメモリ要件、メモリアライメント要件を取得する | |
| typedef platform_result_t(* | pfn_platform_backend_init) (platform_backend_t *platform_backend_) |
| 内部状態管理構造体インスタンスメンバの初期化を行う | |
| typedef void(* | pfn_platform_backend_destroy) (platform_backend_t *platform_backend_) |
| 内部状態管理構造体インスタンスが保有するリソースを破棄する | |
| typedef platform_result_t(* | pfn_platform_backend_window_create) (platform_backend_t *platform_backend_, const char *window_label_, int window_width_, int window_height_, int *framebuffer_width_, int *framebuffer_height_) |
| ウィンドウを生成する | |
| typedef platform_result_t(* | pfn_platform_backend_pump_messages) (platform_backend_t *platform_backend_, void(*window_event_callback) (const window_event_t *event_), void(*keyboard_event_callback) (const keyboard_event_t *event_), void(*mouse_event_callback) (const mouse_event_t *event_)) |
| ウィンドウ、キーボード、マウスイベントを吸い上げ、各イベントをコールバック内で処理する | |
| typedef platform_result_t(* | pfn_platform_backend_swap_buffers) (platform_backend_t *platform_backend_) |
| 描画サーフェイスのフロント/バックバッファをスワップする | |
| typedef struct platform_vtable | platform_vtable_t |
| プラットフォーム処理共通化のための仮想関数テーブル(実装はsrc/platform/以下のソースファイルに格納) | |
プラットフォームシステムのInterface構造体を提供する
ウィンドウ制御、マウス、キーボード処理を全プラットフォーム(x11, win32, glfw...)で共通化するために、 Strategyパターンを使用する。このレイヤーではStrategyパターンのinterfaceに相当する構造体インスタンスを提供する
| typedef void(* pfn_platform_backend_destroy) (platform_backend_t *platform_backend_) |
内部状態管理構造体インスタンスが保有するリソースを破棄する
| [in,out] | platform_backend_ | 破棄対象構造体インスタンス |
| typedef platform_result_t(* pfn_platform_backend_init) (platform_backend_t *platform_backend_) |
内部状態管理構造体インスタンスメンバの初期化を行う
| [in,out] | platform_backend_ | 初期化対象構造体インスタンス |
| PLATFORM_INVALID_ARGUMENT | platform_backend_ == NULL |
| PLATFORM_SUCCESS | 初期化に成功し、正常終了 |
| その他 | 各プラットフォーム実装依存 |
| typedef void(* pfn_platform_backend_preinit) (size_t *memory_requirement_, size_t *alignment_requirement_) |
内部状態管理構造体のメモリ要件、メモリアライメント要件を取得する
| [out] | memory_requirement_ | platform_backend_tのメモリ要件 |
| [out] | alignment_requirement_ | platform_backend_tのアライメント要件 |
| typedef platform_result_t(* pfn_platform_backend_pump_messages) (platform_backend_t *platform_backend_, void(*window_event_callback)(const window_event_t *event_), void(*keyboard_event_callback)(const keyboard_event_t *event_), void(*mouse_event_callback)(const mouse_event_t *event_)) |
ウィンドウ、キーボード、マウスイベントを吸い上げ、各イベントをコールバック内で処理する
| [in,out] | platform_backend_ | 処理対象プラットフォーム内部状態管理オブジェクト |
| [in] | window_event_callback | ウィンドウイベント発生時用コールバック関数 |
| [in] | keyboard_event_callback | キーボードイベント発生時用コールバック関数 |
| [in] | mouse_event_callback | マウスイベント発生時用コールバック関数 |
| PLATFORM_INVALID_ARGUMENT | 以下のいずれか
|
| PLATFORM_SUCCESS | イベントの吸い上げおよびイベントコールバックの処理に成功し、正常終了 |
| PLATFORM_WINDOW_CLOSE | ウィンドウクローズイベントが発生 |
| その他 | プラットフォーム実装依存 |
| typedef platform_result_t(* pfn_platform_backend_swap_buffers) (platform_backend_t *platform_backend_) |
描画サーフェイスのフロント/バックバッファをスワップする
| [in,out] | platform_backend_ | 処理対象プラットフォーム内部状態管理オブジェクト |
| PLATFORM_INVALID_ARGUMENT | platform_backend_がNULL |
| その他 | プラットフォーム実装依存 |
| typedef platform_result_t(* pfn_platform_backend_window_create) (platform_backend_t *platform_backend_, const char *window_label_, int window_width_, int window_height_, int *framebuffer_width_, int *framebuffer_height_) |
ウィンドウを生成する
| [in,out] | platform_backend_ | 内部状態管理構造体インスタンス |
| [in] | window_label_ | ウィンドウ名称文字列 |
| [in] | window_width_ | 初期状態のウィンドウ幅 |
| [in] | window_height_ | 初期状態のウィンドウ高さ |
| [out] | framebuffer_width_ | フレームバッファサイズ(幅)格納先ポインタ |
| [out] | framebuffer_height_ | フレームバッファサイズ(高さ)格納先ポインタ |
| PLATFORM_INVALID_ARGUMENT | 以下のいずれか
|
| PLATFORM_NO_MEMORY | メモリ確保失敗 |
| PLATFORM_SUCCESS | ウィンドウの生成に成功し、正常終了 |
| その他 | プラットフォーム実装依存 |
| typedef struct platform_backend platform_backend_t |
< プラットフォーム内部状態管理構造体前方宣言(実体は各ソースファイルで定義)