no message
This commit is contained in:
		@@ -828,3 +828,8 @@ void callJavascriptScanline(tic_mem* memory, s32 row)
 | 
			
		||||
	}
 | 
			
		||||
	else duk_pop(duk);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void callJavascriptOverlap(tic_mem* memory)
 | 
			
		||||
{
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
@@ -1245,4 +1245,9 @@ void callLuaScanline(tic_mem* memory, s32 row)
 | 
			
		||||
		}
 | 
			
		||||
		else lua_pop(lua, 1);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void callLuaOverlap(tic_mem* memory)
 | 
			
		||||
{
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -46,8 +46,6 @@ typedef struct
 | 
			
		||||
	s32 duration;
 | 
			
		||||
} Channel;
 | 
			
		||||
 | 
			
		||||
typedef void(ScanlineFunc)(tic_mem* memory, s32 row);
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
	s32 l;
 | 
			
		||||
@@ -84,7 +82,8 @@ typedef struct
 | 
			
		||||
		Channel channels[TIC_SOUND_CHANNELS];
 | 
			
		||||
	} music;
 | 
			
		||||
 | 
			
		||||
	ScanlineFunc* scanline;
 | 
			
		||||
	tic_scanline scanline;
 | 
			
		||||
	tic_overlap overlap;
 | 
			
		||||
	bool initialized;
 | 
			
		||||
} MachineState;
 | 
			
		||||
 | 
			
		||||
@@ -134,3 +133,6 @@ void callJavascriptTick(tic_machine* machine);
 | 
			
		||||
 | 
			
		||||
void callLuaScanline(tic_mem* memory, s32 row);
 | 
			
		||||
void callJavascriptScanline(tic_mem* memory, s32 row);
 | 
			
		||||
 | 
			
		||||
void callLuaOverlap(tic_mem* memory);
 | 
			
		||||
void callJavascriptOverlap(tic_mem* memory);
 | 
			
		||||
 
 | 
			
		||||
