Example #1
0
File: gfx.c Project: Voka/lpp-3ds
void gfxExit(void)
{
	if (screenFree == NULL) return;

	// Exit event handler
	gspExitEventHandler();

	// Free framebuffers
	screenFree(gfxTopRightFramebuffers[1]);
	screenFree(gfxTopRightFramebuffers[0]);
	screenFree(gfxBottomFramebuffers[1]);
	screenFree(gfxBottomFramebuffers[0]);
	screenFree(gfxTopLeftFramebuffers[1]);
	screenFree(gfxTopLeftFramebuffers[0]);

	//unmap GSP shared mem
	svcUnmapMemoryBlock(gspSharedMemHandle, (u32)gfxSharedMemory);

	GSPGPU_UnregisterInterruptRelayQueue();

	svcCloseHandle(gspSharedMemHandle);
	if(gfxSharedMemory != NULL)
	{
		mappableFree(gfxSharedMemory);
		gfxSharedMemory = NULL;
	}

	svcCloseHandle(gspEvent);

	GSPGPU_ReleaseRight();

	gspExit();

	screenFree = NULL;
}
Example #2
0
void gfxExit()
{
	// Exit event handler
	gspExitEventHandler();

	// Free framebuffers
	linearFree(gfxTopRightFramebuffers[1]);
	linearFree(gfxTopRightFramebuffers[0]);
	linearFree(gfxBottomFramebuffers[1]);
	linearFree(gfxBottomFramebuffers[0]);
	linearFree(gfxTopLeftFramebuffers[1]);
	linearFree(gfxTopLeftFramebuffers[0]);

	//unmap GSP shared mem
	svcUnmapMemoryBlock(gspSharedMemHandle, 0x10002000);

	GSPGPU_UnregisterInterruptRelayQueue(NULL);

	svcCloseHandle(gspSharedMemHandle);
	svcCloseHandle(gspEvent);

	GSPGPU_ReleaseRight(NULL);

	gspExit();
}
Example #3
0
D3DSDevice::~D3DSDevice()
{
    if (nullptr==dealloc)
        return; // should not happen!

    gspExitEventHandler();

    dealloc( m_FBBottom[0] );
    dealloc( m_FBBottom[1] );
    dealloc( m_FBTop[0] );
    dealloc( m_FBTop[1] );
    if (m_b3DEnabled)
    {
        dealloc( m_FBTop[2] );
        dealloc( m_FBTop[3] );
    }

    svcUnmapMemoryBlock( m_hGSPSharedMemory, 
                         (u32)m_pSharedMemory );

    GSPGPU_UnregisterInterruptRelayQueue();

    svcCloseHandle( m_hGSPSharedMemory );
    if (nullptr!=m_pSharedMemory)
    {
        mappableFree( m_pSharedMemory );
        m_pSharedMemory = nullptr;
    }

    svcCloseHandle( m_hGSPEvent );

    GSPGPU_ReleaseRight();

    gspExit();

    dealloc = nullptr;
}