Annotation of nono/vm/newsfb.cpp, revision 1.1

1.1     ! root        1: //
        !             2: // nono
        !             3: // Copyright (C) 2022 nono project
        !             4: // Licensed under nono-license.txt
        !             5: //
        !             6: 
        !             7: //
        !             8: // NEWS のフレームバッファ(予定地)
        !             9: //
        !            10: 
        !            11: #include "newsfb.h"
        !            12: 
        !            13: // コンストラクタ
        !            14: NewsfbDevice::NewsfbDevice()
        !            15:        : inherited(OBJ_NEWSFB)
        !            16: {
        !            17:        console.Init(80, 32, TextScreen::Console);
        !            18: 
        !            19:        monitor.func = ToMonitorCallback(&NewsfbDevice::MonitorUpdate);
        !            20:        monitor.SetSize(console.GetCol(), console.GetRow());
        !            21:        monitor.Regist(ID_MONITOR_ROMCONS);
        !            22: }
        !            23: 
        !            24: // デストラクタ
        !            25: NewsfbDevice::~NewsfbDevice()
        !            26: {
        !            27: }
        !            28: 
        !            29: void
        !            30: NewsfbDevice::ResetHard(bool poweron)
        !            31: {
        !            32:        console.Clear();
        !            33: }
        !            34: 
        !            35: void
        !            36: NewsfbDevice::Putc(int ch)
        !            37: {
        !            38:        if (ch == '\t') {
        !            39:                // タブはここでスペースに展開
        !            40:                int x = console.GetX();
        !            41:                int next = roundup(x, 8);
        !            42:                for (; x < next; x++) {
        !            43:                        console.Putc(' ');
        !            44:                }
        !            45:                return;
        !            46:        }
        !            47:        console.Putc(ch);
        !            48: }
        !            49: 
        !            50: void
        !            51: NewsfbDevice::MonitorUpdate(Monitor *, TextScreen& screen)
        !            52: {
        !            53:        int row = console.GetRow();
        !            54:        int col = console.GetCol();
        !            55:        const auto& src = console.GetBuf();
        !            56: 
        !            57:        int s = 0;
        !            58:        for (int y = 0; y < row; y++) {
        !            59:                for (int x = 0; x < col; x++) {
        !            60:                        screen.Putc(x, y, src[s++]);
        !            61:                }
        !            62:        }
        !            63: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.