v/vlib/gg
Alexander Medvednikov 36ec47cd20 all: replace "NB:" with "Note:" (docs/comments) 2022-03-06 20:01:22 +03:00
..
m4
testdata gg: improve small circle (r<20) looks 2022-01-26 10:32:14 +02:00
README.md tools: implement `cgen` tag for Markdown examples in `v check-md` (#13332) 2022-01-31 22:51:04 +02:00
draw.c.v ci: fix failing draw_fns_api_test.v on macos (after rename) 2022-01-26 15:32:06 +02:00
draw_fns_api_test.v ci: show failing compilation output in draw_fns_api_test.v (make diagnostic easier) 2022-02-22 16:53:06 +02:00
enums.v all: replace "NB:" with "Note:" (docs/comments) 2022-03-06 20:01:22 +03:00
gg.c.v all: replace "NB:" with "Note:" (docs/comments) 2022-03-06 20:01:22 +03:00
gg.js.v
gg.v
gg_android.c.v
gg_darwin.c.v
gg_darwin.m
image.c.v all: replace "NB:" with "Note:" (docs/comments) 2022-03-06 20:01:22 +03:00
image.js.v
image.v gg: add the gg.Context.remove_cached_image_by_idx() method (#13206) 2022-01-20 08:10:09 +02:00
import_gx.v gg: add a temporary import for gx + a gg.Color type alias for gx.Color, without using it 2022-01-29 21:42:19 +02:00
recorder.c.v
recorder.js.v
recorder.v
text_rendering.c.v os: add font module, move from gg (#13144) 2022-01-13 12:16:18 +02:00
text_rendering.js.v
text_rendering.v os: add font module, move from gg (#13144) 2022-01-13 12:16:18 +02:00

README.md

Description:

gg is V's simple graphics module. It is currently implemented using sokol, and makes easy creating apps that just need a way to draw simple 2D shapes, and to react to user's keyboard/mouse input.

Example:

module main

import gg
import gx

fn main() {
	mut context := gg.new_context(
		bg_color: gx.rgb(174, 198, 255)
		width: 600
		height: 400
		window_title: 'Polygons'
		frame_fn: frame
	)
	context.run()
}

fn frame(mut ctx gg.Context) {
	ctx.begin()
	ctx.draw_convex_poly([f32(100.0), 100.0, 200.0, 100.0, 300.0, 200.0, 200.0, 300.0, 100.0, 300.0],
		gx.blue)
	ctx.draw_poly_empty([f32(50.0), 50.0, 70.0, 60.0, 90.0, 80.0, 70.0, 110.0], gx.black)
	ctx.draw_triangle_filled(450, 142, 530, 280, 370, 280, gx.red)
	ctx.end()
}