0

GtkmmとGdk::Drawableを使って16進エディタのようなものを書こうとしています。正確には16進ビューです。

最初はひどいカイロを使ってみました。私もパンゴのどこにも近づいてはいけないと思います。

現在、私は次のようなものを使用しています。テキストに事前にレンダリングされた文字を使用します。

void HexView::on_vScrl_value_changed() {
    drawingArea.queue_draw();
}

bool HexView::DrawingArea::on_expose_event(GdkEventExpose* event) {
    /* */
    Glib::RefPtr<Gdk::Window> window = get_window();
    if(window && data && numBytes) {
        /* */
        unsigned int scrlY = hexView->vScrl.get_value();
        /* */

        for(/*loop visible bytes*/) {
            /* */
            window->draw_pixbuf(char_pixbuf, 0, 0, x, y, 20, 20, Gdk::RGB_DITHER_NONE, 0, 0);
        }
    }
    return true;
}

これにより、レンダリングとスクロールは耐えられるようになりますが、それでも低速です。CPUが引っ掛かり、小さなバネのハンドルをスクロールし、少し遅れました。800x300の小さな領域で:(

改善すべきアイデアはありますか?

Gtk :: TexViewウィジェットは大量のテキストを完全にレンダリングし、1600x1200ウィンドウでのスクロールは便利です。

4

0 に答える 0