本文整理汇总了Golang中github.com/go-gl/gl.TexCoord2f函数的典型用法代码示例。如果您正苦于以下问题:Golang TexCoord2f函数的具体用法?Golang TexCoord2f怎么用?Golang TexCoord2f使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了TexCoord2f函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: Draw
//Draws all the sprites in the supplied slice
func (sheet SpriteSheet) Draw(sprites []*Sprite) {
gl.Enable(gl.TEXTURE_2D)
sheet.texture.Bind(gl.TEXTURE_2D)
for _, sprite := range sprites {
gl.Begin(gl.TRIANGLE_STRIP)
{
gl.TexCoord2f(sprite.left, sprite.bottom)
gl.Vertex2f(sprite.X, sprite.Y)
gl.TexCoord2f(sprite.left, sprite.top)
gl.Vertex2f(sprite.X, sprite.Y+sprite.H)
gl.TexCoord2f(sprite.right, sprite.bottom)
gl.Vertex2f(sprite.X+sprite.W, sprite.Y)
gl.TexCoord2f(sprite.right, sprite.top)
gl.Vertex2f(sprite.X+sprite.W, sprite.Y+sprite.H)
}
gl.End()
}
sheet.texture.Unbind(gl.TEXTURE_2D)
gl.Disable(gl.TEXTURE_2D)
}
示例2: PreloadRender
func (t *Texture) PreloadRender() {
t.Bind()
gl.Begin(gl.QUADS)
gl.TexCoord2f(0, 1)
gl.Vertex3f(0, 0, 1)
gl.TexCoord2f(1, 1)
gl.Vertex3f(0, 0, 1)
gl.TexCoord2f(1, 0)
gl.Vertex3f(0, 0, 1)
gl.TexCoord2f(0, 0)
gl.Vertex3f(0, 0, 1)
gl.End()
}
示例3: drawScene
func drawScene() {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
gl.LoadIdentity() // 重置当前矩阵
texture.Bind(gl.TEXTURE_2D)
var x_m, y_m, z_m, u_m, v_m float32
xtrans := -xpos
ztrans := -zpos
ytrans := -walkbias - 0.25
sceneroty := 360.0 - yrot
var numtriangles int
gl.Rotatef(lookupdown, 1.0, 0, 0)
gl.Rotatef(sceneroty, 0, 1.0, 0)
gl.Translatef(xtrans, ytrans, ztrans)
numtriangles = sector1.numtriangles
// Process Each Triangle
for loop_m := 0; loop_m < numtriangles; loop_m++ {
gl.Begin(gl.TRIANGLES)
gl.Normal3f(0.0, 0.0, 1.0)
x_m = sector1.triangles[loop_m].vertex[0].x
y_m = sector1.triangles[loop_m].vertex[0].y
z_m = sector1.triangles[loop_m].vertex[0].z
u_m = sector1.triangles[loop_m].vertex[0].u
v_m = sector1.triangles[loop_m].vertex[0].v
gl.TexCoord2f(u_m, v_m)
gl.Vertex3f(x_m, y_m, z_m)
x_m = sector1.triangles[loop_m].vertex[1].x
y_m = sector1.triangles[loop_m].vertex[1].y
z_m = sector1.triangles[loop_m].vertex[1].z
u_m = sector1.triangles[loop_m].vertex[1].u
v_m = sector1.triangles[loop_m].vertex[1].v
gl.TexCoord2f(u_m, v_m)
gl.Vertex3f(x_m, y_m, z_m)
x_m = sector1.triangles[loop_m].vertex[2].x
y_m = sector1.triangles[loop_m].vertex[2].y
z_m = sector1.triangles[loop_m].vertex[2].z
u_m = sector1.triangles[loop_m].vertex[2].u
v_m = sector1.triangles[loop_m].vertex[2].v
gl.TexCoord2f(u_m, v_m)
gl.Vertex3f(x_m, y_m, z_m)
gl.End()
}
}
示例4: Render
func (cube *Cube) Render() {
x, y, z := cube.Position.X, cube.Position.Y, cube.Position.Z
gl.Begin(gl.QUADS)
gl.Color3d(0.5-(x/50), 0.5-(y/50), 0.5-(z/50))
// Front Side
gl.TexCoord2f(0, 0)
gl.Vertex3d(x-0.5, y-0.5, z+0.5)
gl.TexCoord2f(1, 0)
gl.Vertex3d(x+0.5, y-0.5, z+0.5)
gl.TexCoord2f(1, 1)
gl.Vertex3d(x+0.5, y+0.5, z+0.5)
gl.TexCoord2f(0, 1)
gl.Vertex3d(x-0.5, y+0.5, z+0.5)
// Left Side
gl.Color3d(0.5-(x/20), 0.5-(y/20), 0.5-(z/20))
gl.TexCoord2f(0, 0)
gl.Vertex3d(x-0.5, y-0.5, z-0.5)
gl.TexCoord2f(1, 0)
gl.Vertex3d(x-0.5, y-0.5, z+0.5)
gl.TexCoord2f(1, 1)
gl.Vertex3d(x-0.5, y+0.5, z+0.5)
gl.TexCoord2f(0, 1)
gl.Vertex3d(x-0.5, y+0.5, z-0.5)
gl.End()
}
示例5: RenderAtlas
func RenderAtlas(a Atlas) {
a.Bind()
xratio := float32(a.Width()) / float32(a.Height())
gl.Begin(gl.QUADS)
gl.TexCoord2f(0, 1)
gl.Vertex3f(-0.5, -0.5, 1)
gl.TexCoord2f(1, 1)
gl.Vertex3f((xratio)-0.5, -0.5, 1)
gl.TexCoord2f(1, 0)
gl.Vertex3f((xratio)-0.5, 0.5, 1)
gl.TexCoord2f(0, 0)
gl.Vertex3f(-0.5, 0.5, 1)
gl.End()
}
示例6: Render
func (t *Texture) Render() {
t.Bind()
xratio := float32(t.width) / float32(t.height)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0, 1)
gl.Vertex3f(-0.5, -0.5, 1)
gl.TexCoord2f(1, 1)
gl.Vertex3f((xratio)-0.5, -0.5, 1)
gl.TexCoord2f(1, 0)
gl.Vertex3f((xratio)-0.5, 0.5, 1)
gl.TexCoord2f(0, 0)
gl.Vertex3f(-0.5, 0.5, 1)
gl.End()
}
示例7: drawScene
func drawScene() {
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
texture.Bind(gl.TEXTURE_2D)
for loop = 0; loop < num; loop++ {
gl.LoadIdentity() // 绘制每颗星星之前,重置模型观察矩阵
gl.Translatef(0.0, 0.0, zoom) // 深入屏幕里面
gl.Rotatef(tilt, 1.0, 0.0, 0.0) // 倾斜视角
gl.Rotatef(ztilt, 0.0, 0.0, 1.0) // 倾斜视角
gl.Rotatef(star[loop].angle, 0.0, 1.0, 0.0) // 旋转至当前所画星星的角度
gl.Translatef(star[loop].dist, 0.0, 0.0) // 沿X轴正向移动
gl.Rotatef(-star[loop].angle, 0.0, 1.0, 0.0) // 取消当前星星的角度
gl.Rotatef(-ztilt, 0.0, 0.0, 1.0) // 取消屏幕倾斜
gl.Rotatef(-tilt, 1.0, 0.0, 0.0) // 取消屏幕倾斜
if twinkle { // 启用闪烁效果
// 使用byte型数值指定一个颜色
gl.Color4ub(star[(num-loop)-1].r, star[(num-loop)-1].g, star[(num-loop)-1].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(spin, 0.0, 0.0, 1.0) // 绕z轴旋转星星
// 使用byte型数值指定一个颜色
gl.Color4ub(star[loop].r, star[loop].g, star[loop].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[loop].angle += float32(loop) / num // 改变星星的自转角度
star[loop].dist -= 0.01 // 改变星星离中心的距离
if star[loop].dist < 0.0 { // 星星到达中心了么
star[loop].dist += 5 // 往外移5个单位
//fmt.Println(loop, star[loop].dist)
star[loop].r = uint8(rand.Int() % 256) // 赋一个新红色分量
star[loop].g = uint8(rand.Int() % 256) // 赋一个新绿色分量
star[loop].b = uint8(rand.Int() % 256) // 赋一个新蓝色分量
}
}
}
示例8: drawQuad
func drawQuad(x, y, w, h int, u, v, u2, v2 float32) {
gl.Begin(gl.QUADS)
gl.TexCoord2f(float32(u), float32(v))
gl.Vertex2i(int(x), int(y))
gl.TexCoord2f(float32(u2), float32(v))
gl.Vertex2i(int(x+w), int(y))
gl.TexCoord2f(float32(u2), float32(v2))
gl.Vertex2i(int(x+w), int(y+h))
gl.TexCoord2f(float32(u), float32(v2))
gl.Vertex2i(int(x), int(y+h))
gl.End()
}
示例9: Render
func (h *Hex) Render(alpha float32, drawFromCenter bool) {
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
if h.Kind == HexFlower {
gl.TexEnvf(gl.TEXTURE_ENV, gl.TEXTURE_ENV_MODE, gl.REPLACE)
starTex.Bind(gl.TEXTURE_2D)
} else {
gl.TexEnvf(gl.TEXTURE_ENV, gl.TEXTURE_ENV_MODE, gl.MODULATE)
hexTex.Bind(gl.TEXTURE_2D)
gl.GetError()
var r, g, b uint8
r = uint8(colors.Colors[h.Kind-1][0])
g = uint8(colors.Colors[h.Kind-1][1])
b = uint8(colors.Colors[h.Kind-1][2])
if alpha < 1 {
gl.Color4ub(r, g, b, uint8(alpha*255))
} else {
gl.Color3ub(r, g, b)
}
}
gl.Begin(gl.QUADS)
gl.TexCoord2f(0, 0)
if drawFromCenter {
gl.Vertex2i(HEX_WIDTH/2, HEX_HEIGHT/2)
} else {
gl.Vertex2i(HEX_WIDTH, HEX_HEIGHT)
}
gl.TexCoord2f(0, 1)
if drawFromCenter {
gl.Vertex2i(HEX_WIDTH/2, -HEX_HEIGHT/2)
} else {
gl.Vertex2i(HEX_WIDTH, 0)
}
gl.TexCoord2f(1, 1)
if drawFromCenter {
gl.Vertex2i(-HEX_WIDTH/2, -HEX_HEIGHT/2)
} else {
gl.Vertex2i(0, 0)
}
gl.TexCoord2f(1, 0)
if drawFromCenter {
gl.Vertex2i(-HEX_WIDTH/2, HEX_HEIGHT/2)
} else {
gl.Vertex2i(0, HEX_HEIGHT)
}
gl.End()
}
示例10: Render
func (v *Video) Render() {
for running {
select {
case dimensions := <-v.resize:
v.ResizeEvent(dimensions[0], dimensions[1])
case val := <-v.tick:
slice := make([]uint8, len(val)*3)
for i := 0; i < len(val); i = i + 1 {
slice[i*3+0] = (uint8)((val[i] >> 16) & 0xff)
slice[i*3+1] = (uint8)((val[i] >> 8) & 0xff)
slice[i*3+2] = (uint8)((val[i]) & 0xff)
}
gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT)
v.tex.Bind(gl.TEXTURE_2D)
if ppu.OverscanEnabled {
gl.TexImage2D(gl.TEXTURE_2D, 0, 3, 240, 224, 0, gl.RGB, gl.UNSIGNED_BYTE, slice)
} else {
gl.TexImage2D(gl.TEXTURE_2D, 0, 3, 256, 240, 0, gl.RGB, gl.UNSIGNED_BYTE, slice)
}
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0.0, 1.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(1.0, 0.0)
gl.Vertex3f(1.0, 1.0, 0.0)
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 0.0)
gl.End()
if v.screen != nil {
sdl.GL_SwapBuffers()
}
v.frametick <- true
}
}
}
示例11: drawHex
func drawHex(x, y, kind int, alpha float32) {
if kind == 6 {
gl.TexEnvf(gl.TEXTURE_ENV, gl.TEXTURE_ENV_MODE, gl.REPLACE)
starTex.Bind(gl.TEXTURE_2D)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0, 0)
gl.Vertex2i(x, y)
gl.TexCoord2f(0, 1)
gl.Vertex2i(x, y+HEX_HEIGHT)
gl.TexCoord2f(1, 1)
gl.Vertex2i(x+HEX_WIDTH, y+HEX_HEIGHT)
gl.TexCoord2f(1, 0)
gl.Vertex2i(x+HEX_WIDTH, y)
gl.End()
} else {
gl.TexEnvf(gl.TEXTURE_ENV, gl.TEXTURE_ENV_MODE, gl.MODULATE)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
var r, g, b float32
switch kind {
case 0:
r = 1
case 1:
g = 1
case 2:
b = 1
case 3:
r = 1
g = 1
case 4:
r = 1
b = 1
case 5:
g = 1 - 222/255
b = 1
}
hexTex.Bind(gl.TEXTURE_2D)
gl.Begin(gl.QUADS)
if alpha < 1 {
gl.Color4f(r, g, b, alpha)
} else {
gl.Color3f(r, g, b)
}
gl.TexCoord2f(0, 0)
gl.Vertex2i(x, y)
gl.TexCoord2f(0, 1)
gl.Vertex2i(x, y+HEX_HEIGHT)
gl.TexCoord2f(1, 1)
gl.Vertex2i(x+HEX_WIDTH, y+HEX_HEIGHT)
gl.TexCoord2f(1, 0)
gl.Vertex2i(x+HEX_WIDTH, y)
gl.End()
}
}
示例12: TexturedQuad
func TexturedQuad(t *glh.Texture, x, y, w, h int) {
glh.With(t, func() {
gl.Enable(gl.BLEND)
gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA)
gl.Color4f(255.0, 255.0, 255.0, 1.0)
gl.Begin(gl.TRIANGLE_FAN)
gl.TexCoord2f(0, 0)
gl.Vertex2i(x, y)
gl.TexCoord2f(1, 0)
gl.Vertex2i(x+w, y)
gl.TexCoord2f(1, 1)
gl.Vertex2i(x+w, y+h)
gl.TexCoord2f(0, 1)
gl.Vertex2i(x, y+h)
gl.End()
})
}
示例13: Render
func (v *Video) Render(frame []byte, frame_w int, frame_h int) {
gl.Clear(gl.COLOR_BUFFER_BIT)
v.Texture.Bind(gl.TEXTURE_2D)
gl.TexImage2D(gl.TEXTURE_2D, 0, 3, frame_w, frame_h, 0, gl.RGB, gl.UNSIGNED_BYTE, frame)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST)
gl.TexParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST)
gl.Begin(gl.QUADS)
gl.TexCoord2f(0.0, 1.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(1.0, 0.0)
gl.Vertex3f(1.0, 1.0, 0.0)
gl.TexCoord2f(0.0, 0.0)
gl.Vertex3f(-1.0, 1.0, 0.0)
gl.End()
glfw.SwapBuffers()
}
示例14: texcoord
// texcoord defines vertex texture coordinates.
// Used in classic render mode.
func (a *Attr) texcoord(i int) {
i *= a.size
switch a.size {
case 1:
switch v := a.data.(type) {
case []int16:
gl.TexCoord1s(v[i])
case []int32:
gl.TexCoord1i(int(v[i]))
case []float32:
gl.TexCoord1f(v[i])
case []float64:
gl.TexCoord1d(v[i])
}
case 2:
switch v := a.data.(type) {
case []int16:
gl.TexCoord2s(v[i], v[i+1])
case []int32:
gl.TexCoord2i(int(v[i]), int(v[i+1]))
case []float32:
gl.TexCoord2f(v[i], v[i+1])
case []float64:
gl.TexCoord2d(v[i], v[i+1])
}
case 3:
switch v := a.data.(type) {
case []int16:
gl.TexCoord3s(v[i], v[i+1], v[i+2])
case []int32:
gl.TexCoord3i(int(v[i]), int(v[i+1]), int(v[i+2]))
case []float32:
gl.TexCoord3f(v[i], v[i+1], v[i+2])
case []float64:
gl.TexCoord3d(v[i], v[i+1], v[i+2])
}
case 4:
switch v := a.data.(type) {
case []int16:
gl.TexCoord4s(v[i], v[i+1], v[i+2], v[i+3])
case []int32:
gl.TexCoord4i(int(v[i]), int(v[i+1]), int(v[i+2]), int(v[i+3]))
case []float32:
gl.TexCoord4f(v[i], v[i+1], v[i+2], v[i+3])
case []float64:
gl.TexCoord4d(v[i], v[i+1], v[i+2], v[i+3])
}
}
}
示例15: 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()
}
}