예제 #1
0
파일: gl_opengles.go 프로젝트: tanema/amore
func GetShaderSource(s Shader) string {
	sourceLen := GetShaderi(s, SHADER_SOURCE_LENGTH)
	if sourceLen == 0 {
		return ""
	}
	buf := C.malloc(C.size_t(sourceLen))
	defer C.free(buf)
	C.glGetShaderSource(s.c(), C.GLsizei(sourceLen), nil, (*C.GLchar)(buf))
	return C.GoString((*C.char)(buf))
}
예제 #2
0
파일: gles2.go 프로젝트: remogatto/egles
func GetShaderSource(
	shader uint32, bufsize Sizei,
	length *Sizei, source *string) {
	s := glString(*source)
	C.glGetShaderSource(
		C.GLuint(shader),
		C.GLsizei(bufsize),
		(*C.GLsizei)(length),
		s)
	source = goString(s)
}
예제 #3
0
파일: shader.go 프로젝트: jimarnold/gl
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))
}
예제 #4
0
파일: gldebug.go 프로젝트: Miaque/mojo
func GetShaderSource(s Shader) (r0 string) {
	defer func() {
		errstr := errDrain()
		log.Printf("gl.GetShaderSource(%v) %v%v", s, r0, errstr)
	}()
	sourceLen := GetShaderi(s, SHADER_SOURCE_LENGTH)
	if sourceLen == 0 {
		return ""
	}
	buf := C.malloc(C.size_t(sourceLen))
	defer C.free(buf)
	C.glGetShaderSource(s.c(), C.GLsizei(sourceLen), nil, (*C.GLchar)(buf))
	return C.GoString((*C.char)(buf))
}
예제 #5
0
파일: es2.go 프로젝트: nick-fedesna/egles
func GetShaderSource(shader uint, bufsize int) string {
	cs := CString("")
	//defer C.free(unsafe.Pointer(cs))
	C.glGetShaderSource(C.GLuint(shader), C.GLsizei(bufsize), nil, cs)
	return GoString(cs)
}