input manager provides ground of truth on device input choise
This commit is contained in:
@@ -14,6 +14,7 @@
|
||||
// Forward declarations
|
||||
class LowLevelRenderer;
|
||||
class LowLevelGUI;
|
||||
class InputManager;
|
||||
|
||||
/**
|
||||
* @brief Game entry in launcher menu
|
||||
@@ -22,7 +23,7 @@ struct GameEntry {
|
||||
const char* name; // Display name
|
||||
const char* description; // Short description
|
||||
Game* (*factory)(uint16_t width, uint16_t height,
|
||||
LowLevelRenderer* renderer, LowLevelGUI* gui); // Factory function
|
||||
LowLevelRenderer* renderer, LowLevelGUI* gui, InputManager* input_manager); // Factory function
|
||||
};
|
||||
|
||||
/**
|
||||
@@ -42,8 +43,9 @@ public:
|
||||
* @param height Display height in pixels
|
||||
* @param renderer Pointer to low-level rendering interface
|
||||
* @param gui Pointer to GUI drawing primitives
|
||||
* @param input_manager Pointer to input manager for capability queries
|
||||
*/
|
||||
GameLauncher(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui);
|
||||
GameLauncher(uint16_t width, uint16_t height, LowLevelRenderer* renderer, LowLevelGUI* gui, InputManager* input_manager);
|
||||
|
||||
/**
|
||||
* @brief Register a game in the launcher
|
||||
@@ -52,7 +54,7 @@ public:
|
||||
* @param factory Function pointer to create game instance
|
||||
*/
|
||||
void register_game(const char* name, const char* description,
|
||||
Game* (*factory)(uint16_t, uint16_t, LowLevelRenderer*, LowLevelGUI*));
|
||||
Game* (*factory)(uint16_t, uint16_t, LowLevelRenderer*, LowLevelGUI*, InputManager*));
|
||||
|
||||
/**
|
||||
* @brief Draw the launcher menu
|
||||
@@ -88,6 +90,7 @@ private:
|
||||
uint16_t height;
|
||||
LowLevelRenderer* renderer;
|
||||
LowLevelGUI* gui;
|
||||
InputManager* input_manager;
|
||||
|
||||
std::vector<GameEntry> games;
|
||||
int selected_index; // Currently highlighted game
|
||||
|
||||
Reference in New Issue
Block a user