예제 #1
0
파일: RLEBitmap.c 프로젝트: skeezix/zikzak
void InitializeRLEBitmapFromPartialBitmap(RLEBitmap *self,const Bitmap *bitmap,int x0,int y0,int width,int height)
{
	self->width=width;
	self->height=height;
	Pixel *ptr=self->codes;

	for(int y=0;y<height;y++)
	{
		int x=0;
		while(x<width)
		{
			int emptystart=x;
			while(x<width && x-emptystart<0xff)
			{
				Pixel p=ReadPixel(bitmap,x+x0,y+y0);
				if(!IsPixelTransparent(p)) break;
				x++;
			}
			int empty=x-emptystart;

			int filledstart=x;
			while(x<width && x-filledstart<0xff)
			{
				Pixel p=ReadPixel(bitmap,x+x0,y+y0);
				if(IsPixelTransparent(p)) break;
				x++;
			}
			int filled=x-filledstart;

			#ifdef SingleBytePixels
			*ptr++=empty;
			if(x<width || filled!=0) *ptr++=filled;
			#else
			*ptr++=RLECode(empty,filled);
			memcpy(ptr,ConstBitmapPixelPointer(bitmap,filledstart+x0,y+y0),filled*sizeof(Pixel));
			ptr+=filled;
			#endif
		}
	}
}
예제 #2
0
#include <RLEBitmap.h>

const struct { RLEBitmap rle; Pixel codes[RLECodeCount(10,2,4)]; } Projectile_Small=
{
	{ 6,4 },
	{
		RLECode(0x00,0x05), RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RLEEndCode(0x01),   RLECode(0x00,0x05), 
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),
		RGB(0x00,0x00,0x00),RLEEndCode(0x01),   RLEEndCode(0x06),   RLEEndCode(0x06),   
	}
};
예제 #3
0
#include <RLEBitmap.h>

const struct { RLEBitmap rle; Pixel codes[RLECodeCount(259,23,10)];} Healthpack_Battery=
{
	{ 17,21 },
	{
		RLECode(0x02,0x02), RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RLECode(0x02,0x02), 
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RLEEndCode(0x09),   RLECode(0x02,0x06), 
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RLEEndCode(0x09),   RLECode(0x01,0x08), 
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x95,0x95,0x95),
		RGB(0x95,0x95,0x95),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),
		RLEEndCode(0x08),   RLECode(0x00,0x0a), RGB(0x00,0x00,0x00),RGB(0x95,0x95,0x95),
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x70,0x70,0x70),RGB(0x70,0x70,0x70),
		RGB(0x00,0x00,0x00),RGB(0x08,0x06,0x04),RGB(0x4d,0x4b,0x48),RGB(0x04,0x03,0x02),
		RLEEndCode(0x07),   RLECode(0x00,0x0a), RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),
		RGB(0x46,0x46,0x46),RGB(0x46,0x46,0x46),RGB(0x46,0x46,0x46),RGB(0x46,0x46,0x46),
		RGB(0x46,0x46,0x46),RGB(0x4a,0x49,0x47),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),
		RLEEndCode(0x07),   RLECode(0x00,0x0b), RGB(0x00,0x00,0x00),RGB(0xf6,0x96,0x79),
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0xa3,0x62,0x0a),RGB(0x00,0x00,0x00),
		RGB(0x00,0x00,0x00),RLECode(0x02,0x02), RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),
		RLEEndCode(0x02),   RLECode(0x00,0x0f), RGB(0x00,0x00,0x00),RGB(0xf6,0x96,0x79),
		RGB(0xf7,0x94,0x1d),RGB(0xf2,0x65,0x22),RGB(0xf2,0x65,0x22),RGB(0xf2,0x65,0x22),
		RGB(0xf7,0x94,0x1d),RGB(0xf7,0x94,0x1d),RGB(0x8f,0x3a,0x0c),RGB(0x00,0x00,0x00),
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),
		RGB(0x00,0x00,0x00),RLEEndCode(0x02),   RLECode(0x00,0x10), RGB(0x00,0x00,0x00),
		RGB(0xf6,0x96,0x79),RGB(0xf2,0x65,0x22),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),
		RGB(0x00,0x00,0x00),RGB(0xf7,0x94,0x1d),RGB(0xf2,0x65,0x22),RGB(0x03,0x01,0x00),
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x95,0x95,0x95),RGB(0x95,0x95,0x95),
		RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RGB(0x00,0x00,0x00),RLEEndCode(0x01),