Original Post
I'm designing the input subsystem and i want to show you both approaches i thought. Active: event driven system that propagates mouse/keyboard events to system that wants some input. -Pros: you can set a priority queue of callbacks which receive the input, so systems that are gathering for input don't overlap others (a menu has more priority over the rest). -Cons: there are so much function calls, one for every event (key pressed, released or still-pressed). Passive: saving old and actual keyboard/mouse state and waiting for other modules to querying it. -Pros: the input system doesn't have to bother about who wants input, it only has to answer questions like 'is left arrow pressed?'. -Cons: you have to control the way other systems have priority over a system that wants input (menu-ingame example). Sure there will be more pros-cons to each system, but that's what i want you to discuss here :) EDIT: it's an input module for a game engine.