mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			109 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			109 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // License - https://github.com/TurtleP/Flask/blob/master/LICENSE
 | |
| 
 | |
| #include <shared.h>
 | |
| 
 | |
| int currentR = 0xFF;
 | |
| int currentG = 0xFF;
 | |
| int currentB = 0xFF;
 | |
| int currentA = 0xFF;
 | |
| 
 | |
| int currentScreen = GFX_BOTTOM;
 | |
| 
 | |
| float transX = 0;
 | |
| float transY = 0;
 | |
| bool isPushed = false;
 | |
| 
 | |
| u32 getCurrentColor() 
 | |
| {
 | |
| 	return RGBA8(currentR, currentG, currentB, currentA);
 | |
| }
 | |
| 
 | |
| void setColor(int r, int g, int b)
 | |
| {
 | |
| 	currentR = r;
 | |
| 	currentG = g;
 | |
| 	currentB = b;
 | |
| 	currentA = currentA;
 | |
| }
 | |
| 
 | |
| void setColor(int r, int g, int b, int a)
 | |
| {
 | |
| 	currentR = r;
 | |
| 	currentG = g;
 | |
| 	currentB = b;
 | |
| 	currentA = a;
 | |
| }
 | |
| 
 | |
| void setScreen(int screen)
 | |
| {
 | |
| 	currentScreen = screen;
 | |
| }
 | |
| 
 | |
| int getCurrentScreen()
 | |
| {
 | |
| 	return currentScreen;
 | |
| }
 | |
| 
 | |
| void screenShot() //for showing stuff being done
 | |
| {
 | |
| 	FILE * topScreen = fopen("sdmc:/framebuffer_top.rgb", "w+");
 | |
| 
 | |
| 	fwrite(gfxGetFramebuffer(GFX_TOP, GFX_LEFT, NULL, NULL), 288000, 1, topScreen);
 | |
| 
 | |
| 	fclose(topScreen);
 | |
| 
 | |
| 	FILE * bottomScreen = fopen("sdmc:/framebuffer_bottom.rgb", "w+");;
 | |
| 
 | |
| 	fwrite(gfxGetFramebuffer(GFX_BOTTOM, GFX_LEFT, NULL, NULL), 230400, 1, bottomScreen);
 | |
| 
 | |
| 	fclose(bottomScreen);
 | |
| }
 | |
| 
 | |
| void translateCoords(float * x, float * y) {
 | |
| 	if (isPushed) 
 | |
| 	{
 | |
| 		*x += transX;
 | |
| 		*y += transY;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void translate(float dx, float dy)
 | |
| {
 | |
| 	if (sf2d_get_current_screen() == getCurrentScreen()) 
 | |
| 	{
 | |
| 		transX = transX + dx;
 | |
| 		transY = transY + dy;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void push()
 | |
| {
 | |
| 	if (sf2d_get_current_screen() == getCurrentScreen()) 
 | |
| 	{
 | |
| 		isPushed = true;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void pop()
 | |
| {
 | |
| 	if (sf2d_get_current_screen() == getCurrentScreen()) 
 | |
| 	{
 | |
| 		transX = 0;
 | |
| 		transY = 0;
 | |
| 		isPushed = false;
 | |
| 	}
 | |
| }
 | |
| 
 | |
| void setScissor(u32 x, u32 y, u32 width, u32 height)
 | |
| {
 | |
| 	if (sf2d_get_current_screen() == getCurrentScreen()) 
 | |
| 	{
 | |
| 		GPU_SCISSORMODE mode = GPU_SCISSOR_NORMAL;
 | |
| 
 | |
| 		if (!x && !y && !width && !height) {
 | |
| 			mode = GPU_SCISSOR_DISABLE;
 | |
| 		}
 | |
| 
 | |
| 		sf2d_set_scissor_test(mode, x, y, width, height);
 | |
| 	}
 | |
| } |