作者:jacksca
项目:go-gles
func TexImage2D(target TextureTarget, level int, internalformat InternalFormat, width, height int, format TextureFormat, datatype DataType, pixels []uint8) {
if pixels != nil {
C.glTexImage2D(C.GLenum(target), C.GLint(level), C.GLint(internalformat), C.GLsizei(width), C.GLsizei(height), 0, C.GLenum(format), C.GLenum(datatype), unsafe.Pointer(&pixels[0]))
} else {
C.glTexImage2D(C.GLenum(target), C.GLint(level), C.GLint(internalformat), C.GLsizei(width), C.GLsizei(height), 0, C.GLenum(format), C.GLenum(datatype), unsafe.Pointer(nil))
}
}
作者:shibukaw
项目:g
func TexImage2D(target Enum, level int, width, height int, format Enum, ty Enum, data []byte) {
p := unsafe.Pointer(nil)
if len(data) > 0 {
p = unsafe.Pointer(&data[0])
}
C.glTexImage2D(target.c(), C.GLint(level), C.GLint(format), C.GLsizei(width), C.GLsizei(height), 0, format.c(), ty.c(), p)
}
作者:TriangleG
项目:golang.or
// TexImage2D writes a 2D texture image.
//
// http://www.khronos.org/opengles/sdk/docs/man3/html/glTexImage2D.xhtml
func TexImage2D(target Enum, level int, width, height int, format Enum, ty Enum, data []byte) {
// TODO(crawshaw): GLES3 offset for PIXEL_UNPACK_BUFFER and PIXEL_PACK_BUFFER.
p := unsafe.Pointer(nil)
if len(data) > 0 {
p = unsafe.Pointer(&data[0])
}
C.glTexImage2D(target.c(), C.GLint(level), C.GLint(format), C.GLsizei(width), C.GLsizei(height), 0, format.c(), ty.c(), p)
}
作者:Miaqu
项目:moj
func TexImage2D(target Enum, level int, width, height int, format Enum, ty Enum, data []byte) {
defer func() {
errstr := errDrain()
log.Printf("gl.TexImage2D(%v, %v, %v, %v, %v, %v, len(%d)) %v", target, level, width, height, format, ty, len(data), errstr)
}()
p := unsafe.Pointer(nil)
if len(data) > 0 {
p = unsafe.Pointer(&data[0])
}
C.glTexImage2D(target.c(), C.GLint(level), C.GLint(format), C.GLsizei(width), C.GLsizei(height), 0, format.c(), ty.c(), p)
}
作者:eaburn
项目:g
// TexImage2D specifies a two-dimensional texture image.
func TexImage2D(targ TextureTarget, lvl int, ifmt TextureFormat, w, h, border int, fmt TextureFormat, data interface{}) {
tipe, _, ptr := rawData(data)
C.glTexImage2D(C.GLenum(targ),
C.GLint(lvl),
C.GLint(ifmt),
C.GLsizei(w),
C.GLsizei(h),
C.GLint(border),
C.GLenum(fmt),
C.GLenum(tipe),
ptr)
}
作者:remogatt
项目:egle
func TexImage2D(
target Enum, level int32, internalformat int32,
width Sizei, height Sizei, border int32, format Enum,
type_ Enum, pixels Void) {
C.glTexImage2D(
C.GLenum(target),
C.GLint(level),
C.GLint(internalformat),
C.GLsizei(width),
C.GLsizei(height),
C.GLint(border),
C.GLenum(format),
C.GLenum(type_),
unsafe.Pointer(pixels))
}
作者:spat
项目:gl
// TexImage2DFromImage loads texture data from an image.Image into the currently
// bound GL texture using the glTexImage2D call. If you wish to load only part of
// an image, pass a subimage as the argument.
//
// Precondition: no buffer object bound to PIXEL_UNPACK_BUFFER
//
// Additional state modified: UNPACK_ALIGNMENT, UNPACK_ROW_LENGTH
func TexImage2DFromImage(target GLenum, level int, internalformat int, border int, img image.Image) {
bounds := img.Bounds()
if bounds.Empty() {
return
}
info := getImageInfo(img)
C.glPixelStorei(C.GLenum(gl.UNPACK_ALIGNMENT), C.GLint(1))
C.glPixelStorei(C.GLenum(gl.UNPACK_ROW_LENGTH), C.GLint(info.RowLength))
C.glTexImage2D(C.GLenum(target), C.GLint(level), C.GLint(internalformat),
C.GLsizei(bounds.Dx()), C.GLsizei(bounds.Dy()), C.GLint(border),
C.GLenum(info.Format), C.GLenum(info.Type),
info.Data)
}
作者:extram
项目:g
// NewTexture2D creates a new texture object from the given image using glTexImage2D. It uses RGBA as a color format and sets GL_TEXTURE_{MIN,MAG}_FILTER to GL_NEAREST
func NewTexture2D(img image.Image, border int) Texture {
var t C.GLuint
C.glGenTextures(1, &t)
tt := Texture(t)
tt.Bind(TEXTURE_2D)
data := make([]uint16, img.Bounds().Dx()*img.Bounds().Dy()*4)
r := img.Bounds()
for x := r.Min.X; x < r.Max.X; x++ {
for y := r.Min.Y; y < r.Max.Y; y++ {
R, G, B, A := img.At(x, y).RGBA()
i := (y*r.Dx() + x) * 4
data[i] = uint16(R)
data[i+1] = uint16(G)
data[i+2] = uint16(B)
data[i+3] = uint16(A)
}
}
C.glTexImage2D(TEXTURE_2D, 0, RGBA, C.GLsizei(img.Bounds().Dx()), C.GLsizei(img.Bounds().Dy()), C.GLint(border), RGBA, UNSIGNED_SHORT, unsafe.Pointer(&data[0]))
C.glTexParameteri(TEXTURE_2D, TEXTURE_MIN_FILTER, NEAREST)
C.glTexParameteri(TEXTURE_2D, TEXTURE_MAG_FILTER, NEAREST)
tt.Unbind(TEXTURE_2D)
return tt
}
作者:tanem
项目:amor
func TexImage2D(target Enum, level int, width, height int, format Enum, ty Enum, p unsafe.Pointer) {
C.glTexImage2D(target.c(), C.GLint(level), C.GLint(format), C.GLsizei(width), C.GLsizei(height), 0, format.c(), ty.c(), p)
}
作者:Nvvee
项目:g
//void glTexImage2D (GLenum target, int level, int internalformat, int width, int height, int border, GLenum format, GLenum type, const GLvoid *pixels)
func TexImage2D(target GLenum, level int, internalformat int, width int, height int, border int, format, typ GLenum, pixels interface{}) {
C.glTexImage2D(C.GLenum(target), C.GLint(level), C.GLint(internalformat),
C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format),
C.GLenum(typ), ptr(pixels))
}
作者:jacksca
项目:go-gles
func TexImageLuminance(target TextureTarget, level int, img *image.Gray) {
a := adjustUnpackAlignment(img.Stride)
C.glTexImage2D(C.GLenum(target), C.GLint(level), C.GL_LUMINANCE, C.GLsizei(img.Rect.Dx()), C.GLsizei(img.Rect.Dy()), 0, C.GL_LUMINANCE, C.GL_UNSIGNED_BYTE, unsafe.Pointer(&img.Pix[0]))
restoreAlignment(a)
}
作者:nick-fedesn
项目:egle
func TexImage2D(target uint, level, internalformat, width, height,
border int, format, type_ uint, pixels Void) {
C.glTexImage2D(C.GLenum(target), C.GLint(level), C.GLint(internalformat),
C.GLsizei(width), C.GLsizei(height), C.GLint(border),
C.GLenum(format), C.GLenum(type_), unsafe.Pointer(pixels))
}
作者:chs
项目:Go-OpenG
//void glTexImage2D (GLenum target, int level, int internalformat, int width, int height, int border, GLenum format, GLenum type, const GLvoid *pixels)
func TexImage2D(target GLenum, level int, internalformat int, width int, height int, border int, format GLenum, pixels interface{}) {
t, p := GetGLenumType(pixels)
C.glTexImage2D(C.GLenum(target), C.GLint(level), C.GLenum(internalformat), C.GLsizei(width), C.GLsizei(height), C.GLint(border), C.GLenum(format), C.GLenum(t), p)
}