本文整理汇总了Golang中github.com/inkyblackness/shocked-client/opengl.OpenGl.GenTextures方法的典型用法代码示例。如果您正苦于以下问题:Golang OpenGl.GenTextures方法的具体用法?Golang OpenGl.GenTextures怎么用?Golang OpenGl.GenTextures使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/inkyblackness/shocked-client/opengl.OpenGl
的用法示例。
在下文中一共展示了OpenGl.GenTextures方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: NewPaletteTexture
// NewPaletteTexture creates a new PaletteTexture instance.
func NewPaletteTexture(gl opengl.OpenGl, colorProvider ColorProvider) *PaletteTexture {
tex := &PaletteTexture{
gl: gl,
colorProvider: colorProvider,
handle: gl.GenTextures(1)[0]}
tex.Update()
return tex
}
示例2: NewBitmapTexture
// NewBitmapTexture downloads the provided raw data to OpenGL and returns a BitmapTexture instance.
func NewBitmapTexture(gl opengl.OpenGl, width, height int, pixelData []byte) *BitmapTexture {
textureWidth := powerOfTwo(width)
textureHeight := powerOfTwo(height)
tex := &BitmapTexture{
gl: gl,
width: float32(width),
height: float32(height),
handle: gl.GenTextures(1)[0]}
tex.u = tex.width / float32(textureWidth)
tex.v = tex.height / float32(textureHeight)
// The texture has to be blown up to use RGBA from the start;
// OpenGL 3.2 doesn't know ALPHA format, Open GL ES 2.0 (WebGL) doesn't know RED or R8.
rgbaData := make([]byte, textureWidth*textureHeight*BytesPerRgba)
for y := 0; y < height; y++ {
inStart := y * width
outOffset := y * textureWidth * BytesPerRgba
for x := 0; x < width; x++ {
value := pixelData[inStart+x]
rgbaData[outOffset+0] = value
rgbaData[outOffset+1] = value
rgbaData[outOffset+2] = value
rgbaData[outOffset+3] = value
outOffset += BytesPerRgba
}
}
gl.BindTexture(opengl.TEXTURE_2D, tex.handle)
gl.TexImage2D(opengl.TEXTURE_2D, 0, opengl.RGBA, int32(textureWidth), int32(textureHeight),
0, opengl.RGBA, opengl.UNSIGNED_BYTE, rgbaData)
gl.TexParameteri(opengl.TEXTURE_2D, opengl.TEXTURE_MAG_FILTER, opengl.NEAREST)
gl.TexParameteri(opengl.TEXTURE_2D, opengl.TEXTURE_MIN_FILTER, opengl.NEAREST)
gl.GenerateMipmap(opengl.TEXTURE_2D)
gl.BindTexture(opengl.TEXTURE_2D, 0)
return tex
}