mirror of
				https://github.com/nicbarker/clay.git
				synced 2025-11-04 08:36:17 +00:00 
			
		
		
		
	[Renderers/termbox] fixed horizontal text culling bug (#525)
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				CMake on multiple platforms / build (Release, cl, cl, windows-latest) (push) Has been cancelled
				
			
		
			
				
	
				CMake on multiple platforms / build (Release, clang, clang++, ubuntu-latest) (push) Has been cancelled
				
			
		
			
				
	
				CMake on multiple platforms / build (Release, gcc, g++, ubuntu-latest) (push) Has been cancelled
				
			
		
			
				
	
				Odin Bindings Update / check_changes (push) Has been cancelled
				
			
		
			
				
	
				Odin Bindings Update / build (macos-latest) (push) Has been cancelled
				
			
		
			
				
	
				Odin Bindings Update / build (ubuntu-latest) (push) Has been cancelled
				
			
		
			
				
	
				Odin Bindings Update / commit (push) Has been cancelled
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	CMake on multiple platforms / build (Release, cl, cl, windows-latest) (push) Has been cancelled
				
			CMake on multiple platforms / build (Release, clang, clang++, ubuntu-latest) (push) Has been cancelled
				
			CMake on multiple platforms / build (Release, gcc, g++, ubuntu-latest) (push) Has been cancelled
				
			Odin Bindings Update / check_changes (push) Has been cancelled
				
			Odin Bindings Update / build (macos-latest) (push) Has been cancelled
				
			Odin Bindings Update / build (ubuntu-latest) (push) Has been cancelled
				
			Odin Bindings Update / commit (push) Has been cancelled
				
			This commit is contained in:
		
							parent
							
								
									7216815536
								
							
						
					
					
						commit
						fd97d8179e
					
				| 
						 | 
					@ -3,6 +3,8 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Copyright (c) 2025 Mivirl
 | 
					    Copyright (c) 2025 Mivirl
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    altered by Godje (Sep 2025)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    This software is provided 'as-is', without any express or implied warranty.
 | 
					    This software is provided 'as-is', without any express or implied warranty.
 | 
				
			||||||
    In no event will the authors be held liable for any damages arising from the
 | 
					    In no event will the authors be held liable for any damages arising from the
 | 
				
			||||||
    use of this software.
 | 
					    use of this software.
 | 
				
			||||||
| 
						 | 
					@ -1616,6 +1618,20 @@ void Clay_Termbox_Render(Clay_RenderCommandArray commands)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                Clay_StringSlice *text = &render_data.stringContents;
 | 
					                Clay_StringSlice *text = &render_data.stringContents;
 | 
				
			||||||
                int32_t i = 0;
 | 
					                int32_t i = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // culling text characters that are outside of the layout
 | 
				
			||||||
 | 
					                int h_clip = 0 - cell_box.x;
 | 
				
			||||||
 | 
					                while(h_clip > 0 && i < text->length){
 | 
				
			||||||
 | 
					                    uint32_t ch = ' ';
 | 
				
			||||||
 | 
					                    int codepoint_length = tb_utf8_char_to_unicode(&ch, text->chars + i);
 | 
				
			||||||
 | 
					                    if (0 > codepoint_length) {
 | 
				
			||||||
 | 
					                        clay_tb_assert(false, "Invalid utf8");
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    i += codepoint_length;
 | 
				
			||||||
 | 
					                    h_clip -= 1;
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                // printing the rest of the characters
 | 
				
			||||||
                for (int y = box_begin_y; y < box_end_y; ++y) {
 | 
					                for (int y = box_begin_y; y < box_end_y; ++y) {
 | 
				
			||||||
                    for (int x = box_begin_x; x < box_end_x;) {
 | 
					                    for (int x = box_begin_x; x < box_end_x;) {
 | 
				
			||||||
                        uint32_t ch = ' ';
 | 
					                        uint32_t ch = ' ';
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue