iw4x-client/src/Components/Modules/Renderer.hpp

43 lines
1.1 KiB
C++
Raw Normal View History

2016-07-31 14:46:22 -04:00
namespace Components
{
class Renderer : public Component
{
public:
typedef void(Callback)();
typedef void(BackendCallback)(IDirect3DDevice9*);
Renderer();
~Renderer();
2016-08-15 10:40:30 -04:00
2016-09-16 05:04:28 -04:00
#if defined(DEBUG) || defined(FORCE_UNIT_TESTS)
2016-08-15 10:40:30 -04:00
const char* GetName() { return "Renderer"; };
#endif
2016-07-31 14:46:22 -04:00
static int Width();
static int Height();
static void Once(Callback* callback);
static void OnFrame(Callback* callback);
static void OnBackendFrame(BackendCallback* callback);
static void OnDeviceRecoveryEnd(Callback* callback);
static void OnDeviceRecoveryBegin(Callback* callback);
2016-07-31 14:46:22 -04:00
private:
static void FrameStub();
static void FrameHandler();
static void BackendFrameStub();
static void BackendFrameHandler();
static wink::signal<wink::slot<Callback>> FrameSignal;
static wink::signal<wink::slot<Callback>> FrameOnceSignal;
static wink::signal<wink::slot<Callback>> EndRecoverDeviceSignal;
static wink::signal<wink::slot<Callback>> BeginRecoverDeviceSignal;
2016-07-31 14:46:22 -04:00
static wink::signal<wink::slot<BackendCallback>> BackendFrameSignal;
static Utils::Hook DrawFrameHook;
};
}