gg: set_pixels() (#11236)
parent
a440b43630
commit
70a658a265
|
@ -0,0 +1,39 @@
|
||||||
|
module main
|
||||||
|
|
||||||
|
import gg
|
||||||
|
import gx
|
||||||
|
|
||||||
|
struct App {
|
||||||
|
mut:
|
||||||
|
gg &gg.Context
|
||||||
|
}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
mut app := &App{
|
||||||
|
gg: 0
|
||||||
|
}
|
||||||
|
app.gg = gg.new_context(
|
||||||
|
bg_color: gx.rgb(174, 198, 255)
|
||||||
|
width: 100
|
||||||
|
height: 100
|
||||||
|
window_title: 'Set Pixels'
|
||||||
|
frame_fn: frame
|
||||||
|
user_data: app
|
||||||
|
)
|
||||||
|
app.gg.run()
|
||||||
|
}
|
||||||
|
|
||||||
|
fn frame(mut app App) {
|
||||||
|
mut pixels := []f32{}
|
||||||
|
|
||||||
|
for x in 30 .. 60 {
|
||||||
|
for y in 30 .. 60 {
|
||||||
|
pixels << f32(x)
|
||||||
|
pixels << f32(y)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
app.gg.begin()
|
||||||
|
app.gg.set_pixels(pixels, gx.red)
|
||||||
|
app.gg.end()
|
||||||
|
}
|
21
vlib/gg/gg.v
21
vlib/gg/gg.v
|
@ -268,6 +268,27 @@ pub fn (ctx &Context) set_pixel(x f32, y f32, c gx.Color) {
|
||||||
ctx.draw_square(x, y, 1, c)
|
ctx.draw_square(x, y, 1, c)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn (ctx &Context) set_pixels(points []f32, c gx.Color) {
|
||||||
|
assert points.len % 2 == 0
|
||||||
|
len := points.len / 2
|
||||||
|
|
||||||
|
if c.a != 255 {
|
||||||
|
sgl.load_pipeline(ctx.timage_pip)
|
||||||
|
}
|
||||||
|
|
||||||
|
sgl.c4b(c.r, c.g, c.b, c.a)
|
||||||
|
sgl.begin_quads()
|
||||||
|
for i in 0 .. len {
|
||||||
|
x, y := points[i * 2], points[i * 2 + 1]
|
||||||
|
|
||||||
|
sgl.v2f(x * ctx.scale, y * ctx.scale)
|
||||||
|
sgl.v2f((x + 1) * ctx.scale, y * ctx.scale)
|
||||||
|
sgl.v2f((x + 1) * ctx.scale, (y + 1) * ctx.scale)
|
||||||
|
sgl.v2f(x * ctx.scale, (y + 1) * ctx.scale)
|
||||||
|
}
|
||||||
|
sgl.end()
|
||||||
|
}
|
||||||
|
|
||||||
pub fn (ctx &Context) draw_triangle(x f32, y f32, x2 f32, y2 f32, x3 f32, y3 f32, c gx.Color) {
|
pub fn (ctx &Context) draw_triangle(x f32, y f32, x2 f32, y2 f32, x3 f32, y3 f32, c gx.Color) {
|
||||||
if c.a != 255 {
|
if c.a != 255 {
|
||||||
sgl.load_pipeline(ctx.timage_pip)
|
sgl.load_pipeline(ctx.timage_pip)
|
||||||
|
|
Loading…
Reference in New Issue