forked from eden-emu/eden
		
	gl_state_tracker: Implement dirty flags for fragment color clamp
This commit is contained in:
		
							parent
							
								
									d01d671249
								
							
						
					
					
						commit
						cd63e8d770
					
				
					 3 changed files with 14 additions and 2 deletions
				
			
		|  | @ -1149,8 +1149,14 @@ void RasterizerOpenGL::SyncMultiSampleState() { | |||
| } | ||||
| 
 | ||||
| void RasterizerOpenGL::SyncFragmentColorClampState() { | ||||
|     const auto& regs = system.GPU().Maxwell3D().regs; | ||||
|     glClampColor(GL_CLAMP_FRAGMENT_COLOR, regs.frag_color_clamp ? GL_TRUE : GL_FALSE); | ||||
|     auto& gpu = system.GPU().Maxwell3D(); | ||||
|     auto& flags = gpu.dirty.flags; | ||||
|     if (!flags[Dirty::FragmentClampColor]) { | ||||
|         return; | ||||
|     } | ||||
|     flags[Dirty::FragmentClampColor] = false; | ||||
| 
 | ||||
|     glClampColor(GL_CLAMP_FRAGMENT_COLOR, gpu.regs.frag_color_clamp ? GL_TRUE : GL_FALSE); | ||||
| } | ||||
| 
 | ||||
| void RasterizerOpenGL::SyncBlendState() { | ||||
|  |  | |||
|  | @ -201,6 +201,10 @@ void SetupDirtyLogicOp(Tables& tables) { | |||
|     FillBlock(tables[0], OFF(logic_op), NUM(logic_op), LogicOp); | ||||
| } | ||||
| 
 | ||||
| void SetupDirtyFragmentClampColor(Tables& tables) { | ||||
|     tables[0][OFF(frag_color_clamp)] = FragmentClampColor; | ||||
| } | ||||
| 
 | ||||
| void SetupDirtyMisc(Tables& tables) { | ||||
|     auto& table = tables[0]; | ||||
| 
 | ||||
|  | @ -236,6 +240,7 @@ void StateTracker::Initialize() { | |||
|     SetupDirtyRasterizeEnable(tables); | ||||
|     SetupDirtyFramebufferSRGB(tables); | ||||
|     SetupDirtyLogicOp(tables); | ||||
|     SetupDirtyFragmentClampColor(tables); | ||||
|     SetupDirtyMisc(tables); | ||||
| 
 | ||||
|     auto& store = dirty.on_write_stores; | ||||
|  |  | |||
|  | @ -69,6 +69,7 @@ enum : u8 { | |||
|     RasterizeEnable, | ||||
|     FramebufferSRGB, | ||||
|     LogicOp, | ||||
|     FragmentClampColor, | ||||
| 
 | ||||
|     Last | ||||
| }; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 ReinUsesLisp
						ReinUsesLisp