no message

This commit is contained in:
BADIM-PC\Vadim 2017-11-03 11:53:10 +03:00
parent b43bfe06fb
commit f0691038f5
1 changed files with 18 additions and 39 deletions

View File

@ -47,6 +47,7 @@
#include "ext/md5.h"
#define STUDIO_UI_SCALE 3
#define TEXTURE_SIZE (TIC80_FULLWIDTH)
#define MAX_CONTROLLERS 4
#define STUDIO_PIXEL_FORMAT SDL_PIXELFORMAT_ARGB8888
@ -1406,12 +1407,10 @@ inline s32 clamp(s32 a, s32 b, s32 val)
return val;
}
static void blit(u32* out, s32 pitch, s32 bgPitch)
static void blit(u32* out)
{
tic_mem* tic = studio.tic;
const s32 pitchWidth = pitch/sizeof *out;
u32* row = out;
const u32* pal = paletteBlit();
void(*scanline)(tic_mem* memory, s32 row) = NULL;
@ -1431,7 +1430,7 @@ static void blit(u32* out, s32 pitch, s32 bgPitch)
break;
}
for(s32 r = 0; r < TIC80_HEIGHT; r++, row += pitchWidth)
for(s32 r = 0; r < TIC80_HEIGHT; r++)
{
if(scanline)
{
@ -1439,29 +1438,20 @@ static void blit(u32* out, s32 pitch, s32 bgPitch)
pal = paletteBlit();
}
// u8 border = tic_tool_peek4(tic->ram.vram.mapping, tic->ram.vram.vars.border & 0xf);
SDL_memset4(&out[r * TEXTURE_SIZE], pal[tic->ram.vram.vars.bg], TEXTURE_SIZE);
SDL_memset4(row, pal[tic->ram.vram.vars.bg], pitchWidth);
s32 y = r + tic->ram.vram.vars.offset.y;
s32 actualRow = r - tic->ram.vram.vars.offset.y;
if(y < 0 || y >= TIC80_HEIGHT) continue;
for(s32 c = 0; c < TIC80_WIDTH; c++)
{
s32 x = c + tic->ram.vram.vars.offset.x;
if(actualRow >= TIC80_HEIGHT || actualRow < 0)
continue;
if(x < 0 || x >= TIC80_WIDTH) continue;
s32 pos = actualRow * TIC80_WIDTH;
if(tic->ram.vram.vars.offset.x == 0)
for(u32* ptr = row, c = 0; c < TIC80_WIDTH; c++, ptr++)
*ptr = pal[tic_tool_peek4(tic->ram.vram.screen.data, pos++)];
else
for(u32* ptr = row, c = 0; c < TIC80_WIDTH; c++, ptr++)
{
s32 x = c + tic->ram.vram.vars.offset.x;
if(x < 0 || x >= TIC80_WIDTH) continue;
*ptr = pal[tic_tool_peek4(tic->ram.vram.screen.data, x + pos)];
}
out[c + r * TEXTURE_SIZE] = pal[tic_tool_peek4(tic->ram.vram.screen.data, x + y * TIC80_WIDTH)];
}
}
}
@ -1484,7 +1474,8 @@ static void setCoverImage()
if(pixels)
{
blit(pixels, Pitch, 0);
// TODO: blit without border
// blit(pixels);
u32* buffer = SDL_malloc(TIC80_WIDTH * TIC80_HEIGHT * sizeof(u32));
@ -1915,13 +1906,11 @@ static void blitTexture()
SDL_Rect rect = {0, 0, 0, 0};
calcTextureRect(&rect);
rect.w = rect.w * TIC80_WIDTH / TIC80_WIDTH;
void* pixels = NULL;
s32 pitch = 0;
SDL_LockTexture(studio.texture, NULL, &pixels, &pitch);
blit(pixels, pitch, 0);
blit(pixels);
recordFrame(pixels, pitch);
@ -2211,14 +2200,6 @@ static void initSound()
SDL_PauseAudioDevice(studio.audioDevice, 0);
}
static s32 textureLog2(s32 val)
{
u32 rom = 0;
while( val >>= 1 ) rom++;
return 1 << ++rom;
}
static void initTouchGamepad()
{
if (!studio.renderer)
@ -2228,8 +2209,7 @@ static void initTouchGamepad()
if(!studio.gamepad.texture)
{
studio.gamepad.texture = SDL_CreateTexture(studio.renderer, STUDIO_PIXEL_FORMAT, SDL_TEXTUREACCESS_STREAMING,
textureLog2(TIC80_FULLWIDTH), textureLog2(TIC80_FULLHEIGHT));
studio.gamepad.texture = SDL_CreateTexture(studio.renderer, STUDIO_PIXEL_FORMAT, SDL_TEXTUREACCESS_STREAMING, TEXTURE_SIZE, TEXTURE_SIZE);
SDL_SetTextureBlendMode(studio.gamepad.texture, SDL_BLENDMODE_BLEND);
}
@ -2367,8 +2347,7 @@ static void onFSInitialized(FileSystem* fs)
if(!studio.renderer)
studio.softwareRenderer = studio.renderer = SDL_CreateRenderer(studio.window, -1, SDL_RENDERER_SOFTWARE);
studio.texture = SDL_CreateTexture(studio.renderer, STUDIO_PIXEL_FORMAT, SDL_TEXTUREACCESS_STREAMING,
textureLog2(TIC80_WIDTH), textureLog2(TIC80_HEIGHT));
studio.texture = SDL_CreateTexture(studio.renderer, STUDIO_PIXEL_FORMAT, SDL_TEXTUREACCESS_STREAMING, TEXTURE_SIZE, TEXTURE_SIZE);
initTouchGamepad();
}