trunk/src/osd/windows/drawd3d.c
| r22966 | r22967 | |
| 794 | 794 | if (m_device != NULL) |
| 795 | 795 | { |
| 796 | 796 | if (device_test_cooperative()) |
| 797 | { |
| 797 | 798 | return 1; |
| 799 | } |
| 798 | 800 | } |
| 799 | 801 | |
| 800 | 802 | // in window mode, we need to track the window size |
| r22966 | r22967 | |
| 1001 | 1003 | video_config.waitvsync || video_config.syncrefresh) ? |
| 1002 | 1004 | D3DPRESENT_INTERVAL_ONE : D3DPRESENT_INTERVAL_IMMEDIATE; |
| 1003 | 1005 | |
| 1004 | | printf("m_device is %08x%08x\n", (UINT32)((UINT64)m_device >> 32), (UINT32)((UINT64)m_device & 0x00000000ffffffff)); |
| 1005 | 1006 | // create the D3D device |
| 1006 | | result = (*d3dintf->d3d.create_device)(d3dintf, m_adapter, D3DDEVTYPE_HAL, win_window_list->hwnd, |
| 1007 | result = (*d3dintf->d3d.create_device)(d3dintf, m_adapter, D3DDEVTYPE_HAL, m_window->hwnd, |
| 1007 | 1008 | D3DCREATE_SOFTWARE_VERTEXPROCESSING | D3DCREATE_FPU_PRESERVE, &m_presentation, &m_device); |
| 1008 | 1009 | if (result != D3D_OK) |
| 1009 | 1010 | { |
| r22966 | r22967 | |
| 1013 | 1014 | { |
| 1014 | 1015 | m_create_error_count++; |
| 1015 | 1016 | if (m_create_error_count < 10) |
| 1017 | { |
| 1016 | 1018 | return 0; |
| 1019 | } |
| 1017 | 1020 | } |
| 1018 | 1021 | |
| 1019 | 1022 | // fatal error if we just can't do it |
| r22966 | r22967 | |
| 1154 | 1157 | |
| 1155 | 1158 | // free the device itself |
| 1156 | 1159 | if (m_device != NULL) |
| 1160 | { |
| 1161 | (*d3dintf->device.reset)(m_device, &m_presentation); |
| 1157 | 1162 | (*d3dintf->device.release)(m_device); |
| 1163 | } |
| 1158 | 1164 | m_device = NULL; |
| 1159 | 1165 | } |
| 1160 | 1166 | |