GUI: add option for late clear
This commit is contained in:
		
							parent
							
								
									32c300ff41
								
							
						
					
					
						commit
						402c520276
					
				|  | @ -5803,7 +5803,9 @@ bool FurnaceGUI::loop() { | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     rend->clear(uiColors[GUI_COLOR_BACKGROUND]); |     if (!settings.renderClearPos) { | ||||||
|  |       rend->clear(uiColors[GUI_COLOR_BACKGROUND]); | ||||||
|  |     } | ||||||
|     renderTimeBegin=SDL_GetPerformanceCounter(); |     renderTimeBegin=SDL_GetPerformanceCounter(); | ||||||
|     ImGui::Render(); |     ImGui::Render(); | ||||||
|     renderTimeEnd=SDL_GetPerformanceCounter(); |     renderTimeEnd=SDL_GetPerformanceCounter(); | ||||||
|  | @ -5821,6 +5823,9 @@ bool FurnaceGUI::loop() { | ||||||
|       } |       } | ||||||
|     } |     } | ||||||
|     rend->present(); |     rend->present(); | ||||||
|  |     if (settings.renderClearPos) { | ||||||
|  |       rend->clear(uiColors[GUI_COLOR_BACKGROUND]); | ||||||
|  |     } | ||||||
| 
 | 
 | ||||||
|     layoutTimeDelta=layoutTimeEnd-layoutTimeBegin; |     layoutTimeDelta=layoutTimeEnd-layoutTimeBegin; | ||||||
|     renderTimeDelta=renderTimeEnd-renderTimeBegin; |     renderTimeDelta=renderTimeEnd-renderTimeBegin; | ||||||
|  |  | ||||||
|  | @ -1495,6 +1495,7 @@ class FurnaceGUI { | ||||||
|     int orderButtonPos; |     int orderButtonPos; | ||||||
|     int compress; |     int compress; | ||||||
|     int newPatternFormat; |     int newPatternFormat; | ||||||
|  |     int renderClearPos; | ||||||
|     unsigned int maxUndoSteps; |     unsigned int maxUndoSteps; | ||||||
|     String mainFontPath; |     String mainFontPath; | ||||||
|     String patFontPath; |     String patFontPath; | ||||||
|  | @ -1643,6 +1644,7 @@ class FurnaceGUI { | ||||||
|       orderButtonPos(2), |       orderButtonPos(2), | ||||||
|       compress(1), |       compress(1), | ||||||
|       newPatternFormat(1), |       newPatternFormat(1), | ||||||
|  |       renderClearPos(0), | ||||||
|       maxUndoSteps(100), |       maxUndoSteps(100), | ||||||
|       mainFontPath(""), |       mainFontPath(""), | ||||||
|       patFontPath(""), |       patFontPath(""), | ||||||
|  |  | ||||||
|  | @ -626,6 +626,14 @@ void FurnaceGUI::drawSettings() { | ||||||
|             ImGui::SetTooltip("saves power by lowering the frame rate to 2fps when idle.\nmay cause issues under Mesa drivers!"); |             ImGui::SetTooltip("saves power by lowering the frame rate to 2fps when idle.\nmay cause issues under Mesa drivers!"); | ||||||
|           } |           } | ||||||
| 
 | 
 | ||||||
|  |           bool renderClearPosB=settings.renderClearPos; | ||||||
|  |           if (ImGui::Checkbox("Late render clear",&renderClearPosB)) { | ||||||
|  |             settings.renderClearPos=renderClearPosB; | ||||||
|  |           } | ||||||
|  |           if (ImGui::IsItemHovered()) { | ||||||
|  |             ImGui::SetTooltip("calls rend->clear() after rend->present(). might reduce UI latency by one frame in some drivers."); | ||||||
|  |           } | ||||||
|  | 
 | ||||||
| #ifndef IS_MOBILE | #ifndef IS_MOBILE | ||||||
|           bool noThreadedInputB=settings.noThreadedInput; |           bool noThreadedInputB=settings.noThreadedInput; | ||||||
|           if (ImGui::Checkbox("Disable threaded input (restart after changing!)",&noThreadedInputB)) { |           if (ImGui::Checkbox("Disable threaded input (restart after changing!)",&noThreadedInputB)) { | ||||||
|  | @ -2728,6 +2736,7 @@ void FurnaceGUI::syncSettings() { | ||||||
|   settings.compress=e->getConfInt("compress",1); |   settings.compress=e->getConfInt("compress",1); | ||||||
|   settings.newPatternFormat=e->getConfInt("newPatternFormat",1); |   settings.newPatternFormat=e->getConfInt("newPatternFormat",1); | ||||||
|   settings.renderBackend=e->getConfString("renderBackend","SDL"); |   settings.renderBackend=e->getConfString("renderBackend","SDL"); | ||||||
|  |   settings.renderClearPos=e->getConfInt("renderClearPos",0); | ||||||
| 
 | 
 | ||||||
|   clampSetting(settings.mainFontSize,2,96); |   clampSetting(settings.mainFontSize,2,96); | ||||||
|   clampSetting(settings.patFontSize,2,96); |   clampSetting(settings.patFontSize,2,96); | ||||||
|  | @ -2850,6 +2859,7 @@ void FurnaceGUI::syncSettings() { | ||||||
|   clampSetting(settings.orderButtonPos,0,2); |   clampSetting(settings.orderButtonPos,0,2); | ||||||
|   clampSetting(settings.compress,0,1); |   clampSetting(settings.compress,0,1); | ||||||
|   clampSetting(settings.newPatternFormat,0,1); |   clampSetting(settings.newPatternFormat,0,1); | ||||||
|  |   clampSetting(settings.renderClearPos,0,1); | ||||||
| 
 | 
 | ||||||
|   if (settings.exportLoops<0.0) settings.exportLoops=0.0; |   if (settings.exportLoops<0.0) settings.exportLoops=0.0; | ||||||
|   if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; |   if (settings.exportFadeOut<0.0) settings.exportFadeOut=0.0; | ||||||
|  | @ -3068,6 +3078,7 @@ void FurnaceGUI::commitSettings() { | ||||||
|   e->setConf("compress",settings.compress); |   e->setConf("compress",settings.compress); | ||||||
|   e->setConf("newPatternFormat",settings.newPatternFormat); |   e->setConf("newPatternFormat",settings.newPatternFormat); | ||||||
|   e->setConf("renderBackend",settings.renderBackend); |   e->setConf("renderBackend",settings.renderBackend); | ||||||
|  |   e->setConf("renderClearPos",settings.renderClearPos); | ||||||
| 
 | 
 | ||||||
|   // colors
 |   // colors
 | ||||||
|   for (int i=0; i<GUI_COLOR_MAX; i++) { |   for (int i=0; i<GUI_COLOR_MAX; i++) { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 tildearrow
						tildearrow