@@ -1452,7 +1452,7 @@ static void setCoverImage()
 | 
			
		||||
 | 
			
		||||
		if(pixels)
 | 
			
		||||
		{
 | 
			
		||||
			tic->api.blit(tic, pixels, tic->api.scanline);
 | 
			
		||||
			tic->api.blit(tic, pixels, tic->api.scanline, tic->api.overlap);
 | 
			
		||||
 | 
			
		||||
			u32* buffer = SDL_malloc(TIC80_WIDTH * TIC80_HEIGHT * sizeof(u32));
 | 
			
		||||
 | 
			
		||||
@@ -1932,11 +1932,13 @@ static void blitTexture()
 | 
			
		||||
	SDL_LockTexture(studio.texture, NULL, &pixels, &pitch);
 | 
			
		||||
 | 
			
		||||
	tic_scanline scanline = NULL;
 | 
			
		||||
	tic_overlap overlap = NULL;
 | 
			
		||||
 | 
			
		||||
	switch(studio.mode)
 | 
			
		||||
	{
 | 
			
		||||
	case TIC_RUN_MODE:
 | 
			
		||||
		scanline = tic->api.scanline;
 | 
			
		||||
		overlap = tic->api.overlap;
 | 
			
		||||
		break;
 | 
			
		||||
	case TIC_SPRITE_MODE:
 | 
			
		||||
		scanline = studio.sprite.scanline;
 | 
			
		||||
@@ -1948,7 +1950,7 @@ static void blitTexture()
 | 
			
		||||
		break;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	tic->api.blit(tic, pixels, scanline);
 | 
			
		||||
	tic->api.blit(tic, pixels, scanline, overlap);
 | 
			
		||||
 | 
			
		||||
	recordFrame(pixels);
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										18
									
								
								src/tic.c
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								src/tic.c
									
									
									
									
									
								
							@@ -430,6 +430,7 @@ static void api_reset(tic_mem* memory)
 | 
			
		||||
	tic_machine* machine = (tic_machine*)memory;
 | 
			
		||||
	machine->state.initialized = false;
 | 
			
		||||
	machine->state.scanline = NULL;
 | 
			
		||||
	machine->state.overlap = NULL;
 | 
			
		||||
 | 
			
		||||
	updateSaveid(memory);
 | 
			
		||||
}
 | 
			
		||||
@@ -1428,6 +1429,7 @@ static void api_tick(tic_mem* memory, tic_tick_data* data)
 | 
			
		||||
			if(done)
 | 
			
		||||
			{
 | 
			
		||||
				machine->state.scanline = memory->script == tic_script_js ? callJavascriptScanline : callLuaScanline;
 | 
			
		||||
				machine->state.overlap = memory->script == tic_script_js ? callJavascriptOverlap : callLuaOverlap;
 | 
			
		||||
				machine->state.initialized = true;				
 | 
			
		||||
			}
 | 
			
		||||
			else return;
 | 
			
		||||
@@ -1447,6 +1449,14 @@ static void api_scanline(tic_mem* memory, s32 row)
 | 
			
		||||
		machine->state.scanline(memory, row);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void api_overlap(tic_mem* memory)
 | 
			
		||||
{
 | 
			
		||||
	tic_machine* machine = (tic_machine*)memory;
 | 
			
		||||
 | 
			
		||||
	if(machine->state.initialized)
 | 
			
		||||
		machine->state.overlap(memory);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static double api_time(tic_mem* memory)
 | 
			
		||||
{
 | 
			
		||||
	tic_machine* machine = (tic_machine*)memory;
 | 
			
		||||
@@ -1645,7 +1655,7 @@ static u32* paletteBlit(tic_mem* tic)
 | 
			
		||||
	return pal;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void api_blit(tic_mem* tic, u32* out, tic_scanline scanline)
 | 
			
		||||
static void api_blit(tic_mem* tic, u32* out, tic_scanline scanline, tic_overlap overlap)
 | 
			
		||||
{
 | 
			
		||||
	const u32* pal = paletteBlit(tic);
 | 
			
		||||
 | 
			
		||||
@@ -1721,6 +1731,11 @@ static void api_blit(tic_mem* tic, u32* out, tic_scanline scanline)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	memset4(&out[(TIC80_FULLHEIGHT-Bottom) * TIC80_FULLWIDTH], pal[tic->ram.vram.vars.border], TIC80_FULLWIDTH*Bottom);
 | 
			
		||||
 | 
			
		||||
	if(overlap)
 | 
			
		||||
	{
 | 
			
		||||
		overlap(tic);
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static void initApi(tic_api* api)
 | 
			
		||||
@@ -1757,6 +1772,7 @@ static void initApi(tic_api* api)
 | 
			
		||||
	INIT_API(time);
 | 
			
		||||
	INIT_API(tick);
 | 
			
		||||
	INIT_API(scanline);
 | 
			
		||||
	INIT_API(overlap);
 | 
			
		||||
	INIT_API(reset);
 | 
			
		||||
	INIT_API(pause);
 | 
			
		||||
	INIT_API(resume);
 | 
			
		||||
 
 | 
			
		||||
@@ -121,7 +121,7 @@ TIC80_API void tic80_tick(tic80* tic, tic80_input input)
 | 
			
		||||
	tic80->memory->api.tick(tic80->memory, &tic80->tickData);
 | 
			
		||||
	tic80->memory->api.tick_end(tic80->memory);
 | 
			
		||||
 | 
			
		||||
	tic80->memory->api.blit(tic80->memory, tic->screen, tic80->memory->api.scanline);
 | 
			
		||||
	tic80->memory->api.blit(tic80->memory, tic->screen, tic80->memory->api.scanline, tic80->memory->api.overlap);
 | 
			
		||||
 | 
			
		||||
	TickCounter++;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -63,6 +63,7 @@ typedef struct
 | 
			
		||||
 | 
			
		||||
typedef struct tic_mem tic_mem;
 | 
			
		||||
typedef void(*tic_scanline)(tic_mem* memory, s32 row);
 | 
			
		||||
typedef void(*tic_overlap)(tic_mem* memory);
 | 
			
		||||
 | 
			
		||||
typedef struct
 | 
			
		||||
{
 | 
			
		||||
@@ -96,6 +97,7 @@ typedef struct
 | 
			
		||||
	double (*time)				(tic_mem* memory);
 | 
			
		||||
	void (*tick)				(tic_mem* memory, tic_tick_data* data);
 | 
			
		||||
	void (*scanline)			(tic_mem* memory, s32 row);
 | 
			
		||||
	void (*overlap)				(tic_mem* memory);
 | 
			
		||||
	void (*reset)				(tic_mem* memory);
 | 
			
		||||
	void (*pause)				(tic_mem* memory);
 | 
			
		||||
	void (*resume)				(tic_mem* memory);
 | 
			
		||||
@@ -107,7 +109,7 @@ typedef struct
 | 
			
		||||
 | 
			
		||||
	void (*tick_start)			(tic_mem* memory, const tic_sound* src);
 | 
			
		||||
	void (*tick_end)			(tic_mem* memory);
 | 
			
		||||
	void (*blit)				(tic_mem* tic, u32* out, tic_scanline scanline);
 | 
			
		||||
	void (*blit)				(tic_mem* tic, u32* out, tic_scanline scanline, tic_overlap overlap);
 | 
			
		||||
 | 
			
		||||
	tic_script_lang (*get_script)(tic_mem* memory);
 | 
			
		||||
} tic_api;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user