105 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			105 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			V
		
	
	
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: 'Raven text'
 | 
						||
		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()
 | 
						||
}
 |