diff options
Diffstat (limited to 'v_windows/v/old/examples/gg/raven_text_rendering.v')
-rw-r--r-- | v_windows/v/old/examples/gg/raven_text_rendering.v | 104 |
1 files changed, 104 insertions, 0 deletions
diff --git a/v_windows/v/old/examples/gg/raven_text_rendering.v b/v_windows/v/old/examples/gg/raven_text_rendering.v new file mode 100644 index 0000000..2007787 --- /dev/null +++ b/v_windows/v/old/examples/gg/raven_text_rendering.v @@ -0,0 +1,104 @@ +module main + +import gg +import gx +import os +import math + +const ( + win_width = 600 + win_height = 700 + bg_color = gx.white +) + +const ( + text = ' +Once upon a midnight dreary, while I pondered, weak and weary, +Over many a quaint and curious volume of forgotten lore— + While I nodded, nearly napping, suddenly there came a tapping, +As of some one gently rapping, rapping at my chamber door. +“’Tis some visitor,” I muttered, “tapping at my chamber door— + Only this and nothing more.” + + Ah, distinctly I remember it was in the bleak December; +And each separate dying ember wrought its ghost upon the floor. + Eagerly I wished the morrow;—vainly I had sought to borrow + From my books surcease of sorrow—sorrow for the lost Lenore— +For the rare and radiant maiden whom the angels name Lenore— + Nameless here for evermore. + + And the silken, sad, uncertain rustling of each purple curtain +Thrilled me—filled me with fantastic terrors never felt before; + So that now, to still the beating of my heart, I stood repeating + “’Tis some visitor entreating entrance at my chamber door— +Some late visitor entreating entrance at my chamber door;— + This it is and nothing more.” + + Presently my soul grew stronger; hesitating then no longer, +“Sir,” said I, “or Madam, truly your forgiveness I implore; + But the fact is I was napping, and so gently you came rapping, + And so faintly you came tapping, tapping at my chamber door, +That I scarce was sure I heard you”—here I opened wide the door;— + Darkness there and nothing more. + +Deep into that darkness peering, long I stood there wondering, fearing, +Doubting, dreaming dreams no mortal ever dared to dream before; + But the silence was unbroken, and the stillness gave no token, + And the only word there spoken was the whispered word, “Lenore?” +This I whispered, and an echo murmured back the word, “Lenore!”— + Merely this and nothing more. + + Back into the chamber turning, all my soul within me burning, +Soon again I heard a tapping somewhat louder than before. + “Surely,” said I, “surely that is something at my window lattice; + Let me see, then, what thereat is, and this mystery explore— +Let my heart be still a moment and this mystery explore;— + ’Tis the wind and nothing more!” +' + lines = text.split('\n') +) + +struct App { +mut: + gg &gg.Context +} + +fn main() { + mut app := &App{ + gg: 0 + } + mut font_path := os.resource_abs_path(os.join_path('..', 'assets', 'fonts', 'RobotoMono-Regular.ttf')) + $if android { + font_path = 'fonts/RobotoMono-Regular.ttf' + } + app.gg = gg.new_context( + width: win_width + height: win_height + create_window: true + window_title: 'Empty window' + user_data: app + bg_color: bg_color + frame_fn: frame + font_path: font_path // window_user_ptr: ctx + // native_rendering: true + ) + app.gg.run() +} + +fn frame(mut app App) { + app.gg.begin() + width := gg.window_size().width + mut scale_factor := math.round(f32(width) / win_width) + if scale_factor <= 0 { + scale_factor = 1 + } + text_cfg := gx.TextCfg{ + size: 16 * int(scale_factor) + } + mut y := 10 + for line in lines { + app.gg.draw_text(10, y, line, text_cfg) + y += 30 + } + app.gg.end() +} |