You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Due to the high resolution of the computer screen, the scene display is only a quarter of the interface, which needs to be modified:
//width, height := a.GetSize()
width, height := a.GetFramebufferSize() //replace
it worked~
package main
import (
"fmt"
"github.com/g3n/engine/app"
"github.com/g3n/engine/camera"
"github.com/g3n/engine/core"
"github.com/g3n/engine/geometry"
"github.com/g3n/engine/gls"
"github.com/g3n/engine/graphic"
"github.com/g3n/engine/gui"
"github.com/g3n/engine/light"
"github.com/g3n/engine/material"
"github.com/g3n/engine/math32"
"github.com/g3n/engine/renderer"
"github.com/g3n/engine/util/helper"
"github.com/g3n/engine/window"
"time"
)
func main() {
// Create application and scene
a := app.App("",800,600)
scene := core.NewNode()
// Set the scene to be managed by the gui manager
gui.Manager().Set(scene)
// Create perspective camera
cam := camera.New(1)
cam.SetPosition(0, 0, 3)
scene.Add(cam)
//scene.SetScale(2,2,1)
// Set up orbit control for the camera
camera.NewOrbitControl(cam)
// Set up callback to update viewport and camera aspect ratio when the window is resized
onResize := func(evname string, ev interface{}) {
// Get framebuffer size and update viewport accordingly
//width, height := a.GetSize()
width, height := a.GetFramebufferSize() //replace
a.Gls().Viewport(0, 0, int32(width), int32(height))
// Update the camera's aspect ratio
cam.SetAspect(float32(width) / float32(height))
}
a.Subscribe(window.OnWindowSize, onResize)
onResize("", nil)
// Create a blue torus and add it to the scene
geom := geometry.NewTorus(1, .4, 12, 32, math32.Pi*2)
mat := material.NewStandard(math32.NewColor("DarkBlue"))
mesh := graphic.NewMesh(geom, mat)
scene.Add(mesh)
// Create and add a button to the scene
btn := gui.NewButton("Make Red")
//btn.SetPosition(0, 0)
//btn.Panel.SetSize(10, 6)
btn.Subscribe(gui.OnClick, func(name string, ev interface{}) {
fmt.Println(a.IWindow.GetScale())
fmt.Println(a.IWindow.FullScreen())
fmt.Println(a.GetScale())
mat.SetColor(math32.NewColor("DarkRed"))
})
scene.Add(btn)
// Create and add lights to the scene
scene.Add(light.NewAmbient(&math32.Color{1.0, 1.0, 1.0}, 0.8))
pointLight := light.NewPoint(&math32.Color{1, 1, 1}, 5.0)
pointLight.SetPosition(1, 0, 2)
scene.Add(pointLight)
// Create and add an axis helper to the scene
scene.Add(helper.NewAxes(0.5))
// Set background color to gray
a.Gls().ClearColor(0.5, 0.5, 0.5, 1.0)
// Run the application
a.Run(func(renderer *renderer.Renderer, deltaTime time.Duration) {
a.Gls().Clear(gls.DEPTH_BUFFER_BIT | gls.STENCIL_BUFFER_BIT | gls.COLOR_BUFFER_BIT)
renderer.Render(scene, cam)
})
}
The text was updated successfully, but these errors were encountered:
Due to the high resolution of the computer screen, the scene display is only a quarter of the interface, which needs to be modified:
//width, height := a.GetSize()
width, height := a.GetFramebufferSize() //replace
it worked~
The text was updated successfully, but these errors were encountered: