diff --git a/lib/native/windows-64/jawtrenderer.dll b/lib/native/windows-64/jawtrenderer.dll index 3ed9fba3a..79f2f7abe 100755 Binary files a/lib/native/windows-64/jawtrenderer.dll and b/lib/native/windows-64/jawtrenderer.dll differ diff --git a/lib/native/windows/jawtrenderer.dll b/lib/native/windows/jawtrenderer.dll index dc488057c..77150dec1 100644 Binary files a/lib/native/windows/jawtrenderer.dll and b/lib/native/windows/jawtrenderer.dll differ diff --git a/src/native/jawtrenderer/JAWTRenderer_Windows.cpp b/src/native/jawtrenderer/JAWTRenderer_Windows.cpp index 3b3633dca..68fd81c6b 100644 --- a/src/native/jawtrenderer/JAWTRenderer_Windows.cpp +++ b/src/native/jawtrenderer/JAWTRenderer_Windows.cpp @@ -36,17 +36,22 @@ void JAWTRenderer_close if(blitter->surface) { delete blitter->surface; + blitter->surface = NULL; } if(blitter->device) { delete blitter->device; + blitter->device = NULL; } if(blitter->d3d) { delete blitter->d3d; + blitter->d3d = NULL; } + + delete blitter; } jlong JAWTRenderer_open(JNIEnv *jniEnv, jclass clazz, jobject component) diff --git a/src/native/jawtrenderer/windows/d3d_device.cpp b/src/native/jawtrenderer/windows/d3d_device.cpp index d22c55ba9..16c7c4225 100644 --- a/src/native/jawtrenderer/windows/d3d_device.cpp +++ b/src/native/jawtrenderer/windows/d3d_device.cpp @@ -70,15 +70,15 @@ D3DDevice::D3DDevice(HWND hwnd, LPDIRECT3D9 d3d, size_t width, size_t height, D3DDevice::~D3DDevice() { - if(m_device) + if(m_backSurface) { - m_device->Release(); - m_device = NULL; + m_backSurface->Release(); } - if(m_backSurface) + if(m_device) { - m_backSurface->Release(); + m_device->Release(); + m_device = NULL; } } @@ -185,7 +185,7 @@ void D3DDevice::render(D3DSurface* surface) /* copy content on surface */ m_device->UpdateSurface(surfacePointer, NULL, m_backSurface, NULL); - /* finish scence and cleanup */ + /* finish scene and cleanup */ m_device->EndScene(); m_backSurface->Release(); m_backSurface = NULL;