Esempio n. 1
0
EXPORT_C_(int32) GPUopen(void* hWnd)
{
	GPUclose();

	if(!GSUtil::CheckSSE())
	{
		return -1;
	}

#ifdef _WINDOWS

	s_hr = ::CoInitializeEx(NULL, COINIT_MULTITHREADED);

	if(!GSUtil::CheckDirectX())
	{
		return -1;
	}

#endif

	int renderer = theApp.GetConfig("Renderer", 1);
	int threads = theApp.GetConfig("extrathreads", 0);

	switch(renderer)
	{
	default:
	#ifdef _WINDOWS
	case 0: s_gpu = new GPURendererSW(new GSDevice9(), threads); break;
	case 1: s_gpu = new GPURendererSW(new GSDevice11(), threads); break;
	#endif
	case 2: s_gpu = new GPURendererSW(new GSDeviceSDL(), threads); break;
	case 3: s_gpu = new GPURendererSW(new GSDeviceNull(), threads); break;
	//case 4: s_gpu = new GPURendererNull(new GSDeviceNull()); break;
	}

	if(!s_gpu->Create(hWnd))
	{
		GPUclose();

		return -1;
	}

	return 0;
}
Esempio n. 2
0
long CALLBACK ZN_GPUclose()
{
	return GPUclose();
}