本文整理汇总了Golang中github.com/go-gl/glfw.WindowParam函数的典型用法代码示例。如果您正苦于以下问题:Golang WindowParam函数的具体用法?Golang WindowParam怎么用?Golang WindowParam使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了WindowParam函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: main
func main() {
if err := glfw.Init(); err != nil {
fmt.Fprintf(os.Stderr, "[e] %v\n", err)
return
}
defer glfw.Terminate()
if err := glfw.OpenWindow(appWidth, appHeight, 8, 8, 8, 8, 24, 8, glfw.Windowed); err != nil {
fmt.Fprintf(os.Stderr, "[e] %v\n", err)
return
}
defer glfw.CloseWindow()
if err := gl.Init(); err != 0 {
fmt.Fprintf(os.Stderr, "[e] %v\n", err)
return
}
glfw.SetWindowTitle(title)
fps := fps.NewFPS(glfw.Time())
blocks.Init(appWidth, appHeight)
for glfw.WindowParam(glfw.Opened) == 1 {
blocks.Tick()
fps.Tick(glfw.Time())
if glfw.WindowParam(glfw.Active) == 1 {
glfw.Sleep(0.001)
} else {
glfw.Sleep(0.05)
}
}
}
开发者ID:samnm,项目名称:goblocks,代码行数:32,代码来源:main.go
示例2: main
func main() {
var err error
if err = glfw.Init(); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.Terminate()
// Open window with FSAA samples (if possible).
glfw.OpenWindowHint(glfw.FsaaSamples, 4)
if err = glfw.OpenWindow(400, 400, 0, 0, 0, 0, 0, 0, glfw.Windowed); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.CloseWindow()
glfw.SetWindowTitle("Aliasing Detector")
glfw.SetSwapInterval(1)
if samples := glfw.WindowParam(glfw.FsaaSamples); samples != 0 {
fmt.Printf("Context reports FSAA is supported with %d samples\n", samples)
} else {
fmt.Printf("Context reports FSAA is unsupported\n")
}
gl.MatrixMode(gl.PROJECTION)
glu.Perspective(0, 1, 0, 1)
for glfw.WindowParam(glfw.Opened) == 1 {
time := float32(glfw.Time())
gl.Clear(gl.COLOR_BUFFER_BIT)
gl.LoadIdentity()
gl.Translatef(0.5, 0, 0)
gl.Rotatef(time, 0, 0, 1)
gl.Enable(GL_MULTISAMPLE_ARB)
gl.Color3f(1, 1, 1)
gl.Rectf(-0.25, -0.25, 0.25, 0.25)
gl.LoadIdentity()
gl.Translatef(-0.5, 0, 0)
gl.Rotatef(time, 0, 0, 1)
gl.Disable(GL_MULTISAMPLE_ARB)
gl.Color3f(1, 1, 1)
gl.Rectf(-0.25, -0.25, 0.25, 0.25)
glfw.SwapBuffers()
}
}
开发者ID:hsalokor,项目名称:examples,代码行数:54,代码来源:main.go
示例3: main
func main() {
var err error
if err = glfw.Init(); err != nil { ///初始化环境
log.Fatalf("%v\n", err)
return
}
defer glfw.Terminate() /// 销毁环境
if err = glfw.OpenWindow(Width, Height, 8, 8, 8, 8, 0, 8, glfw.Windowed); err != nil { ///创建窗口
log.Fatalf("%v\n", err)
return
}
defer glfw.CloseWindow() /// 销毁窗口
glfw.SetSwapInterval(1)
glfw.SetWindowTitle(Title) ///设置标题
glfw.SetWindowSizeCallback(onResize) /// 回调窗口变化
glfw.SetKeyCallback(onKey) ///回调按键
initGL()
running = true
for running && glfw.WindowParam(glfw.Opened) == 1 {
drawScene()
}
}
开发者ID:bonly,项目名称:exercise,代码行数:26,代码来源:20110515_nehe03.go
示例4: main
func main() {
if err := glfw.Init(); err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err.Error())
return
}
defer glfw.Terminate()
glfw.OpenWindowHint(glfw.FsaaSamples, 4)
glfw.OpenWindowHint(glfw.OpenGLVersionMajor, 3)
glfw.OpenWindowHint(glfw.OpenGLVersionMinor, 3)
glfw.OpenWindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)
if err := glfw.OpenWindow(1024, 768, 0, 0, 0, 0, 32, 0, glfw.Windowed); err != nil {
fmt.Fprintf(os.Stderr, "%s\n", err.Error())
return
}
gl.Init()
gl.GetError() // Ignore error
glfw.SetWindowTitle("Tutorial 01")
glfw.Enable(glfw.StickyKeys)
gl.ClearColor(0., 0., 0.4, 0.)
// Equivalent to a do... while
for ok := true; ok; ok = (glfw.Key(glfw.KeyEsc) != glfw.KeyPress && glfw.WindowParam(glfw.Opened) == gl.TRUE) {
glfw.SwapBuffers()
}
}
开发者ID:GlenKelley,项目名称:mathgl,代码行数:30,代码来源:main.go
示例5: main
func main() {
var err error
if err = glfw.Init(); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.Terminate()
if err = glfw.OpenWindow(Width, Height, 8, 8, 8, 8, 0, 8, glfw.Windowed); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.CloseWindow()
glfw.SetSwapInterval(1)
glfw.SetWindowTitle(Title)
glfw.SetWindowSizeCallback(onResize)
glfw.SetKeyCallback(onKey)
if err = initGL(); err != nil {
log.Fatalf("%v\n", err)
return
}
defer destroyGL()
running = true
for running && glfw.WindowParam(glfw.Opened) == 1 {
drawScene()
}
}
开发者ID:bonly,项目名称:exercise,代码行数:33,代码来源:20110518_nehe07.go
示例6: RunGame
func RunGame(title string, width, height int, init, draw func()) {
if err := glfw.Init(); err != nil {
fmt.Fprintf(os.Stderr, "glfw: %s\n", err)
return
}
defer glfw.Terminate()
glfw.OpenWindowHint(glfw.WindowNoResize, 1)
if err := glfw.OpenWindow(width, height, 0, 0, 0, 0, 16, 0, glfw.Windowed); err != nil {
fmt.Fprintf(os.Stderr, "glfw: %s\n", err)
return
}
defer glfw.CloseWindow()
glfw.SetSwapInterval(1)
glfw.SetWindowTitle(title)
if err := gl.Init(); err != nil {
fmt.Fprintf(os.Stderr, "gl: %s\n", err)
}
if err := initScene(width, height, init); err != nil {
fmt.Fprintf(os.Stderr, "init: %s\n", err)
return
}
// defer destroyScene()
for glfw.WindowParam(glfw.Opened) == 1 {
drawScene(draw)
glfw.SwapBuffers()
}
}
开发者ID:jaredly,项目名称:rocks,代码行数:33,代码来源:draw.go
示例7: main
func main() {
var err error
if err = glfw.Init(); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.Terminate()
if err = glfw.OpenWindow(640, 480, 8, 8, 8, 8, 0, 0, glfw.Windowed); err != nil {
log.Fatalf("%v\n", err)
return
}
defer glfw.CloseWindow()
glfw.SetWindowTitle("Draw")
glfw.SetSwapInterval(1)
glfw.SetKeyCallback(onKey)
glfw.SetMouseButtonCallback(onMouseBtn)
glfw.SetWindowSizeCallback(onResize)
running = true
for running && glfw.WindowParam(glfw.Opened) == 1 {
if mouse[0] != 0 {
pen.lineTo(glfw.MousePos())
} else {
pen.moveTo(glfw.MousePos())
}
glfw.SwapBuffers()
}
}
开发者ID:jayschwa,项目名称:examples,代码行数:33,代码来源:main.go
示例8: onThreadWin
func (_ *NgLoop) onThreadWin() {
Stats.FrameWinThread.begin()
if glfw.PollEvents(); glfw.WindowParam(glfw.Opened) == 1 {
Loop.On.WinThread()
} else {
Loop.Running = false
}
Stats.FrameWinThread.end()
}
开发者ID:Raven67854,项目名称:go-ngine,代码行数:9,代码来源:ng-loop.go
示例9: Render
// Render renders the OpenGL backend.
func (e *Emu) Render() {
for glfw.WindowParam(glfw.Opened) != 0 {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.LoadIdentity()
e.disp.Render()
glfw.SwapBuffers()
}
}
开发者ID:jteeuwen,项目名称:dcpu,代码行数:11,代码来源:emu.go
示例10: Test
func Test(t *testing.T) {
err := glfw.Init()
if err != nil {
t.Fatal(err)
}
defer glfw.Terminate()
err = glfw.OpenWindow(800, 600, 8, 8, 8, 0, 0, 0, glfw.Windowed)
if err != nil {
t.Fatal(err)
}
defer glfw.CloseWindow()
kb := New()
kb.Bind(func() {
fmt.Println("pressed s")
}, "s")
kb.Bind(func() {
fmt.Println("pressed ctrl+s or command+s")
}, "ctrl+s", "command+s")
kb.Bind(func() {
fmt.Println("pressed 't e s t'")
}, "t e s t")
kb.Bind(func() {
fmt.Println("pressed '3'")
}, "3")
kb.Bind(func() {
fmt.Println("pressed '#'")
}, "#")
kb.Bind(func() {
glfw.CloseWindow()
}, "escape")
// Print available keybindings.
fmt.Printf("Known key bindings:\n")
for _, b := range kb.Bindings() {
fmt.Printf(" - %q\n", b)
}
// Go into GLFW's main event loop.
for glfw.WindowParam(glfw.Opened) == 1 {
glfw.SwapBuffers()
}
}
开发者ID:jteeuwen,项目名称:keyboard,代码行数:51,代码来源:keyboard_test.go
示例11: main
func main() {
// This file holds the actual glyph shapes.
imgFile, err := gas.Abs("github.com/go-gl/examples/data/bitmap_font.png")
if err != nil {
log.Printf("Find font image file: %v", err)
return
}
// This file is a JSON encoded dataset which describes the font
// and contains the pixel offsets and sizes for each glyph in
// bitmap_font.png. Both files are needed to load a bitmap font.
configFile, err := gas.Abs("github.com/go-gl/examples/data/bitmap_font.js")
if err != nil {
log.Printf("Find font config file: %v", err)
return
}
err = initGL()
if err != nil {
log.Printf("InitGL: %v", err)
return
}
defer glfw.Terminate()
// Load the same bitmap font at different scale factors.
for i := range fonts {
fonts[i], err = loadFont(imgFile, configFile, i+1)
if err != nil {
log.Printf("LoadFont: %v", err)
return
}
defer fonts[i].Release()
}
for glfw.WindowParam(glfw.Opened) > 0 {
gl.Clear(gl.COLOR_BUFFER_BIT)
err = drawString(10, 10, "0 1 2 3 4 5 6 7 8 9 A B C D E F")
if err != nil {
log.Printf("Printf: %v", err)
return
}
glfw.SwapBuffers()
}
}
开发者ID:jayschwa,项目名称:examples,代码行数:48,代码来源:main.go
示例12: Loop
func (v *Video) Loop() {
go func(c chan *Frame) {
for {
frame := <-c
v.frame = frame
}
}(v.Frames)
for glfw.WindowParam(glfw.Opened) == gl.TRUE {
if v.frame != nil {
v.Render(v.frame.Data, v.frame.Width, v.frame.Height)
}
runtime.Gosched()
}
glfw.Terminate()
}
开发者ID:samfoo,项目名称:gones,代码行数:17,代码来源:video.go
示例13: MainLoop
func MainLoop() bool {
running = true
if nextScene != nil {
s := nextScene
nextScene = nil
LoadScene(s)
}
insideGameloop = true
if running && glfw.WindowParam(glfw.Opened) == 1 {
Run()
} else {
return false
}
insideGameloop = false
return true
}
开发者ID:gulinfang,项目名称:GarageEngine,代码行数:19,代码来源:Engine.go
示例14: Render
func (rw *RenderWindow) Render() {
if glfw.WindowParam(glfw.Opened) == 0 {
close(rw.quit)
}
for i, c := range rw.Channels {
select {
case val := <-c.Buffer:
if int64(len(rw.renderBuffers[i])) > rw.Width {
rw.renderBuffers[i] = rw.renderBuffers[i][1:]
}
rw.renderBuffers[i] = append(rw.renderBuffers[i], val)
case <-rw.quit:
rw.Close()
default:
continue
}
}
rw.draw()
}
开发者ID:jreimers,项目名称:goscilloscope,代码行数:19,代码来源:window.go
示例15: main
func main() {
err := initGL()
if err != nil {
log.Printf("InitGL: %v", err)
return
}
defer glfw.Terminate()
mb := createBuffer()
defer mb.Release()
// Perform the rendering.
var angle float32
for glfw.WindowParam(glfw.Opened) > 0 {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.LoadIdentity()
gl.Translatef(0, 0, -6)
gl.Rotatef(angle, 1, 1, 1)
// Render a solid cube at half the scale.
gl.Scalef(0.2, 0.2, 0.2)
gl.Enable(gl.COLOR_MATERIAL)
gl.Enable(gl.POLYGON_OFFSET_FILL)
gl.PolygonMode(gl.FRONT_AND_BACK, gl.FILL)
mb.Render(gl.QUADS)
// Render wireframe cubes, with incremental size.
gl.Disable(gl.COLOR_MATERIAL)
gl.Disable(gl.POLYGON_OFFSET_FILL)
gl.PolygonMode(gl.FRONT_AND_BACK, gl.LINE)
for i := 0; i < 50; i++ {
scale := 0.004*float32(i) + 1.0
gl.Scalef(scale, scale, scale)
mb.Render(gl.QUADS)
}
angle += 0.5
glfw.SwapBuffers()
}
}
开发者ID:pwaller,项目名称:examples,代码行数:42,代码来源:main.go
示例16: main
func main() {
err := initGL()
if err != nil {
log.Printf("InitGL: %v", err)
return
}
defer glfw.Terminate()
// Create our texture atlas.
atlas := glh.NewTextureAtlas(AtlasSize, AtlasSize, 4)
defer atlas.Release()
// Fill the altas with image data.
fillAtlas(atlas)
// Display the atlas texture on a quad, so we can see
// what it looks like.
for glfw.WindowParam(glfw.Opened) > 0 {
gl.Clear(gl.COLOR_BUFFER_BIT)
// Bind the atlas texture and render a quad with it.
atlas.Bind(gl.TEXTURE_2D)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0, 0)
gl.Vertex2f(0, 0)
gl.TexCoord2f(1, 0)
gl.Vertex2f(AtlasSize, 0)
gl.TexCoord2f(1, 1)
gl.Vertex2f(AtlasSize, AtlasSize)
gl.TexCoord2f(0, 1)
gl.Vertex2f(0, AtlasSize)
gl.End()
atlas.Unbind(gl.TEXTURE_2D)
glfw.SwapBuffers()
}
}
开发者ID:jayschwa,项目名称:examples,代码行数:38,代码来源:main.go
示例17: Run
func Run() {
running = true
for running {
start := time.Now()
escPressed := glfw.Key(glfw.KeyEsc)
windowOpen := glfw.WindowParam(glfw.Opened)
running = escPressed == 0 && windowOpen == 1
select {
case data := <-ScreenOutputChan:
drawFrame(data.Pixels)
drawInfoBox(3, 3, 12, data.IterNr, data.NThreads, data.ExecTime)
glfw.SwapBuffers()
default: // Non blocking!
glfw.PollEvents()
}
// Limit to 60hz
elapsed := time.Since(start)
timeToSleep := 16*time.Millisecond - elapsed
if timeToSleep > 0 {
time.Sleep(timeToSleep)
}
}
}
开发者ID:nightlifelover,项目名称:GoMandelbrot,代码行数:37,代码来源:inputoutput.go
示例18: init
func (v *video) init() error {
// Disclaimer: I'm an absolute noob in openGL and I just slammed the
// keyboard with my text editor open, until it started to produce usable
// results. I don't fully understand everything I'm doing here.
if err := glfw.Init(); err != nil {
return err
}
err := glfw.OpenWindow(screenWidth*pixelSize, screenHeight*pixelSize, 0, 0, 0, 0, 0, 0, glfw.Windowed)
if err != nil {
return err
}
// Enable vertical sync on cards that support it.
glfw.SetSwapInterval(1)
glfw.SetWindowTitle("nictuku's CHIP-8 emulator")
gl.Init()
if err = glh.CheckGLError(); err != nil {
return err
}
gl.ClearColor(0, 0, 0, 0)
gl.MatrixMode(gl.PROJECTION)
// Change coordinates to range from [0, 64] and [0,32].
gl.Ortho(0, screenWidth, screenHeight, 0, 0, 1)
// Unnecessary sanity check. :-P
if glfw.WindowParam(glfw.Opened) == 0 {
return fmt.Errorf("No window opened")
}
return nil
}
开发者ID:nictuku,项目名称:chip-8,代码行数:36,代码来源:video.go
示例19: main
func main() {
err := initGL()
if err != nil {
log.Printf("InitGL: %v", err)
return
}
defer glfw.Terminate()
mb := createBuffer()
defer mb.Release()
gl.Enable(gl.BLEND)
//gl.BlendFunc(gl.SRC_ALPHA, gl.ONE)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
f, err := os.Create("test.mpeg")
if err != nil {
log.Panicf("Unable to open output file: %q", err)
}
im := image.NewRGBA(image.Rect(0, 0, 512, 512))
e, err := ffmpeg.NewEncoder(ffmpeg.CODEC_ID_H264, im, f)
if err != nil {
log.Panicf("Unable to start encoder: %q", err)
}
// Perform the rendering.
var angle float64
for glfw.WindowParam(glfw.Opened) > 0 {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.LoadIdentity()
gl.Translatef(0, 0, -6)
gl.Rotated(angle/10, 0, 1, 0)
gl.Rotated(angle, 1, 1, 1)
// Render a solid cube at half the scale.
gl.Scalef(0.1, 0.1, 0.1)
gl.Enable(gl.COLOR_MATERIAL)
gl.Enable(gl.POLYGON_OFFSET_FILL)
gl.PolygonMode(gl.FRONT_AND_BACK, gl.FILL)
mb.Render(gl.QUADS)
// Render wireframe cubes, with incremental size.
gl.Disable(gl.COLOR_MATERIAL)
gl.Disable(gl.POLYGON_OFFSET_FILL)
gl.PolygonMode(gl.FRONT_AND_BACK, gl.FILL)
for i := 0; i < 1000; i++ {
ifl := float64(i)
scale := 0.000005*ifl + 1.0 + 0.01*math.Sin(angle/10+ifl/10)
gl.Scaled(scale, scale, scale)
gl.Rotated((ifl+angle)/1000, 1, 1, 1)
gl.Rotated((ifl+angle)/1100, -1, 1, 1)
mb.Render(gl.QUADS)
}
glh.ClearAlpha(1)
glh.CaptureRGBA(im)
err := e.WriteFrame()
if err != nil {
panic(err)
}
angle += 0.5
//glh.CaptureToPng("test.png")
glfw.SwapBuffers()
}
e.Close()
}
开发者ID:nzlov,项目名称:examples,代码行数:72,代码来源:main.go
示例20: main
func main() {
flag.Parse()
loadMeshInfo()
err := initGL()
if err != nil {
log.Printf("InitGL: %v", err)
return
}
program, shaderInfo, err := loadShaders(gl.Program(0), nil)
if err != nil {
panic(err)
}
_ = program
defer glfw.Terminate()
mb := createBuffer()
defer mb.Release()
// Perform the rendering.
var angle float32
reload := time.Tick(time.Duration(300 * time.Millisecond))
for glfw.WindowParam(glfw.Opened) > 0 {
select {
case <-reload:
oldInfo := shaderInfo
program, shaderInfo, err = loadShaders(program, shaderInfo)
if err != nil && lastErr == nil {
lastErr = err
println("Error loading shaders. Using old code.", lastErr)
} else if err == nil && oldInfo != shaderInfo {
lastErr = nil
println("new shader code loaded")
}
default:
// do nothing here
}
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.LoadIdentity()
gl.Translatef(0, 0, -zoom)
if angle > 0 {
gl.Rotatef(angle, rotVet[0], rotVet[1], rotVet[2])
}
program.Use()
gl.Enable(gl.COLOR_MATERIAL)
gl.Enable(gl.POLYGON_OFFSET_FILL)
gl.PolygonMode(gl.FRONT_AND_BACK, gl.FILL)
mb.Render(gl.TRIANGLES)
if rotVet[0]+rotVet[1]+rotVet[2] != 0 {
// only increment the angle if at least one of the rotate axis
// is enabled
angle += 0.5
} else if angle != 0 {
angle = 0
}
glfw.SwapBuffers()
}
}
开发者ID:andrebq,项目名称:exp,代码行数:65,代码来源:main.go
注:本文中的github.com/go-gl/glfw.WindowParam函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论