Convert fb, console, klog to "static instance" namespacing structs
This commit is contained in:
1 parent
06242a0c9f
commit
98e992aad0
4 files changed
+102
-110
No files matched your search
+16
-18
@@ -3,32 +3,30 @@
|
||||
*/
|
||||
module hulk.console;
|
||||
|
||||
import hulk.framebuffer;
|
||||
import hulk.fb;
|
||||
import hulk.kfont;
|
||||
|
||||
struct Console
|
||||
struct console
|
||||
{
|
||||
Framebuffer * m_fb;
|
||||
size_t m_width;
|
||||
size_t m_height;
|
||||
size_t m_x;
|
||||
size_t m_y;
|
||||
private static __gshared size_t m_width;
|
||||
private static __gshared size_t m_height;
|
||||
private static __gshared size_t m_x;
|
||||
private static __gshared size_t m_y;
|
||||
|
||||
public void initialize(Framebuffer * fb)
|
||||
public static void initialize()
|
||||
{
|
||||
m_fb = fb;
|
||||
m_width = fb.width / kfont.advance;
|
||||
m_height = fb.height / kfont.line_height;
|
||||
}
|
||||
|
||||
public void clear()
|
||||
public static void clear()
|
||||
{
|
||||
m_fb.clear();
|
||||
fb.clear();
|
||||
m_x = 0u;
|
||||
m_y = 0u;
|
||||
}
|
||||
|
||||
public void write(char ch)
|
||||
public static void write(char ch)
|
||||
{
|
||||
if (ch == '\n')
|
||||
{
|
||||
@@ -48,25 +46,25 @@ struct Console
|
||||
if (m_y == m_height)
|
||||
{
|
||||
m_y--;
|
||||
m_fb.copy_rows_up(fb_y(m_height - 1u),
|
||||
fb.copy_rows_up(fb_y(m_height - 1u),
|
||||
(m_height - 1u) * kfont.line_height,
|
||||
kfont.line_height);
|
||||
}
|
||||
}
|
||||
|
||||
private void render_char(size_t x, size_t y, char ch)
|
||||
private static void render_char(size_t x, size_t y, char ch)
|
||||
{
|
||||
const(CharInfo) * ci = &kfont.chars[ch];
|
||||
m_fb.blit_alpha_bitmap(fb_x(x) + ci.left, fb_y(y) + ci.top - ci.height, ci.bitmap, ci.width, ci.height);
|
||||
fb.blit_alpha_bitmap(fb_x(x) + ci.left, fb_y(y) + ci.top - ci.height, ci.bitmap, ci.width, ci.height);
|
||||
}
|
||||
|
||||
private size_t fb_x(size_t x)
|
||||
private static size_t fb_x(size_t x)
|
||||
{
|
||||
return x * kfont.advance;
|
||||
}
|
||||
|
||||
private size_t fb_y(size_t y)
|
||||
private static size_t fb_y(size_t y)
|
||||
{
|
||||
return m_fb.height - ((y + 1u) * kfont.line_height);
|
||||
return fb.height - ((y + 1u) * kfont.line_height);
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user