コード例 #1
0
ファイル: dng_orientation.cpp プロジェクト: aizvorski/dng_sdk
bool dng_orientation::FlipV () const
	{
	
	if (fAdobeOrientation & 4)
		return FlipD () == FlipH ();
		
	else
		return FlipD () != FlipH ();
		
	}
コード例 #2
0
ファイル: tests.c プロジェクト: ArtemioUrbina/240pTestSuite
void DropShadowTest()
{
	char		msg[50];
	int		    done = 0, x = dW/2, y = dH/2, invert = 0, frame = 0, text = 0, selback = 0, sprite = 0;
	int			oldvmode = vmode, i = 0, currentsonic = 0, currentframe = 0;
	u32		    pressed, held, reload = 0;		
	ImagePtr	back[4], sonicback[4], ssprite, shadow, buzz, buzzshadow, overlay;	

	sonicback[0] = LoadImage(SONICBACK1IMG, 0);
	if(!sonicback[0])
		return;
	sonicback[1] = LoadImage(SONICBACK2IMG, 0);
	if(!sonicback[1])
		return;
	sonicback[2] = LoadImage(SONICBACK3IMG, 0);
	if(!sonicback[2])
		return;
	sonicback[3] = LoadImage(SONICBACK4IMG, 0);
	if(!sonicback[3])
		return;

	for(i = 0; i < 4; i++)
		back[i] = NULL;
		
	back[1] = sonicback[0];
	if(!back[1])
		return;
	
	overlay = LoadImage(SONICFLOORIMG, 0);
	if(!overlay)
		return;
	
	reload = 1;
		
	ssprite = LoadImage(SHADOWIMG, 0);	
	if(!ssprite)
		return;
	buzz = LoadImage(BUZZBOMBERIMG, 0);
	if(!buzz)
		return;
	buzzshadow = LoadImage(BUZZBOMBERSHADOWIMG, 0);
	if(!buzzshadow)
		return;
	
	srand((int)(time(0)));
	sprite = rand() % 2;
	if(sprite == 0)
		shadow = ssprite;
	else
		shadow = buzzshadow;
	
	while(!done && !EndProgram) 
	{
		if(reload || oldvmode != vmode)
		{
			FreeImage(&back[0]);
			FreeImage(&back[2]);
			FreeImage(&back[3]);

			back[2] = LoadImage(CHECKPOSIMG, 1);
			if(!back[2])
				return;
			back[3] = LoadImage(STRIPESPOSIMG, 1);
			if(!back[3])
				return;
			
			if(vmode != VIDEO_480P && vmode != VIDEO_480I &&
				vmode != VIDEO_576I)
			{		
				back[0] = LoadImage(MOTOKOIMG, 0);
				if(!back[0])
					return;
				
				for(i = 0; i < 4; i++)
					sonicback[i]->scale = 1;
				back[0]->scale = 1;
				overlay->scale = 1;
				
				for(i = 0; i < 4; i++)
					sonicback[i]->y = 0;
				overlay->y = 0;
			}
			else
			{	
				back[0] = LoadImage(MOTOKO480IMG, 0);
				if(!back[0])
					return;
				
				back[0]->scale = 0;
				overlay->scale = 0;
				for(i = 0; i < 4; i++)
				{
					sonicback[i]->scale = 0;
					sonicback[i]->y = (dH - 240)/2;
				}

				overlay->y = (dH - 240)/2;
				if(offsetY)  // center in PAL modes
				{
					for(i = 0; i < 4; i++)
						sonicback[i]->y -= offsetY;
					overlay->y -= offsetY;
				}
			}
			reload = 0;
			oldvmode = vmode;
		}
		
		if(selback == 1)
		{
			CalculateUV(x, 0, dW, 240, back[selback]);
			CalculateUV(x*2, 0, dW, 240, overlay);
		}	
		
		StartScene();
		DrawImage(back[selback]);
		if(selback == 1)
			DrawImage(overlay);

		if(text)
		{
			if(vmode != VIDEO_480P)
				DrawStringB(140, 30, 0, 0xff, 0, msg);
			else
				DrawStringB(450, 40, 0, 0xff, 0, msg);
			text --;
		}

		if(frame == invert)
		{
			shadow->x = x;
			shadow->y = y;
			DrawImage(shadow);
			frame = !frame;
		}
		else
			frame = !frame;
				
		if(sprite == 1)
		{
			buzz->x = x - 20;
			buzz->y = y - 20;
			DrawImage(buzz);
		} 			
		EndScene();
		
		ControllerScan();
		
		held = Controller_ButtonsHeld(0);		
				
		if (held & PAD_BUTTON_UP)
			y --;
	
		if (held & PAD_BUTTON_DOWN)
			y ++;
	
		if (held & PAD_BUTTON_LEFT)
		{
			x --;
			FlipH(buzz, 0);
			FlipH(buzzshadow, 0);
		}
	
		if (held & PAD_BUTTON_RIGHT)
		{
			x ++;
			FlipH(buzz, 1);
			FlipH(buzzshadow, 1);
		}
		
        pressed = Controller_ButtonsDown(0);
		if (pressed & PAD_BUTTON_B)
			done =	1;

		if (pressed & PAD_BUTTON_X)
		{
			invert = !invert;
			if(invert)
				sprintf(msg, "Shadow on odd frames");				
			else
				sprintf(msg, "Shadow on even frames");
			text = 60;
		}
			
		if (pressed & PAD_BUTTON_A)
		{
			if(selback < 3)
				selback ++;
			else
				selback = 0;
		}
	
		if (pressed & PAD_BUTTON_Y)
		{
			if(sprite == 0)
			{
				shadow = buzzshadow;
				sprite = 1;
			}
			else
			{
				shadow = ssprite;
				sprite = 0;
			}
		}

		if ( pressed & PAD_BUTTON_START ) 		
		{
			DrawMenu = 1;					
			HelpData = DROPSHADOW;
		}	

		if(x < back[selback]->x)
			x = back[selback]->x;
		if(y < back[selback]->y)
			y = back[selback]->y;
		if(x > back[selback]->w + back[selback]->x - shadow->w)
			x = back[selback]->w + back[selback]->x - shadow->w;
		if(y > back[selback]->h + back[selback]->y - shadow->h)
			y = back[selback]->h + back[selback]->y - shadow->h;

		currentframe ++;
		if(currentframe > 10)
		{
			currentsonic++;
			if(currentsonic > 3)
				currentsonic = 0;
			currentframe = 0;
			back[1] = sonicback[currentsonic];
		}
	}
	FreeImage(&back[0]);
	for(i = 0; i < 4; i++)
		FreeImage(&sonicback[i]);
	FreeImage(&back[2]);
	FreeImage(&back[3]);
	FreeImage(&overlay);
	FreeImage(&ssprite);
	FreeImage(&buzz);
	FreeImage(&buzzshadow);
}