mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
simplify gg; remove forced OpenGL dependency; graph builder /w hot code reloading
This commit is contained in:
@ -1,9 +1,9 @@
|
||||
module main
|
||||
|
||||
import gx
|
||||
import gl
|
||||
import gg
|
||||
import glfw
|
||||
import time
|
||||
import glfw
|
||||
|
||||
const (
|
||||
WIDTH = 1000
|
||||
@ -12,36 +12,30 @@ const (
|
||||
)
|
||||
|
||||
struct Context {
|
||||
mut:
|
||||
gg *gg.GG
|
||||
}
|
||||
|
||||
fn main() {
|
||||
glfw.init()
|
||||
mut ctx := &Context{gg: 0}
|
||||
window := glfw.create_window(glfw.WinCfg{
|
||||
title: 'graph builder'
|
||||
width: 1000
|
||||
height: 1000
|
||||
ptr: ctx
|
||||
})
|
||||
window.make_context_current()
|
||||
gg.init()
|
||||
ctx.gg = gg.new_context(gg.Cfg {
|
||||
width: 1000
|
||||
height: 1000
|
||||
use_ortho: true
|
||||
})
|
||||
for {
|
||||
gl.clear()
|
||||
gl.clear_color(255, 255, 255, 255)
|
||||
ctx:= &Context{
|
||||
gg: gg.new_context(gg.Cfg {
|
||||
width: WIDTH
|
||||
height: HEIGHT
|
||||
use_ortho: true
|
||||
create_window: true
|
||||
window_title: 'graph builder'
|
||||
window_user_ptr: ctx
|
||||
})
|
||||
}
|
||||
for {
|
||||
gg.clear(gx.White)
|
||||
ctx.draw()
|
||||
window.swap_buffers()
|
||||
glfw.wait_events()
|
||||
ctx.gg.render()
|
||||
}
|
||||
}
|
||||
|
||||
fn (ctx mut Context) draw() {
|
||||
[live]
|
||||
fn (ctx & Context) draw() {
|
||||
// x axis
|
||||
ctx.gg.draw_line(0, HEIGHT / 2, WIDTH, HEIGHT / 2)
|
||||
// y axis
|
||||
@ -50,9 +44,11 @@ fn (ctx mut Context) draw() {
|
||||
mut prev_y := f64(0)
|
||||
center := f64(WIDTH / 2)
|
||||
for x := f64(- 10); x <= f64(10); x += 0.01 {
|
||||
y := x * x * f64(SCALE)
|
||||
// gx.draw_line_c(center + prev_x, center+prev_y, center + int(x*float(10)), center+y, gx.BLACK)
|
||||
ctx.gg.draw_rect(int(center) + int(x * f64(SCALE)), int(center - y), 1, 1, gx.Black)
|
||||
//y := (x * x - 2) * f64(SCALE)
|
||||
y := (1.0 / x) * f64(SCALE)
|
||||
//ctx.gg.draw_line(int(center + prev_x), int(center+prev_y),
|
||||
//int(center + x*f64(10)), int(center+y))
|
||||
ctx.gg.draw_rect(int(center) + int(x * f64(SCALE)), int(center - y), 2, 1, gx.Black)
|
||||
// gx.draw_rect_f(center + (x * f64(SCALE)), center - y, 1, 1, gx.BLACK)
|
||||
prev_x = x
|
||||
prev_y = y
|
||||
|
Reference in New Issue
Block a user