mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
new gg/freetype modules with sokol/fontstash backends
This commit is contained in:
50
examples/gg2.v
Normal file
50
examples/gg2.v
Normal file
@@ -0,0 +1,50 @@
|
||||
module main
|
||||
|
||||
import gg2 // as gg
|
||||
import gx
|
||||
|
||||
const (
|
||||
win_width = 600
|
||||
win_height = 300
|
||||
)
|
||||
|
||||
struct App {
|
||||
mut:
|
||||
gg &gg2.GG
|
||||
}
|
||||
|
||||
fn main() {
|
||||
mut app := &App{}
|
||||
app.gg = gg2.new_context({
|
||||
bg_color: gx.white
|
||||
width: win_width
|
||||
height: win_height
|
||||
use_ortho: true // This is needed for 2D drawing
|
||||
create_window: true
|
||||
window_title: 'Empty window'
|
||||
frame_fn: frame
|
||||
user_data: app
|
||||
font_path: 'examples/tetris/RobotoMono-Regular.ttf'
|
||||
})
|
||||
app.gg.run()
|
||||
}
|
||||
|
||||
fn frame(user_data voidptr) {
|
||||
mut app := &App(user_data)
|
||||
mut gg := app.gg
|
||||
gg.begin()
|
||||
if gg.fons == 0 {
|
||||
gg.init_font()
|
||||
}
|
||||
app.draw()
|
||||
C.sfons_flush(gg.fons)
|
||||
gg.end()
|
||||
}
|
||||
|
||||
fn (app &App) draw() {
|
||||
app.gg.draw_text_def(200,20, 'hello world!')
|
||||
app.gg.draw_text_def(300,300, 'привет')
|
||||
app.gg.draw_rect(10, 10, 100, 30, gx.blue)
|
||||
app.gg.draw_empty_rect(10, 150, 80, 40, gx.green)
|
||||
}
|
||||
|
@@ -52,7 +52,7 @@ fn init(user_data voidptr) {
|
||||
})
|
||||
s := &C.sgl_desc_t{}
|
||||
C.sgl_setup(s)
|
||||
state.fons = C.sfons_create(512, 512, 1)
|
||||
state.fons = sfons.create(512, 512, 1)
|
||||
// or use DroidSerif-Regular.ttf
|
||||
if bytes := os.read_bytes(os.resource_abs_path('assets/ProggyTiny.ttf')) {
|
||||
println('loaded font: $bytes.len')
|
||||
|
Reference in New Issue
Block a user