2016-01-04 14:58:00 -05:00
|
|
|
#include "STDInclude.hpp"
|
2015-12-23 10:56:02 -05:00
|
|
|
|
|
|
|
namespace Components
|
|
|
|
{
|
|
|
|
Utils::Hook Renderer::DrawFrameHook;
|
|
|
|
std::vector<Renderer::Callback> Renderer::FrameCallbacks;
|
|
|
|
|
|
|
|
void __declspec(naked) Renderer::FrameHook()
|
|
|
|
{
|
|
|
|
__asm
|
|
|
|
{
|
|
|
|
call Renderer::FrameHandler
|
|
|
|
jmp Renderer::DrawFrameHook.Original
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void Renderer::FrameHandler()
|
|
|
|
{
|
|
|
|
for (auto callback : Renderer::FrameCallbacks)
|
|
|
|
{
|
|
|
|
callback();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
void Renderer::OnFrame(Renderer::Callback callback)
|
|
|
|
{
|
|
|
|
Renderer::FrameCallbacks.push_back(callback);
|
|
|
|
}
|
|
|
|
|
2016-01-12 17:42:05 -05:00
|
|
|
int Renderer::Width()
|
|
|
|
{
|
|
|
|
return Utils::Hook::Get<int>(0x66E1C68);
|
|
|
|
}
|
|
|
|
|
|
|
|
int Renderer::Height()
|
|
|
|
{
|
|
|
|
return Utils::Hook::Get<int>(0x66E1C6C);
|
|
|
|
}
|
|
|
|
|
2015-12-23 10:56:02 -05:00
|
|
|
Renderer::Renderer()
|
|
|
|
{
|
|
|
|
// Frame hook
|
|
|
|
Renderer::DrawFrameHook.Initialize(0x5ACB99, Renderer::FrameHook, HOOK_CALL)->Install();
|
|
|
|
}
|
|
|
|
|
|
|
|
Renderer::~Renderer()
|
|
|
|
{
|
|
|
|
Renderer::DrawFrameHook.Uninstall();
|
|
|
|
Renderer::FrameCallbacks.clear();
|
|
|
|
}
|
|
|
|
}
|