mirror of
https://git.shylie.info/shylie/glerminal.git
synced 2025-10-03 13:30:16 +00:00
Per-layer tinting and scaling
This commit is contained in:
@@ -6,15 +6,15 @@ namespace
|
||||
{
|
||||
void init()
|
||||
{
|
||||
glerminal_update_sprite(0xFF00007F, {
|
||||
0x00FF007F, 0x00FF007F, 0x00FF007F, 0x00FF007F, 0x00FF007F, 0x00FF007F, 0x00FF007F, 0x00FF007F,
|
||||
0x00FF007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0x00FF007F,
|
||||
0x00FF007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0x00FF007F,
|
||||
0x00FF007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0x00FF007F,
|
||||
0x00FF007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0x00FF007F,
|
||||
0x00FF007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0x00FF007F,
|
||||
0x00FF007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0xFF00007F, 0x00FF007F,
|
||||
0x00FF007F, 0x00FF007F, 0x00FF007F, 0x00FF007F, 0x00FF007F, 0x00FF007F, 0x00FF007F, 0x00FF007F
|
||||
glerminal_update_sprite(1, {
|
||||
0x5000FF00, 0x5000FF00, 0x5000FF00, 0x5000FF00, 0x5000FF00, 0x5000FF00, 0x5000FF00, 0x5000FF00,
|
||||
0x5000FF00, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x5000FF00,
|
||||
0x5000FF00, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x5000FF00,
|
||||
0x5000FF00, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x5000FF00,
|
||||
0x5000FF00, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x5000FF00,
|
||||
0x5000FF00, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x5000FF00,
|
||||
0x5000FF00, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x500000FF, 0x5000FF00,
|
||||
0x5000FF00, 0x5000FF00, 0x5000FF00, 0x5000FF00, 0x5000FF00, 0x5000FF00, 0x5000FF00, 0x5000FF00
|
||||
});
|
||||
}
|
||||
|
||||
@@ -37,10 +37,10 @@ namespace
|
||||
{
|
||||
for (int j = 0; j < 25; j++)
|
||||
{
|
||||
for (int k = 0; k < 8; k++)
|
||||
for (int k = 0; k < 256; k++)
|
||||
{
|
||||
glerminal_set(i, j, k, rand() % 2);
|
||||
glerminal_offset(i, j, k, (rand() * rand()) % 100 - 50, (rand() * rand()) % 100 - 50);
|
||||
glerminal_set(i, j, k, rand() % 8 == 0);
|
||||
glerminal_offset(i, j, k, (rand() * rand()) % 64 - 32, (rand() * rand()) % 64 - 32);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -7,34 +7,25 @@ namespace
|
||||
{
|
||||
void init()
|
||||
{
|
||||
for (int i = 1; i < 256; i++)
|
||||
{
|
||||
constexpr unsigned char c = 16;
|
||||
const unsigned char v = (255 - c) * powf((i - 1) / 256.0f, 4.0f) + c;
|
||||
const unsigned int j = (0xFF << 24) | (v << 16) | (v << 8) | v;
|
||||
glerminal_update_sprite(i,
|
||||
{
|
||||
j,j,j,j,j,j,j,j,
|
||||
j,j,j,j,j,j,j,j,
|
||||
j,j,j,j,j,j,j,j,
|
||||
j,j,j,j,j,j,j,j,
|
||||
j,j,j,j,j,j,j,j,
|
||||
j,j,j,j,j,j,j,j,
|
||||
j,j,j,j,j,j,j,j,
|
||||
j,j,j,j,j,j,j,j,
|
||||
});
|
||||
}
|
||||
|
||||
for (int i = 0; i < 40; i++)
|
||||
{
|
||||
for (int j = 0; j < 25; j++)
|
||||
glerminal_update_sprite(1,
|
||||
{
|
||||
const int c = rand() % 224 + 32;
|
||||
for (int k = 0; k < c; k++)
|
||||
{
|
||||
glerminal_set(i, j, k, k);
|
||||
}
|
||||
}
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,0xFFFFFFFF,
|
||||
});
|
||||
|
||||
for (int i = 0; i < 256; i++)
|
||||
{
|
||||
constexpr unsigned char c = 32;
|
||||
const unsigned char v = (255 - c) * powf((i - 1) / 256.0f, 2.0f) + c;
|
||||
const unsigned int j = (0xFF << 24) | (v << 16) | (v << 8) | v;
|
||||
glerminal_layer_color(i, j);
|
||||
glerminal_layer_scale(i, i / 256.0f + 1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,7 +35,7 @@ namespace
|
||||
|
||||
time += dt;
|
||||
|
||||
if (time < 1.0f)
|
||||
if (time < 0.15f)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -60,11 +51,20 @@ namespace
|
||||
{
|
||||
for (int j = 0; j < 25; j++)
|
||||
{
|
||||
const int c = rand() % 224 + 32;
|
||||
for (int k = 0; k < 256; k++)
|
||||
{
|
||||
const float ox = 0.025f * powf(k, 0.8f) * (i - cx);
|
||||
const float oy = 0.025f * powf(k, 0.8f) * (j - cy);
|
||||
glerminal_offset(i, j, k, ox, oy);
|
||||
if (k < c)
|
||||
{
|
||||
glerminal_set(i, j, k, 1);
|
||||
const float ox = 0.01f * k * (i - cx);
|
||||
const float oy = 0.01f * k * (j - cy);
|
||||
glerminal_offset(i, j, k, ox + (1 + 0.004f * k) * cosf(c * i + k * 6.28f / 128.0f), oy + (1 + 0.004f * k) * sinf(c * j + k * 6.28f / 128.0f));
|
||||
}
|
||||
else
|
||||
{
|
||||
glerminal_set(i, j, k, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user