mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 13:50:03 +00:00 
			
		
		
		
	Shader Debugger: Highlight current instruction instead of focusing
This avoid some annoying focus stealing in some situations, and looks nicer in general.
This commit is contained in:
		
							parent
							
								
									2c98275b51
								
							
						
					
					
						commit
						2bdf9ede91
					
				
					 1 changed files with 15 additions and 4 deletions
				
			
		|  | @ -292,12 +292,23 @@ QVariant GraphicsVertexShaderModel::data(const QModelIndex& index, int role) con | |||
|         return GetMonospaceFont(); | ||||
| 
 | ||||
|     case Qt::BackgroundRole: | ||||
|         // Highlight instructions which have no debug data associated to them
 | ||||
|     { | ||||
|         // Highlight current instruction
 | ||||
|         int current_record_index = par->cycle_index->value(); | ||||
|         if (current_record_index < par->debug_data.records.size()) { | ||||
|             const auto& current_record = par->debug_data.records[current_record_index]; | ||||
|             if (index.row() == current_record.instruction_offset) { | ||||
|                 return QColor(255, 255, 63); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // Use a grey background for instructions which have no debug data associated to them
 | ||||
|         for (const auto& record : par->debug_data.records) | ||||
|             if (index.row() == record.instruction_offset) | ||||
|                 return QVariant(); | ||||
| 
 | ||||
|         return QBrush(QColor(255, 255, 127)); | ||||
|         return QBrush(QColor(192, 192, 192)); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     // TODO: Draw arrows for each "reachable" instruction to visualize control flow
 | ||||
|  | @ -546,8 +557,8 @@ void GraphicsVertexShaderWidget::OnCycleIndexChanged(int index) { | |||
| 
 | ||||
|     instruction_description->setText(text); | ||||
| 
 | ||||
|     // Scroll to current instruction
 | ||||
|     // Emit model update notification and scroll to current instruction
 | ||||
|     QModelIndex instr_index = model->index(record.instruction_offset, 0); | ||||
|     binary_list->selectionModel()->select(instr_index, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows); | ||||
|     emit model->dataChanged(instr_index, model->index(record.instruction_offset, model->columnCount())); | ||||
|     binary_list->scrollTo(instr_index, QAbstractItemView::EnsureVisible); | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue