v/vlib/gg
Larpon 3ae4513e2e
sokol: update to floooh/sokol from 27-Dec-2021 (4ff3ed7) (#13044)
2022-01-05 18:23:14 +02:00
..
m4 checker: improve checking of a << b, when a and b are numbers (#12589) 2021-11-29 03:48:49 +03:00
testdata gg: renaming drawing functions (#12913) 2021-12-23 13:31:25 +02:00
README.md docs: adding skeleton README.md files for all vlib modules (#13034) 2022-01-05 18:06:08 +02:00
draw_fns_api_test.v gg: add draw_ellipse_filled() + draw_ellipse_empty() APIs (#12869) 2021-12-17 21:19:18 +02:00
enums.v all: update copyright year 2022-01-04 12:21:12 +03:00
gg.c.v sokol: update to floooh/sokol from 27-Dec-2021 (4ff3ed7) (#13044) 2022-01-05 18:23:14 +02:00
gg.js.v sokol: type alias all `sapp` structs (#12962) 2021-12-26 13:02:51 +02:00
gg.v all: update copyright year 2022-01-04 12:21:12 +03:00
gg_android.c.v ci: fix some of `v test-cleancode` 2 2021-04-05 20:55:03 +03:00
gg_darwin.c.v scanner: make the 1. float error a warning for now 2021-08-25 16:58:54 +03:00
gg_darwin.m scanner: make the 1. float error a warning for now 2021-08-25 16:58:54 +03:00
image.c.v all: update copyright year 2022-01-04 12:21:12 +03:00
image.js.v gg: move code using C types to c.v files, add js.v files (#12873) 2021-12-17 15:22:09 +02:00
image.v all: update copyright year 2022-01-04 12:21:12 +03:00
recorder.c.v gg: move code using C types to c.v files, add js.v files (#12873) 2021-12-17 15:22:09 +02:00
recorder.js.v gg: move code using C types to c.v files, add js.v files (#12873) 2021-12-17 15:22:09 +02:00
recorder.v gg: move code using C types to c.v files, add js.v files (#12873) 2021-12-17 15:22:09 +02:00
text_rendering.c.v all: update copyright year 2022-01-04 12:21:12 +03:00
text_rendering.js.v gg: add text rendering, keyboard event handling for JS and other fixes (#12932) 2021-12-22 12:26:52 +02:00
text_rendering.v all: update copyright year 2022-01-04 12:21:12 +03: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()
}