diff --git a/neercs/neercs.cpp b/neercs/neercs.cpp index 2b48871..e895818 100644 --- a/neercs/neercs.cpp +++ b/neercs/neercs.cpp @@ -92,23 +92,23 @@ void Neercs::TickGame(float seconds) } /* -.___ __ ______ ______ ______ ______ ______, - \° \| /° __ \° __ \° __ \/° ___//° ___/ - / ` > ____/ ____/ ,_ <_ <____\___ \ -/__/\___\______\______\__| \__/_____________\ + __ _________ ______ _____ ______ ______ + / \/ / __ Y __ Y __ \/ ___// ___/ + / / ____/ ____/ __ < <____\___ \ +/__/\__/\_______________/ \________________\ */ - int logo_x = (w - 45) / 2; + int logo_x = (w - 46) / 2; int logo_y = h / 2 - 2; caca_set_color_argb(m_caca, hex_color(0.5f + 0.5f * lol::cos(m_time * 3 ), 0.5f, 0.5f + 0.25f * lol::sin(m_time * 3 )), bg_color); - caca_put_str(m_caca, logo_x, logo_y ,".___ __ ______ ______ ______ ______ ______,"); + caca_put_str(m_caca, logo_x + 3, logo_y ,"__ _________ ______ _____ ______ ______"); caca_set_color_argb(m_caca, hex_color(0.5f + 0.5f * lol::cos(m_time * 3 + M_PI / 4 * 1), 0.5f, 0.5f + 0.25f * lol::sin(m_time * 3 + M_PI / 4 * 1)), bg_color); - caca_put_str(m_caca, logo_x, logo_y + 1, " \\° \\| /° __ \\° __ \\° __ \\/° ___//° ___/"); + caca_put_str(m_caca, logo_x + 2, logo_y + 1, "/ \\/ / __ Y __ Y __ \\/ ___// ___/"); caca_set_color_argb(m_caca, hex_color(0.5f + 0.5f * lol::cos(m_time * 3 + M_PI / 4 * 2), 0.5f, 0.5f + 0.25f * lol::sin(m_time * 3 + M_PI / 4 * 2)), bg_color); - caca_put_str(m_caca, logo_x, logo_y + 2, " / ` > ____/ ____/ ,_ <_ <____\\___ \\"); + caca_put_str(m_caca, logo_x + 1, logo_y + 2, "/ / ____/ ____/ __ < <____\\___ \\"); caca_set_color_argb(m_caca, hex_color(0.5f + 0.5f * lol::cos(m_time * 3 + M_PI / 4 * 3), 0.5f, 0.5f + 0.25f * lol::sin(m_time * 3 + M_PI / 4 * 3)), bg_color); - caca_put_str(m_caca, logo_x, logo_y + 3, "/__/\\___\\______\\______\\__| \\__/_____________\\"); + caca_put_str(m_caca, logo_x , logo_y + 3, "/__/\\__/\\_______________/ \\________________\\"); caca_set_color_argb(m_caca, 0xdef, bg_color); caca_put_str(m_caca, logo_x + 5, logo_y + 5, "ALL YOUR TERMINALS ARE BELONG TO US"); diff --git a/neercs/video/remanency.lolfx b/neercs/video/remanency.lolfx index c0b70c3..4ea79c2 100644 --- a/neercs/video/remanency.lolfx +++ b/neercs/video/remanency.lolfx @@ -13,9 +13,7 @@ void main() #version 120 uniform sampler2D texture; -uniform sampler2D texture_buffer1; -uniform sampler2D texture_buffer2; -uniform sampler2D texture_buffer3; +uniform sampler2D texture_buffer; uniform vec2 screen_size; uniform float time; uniform float value1; @@ -25,9 +23,7 @@ void main(void) { vec2 p=gl_TexCoord[0].xy; vec4 source=texture2D(texture,p); - vec4 buffer1=texture2D(texture_buffer1,p); - vec4 buffer2=texture2D(texture_buffer2,p); - vec4 buffer3=texture2D(texture_buffer3,p); - vec4 color=source*value1+buffer1*value2+buffer2*value2+buffer3*value2; + vec4 buffer=texture2D(texture_buffer,p); + vec4 color=source*value1+buffer*value2; gl_FragColor=color; } \ No newline at end of file diff --git a/neercs/video/render.cpp b/neercs/video/render.cpp index 95a2327..740d66d 100644 --- a/neercs/video/render.cpp +++ b/neercs/video/render.cpp @@ -116,9 +116,7 @@ ShaderUniform shader_blur_v_texture, shader_blur_v_time, shader_blur_v_value; ShaderUniform shader_remanency_texture, - shader_remanency_texture_buffer1, - shader_remanency_texture_buffer2, - shader_remanency_texture_buffer3, + shader_remanency_texture_buffer, shader_remanency_screen_size, shader_remanency_time, shader_remanency_value1, @@ -146,8 +144,7 @@ ShaderUniform shader_postfx_texture, shader_postfx_scanline, shader_postfx_sync; -FrameBuffer *fbo_back, *fbo_front; -FrameBuffer *fbo_buffer1, *fbo_buffer2, *fbo_buffer3, *fbo_buffer4, *fbo_buffer5, *fbo_buffer6; +FrameBuffer *fbo_back, *fbo_front, *fbo_buffer; FrameBuffer *fbo_blur_h, *fbo_blur_v, *fbo_ping, *fbo_pong; TextRender *text_render; @@ -186,12 +183,7 @@ int Render::InitDraw(void) /* Initialise framebuffer objects */ fbo_back = new FrameBuffer(screen_size); fbo_front = new FrameBuffer(screen_size); - fbo_buffer1 = new FrameBuffer(screen_size); - fbo_buffer2 = new FrameBuffer(screen_size); - fbo_buffer3 = new FrameBuffer(screen_size); - fbo_buffer4 = new FrameBuffer(screen_size); - fbo_buffer5 = new FrameBuffer(screen_size); - fbo_buffer6 = new FrameBuffer(screen_size); + fbo_buffer = new FrameBuffer(screen_size); fbo_blur_h = new FrameBuffer(screen_size / glow_fbo_size); fbo_blur_v = new FrameBuffer(screen_size / glow_fbo_size); fbo_ping = new FrameBuffer(screen_size); @@ -214,9 +206,7 @@ int Render::InitDraw(void) // shader remanency shader_remanency = Shader::Create(lolfx_remanency); shader_remanency_texture = shader_remanency->GetUniformLocation("texture"); - shader_remanency_texture_buffer1 = shader_remanency->GetUniformLocation("texture_buffer1"); - shader_remanency_texture_buffer2 = shader_remanency->GetUniformLocation("texture_buffer2"); - shader_remanency_texture_buffer3 = shader_remanency->GetUniformLocation("texture_buffer3"); + shader_remanency_texture_buffer = shader_remanency->GetUniformLocation("texture_buffer"); shader_remanency_screen_size = shader_remanency->GetUniformLocation("screen_size"); shader_remanency_time = shader_remanency->GetUniformLocation("time"); shader_remanency_value1 = shader_remanency->GetUniformLocation("value1"); @@ -440,13 +430,11 @@ void Render::Draw3D() fbo_ping->Bind(); shader_remanency->Bind(); shader_remanency->SetTexture(shader_remanency_texture, fbo_back->GetTexture(), 0); - shader_remanency->SetTexture(shader_remanency_texture_buffer1, fbo_buffer2->GetTexture(), 1); - shader_remanency->SetTexture(shader_remanency_texture_buffer2, fbo_buffer4->GetTexture(), 2); - shader_remanency->SetTexture(shader_remanency_texture_buffer3, fbo_buffer6->GetTexture(), 3); + shader_remanency->SetTexture(shader_remanency_texture_buffer, fbo_buffer->GetTexture(), 1); shader_remanency->SetUniform(shader_remanency_screen_size, vec2(1.0f)); shader_remanency->SetUniform(shader_remanency_time, fx_angle); shader_remanency->SetUniform(shader_remanency_value1, 0.25f); - shader_remanency->SetUniform(shader_remanency_value2, 0.25f); + shader_remanency->SetUniform(shader_remanency_value2, 0.75f); fs_quad(); shader_remanency->Unbind(); fbo_ping->Unbind(); @@ -455,24 +443,21 @@ void Render::Draw3D() draw_shader_simple(fbo_ping, 0); fbo_back->Unbind(); // save previous fbo - fbo_buffer6->Bind(); - draw_shader_simple(fbo_buffer5, 0); - fbo_buffer6->Unbind(); - fbo_buffer5->Bind(); - draw_shader_simple(fbo_buffer4, 0); - fbo_buffer5->Unbind(); - fbo_buffer4->Bind(); - draw_shader_simple(fbo_buffer3, 0); - fbo_buffer4->Unbind(); - fbo_buffer3->Bind(); - draw_shader_simple(fbo_buffer2, 0); - fbo_buffer3->Unbind(); - fbo_buffer2->Bind(); - draw_shader_simple(fbo_buffer1, 0); - fbo_buffer2->Unbind(); - fbo_buffer1->Bind(); - draw_shader_simple(fbo_front, 0); - fbo_buffer1->Unbind(); + fbo_ping->Bind(); + shader_remanency->Bind(); + shader_remanency->SetTexture(shader_remanency_texture, fbo_front->GetTexture(), 0); + shader_remanency->SetTexture(shader_remanency_texture_buffer, fbo_buffer->GetTexture(), 1); + shader_remanency->SetUniform(shader_remanency_screen_size, vec2(1.0f)); + shader_remanency->SetUniform(shader_remanency_time, fx_angle); + shader_remanency->SetUniform(shader_remanency_value1, 0.25f); + shader_remanency->SetUniform(shader_remanency_value2, 0.75f); + fs_quad(); + shader_remanency->Unbind(); + fbo_ping->Unbind(); + // shader simple + fbo_buffer->Bind(); + draw_shader_simple(fbo_ping, 0); + fbo_buffer->Unbind(); } if (m_shader_fx && m_shader_blur) diff --git a/neercs/video/resource/charset_amiga.png b/neercs/video/resource/charset_amiga.png new file mode 100644 index 0000000..ae141e8 Binary files /dev/null and b/neercs/video/resource/charset_amiga.png differ diff --git a/neercs/video/resource/charset_dos.png b/neercs/video/resource/charset_dos.png new file mode 100755 index 0000000..66cecc9 Binary files /dev/null and b/neercs/video/resource/charset_dos.png differ diff --git a/neercs/video/resource/map.png b/neercs/video/resource/map.png deleted file mode 100644 index e9d0f15..0000000 Binary files a/neercs/video/resource/map.png and /dev/null differ diff --git a/neercs/video/text-render.cpp b/neercs/video/text-render.cpp index 7eb6b80..9df2a78 100644 --- a/neercs/video/text-render.cpp +++ b/neercs/video/text-render.cpp @@ -40,7 +40,7 @@ TextRender::TextRender(caca_canvas_t *caca, ivec2 font_size) void TextRender::Init() { - m_font = new TileSet("tools/neercs/video/resource/map.png", + m_font = new TileSet("tools/neercs/video/resource/charset_amiga.png", ivec2(256, 256), ivec2(1)); m_shader = Shader::Create(lolfx_text);