本文整理匯總了Golang中github.com/banthar/Go-SDL/sdl.GetTicks函數的典型用法代碼示例。如果您正苦於以下問題:Golang GetTicks函數的具體用法?Golang GetTicks怎麽用?Golang GetTicks使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。
在下文中一共展示了GetTicks函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: RunLoop
func (self *AppStateManager) RunLoop() {
done := false
last_ticks := sdl.GetTicks()
for !done {
// for ;sdl.GetTicks()-last_ticks < 10;time.Sleep(1) {}
current_ticks := sdl.GetTicks()
timeStepMS := current_ticks - last_ticks
time_step := float32(timeStepMS) / 1000.0
done = self.HandleEvents()
self.Process(time_step)
last_ticks = current_ticks
}
}
示例2: NewFramerate
func NewFramerate() *FPSmanager {
return &FPSmanager{
framecount: 0,
rate: FPS_DEFAULT,
rateticks: (1000.0 / float32(FPS_DEFAULT)),
lastticks: sdl.GetTicks(),
}
}
示例3: FramerateDelay
func (manager *FPSmanager) FramerateDelay() {
var current_ticks, target_ticks, the_delay uint32
// next frame
manager.framecount++
// get/calc ticks
current_ticks = sdl.GetTicks()
target_ticks = manager.lastticks + uint32(float32(manager.framecount)*manager.rateticks)
if current_ticks <= target_ticks {
the_delay = target_ticks - current_ticks
sdl.Delay(the_delay)
} else {
manager.framecount = 0
manager.lastticks = sdl.GetTicks()
}
}
示例4: fps
func (this *App) fps() {
Frames++
t := sdl.GetTicks()
if t-T0 >= 5000 {
seconds := (t - T0) / 1000.0
fps := Frames / seconds
print(Frames, " frames in ", seconds, " seconds = ", fps, " FPS\n")
T0 = t
Frames = 0
}
}
示例5: draw
func draw() {
t := float32(sdl.GetTicks()) / 500.0
time := prg.GetUniformLocation("time")
time.Uniform1f(t)
gl.Clear(gl.COLOR_BUFFER_BIT)
gl.DrawArrays(gl.TRIANGLE_STRIP, 0, 4)
if gl.GetError() != gl.NO_ERROR {
panic("draw error")
}
}
示例6: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Move left 1.5 units and into the screen 6.0 units.
gl.LoadIdentity()
gl.Translatef(-1.5, 0.0, -6.0)
gl.Rotatef(float32(rtri), 0.0, 1.0, 0.0) // Rotate the triangle on the Y axis
gl.Begin(gl.TRIANGLES) // Draw triangles
gl.Color3f(1.0, 0.0, 0.0) // Set The Color To Red
gl.Vertex3f(0.0, 1.0, 0.0) // top
gl.Color3f(0.0, 1.0, 0.0) // Set The Color To Red
gl.Vertex3f(-1.0, -1.0, 0.0) // bottom left
gl.Color3f(0.0, 0.0, 1.0) // Set The Color To Red
gl.Vertex3f(1.0, -1.0, 0.0) // bottom right
gl.End() // finish drawing the triangle
// Move right 3 units
gl.LoadIdentity()
gl.Translatef(1.5, 0.0, -6.0)
gl.Color3f(0.5, 0.5, 1.0) // Set The Color To Blue One Time Only
gl.Rotatef(float32(rquad), 1.0, 0.0, 0.0) // rotate the quad on the X axis
gl.Begin(gl.QUADS) // draw quads
gl.Vertex3f(-1.0, 1.0, 0.0) // top left
gl.Vertex3f(1.0, 1.0, 0.0) // top right
gl.Vertex3f(1.0, -1.0, 0.0) // bottom right
gl.Vertex3f(-1.0, -1.0, 0.0) // bottom left
gl.End() // done drawing the quad
// Draw to the screen
sdl.GL_SwapBuffers()
rtri += 0.2 // Increase The Rotation Variable For The Triangle
rquad -= 0.15 // Decrease The Rotation Variable For The Quad
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
示例7: drawGLScene
// Here goes our drawing code
func drawGLScene(sector Sector) {
xtrans := gl.GLfloat(-xpos)
ztrans := gl.GLfloat(-zpos)
ytrans := gl.GLfloat(-walkbias - 0.25)
scenroty := gl.GLfloat(360.0 - yrot)
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// reset the view
gl.LoadIdentity()
// Rotate up and down to look up and down
gl.Rotatef(float32(lookupdown), 1.0, 0.0, 0.0)
// Rotate depending on direction player is facing
gl.Rotatef(float32(scenroty), 0.0, 1.0, 0.0)
// translate the scene based on player position
gl.Translatef(float32(xtrans), float32(ytrans), float32(ztrans))
gl.BindTexture(gl.TEXTURE_2D, uint(textures[filter]))
for _, vertices := range sector {
gl.Begin(gl.TRIANGLES)
for _, triangle := range *vertices {
gl.Normal3f(0.0, 0.0, 1.0)
gl.TexCoord2f(float32(triangle.u), float32(triangle.v))
gl.Vertex3f(float32(triangle.x), float32(triangle.y), float32(triangle.z))
}
gl.End()
}
// Draw to the screen
sdl.GL_SwapBuffers()
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
示例8: draw
func draw() {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.PushMatrix()
gl.Rotated(view_rotx, 1.0, 0.0, 0.0)
gl.Rotated(view_roty, 0.0, 1.0, 0.0)
gl.Rotated(view_rotz, 0.0, 0.0, 1.0)
gl.PushMatrix()
gl.Translated(-3.0, -2.0, 0.0)
gl.Rotated(angle, 0.0, 0.0, 1.0)
gl.CallList(gear1)
gl.PopMatrix()
gl.PushMatrix()
gl.Translated(3.1, -2.0, 0.0)
gl.Rotated(-2.0*angle-9.0, 0.0, 0.0, 1.0)
gl.CallList(gear2)
gl.PopMatrix()
gl.PushMatrix()
gl.Translated(-3.1, 4.2, 0.0)
gl.Rotated(-2.0*angle-25.0, 0.0, 0.0, 1.0)
gl.CallList(gear3)
gl.PopMatrix()
gl.PopMatrix()
sdl.GL_SwapBuffers()
Frames++
{
t := sdl.GetTicks()
if t-T0 >= 5000 {
seconds := (t - T0) / 1000.0
fps := Frames / seconds
print(Frames, " frames in ", seconds, " seconds = ", fps, " FPS\n")
T0 = t
Frames = 0
}
}
}
示例9: fps
func fps() uint32 {
t := sdl.GetTicks()
frames++
if t0 == 0 {
t0 = t
frames = 0
return 0
}
if t-t0 > 2000 {
t0 += (t - t0) / 2
frames /= 2
}
if t-t0 == 0 {
return 0
}
fps := 1000 * frames / (t - t0)
return fps
}
示例10: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// reset the view
gl.LoadIdentity()
// Draw to the screen
sdl.GL_SwapBuffers()
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
示例11: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Move left 1.5 units and into the screen 6.0 units.
gl.LoadIdentity()
gl.Translatef(-1.5, 0.0, -6.0)
gl.Begin(gl.TRIANGLES) // Draw triangles
gl.Vertex3f(0.0, 1.0, 0.0) // top
gl.Vertex3f(-1.0, -1.0, 0.0) // bottom left
gl.Vertex3f(1.0, -1.0, 0.0) // bottom right
gl.End() // finish drawing the triangle
// Move right 3 units
gl.Translatef(3.0, 0.0, 0.0)
gl.Begin(gl.QUADS) // draw quads
gl.Vertex3f(-1.0, 1.0, 0.0) // top left
gl.Vertex3f(1.0, 1.0, 0.0) // top right
gl.Vertex3f(1.0, -1.0, 0.0) // bottom right
gl.Vertex3f(-1.0, -1.0, 0.0) // bottom left
gl.End() // done drawing the quad
// Draw to the screen
sdl.GL_SwapBuffers()
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
示例12: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Move left 1.5 units and into the screen 6.0 units.
gl.LoadIdentity()
gl.Translatef(0.0, 0.0, float32(z)) // translate by z
gl.Rotatef(float32(xrot), 1.0, 0.0, 0.0) /* Rotate On The X Axis */
gl.Rotatef(float32(yrot), 0.0, 1.0, 0.0) /* Rotate On The Y Axis */
/* Select Our Texture */
gl.BindTexture(gl.TEXTURE_2D, uint(textures[filter])) // based on filter
gl.Begin(gl.QUADS)
// Front face
gl.Normal3f(0.0, 0.0, 1.0) // Normal Pointing Towards Viewer
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom left
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom right
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Top right
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Top left
// Back Face
gl.Normal3f(0.0, 0.0, -1.0) // Normal Pointing Away From Viewer
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom left
// Top Face
gl.Normal3f(0.0, 1.0, 0.0) // Normal Pointing Up
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top right
// Bottom Face
gl.Normal3f(0.0, -1.0, 0.0) // Normal Pointing Down
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom right
// Right face
gl.Normal3f(1.0, 0.0, 0.0) // Normal Pointing Right
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom left
// Left Face
gl.Normal3f(-1.0, 0.0, 0.0) // Normal Pointing Left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top left
gl.End()
sdl.GL_SwapBuffers()
xrot += xspeed
yrot += yspeed
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
//.........這裏部分代碼省略.........
示例13: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Move left 1.5 units and into the screen 6.0 units.
gl.LoadIdentity()
gl.Translatef(0.0, 0.0, -7.0)
gl.Rotatef(float32(xrot), 1.0, 0.0, 0.0) /* Rotate On The X Axis */
gl.Rotatef(float32(yrot), 0.0, 1.0, 0.0) /* Rotate On The Y Axis */
gl.Rotatef(float32(zrot), 0.0, 0.0, 1.0) /* Rotate On The Z Axis */
/* Select Our Texture */
gl.BindTexture(gl.TEXTURE_2D, uint(texture))
gl.Begin(gl.QUADS) // Draw a quad
/* Front Face */
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom left
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom right
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Top right
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Top left
/* Back Face */
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom left
/* Top Face */
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top right
/* Bottom Face */
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom right
/* Right face */
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(1.0, 1.0, -1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, 1.0) // Top left
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom left
/* Left Face */
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom left
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom right
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, 1.0) // Top right
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top left
gl.End() // done drawing the quad
// Draw to the screen
sdl.GL_SwapBuffers()
xrot += 0.3 /* X Axis Rotation */
yrot += 0.2 /* Y Axis Rotation */
zrot += 0.4 /* Z Axis Rotation */
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
示例14: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.BindTexture(gl.TEXTURE_2D, uint(texture))
for loop, star := range stars {
gl.LoadIdentity()
gl.Translatef(0.0, 0.0, float32(zoom))
gl.Rotatef(float32(tilt), 1.0, 0.0, 0.0)
gl.Rotatef(float32(star.angle), 0.0, 1.0, 0.0)
gl.Translatef(float32(star.dist), 0.0, 0.0)
gl.Rotatef(float32(-star.angle), 0.0, 1.0, 0.0)
gl.Rotatef(float32(-tilt), 1.0, 0.0, 0.0)
if twinkle {
other := stars[(num-loop)-1]
gl.Color4ub(uint8(other.r), uint8(other.g), uint8(other.b), 255)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, 0.0)
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, 0.0)
gl.End()
}
gl.Rotatef(float32(spin), 0.0, 0.0, 1.0)
gl.Color4ub(uint8(star.r), uint8(star.g), uint8(star.b), 255)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 0.0)
gl.Vertex3f(1.0, -1.0, 0.0)
gl.TexCoord2f(1.0, 1.0)
gl.Vertex3f(1.0, 1.0, 0.0)
gl.TexCoord2f(0.0, 1.0)
gl.Vertex3f(-1.0, 1.0, 0.0)
gl.End()
spin += 0.01
star.angle += gl.GLfloat(loop) / gl.GLfloat(num)
star.dist -= 0.01
if star.dist < 0.0 {
star.dist += 5.0
star.r = gl.GLubyte(rand.Float32() * 255)
star.g = gl.GLubyte(rand.Float32() * 255)
star.b = gl.GLubyte(rand.Float32() * 255)
}
}
// Draw to the screen
sdl.GL_SwapBuffers()
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}
示例15: drawGLScene
// Here goes our drawing code
func drawGLScene() {
// Clear the screen and depth buffer
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
// Move left 1.5 units and into the screen 6.0 units.
gl.LoadIdentity()
gl.Translatef(-1.5, 0.0, -6.0)
gl.Rotatef(float32(rtri), 0.0, 1.0, 0.0) // Rotate the triangle on the Y axis
gl.Begin(gl.TRIANGLES) // Draw triangles
gl.Color3f(1.0, 0.0, 0.0) /* Red */
gl.Vertex3f(0.0, 1.0, 0.0) /* Top Of Triangle (Front) */
gl.Color3f(0.0, 1.0, 0.0) /* Green */
gl.Vertex3f(-1.0, -1.0, 1.0) /* Left Of Triangle (Front) */
gl.Color3f(0.0, 0.0, 1.0) /* Blue */
gl.Vertex3f(1.0, -1.0, 1.0) /* Right Of Triangle (Front) */
gl.Color3f(1.0, 0.0, 0.0) /* Red */
gl.Vertex3f(0.0, 1.0, 0.0) /* Top Of Triangle (Right) */
gl.Color3f(0.0, 0.0, 1.0) /* Blue */
gl.Vertex3f(1.0, -1.0, 1.0) /* Left Of Triangle (Right) */
gl.Color3f(0.0, 1.0, 0.0) /* Green */
gl.Vertex3f(1.0, -1.0, -1.0) /* Right Of Triangle (Right) */
gl.Color3f(1.0, 0.0, 0.0) /* Red */
gl.Vertex3f(0.0, 1.0, 0.0) /* Top Of Triangle (Back) */
gl.Color3f(0.0, 1.0, 0.0) /* Green */
gl.Vertex3f(1.0, -1.0, -1.0) /* Left Of Triangle (Back) */
gl.Color3f(0.0, 0.0, 1.0) /* Blue */
gl.Vertex3f(-1.0, -1.0, -1.0) /* Right Of Triangle (Back) */
gl.Color3f(1.0, 0.0, 0.0) /* Red */
gl.Vertex3f(0.0, 1.0, 0.0) /* Top Of Triangle (Left) */
gl.Color3f(0.0, 0.0, 1.0) /* Blue */
gl.Vertex3f(-1.0, -1.0, -1.0) /* Left Of Triangle (Left) */
gl.Color3f(0.0, 1.0, 0.0) /* Green */
gl.Vertex3f(-1.0, -1.0, 1.0) /* Right Of Triangle (Left) */
gl.End() // finish drawing the triangle
// Move right 3 units
gl.LoadIdentity()
gl.Translatef(1.5, 0.0, -7.0)
gl.Rotatef(float32(rquad), 1.0, 1.0, 1.0) // rotate the quad on the X axis
gl.Begin(gl.QUADS) // draw quads
gl.Color3f(0.0, 1.0, 0.0) // Set The Color To Green
gl.Vertex3f(1.0, 1.0, -1.0) // Top Right Of The Quad (Top)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top Left Of The Quad (Top)
gl.Vertex3f(-1.0, 1.0, 1.0) // Bottom Left Of The Quad (Top)
gl.Vertex3f(1.0, 1.0, 1.0) // Bottom Right Of The Quad (Top)
gl.Color3f(1.0, 0.5, 0.0) // Set The Color To Orange
gl.Vertex3f(1.0, -1.0, 1.0) // Top Right Of The Quad (Bottom)
gl.Vertex3f(-1.0, -1.0, 1.0) // Top Left Of The Quad (Bottom)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom Left Of The Quad (Bottom)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom Right Of The Quad (Bottom)
gl.Color3f(1.0, 0.0, 0.0) // Set The Color To Red
gl.Vertex3f(1.0, 1.0, 1.0) // Top Right Of The Quad (Front)
gl.Vertex3f(-1.0, 1.0, 1.0) // Top Left Of The Quad (Front)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom Left Of The Quad (Front)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom Right Of The Quad (Front)
gl.Color3f(1.0, 1.0, 0.0) // Set The Color To Yellow
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom Left Of The Quad (Back)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom Right Of The Quad (Back)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top Right Of The Quad (Back)
gl.Vertex3f(1.0, 1.0, -1.0) // Top Left Of The Quad (Back)
gl.Color3f(0.0, 0.0, 1.0) // Set The Color To Blue
gl.Vertex3f(-1.0, 1.0, 1.0) // Top Right Of The Quad (Left)
gl.Vertex3f(-1.0, 1.0, -1.0) // Top Left Of The Quad (Left)
gl.Vertex3f(-1.0, -1.0, -1.0) // Bottom Left Of The Quad (Left)
gl.Vertex3f(-1.0, -1.0, 1.0) // Bottom Right Of The Quad (Left)
gl.Color3f(1.0, 0.0, 1.0) // Set The Color To Violet
gl.Vertex3f(1.0, 1.0, -1.0) // Top Right Of The Quad (Right)
gl.Vertex3f(1.0, 1.0, 1.0) // Top Left Of The Quad (Right)
gl.Vertex3f(1.0, -1.0, 1.0) // Bottom Left Of The Quad (Right)
gl.Vertex3f(1.0, -1.0, -1.0) // Bottom Right Of The Quad (Right)
gl.End() // done drawing the quad
// Draw to the screen
sdl.GL_SwapBuffers()
rtri += 0.2 // Increase The Rotation Variable For The Triangle
rquad -= 0.15 // Decrease The Rotation Variable For The Quad
// Gather our frames per second
frames++
t := sdl.GetTicks()
if t-t0 >= 5000 {
seconds := (t - t0) / 1000.0
fps := frames / seconds
fmt.Println(frames, "frames in", seconds, "seconds =", fps, "FPS")
t0 = t
frames = 0
}
}