Bitmap: Split surface pixel address calculation into helper
This commit is contained in:
		
							parent
							
								
									47ef36ca19
								
							
						
					
					
						commit
						fdaf6c3611
					
				
					 1 changed files with 9 additions and 3 deletions
				
			
		| 
						 | 
					@ -768,6 +768,14 @@ void Bitmap::clear()
 | 
				
			||||||
	p->onModified();
 | 
						p->onModified();
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static uint32_t &getPixelAt(SDL_Surface *surf, SDL_PixelFormat *form, int x, int y)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						size_t offset = x*form->BytesPerPixel + y*surf->pitch;
 | 
				
			||||||
 | 
						uint8_t *bytes = (uint8_t*) surf->pixels + offset;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return *((uint32_t*) bytes);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Color Bitmap::getPixel(int x, int y) const
 | 
					Color Bitmap::getPixel(int x, int y) const
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	guardDisposed();
 | 
						guardDisposed();
 | 
				
			||||||
| 
						 | 
					@ -790,9 +798,7 @@ Color Bitmap::getPixel(int x, int y) const
 | 
				
			||||||
		glState.viewport.pop();
 | 
							glState.viewport.pop();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	size_t offset = x*p->format->BytesPerPixel + y*p->surface->pitch;
 | 
						uint32_t pixel = getPixelAt(p->surface, p->format, x, y);
 | 
				
			||||||
	uint8_t *bytes = (uint8_t*) p->surface->pixels + offset;
 | 
					 | 
				
			||||||
	uint32_t pixel = *((uint32_t*) bytes);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return Color((pixel >> p->format->Rshift) & 0xFF,
 | 
						return Color((pixel >> p->format->Rshift) & 0xFF,
 | 
				
			||||||
	             (pixel >> p->format->Gshift) & 0xFF,
 | 
						             (pixel >> p->format->Gshift) & 0xFF,
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue