fixed gif record
This commit is contained in:
		
							
								
								
									
										15
									
								
								src/studio.c
									
									
									
									
									
								
							
							
						
						
									
										15
									
								
								src/studio.c
									
									
									
									
									
								
							@@ -52,7 +52,7 @@
 | 
				
			|||||||
#define MAX_CONTROLLERS 4
 | 
					#define MAX_CONTROLLERS 4
 | 
				
			||||||
#define STUDIO_PIXEL_FORMAT SDL_PIXELFORMAT_ARGB8888
 | 
					#define STUDIO_PIXEL_FORMAT SDL_PIXELFORMAT_ARGB8888
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define FRAME_SIZE (TIC80_WIDTH * TIC80_HEIGHT * sizeof(u32))
 | 
					#define FRAME_SIZE (TIC80_FULLWIDTH * TIC80_FULLHEIGHT * sizeof(u32))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct
 | 
					typedef struct
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
@@ -1403,11 +1403,11 @@ static u32* paletteBlit()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
static void screen2buffer(u32* buffer, const u8* pixels, s32 pitch)
 | 
					static void screen2buffer(u32* buffer, const u8* pixels, s32 pitch)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	for(s32 i = 0; i < TIC80_HEIGHT; i++)
 | 
						for(s32 i = 0; i < TIC80_FULLHEIGHT; i++)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		SDL_memcpy(buffer, pixels, TIC80_WIDTH * sizeof(u32));
 | 
							SDL_memcpy(buffer, pixels, TIC80_FULLWIDTH * sizeof(u32));
 | 
				
			||||||
		pixels += pitch;
 | 
							pixels += pitch;
 | 
				
			||||||
		buffer += TIC80_WIDTH;
 | 
							buffer += TIC80_FULLWIDTH;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -1420,7 +1420,6 @@ static void setCoverImage()
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		if(pixels)
 | 
							if(pixels)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			// TODO: blit without border
 | 
					 | 
				
			||||||
			// blit(pixels);
 | 
								// blit(pixels);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			u32* buffer = SDL_malloc(TIC80_WIDTH * TIC80_HEIGHT * sizeof(u32));
 | 
								u32* buffer = SDL_malloc(TIC80_WIDTH * TIC80_HEIGHT * sizeof(u32));
 | 
				
			||||||
@@ -1458,7 +1457,7 @@ static void stopVideoRecord()
 | 
				
			|||||||
			s32 size = 0;
 | 
								s32 size = 0;
 | 
				
			||||||
			u8* data = SDL_malloc(FRAME_SIZE * studio.video.frame);
 | 
								u8* data = SDL_malloc(FRAME_SIZE * studio.video.frame);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			gif_write_animation(data, &size, TIC80_WIDTH, TIC80_HEIGHT, (const u8*)studio.video.buffer, studio.video.frame, TIC_FRAMERATE, getConfig()->gifScale);
 | 
								gif_write_animation(data, &size, TIC80_FULLWIDTH, TIC80_FULLHEIGHT, (const u8*)studio.video.buffer, studio.video.frame, TIC_FRAMERATE, getConfig()->gifScale);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			fsGetFileData(onVideoExported, "screen.gif", data, size, DEFAULT_CHMOD, NULL);
 | 
								fsGetFileData(onVideoExported, "screen.gif", data, size, DEFAULT_CHMOD, NULL);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
@@ -1829,11 +1828,11 @@ static void recordFrame(u8* pixels, s32 pitch)
 | 
				
			|||||||
	{
 | 
						{
 | 
				
			||||||
		if(studio.video.frame < studio.video.frames)
 | 
							if(studio.video.frame < studio.video.frames)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			screen2buffer(studio.video.buffer + (TIC80_WIDTH*TIC80_HEIGHT) * studio.video.frame, pixels, pitch);
 | 
								screen2buffer(studio.video.buffer + (TIC80_FULLWIDTH*TIC80_FULLHEIGHT) * studio.video.frame, pixels, pitch);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			if(studio.video.frame % TIC_FRAMERATE < TIC_FRAMERATE / 2)
 | 
								if(studio.video.frame % TIC_FRAMERATE < TIC_FRAMERATE / 2)
 | 
				
			||||||
			{
 | 
								{
 | 
				
			||||||
				const u32* pal = srcPaletteBlit(studio.tic->config.palette.data);
 | 
									const u32* pal = srcPaletteBlit(studio.tic->ram.vram.palette.data);
 | 
				
			||||||
				drawRecordLabel(pixels, pitch, TIC80_WIDTH-24, 8, &pal[tic_color_red]);
 | 
									drawRecordLabel(pixels, pitch, TIC80_WIDTH-24, 8, &pal[tic_color_red]);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user