1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/gg
2023-07-10 15:33:14 +03:00
..
m4 vfmt: implement support for // vfmt off and // vfmt on, with it, v fmt -w . now works. (#16335) 2022-11-05 09:08:01 +03:00
testdata ci: fix broken tests after 322eb81 2023-02-01 23:30:48 +02:00
draw_fns_api_test.v vfmt: change all '$expr' to '${expr}' (#16428) 2022-11-15 16:53:13 +03:00
draw.c.v all: 2023 copyright 2023-03-28 22:55:57 +02:00
enums.v all: 2023 copyright 2023-03-28 22:55:57 +02:00
gg_android_outside_termux.c.v Revert "gg: fix android compilation for ~/.vmodules/ui/examples/rectangles.v" 2022-07-06 16:19:40 +03:00
gg_darwin.c.v
gg_darwin.m
gg_ui.c.v gg: fix gg.scissor_rect behavior on Android (#17229) 2023-02-06 12:26:20 +02:00
gg.c.v examples: add examples/gg/many_thousands_of_circles.v, thanks to @xjunko, document how to use ctx.end(how:.passthru). (#18832) 2023-07-10 15:33:14 +03:00
gg.js.v gg: setup ctx.window.user_data and ctx.user_data on ctx.run(), instead of in gg.new_context, to allow for embedding gg.Context in ui (#17169) 2023-01-31 18:22:20 +02:00
gg.v all: 2023 copyright 2023-03-28 22:55:57 +02:00
image.c.v gg: make create_image() return !Image 2023-03-29 19:04:41 +02:00
image.js.v
image.v all: 2023 copyright 2023-03-28 22:55:57 +02:00
import_gx.v
README.md
recorder.c.v vfmt: change all '$expr' to '${expr}' (#16428) 2022-11-15 16:53:13 +03:00
recorder.js.v
recorder.v
text_rendering.c.v all: 2023 copyright 2023-03-28 22:55:57 +02:00
text_rendering.js.v
text_rendering.v all: 2023 copyright 2023-03-28 22:55:57 +02:00

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()
}