}
freesprite(&d3d->mask2textureled_power_dim);
freesprite(&d3d->blanksprite);
- struct d3doverlay *ov = d3d->extoverlays;
- while (ov) {
- struct d3doverlay *next = ov->next;
- freesprite(&ov->s);
- xfree(ov);
- ov = next;
- }
- d3d->extoverlays = NULL;
for (int i = 0; i < MAX_SHADERS; i++) {
freeshaderdata(&d3d->shaders[i]);
}
return ret;
}
+static void FreeOverlays(struct d3d11struct *d3d)
+{
+ struct d3doverlay *ov = d3d->extoverlays;
+ while (ov) {
+ struct d3doverlay *next = ov->next;
+ freesprite(&ov->s);
+ xfree(ov);
+ ov = next;
+ }
+ d3d->extoverlays = NULL;
+}
+
static void freed3d(struct d3d11struct *d3d)
{
write_log(_T("D3D11 freed3d start\n"));
FreeTextures(d3d);
FreeTexture2D(&d3d->sltexture, &d3d->sltexturerv);
FreeShaderTex(&d3d->lpPostTempTexture);
+ FreeOverlays(d3d);
for (int i = 0; i < MAX_SHADERS; i++) {
struct shaderdata11 *s = &d3d->shaders[i];
if (d3d->m_swapChain && (!d3d->invalidmode || d3d->fsmode > 0)) {
d3d->m_swapChain->SetFullscreenState(FALSE, NULL);
FreeTextures(d3d);
+ FreeOverlays(d3d);
}
d3d->fsmode = 0;
d3d->invalidmode = true;