本文整理汇总了Golang中github.com/go-gl/gl.Viewport函数的典型用法代码示例。如果您正苦于以下问题:Golang Viewport函数的具体用法?Golang Viewport怎么用?Golang Viewport使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Viewport函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: initScene
func initScene() (err error) {
gl.Enable(gl.TEXTURE_2D)
gl.Enable(gl.DEPTH_TEST)
gl.Enable(gl.LIGHTING)
gl.ClearColor(0.5, 0.5, 0.5, 0.0)
gl.ClearDepth(1)
gl.DepthFunc(gl.LEQUAL)
gl.Lightfv(gl.LIGHT0, gl.AMBIENT, ambient)
gl.Lightfv(gl.LIGHT0, gl.DIFFUSE, diffuse)
gl.Lightfv(gl.LIGHT0, gl.POSITION, lightpos)
gl.Enable(gl.LIGHT0)
gl.Viewport(0, 0, Width, Height)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Frustum(-1, 1, -1, 1, 1.0, 10.0)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
goph, err := os.Open("../../data/gopher.png")
if err != nil {
panic(err)
}
defer goph.Close()
texture, err = createTexture(goph)
return
}
示例2: render
func render() {
modelMatrix = trig.MatrixMult(trig.RotateY(math.Pi/360), modelMatrix)
gl.Viewport(0, 0, 768, 768)
gl.ClearColor(0.0, 0.0, 0, 0)
gl.Enable(gl.DEPTH_TEST)
raytraceProgram.Use()
mInput.UniformMatrix4f(false, (*[16]float32)(modelMatrix))
vInput.UniformMatrix4f(false, (*[16]float32)(viewMatrix))
pInput.UniformMatrix4f(false, (*[16]float32)(projMatrix))
glh.With(framebuffer, func() {
framebuffer.UpdateTextures()
gl.DrawBuffer(gl.COLOR_ATTACHMENT0)
gl.Clear(gl.COLOR_BUFFER_BIT)
gl.DepthFunc(gl.GREATER)
gl.CullFace(gl.BACK)
cube.Render(gl.TRIANGLES, raytraceProgram)
gl.DrawBuffer(gl.COLOR_ATTACHMENT1)
gl.Clear(gl.COLOR_BUFFER_BIT)
gl.DepthFunc(gl.LESS)
gl.CullFace(gl.FRONT)
cube.Render(gl.TRIANGLES, raytraceProgram)
})
}
示例3: Reshape
func Reshape(w, h int) {
gl.Viewport(0, 0, w, h)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Ortho(0, 100, 0, 100, -1, 1)
gl.MatrixMode(gl.MODELVIEW)
}
示例4: Reshape
func (v *Video) Reshape(width int, height int) {
x_offset := 0
y_offset := 0
r := ((float64)(height)) / ((float64)(width))
if r > 0.9375 { // Height taller than ratio
h := (int)(math.Floor((float64)(0.9375 * (float64)(width))))
y_offset = (height - h) / 2
height = h
} else if r < 0.9375 { // Width wider
var scrW, scrH float64
if ppu.OverscanEnabled {
scrW = 240.0
scrH = 224.0
} else {
scrW = 256.0
scrH = 240.0
}
w := (int)(math.Floor((float64)((scrH / scrW) * (float64)(height))))
x_offset = (width - w) / 2
width = w
}
gl.Viewport(x_offset, y_offset, width, height)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Ortho(-1, 1, -1, 1, -1, 1)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
gl.Disable(gl.DEPTH_TEST)
}
示例5: ResizeViewport
func (v *Viewport) ResizeViewport(w, h int) {
v.w = w
v.h = h
v.buildTrans()
allegro.RunInThread(func() {
gl.Viewport(0, 0, w, h)
})
}
示例6: Bind
// Binds the framebuffer for drawing.
func (fb *Framebuffer) Bind() {
fb.Buffer.Bind()
gl.Viewport(0, 0, fb.Width, fb.Height)
gl.Enable(gl.TEXTURE_2D)
gl.Disable(gl.DEPTH_TEST)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
gl.Enable(gl.BLEND)
}
示例7: Run
func (s *System) Run(ctx *scene.Context) {
s.init(ctx)
defer s.finish()
// TODO: take active camera node
w := float32(s.Width)
h := float32(s.Height)
projM := mathgl.Ortho(0, w, h, 0, -30, 30)
viewM := mathgl.Translate3D(0, 0, 0)
worldM := mathgl.Translate3D(0, 0, 0)
var rect struct {
WVP mathgl.Mat4f `uniform:"WorldViewProjectionM"`
Diffuse *gfx.Sampler2D `uniform:"Diffuse"`
geomobj gfx.Geometry
geom gfx.GeometryLayout
}
rect.WVP = projM.Mul4(viewM).Mul4(worldM)
s.cmds <- func() {
quadbuffer := geometry.NewBuilder(s.shader.VertexFormat())
quadbuffer.Clear()
quadbuffer.P(0, 0, 0).UV(-1, -1).Cf(1, 1, 1, 1)
quadbuffer.P(w/3, 0, 0).UV(-1, -1)
quadbuffer.P(w/3, h/3, 0).UV(-1, -1)
quadbuffer.P(0, h/3, 0).UV(-1, -1)
quadbuffer.Indices(0, 1, 2, 2, 0, 3)
rect.geomobj.Alloc(gfx.StaticDraw)
err := rect.geomobj.CopyFrom(quadbuffer)
if err != nil {
panic(err)
}
s.shader.Use()
rect.geom.Layout(&s.shader, &rect.geomobj)
/*
err = rect.geomobj.CopyFrom(quadbuffer)
if err != nil {
panic(err)
}
*/
whiteImg := image.NewNRGBA(image.Rect(0, 0, 1, 1))
whiteImg.Set(0, 0, color.White)
white, err := gfx.Image(whiteImg)
if err != nil {
panic(err)
}
rect.Diffuse = white
}
for ctx.Step() {
s.cmds <- func() {
gl.Viewport(0, 0, s.Width, s.Height)
gl.ClearColor(0, 0, 0, 1.0)
gl.ClearDepth(1)
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
}
s.meshes.update(s.cmds, &s.shader)
s.draw()
s.sync()
}
}
示例8: initGL
func initGL() {
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Viewport(0, 0, 800, 600)
gl.Ortho(0, 800, 600, 0, -1.0, 1.0)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
gl.ClearColor(0.1, 0.05, 0.0, 1.0)
}
示例9: reshape
// new window size
func reshape(window *glfw.Window, width, height int) {
gl.Viewport(0, 0, width, height)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Frustum(-1.0, 1.0, -1.0, 1.0, 1, 20)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
}
示例10: reshape
func reshape(w, h int) {
gl.Viewport(0, 0, w, h)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Ortho(0, float64(w), 0, float64(h), -1, 1)
gl.Scalef(1, -1, 1)
gl.Translatef(0, float32(-h), 0)
gl.MatrixMode(gl.MODELVIEW)
}
示例11: reshape
// new window size
func reshape(window *glfw.Window, width, height int) {
gl.Viewport(0, 0, width, height)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
glu.Perspective(45.0, float32(width)/float32(height), 0.1, 100.0)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
}
示例12: copiedInit
func copiedInit() {
gl.ClearColor(0, 0, 0, 0)
gl.ShadeModel(gl.FLAT)
gl.Enable(gl.CULL_FACE)
gl.Viewport(320, 240, 640, 480)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Frustum(-1, 1, -1, 1, 1.5, 20)
gl.MatrixMode(gl.MODELVIEW)
}
示例13: onResize
// onResize handles window resize events.
func onResize(window *glfw.Window, w, h int) {
if w < 1 {
w = 1
}
if h < 1 {
h = 1
}
gl.Viewport(0, 0, w, h)
}
示例14: onResize
// TODO Dynamically fetch size and render accordingly.
func onResize(w, h int) {
gl.Viewport(0, 0, w, h)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Ortho(0, float64(w), float64(h), 0, -1, 1)
gl.ClearColor(0.255, 0.255, 0.255, 0)
gl.Clear(gl.COLOR_BUFFER_BIT)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
// log.Printf("resized: %dx%d\n", w, h)
}
示例15: onResize
// onResize sets up a simple 2d ortho context based on the window size
func onResize(window *glfw.Window, w, h int) {
w, h = window.GetSize() // query window to get screen pixels
width, height := window.GetFramebufferSize()
gl.Viewport(0, 0, width, height)
gl.MatrixMode(gl.PROJECTION)
gl.LoadIdentity()
gl.Ortho(0, float64(w), 0, float64(h), -1, 1)
gl.MatrixMode(gl.MODELVIEW)
gl.LoadIdentity()
gl.ClearColor(1, 1, 1, 1)
}