Code: Select all
public void CreateDevice(Form mainForm)
{
if(device != null)
{
device.Dispose();
device = null;
}
PresentParameters presentParams = new PresentParameters();
presentParams.AutoDepthStencilFormat = DepthFormat.D16;
presentParams.Windowed = true;
presentParams.SwapEffect = SwapEffect.Discard;
presentParams.PresentationInterval = PresentInterval.Immediate;
presentParams.EnableAutoDepthStencil = true;
device = new Device(0, DeviceType.Hardware, mainWindow, CreateFlags.SoftwareVertexProcessing, presentParams);
device.DeviceLost += new EventHandler(OnDeviceLost);
device.DeviceReset += new EventHandler(OnDeviceReset);
ready = true;
}
D3D에서 lost & Reset이 필요한 시점은 사용자가 바탕화면의 비트수를 바꿨을 경우등 뭔가 시스템에 변화를 주었을 때 일어나는 것 아닌가요? Resize할 때 저 이벤트가 발생하니 좀 황당하네요;;
Reset시에는 Device에서 생성된 리소스를 전부 재할당 해주는데;; 리사이즈 할 때마다 재할당되면;;;
답변 부탁드립니다.