Allow 1-tile offscreen rendering to prevent pop-in effect

This commit is contained in:
Shylie
2024-06-14 12:20:31 -04:00
parent e402b5f5a3
commit 4811e4d970
8 changed files with 61 additions and 60 deletions

View File

@@ -30,8 +30,8 @@ namespace
{
for (int k = 0; k < LAYER_COUNT; k++)
{
glerminal_set(i, j, k, rand() % 4);
glerminal_offset(i, j, k, (rand() * rand()) % 64 - 32, (rand() * rand()) % 64 - 32);
glerminal_set(i + 1, j + 1, k, rand() % 4);
glerminal_offset(i + 1, j + 1, k, (rand() * rand()) % 64 - 32, (rand() * rand()) % 64 - 32);
}
}
}

View File

@@ -9,9 +9,9 @@ namespace
{
glerminal_load_sprites_file("resources/basic.png");
for (int i = 0; i < GRID_WIDTH; i++)
for (int i = 0; i < GRID_WIDTH + 2; i++)
{
for (int j = 0; j < GRID_HEIGHT; j++)
for (int j = 0; j < GRID_HEIGHT + 2; j++)
{
glerminal_set(i, j, 0, 1);
}
@@ -25,9 +25,9 @@ namespace
time += dt;
time = fmodf(time, 3.1415926f * 2);
for (int i = 0; i < GRID_WIDTH; i++)
for (int i = 0; i < GRID_WIDTH + 2; i++)
{
for (int j = 0; j < GRID_HEIGHT; j++)
for (int j = 0; j < GRID_HEIGHT + 2; j++)
{
glerminal_offset(i, j, 0, cosf(time - i / 3.1415f), sinf(time - j / 3.1415f));
}

View File

@@ -18,16 +18,16 @@ namespace
{
glerminal_load_sprites_file("resources/rogue.png");
for (int i = 0; i < GRID_WIDTH; i++)
for (int i = 0; i < GRID_WIDTH + 2; i++)
{
for (int j = 0; j < GRID_HEIGHT; j++)
for (int j = 0; j < GRID_HEIGHT + 2; j++)
{
for (int k = 0; k < WALL_LAYERS; k++)
{
const unsigned char v = (k + 1) * (256 / WALL_LAYERS) - 1;
const unsigned int c = (0xFF << 24) | (v << 16) | (v << 8) | v;
if (i == 0 || j == 0 || i == GRID_WIDTH - 1 || j == GRID_HEIGHT - 1)
if (i == 1 || j == 1 || i == GRID_WIDTH || j == GRID_HEIGHT)
{
glerminal_set(i, j, k, floor);
}
@@ -48,12 +48,12 @@ namespace
static double time = 0;
time += dt;
const float cx = GRID_WIDTH / 2.0f * cosf(time / 2) + GRID_WIDTH / 2.0f;
const float cy = GRID_HEIGHT / 2.0f * sinf(time / 2) + GRID_HEIGHT / 2.0f;
const float cx = GRID_WIDTH / 2.0f * cosf(time / 2) + GRID_WIDTH / 2.0f + 0.5f;
const float cy = GRID_HEIGHT / 2.0f * sinf(time / 2) + GRID_HEIGHT / 2.0f + 0.5f;
for (int i = 0; i < GRID_WIDTH; i++)
for (int i = 0; i < GRID_WIDTH + 2; i++)
{
for (int j = 0; j < GRID_HEIGHT; j++)
for (int j = 0; j < GRID_HEIGHT + 2; j++)
{
for (int k = 0; k < WALL_LAYERS; k++)
{

View File

@@ -12,9 +12,9 @@ namespace
glerminal_load_sprites_file("resources/towers.png");
for (int i = 0; i < GRID_WIDTH; i++)
for (int i = 0; i < GRID_WIDTH + 2; i++)
{
for (int j = 0; j < GRID_HEIGHT; j++)
for (int j = 0; j < GRID_HEIGHT + 2; j++)
{
const int c = rand() % (LAYER_COUNT * 3 / 4) + LAYER_COUNT / 4;
for (int k = 0; k < c; k++)
@@ -40,12 +40,12 @@ namespace
time += dt;
const float cx = (GRID_WIDTH / 2.0f) * cosf(time / 3.1415f) + (GRID_WIDTH / 2.0f);
const float cy = (GRID_HEIGHT / 2.0f) * sinf(time / 3.1415f) + (GRID_HEIGHT / 2.0f);
const float cx = (GRID_WIDTH / 2.0f) * cosf(time / 3.1415f) + (GRID_WIDTH / 2.0f) + 0.5f;
const float cy = (GRID_HEIGHT / 2.0f) * sinf(time / 3.1415f) + (GRID_HEIGHT / 2.0f) + 0.5f;
for (int i = 0; i < GRID_WIDTH; i++)
for (int i = 0; i < GRID_WIDTH + 2; i++)
{
for (int j = 0; j < GRID_WIDTH; j++)
for (int j = 0; j < GRID_WIDTH + 2; j++)
{
for (int k = 0; k < LAYER_COUNT; k++)
{