forked from Bananymous/banan-os
				
			Kernel: Implement FramebufferDevice::get_pixel()
This commit is contained in:
		
							parent
							
								
									554b13ac50
								
							
						
					
					
						commit
						994713d04c
					
				|  | @ -15,6 +15,7 @@ namespace Kernel | ||||||
| 		uint32_t width() const { return m_width; } | 		uint32_t width() const { return m_width; } | ||||||
| 		uint32_t height() const { return m_height; } | 		uint32_t height() const { return m_height; } | ||||||
| 
 | 
 | ||||||
|  | 		uint32_t get_pixel(uint32_t x, uint32_t y) const; | ||||||
| 		void set_pixel(uint32_t x, uint32_t y, uint32_t rgb); | 		void set_pixel(uint32_t x, uint32_t y, uint32_t rgb); | ||||||
| 
 | 
 | ||||||
| 		// positive rows -> empty pixels on bottom
 | 		// positive rows -> empty pixels on bottom
 | ||||||
|  |  | ||||||
|  | @ -125,6 +125,15 @@ namespace Kernel | ||||||
| 		return bytes_to_copy; | 		return bytes_to_copy; | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
|  | 	uint32_t FramebufferDevice::get_pixel(uint32_t x, uint32_t y) const | ||||||
|  | 	{ | ||||||
|  | 		ASSERT(x < m_width && y < m_height); | ||||||
|  | 		const auto* video_buffer_u8 = reinterpret_cast<const uint8_t*>(m_video_buffer->vaddr()); | ||||||
|  | 		return (video_buffer_u8[(y * m_width + x) * (BANAN_FB_BPP / 8) + 0] << 0) | ||||||
|  | 		     | (video_buffer_u8[(y * m_width + x) * (BANAN_FB_BPP / 8) + 1] << 8) | ||||||
|  | 		     | (video_buffer_u8[(y * m_width + x) * (BANAN_FB_BPP / 8) + 2] << 16); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
| 	void FramebufferDevice::set_pixel(uint32_t x, uint32_t y, uint32_t rgb) | 	void FramebufferDevice::set_pixel(uint32_t x, uint32_t y, uint32_t rgb) | ||||||
| 	{ | 	{ | ||||||
| 		if (x >= m_width || y >= m_height) | 		if (x >= m_width || y >= m_height) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue