Esempio n. 1
0
void RSManager::initResources() {
	SDLOG(0, "RenderstateManager resource initialization started\n");
	unsigned rw = Settings::get().getRenderWidth(), rh = Settings::get().getRenderHeight();
	unsigned dofRes = Settings::get().getDOFOverrideResolution();
	if(Settings::get().getAAQuality()) {
		if(Settings::get().getAAType() == "SMAA") {
			smaa = new SMAA(d3ddev, rw, rh, (SMAA::Preset)(Settings::get().getAAQuality()-1));
		} else {
			fxaa = new FXAA(d3ddev, rw, rh, (FXAA::Quality)(Settings::get().getAAQuality()-1));
		}
	}
	if(Settings::get().getSsaoStrength()) ssao = new SSAO(d3ddev, rw, rh, Settings::get().getSsaoStrength()-1, 
		(Settings::get().getSsaoType() == "VSSAO") ? SSAO::VSSAO : ((Settings::get().getSsaoType() == "HBAO") ? SSAO::HBAO : SSAO::SCAO) );
	if(Settings::get().getDOFBlurAmount()) gauss = new GAUSS(d3ddev, dofRes*16/9, dofRes);
	if(Settings::get().getEnableHudMod()) hud = new HUD(d3ddev, rw, rh);
	d3ddev->CreateTexture(rw, rh, 1, D3DUSAGE_RENDERTARGET, D3DFMT_A8R8G8B8, D3DPOOL_DEFAULT, &rgbaBuffer1Tex, NULL);
	rgbaBuffer1Tex->GetSurfaceLevel(0, &rgbaBuffer1Surf);
	d3ddev->CreateDepthStencilSurface(rw, rh, D3DFMT_D24S8, D3DMULTISAMPLE_NONE, 0, false, &depthStencilSurf, NULL);
	d3ddev->CreateStateBlock(D3DSBT_ALL, &prevStateBlock);
    if (Settings::get().getEnableTextureOverride() && Settings::get().getEnableTexturePrefetch())
        prefetchTextures();

	if (Settings::get().getEnableShaderDumping()) {
		createDirectory(PIXEL_SHADER_DUMP_DIR);
		createDirectory(VERTEX_SHADER_DUMP_DIR);
	}

	SDLOG(0, "RenderstateManager resource initialization completed\n");
	if(!inited) startDetour(); // on first init only
	inited = true;
}
Esempio n. 2
0
LRESULT CALLBACK GeDoSaToHook(_In_ int nCode, _In_ WPARAM wParam, _In_ LPARAM lParam) {
	if(g_active) {
		SDLOG(18, "GeDoSaToHook called\n");
		if(Settings::get().getDelayDetouring() && !g_detoured) {
			g_detoured = true;
			startDetour();
		}
	}
	return CallNextHookEx(NULL, nCode, wParam, lParam); 
}
Esempio n. 3
0
extern "C" __declspec(dllexport) void GeDoSaToInit() {
	// read install location from registry
	getInstallDirectory();
	OutputDebugString("GeDoSaTo: Got install dir");

	// loaded in GeDoSaToTool, stay in memory
	if(getExeFileName() == "GeDoSaToTool") {
		OutputDebugString("GeDoSaTo: Tool mode");
		g_tool = true;
		return;
	}

	g_active = true;
	OutputDebugString(format("GeDoSaTo: Active on %s", getExeFileName()).c_str());

	// initialize log
	string logFn = format("logs\\%s_%s.log", getExeFileName().c_str(), getTimeString().c_str());
	std::replace(logFn.begin(), logFn.end(), ':', '-');
	std::replace(logFn.begin(), logFn.end(), ' ', '_');
	logFn = getInstalledFileName(logFn);
	fopen_s(&g_oFile, logFn.c_str(), "w");
	if(!g_oFile) OutputDebugString(format("GeDoSaTo: Error opening log fn %s", logFn.c_str()).c_str());
	else OutputDebugString(format("GeDoSaTo: Opening log fn %s, handle: %p", logFn.c_str(), g_oFile).c_str());
	OutputDebugString("GeDoSaTo: Log file initialized, let that take over");

	// startup
	SDLOG(-1, "===== %s =====\n", getTimeString().c_str());
	SDLOG(-1, "===== start "INTERCEPTOR_NAME" %s = fn: %s\n", GeDoSaToVersion(), getExeFileName().c_str());
	SDLOG(-1, "===== installation directory: %s\n", getInstallDirectory().c_str());

	// load settings
	Settings::get().load();
	Settings::get().report();

	KeyActions::get().load();
	KeyActions::get().report();

	// early steam dll loading
	if(!Settings::get().getPreventSteamOverlay() && Settings::get().getLoadSteamOverlayEarly()) {
		SDLOG(2, "Attempting to pre-load Steam overlay dll.\n");
		LoadLibrary("gameoverlayrenderer.dll");
	}

	// early d3d loading
	if(Settings::get().getLoadD3DEarly()) {
		SDLOG(2, "Early d3d loading.\n");
		auto dllname = getSystemDllName("d3d9.dll");
		LoadLibrary(dllname.c_str());
	}

	// detour
	startDetour();
}
Esempio n. 4
0
BOOL WINAPI DllMain(HMODULE hDll, DWORD dwReason, PVOID pvReserved) {	
	if(dwReason == DLL_PROCESS_ATTACH) {
		OutputDebugString("GeDoSaTo: startup");

		// read install location from registry
		getInstallDirectory();
		OutputDebugString("GeDoSaTo: Got install dir");

		// don't attach to processes on the blacklist / not on the whitelist
		if(getUseBlacklist() ? onList(getExeFileName(), "blacklist.txt") : !onList(getExeFileName(), "whitelist.txt")) {
			OutputDebugString("GeDoSaTo: blacklisted / not whitelisted");
			if(getExeFileName() == "GeDoSaToTool") return true;
			return true;
		}
		g_active = true;
		OutputDebugString("GeDoSaTo: Active");
		
		// initialize log
		string logFn = format("logs\\%s_%s.log", getExeFileName().c_str(), getTimeString().c_str());
		std::replace(logFn.begin(), logFn.end(), ':', '-');
		std::replace(logFn.begin(), logFn.end(), ' ', '_');
		logFn = getInstalledFileName(logFn);
		fopen_s(&g_oFile, logFn.c_str(), "w");
		if(!g_oFile) OutputDebugString(format("GeDoSaTo: Error opening log fn %s", logFn.c_str()).c_str());
		else OutputDebugString(format("GeDoSaTo: Opening log fn %s, handle: %p", logFn.c_str(), g_oFile).c_str());
		OutputDebugString("GeDoSaTo: Log file initialized, let that take over");

		// startup
		sdlogtime(-1);
		SDLOG(-1, "===== start "INTERCEPTOR_NAME" %s = fn: %s\n", GeDoSaToVersion(), getExeFileName().c_str());
		SDLOG(-1, "===== installation directory: %s\n", getInstallDirectory().c_str());

		// load settings
		Settings::get().load();
		Settings::get().report();
		 
		KeyActions::get().load();
		KeyActions::get().report();

		if(!Settings::get().getPreventSteamOverlay() && Settings::get().getLoadSteamOverlayEarly()) {
			SDLOG(2, "Attempting to pre-load Steam overlay dll.\n");
			LoadLibrary("gameoverlayrenderer.dll");
		}

		if(Settings::get().getLoadD3DEarly()) {
			SDLOG(2, "Early d3d loading.\n");
			auto dllname = getSystemDllName("d3d9.dll");
			LoadLibrary(dllname.c_str());
		}

		// detour
		startDetour();
		return true;
	}
	if(dwReason == DLL_PROCESS_DETACH && g_active) {
		Settings::get().shutdown();
		endDetour();
		SDLOG(-1, "===== end =\n");
		fclose(g_oFile);
	}
    return false;
}