mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 21:12:43 +00:00 
			
		
		
		
	 1c0669f010
			
		
	
	
		1c0669f010
		
	
	
	
	
		
			
			Instead of LibGUI and WindowServer building their own copies of the drawing and graphics code, let's it in a separate LibDraw library. This avoids building the code twice, and will encourage better separation of concerns. :^)
		
			
				
	
	
		
			24 lines
		
	
	
	
		
			710 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
	
		
			710 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #pragma once
 | |
| 
 | |
| #include "Size.h"
 | |
| #include <AK/RefPtr.h>
 | |
| #include <AK/RefCounted.h>
 | |
| 
 | |
| class CharacterBitmap : public RefCounted<CharacterBitmap> {
 | |
| public:
 | |
|     static NonnullRefPtr<CharacterBitmap> create_from_ascii(const char* asciiData, unsigned width, unsigned height);
 | |
|     ~CharacterBitmap();
 | |
| 
 | |
|     bool bit_at(unsigned x, unsigned y) const { return m_bits[y * width() + x] == '#'; }
 | |
|     const char* bits() const { return m_bits; }
 | |
| 
 | |
|     Size size() const { return m_size; }
 | |
|     unsigned width() const { return m_size.width(); }
 | |
|     unsigned height() const { return m_size.height(); }
 | |
| 
 | |
| private:
 | |
|     CharacterBitmap(const char* b, unsigned w, unsigned h);
 | |
| 
 | |
|     const char* m_bits { nullptr };
 | |
|     Size m_size;
 | |
| };
 |