当前位置: 首页>>代码示例>>Golang>>正文


Golang C.glGetShaderiv函数代码示例

本文整理汇总了Golang中C.glGetShaderiv函数的典型用法代码示例。如果您正苦于以下问题:Golang glGetShaderiv函数的具体用法?Golang glGetShaderiv怎么用?Golang glGetShaderiv使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了glGetShaderiv函数的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。

示例1: Compile

func (shader Shader) Compile() {
	C.glCompileShader(C.GLuint(shader))

	status := C.GLint(0)
	C.glGetShaderiv(C.GLuint(shader), C.GL_COMPILE_STATUS, &status)

	if status != C.GL_TRUE {
		loglen := C.GLint(0)
		C.glGetShaderiv(C.GLuint(shader), C.GL_INFO_LOG_LENGTH, &loglen)
		log := (*C.GLchar)(C.malloc(C.size_t(loglen)))
		defer C.free(unsafe.Pointer(log))
		C.glGetShaderInfoLog(C.GLuint(shader), C.GLsizei(loglen), nil, log)
		panic(fmt.Errorf("Failed to compile %s: %s", shader.Type(), C.GoString((*C.char)(log))))
	}
}
开发者ID:jackscan,项目名称:go-gles3,代码行数:15,代码来源:shader.go

示例2: GetShaderiv

func GetShaderiv(
	shader uint32, pname Enum, params *int32) {
	C.glGetShaderiv(
		C.GLuint(shader),
		C.GLenum(pname),
		(*C.GLint)(params))
}
开发者ID:remogatto,项目名称:egles,代码行数:7,代码来源:gles2.go

示例3: NewShader

// NewShader creates a shader object of type typ, loads it with source code src and compiles it
func NewShader(typ int, src string) (Shader, error) {
	var val C.GLint
	shad := C.glCreateShader(C.GLenum(typ))
	s := (*C.GLchar)(C.CString(src))
	C.glShaderSource(shad, 1, &s, nil)
	C.glCompileShader(shad)
	C.glGetShaderiv(shad, COMPILE_STATUS, &val)
	if val != TRUE {
		C.glGetShaderiv(shad, INFO_LOG_LENGTH, &val)
		buf := make([]C.GLchar, val+1)
		C.glGetShaderInfoLog(shad, C.GLsizei(val), nil, &buf[0])
		C.glDeleteShader(shad)
		return Shader(0), errors.New(C.GoString((*C.char)(&buf[0])))
	}
	return Shader(shad), nil
}
开发者ID:extrame,项目名称:gl,代码行数:17,代码来源:gl.go

示例4: GetShaderi

func GetShaderi(s Shader, pname Enum) (r0 int) {
	defer func() {
		errstr := errDrain()
		log.Printf("gl.GetShaderi(%v, %v) %v%v", s, pname, r0, errstr)
	}()
	var params C.GLint
	C.glGetShaderiv(s.c(), pname.c(), &params)
	return int(params)
}
开发者ID:Miaque,项目名称:mojo,代码行数:9,代码来源:gldebug.go

示例5: GetSource

func (shader Shader) GetSource() string {
	var len C.GLint
	C.glGetShaderiv(C.GLuint(shader), C.GLenum(SHADER_SOURCE_LENGTH), &len)

	log := C.malloc(C.size_t(len + 1))
	C.glGetShaderSource(C.GLuint(shader), C.GLsizei(len), nil, (*C.GLchar)(log))

	defer C.free(log)

	return C.GoString((*C.char)(log))
}
开发者ID:jimarnold,项目名称:gl,代码行数:11,代码来源:shader.go

示例6: GetInfoLog

func (shader Shader) GetInfoLog() string {
	var length C.GLint
	C.glGetShaderiv(C.GLuint(shader), C.GLenum(INFO_LOG_LENGTH), &length)
	// length is buffer size including null character

	if length > 1 {
		log := C.malloc(C.size_t(length))
		defer C.free(log)
		C.glGetShaderInfoLog(C.GLuint(shader), C.GLsizei(length), nil, (*C.GLchar)(log))
		return C.GoString((*C.char)(log))
	}
	return ""
}
开发者ID:vivicai,项目名称:gl,代码行数:13,代码来源:shader.go

示例7: GetShaderInfoLog

func GetShaderInfoLog(shader C.GLuint) string {
	var logLen C.GLint
	C.glGetShaderiv(shader, C.GL_INFO_LOG_LENGTH, &logLen)
	var c C.GLchar
	logLenBytes := int(logLen) * int(unsafe.Sizeof(c))
	log := C.malloc(C.size_t(logLenBytes))
	if log == nil {
		panic("Failed to allocate shader log buffer")
	}
	defer C.free(log)
	C.glGetShaderInfoLog(C.GLuint(shader), C.GLsizei(logLen), (*C.GLsizei)(unsafe.Pointer(nil)), (*C.GLchar)(log))
	return string(C.GoBytes(log, C.int(logLenBytes)))
}
开发者ID:Congenital,项目名称:goandroid,代码行数:13,代码来源:game.go

示例8: loadShader

func loadShader(shaderType C.GLenum, source string) C.GLuint {
	handle := C.glCreateShader(shaderType)
	if handle == 0 {
		panic(fmt.Errorf("Failed to create shader of type %v", shaderType))
	}
	sourceC := C.CString(source)
	defer C.free(unsafe.Pointer(sourceC))
	C.glShaderSource(handle, 1, (**C.GLchar)(unsafe.Pointer(&sourceC)), (*C.GLint)(unsafe.Pointer(nil)))
	C.glCompileShader(handle)
	var compiled C.GLint
	C.glGetShaderiv(handle, C.GL_COMPILE_STATUS, &compiled)
	if compiled != C.GL_TRUE {
		log := GetShaderInfoLog(handle)
		panic(fmt.Errorf("Failed to compile shader: %v, shader: %v", log, source))
	}
	return handle
}
开发者ID:Congenital,项目名称:goandroid,代码行数:17,代码来源:game.go

示例9: GetShaderi

func GetShaderi(s Shader, pname Enum) int {
	var params C.GLint
	C.glGetShaderiv(s.c(), pname.c(), &params)
	return int(params)
}
开发者ID:tanema,项目名称:amore,代码行数:5,代码来源:gl_opengles.go

示例10: Get

func (shader Shader) Get(param GLenum) int {
	var rv C.GLint

	C.glGetShaderiv(C.GLuint(shader), C.GLenum(param), &rv)
	return int(rv)
}
开发者ID:vivicai,项目名称:gl,代码行数:6,代码来源:shader.go

示例11: Type

func (shader Shader) Type() ShaderType {
	stype := C.GLint(0)
	C.glGetShaderiv(C.GLuint(shader), C.GL_SHADER_TYPE, &stype)
	return ShaderType(stype)
}
开发者ID:jackscan,项目名称:go-gles3,代码行数:5,代码来源:shader.go

示例12: Get

// Get returns a parameter from a shader object
func (s Shader) Get(parm ShaderParameter) int {
	var vl C.GLint
	C.glGetShaderiv(C.GLuint(s), C.GLenum(parm), &vl)
	return int(vl)
}
开发者ID:eaburns,项目名称:gl,代码行数:6,代码来源:shader.go

示例13: GetShaderiv

func GetShaderiv(shader, pname uint, params []int32) []int32 {
	C.glGetShaderiv(C.GLuint(shader), C.GLenum(pname), (*C.GLint)(unsafe.Pointer(&params[0])))
	return params
}
开发者ID:nick-fedesna,项目名称:egles,代码行数:4,代码来源:es2.go


注:本文中的C.glGetShaderiv函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。