mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-11-04 07:01:04 +01:00 
			
		
		
		
	Backends: DirectX9: explicitely setting up more graphics states to increase compatibility with unusual non-default states. (#4063)
Added D3DRS_FILLMODE, D3DRS_ZWRITEENABLE, D3DRS_RANGEFOGENABLE, D3DRS_SPECULARENABLE, D3DRS_STENCILENABLE, D3DRS_CLIPPING. Reordered some to match order in DX9 headers.
This commit is contained in:
		@@ -11,6 +11,7 @@
 | 
			
		||||
 | 
			
		||||
// CHANGELOG
 | 
			
		||||
// (minor and older changes stripped away, please see git history for details)
 | 
			
		||||
//  2021-04-23: DirectX9: Explicitly setting up more graphics states to increase compatibility with unusual non-default states.
 | 
			
		||||
//  2021-03-18: DirectX9: Calling IDirect3DStateBlock9::Capture() after CreateStateBlock() as a workaround for state restoring issues (see #3857).
 | 
			
		||||
//  2021-03-03: DirectX9: Added support for IMGUI_USE_BGRA_PACKED_COLOR in user's imconfig file.
 | 
			
		||||
//  2021-02-18: DirectX9: Change blending equation to preserve alpha in output buffer.
 | 
			
		||||
@@ -66,11 +67,13 @@ static void ImGui_ImplDX9_SetupRenderState(ImDrawData* draw_data)
 | 
			
		||||
    // Setup render state: fixed-pipeline, alpha-blending, no face culling, no depth testing, shade mode (for gradient)
 | 
			
		||||
    g_pd3dDevice->SetPixelShader(NULL);
 | 
			
		||||
    g_pd3dDevice->SetVertexShader(NULL);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_FILLMODE, D3DFILL_SOLID);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_ZWRITEENABLE, FALSE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_CULLMODE, D3DCULL_NONE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_ZENABLE, FALSE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_ALPHATESTENABLE, FALSE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_BLENDOP, D3DBLENDOP_ADD);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
 | 
			
		||||
@@ -78,8 +81,12 @@ static void ImGui_ImplDX9_SetupRenderState(ImDrawData* draw_data)
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_SRCBLENDALPHA, D3DBLEND_ONE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_DESTBLENDALPHA, D3DBLEND_INVSRCALPHA);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_SCISSORTESTENABLE, TRUE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_SHADEMODE, D3DSHADE_GOURAUD);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_FOGENABLE, FALSE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_RANGEFOGENABLE, FALSE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_SPECULARENABLE, FALSE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_STENCILENABLE, FALSE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_CLIPPING, TRUE);
 | 
			
		||||
    g_pd3dDevice->SetRenderState(D3DRS_LIGHTING, FALSE);
 | 
			
		||||
    g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_MODULATE);
 | 
			
		||||
    g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
 | 
			
		||||
    g_pd3dDevice->SetTextureStageState(0, D3DTSS_COLORARG2, D3DTA_DIFFUSE);
 | 
			
		||||
 
 | 
			
		||||
@@ -68,6 +68,8 @@ Other Changes:
 | 
			
		||||
- Backends: OSX: Fix keys remaining stuck when CMD-tabbing to a different application. (#3832) [@rokups]
 | 
			
		||||
- Backends: DirectX9: calling IDirect3DStateBlock9::Capture() after CreateStateBlock() which appears to
 | 
			
		||||
  workaround/fix state restoring issues. Unknown exactly why so, but bit of a cargo-cult fix. (#3857)
 | 
			
		||||
- Backends: DirectX9: explicitly setting up more graphics states to increase compatibility with unusual
 | 
			
		||||
  non-default states. (#4063)
 | 
			
		||||
- Backends: DirectX10, DirectX11: fixed a crash when backing/restoring state if nothing is bound when
 | 
			
		||||
  entering the rendering function. (#4045) [@Nemirtingas]
 | 
			
		||||
- Backends: Vulkan: Fix mapped memory Vulkan validation error when buffer sizes are not multiple of
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user