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


Golang gl.GetError函数代码示例

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


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

示例1: CheckGLErrors

func CheckGLErrors() {
	glerror := gl.GetError()
	if glerror == gl.NO_ERROR {
		return
	}

	fmt.Printf("gl.GetError() reports")
	for glerror != gl.NO_ERROR {
		fmt.Printf(" ")
		switch glerror {
		case gl.INVALID_ENUM:
			fmt.Printf("GL_INVALID_ENUM")
		case gl.INVALID_VALUE:
			fmt.Printf("GL_INVALID_VALUE")
		case gl.INVALID_OPERATION:
			fmt.Printf("GL_INVALID_OPERATION")
		case gl.STACK_OVERFLOW:
			fmt.Printf("GL_STACK_OVERFLOW")
		case gl.STACK_UNDERFLOW:
			fmt.Printf("GL_STACK_UNDERFLOW")
		case gl.TABLE_TOO_LARGE:
			fmt.Printf("GL_TABLE_TOO_LARGE")
		case gl.OUT_OF_MEMORY:
			fmt.Printf("GL_OUT_OF_MEMORY")
		default:
			fmt.Printf("%d", glerror)
		}
		glerror = gl.GetError()
	}
	fmt.Printf("\n")
}
开发者ID:TheOnly92,项目名称:gexic,代码行数:31,代码来源:system.go

示例2: Serve

func (shaders Shaders) Serve(ref ShaderRef) (gl.Shader, error) {
	shader, ok := shaders[ref]
	if ok {
		return shader, nil
	}

	shader_seed, ok := SHADER_SOURCES[ref]
	if !ok {
		return 0, fmt.Errorf("Shader Reference '%#v' not found.", ref)
	}

	shader = gl.CreateShader(gl.GLenum(shader_seed.Type))
	if err := CheckGlError(); err != nil {
		if shader == 0 {
			err.Description = "CreateShader failed."
		} else {
			err.Description = "CreateShader succeeded but OpenGL reports an error."
		}
		return shader, err
	} else {
		if shader == 0 {
			return 0, fmt.Errorf("CreateShader failed but OpenGL reports no error.")
		}
	}

	shader.Source(shader_seed.Source)
	if err := CheckGlError(); err != nil {
		shader.Delete()
		gl.GetError() // Delete may also raise an error, ignore.
		err.Description = "Shader.Source failed."
		return 0, err
	}

	shader.Compile()
	if err := CheckGlError(); err != nil {
		infolog := shader.GetInfoLog()
		shader.Delete()
		gl.GetError() // GetInfoLog and delete may raise an error.
		err.Description = fmt.Sprintf("Shader.Compile failed. Log: %v", infolog)
		return 0, err
	}
	compileStatus := shader.Get(gl.COMPILE_STATUS)
	if err := CheckGlError(); err != nil {
		shader.Delete()
		gl.GetError()
		err.Description = "shader.Get(gl.COMPILE_STATUS) failed."
		return 0, err
	}
	if compileStatus == gl.FALSE {
		infolog := shader.GetInfoLog()
		shader.Delete()
		gl.GetError()
		err := fmt.Errorf("Shader compiling failed.  Log: %v", infolog)
		return 0, err
	}
	shaders[ref] = shader
	return shader, nil
}
开发者ID:Niriel,项目名称:daggor,代码行数:58,代码来源:shaders.go

示例3: checkErrors

func (self *OpenGLRenderer) checkErrors() {
	e := gl.GetError()
	for e != gl.NO_ERROR {
		errString, err := glu.ErrorString(e)
		if err != nil {
			log.Println("Invalid error code found", err)
		} else {
			log.Printf("GLError %v => %s", e, errString)
		}

		e = gl.GetError()
	}
}
开发者ID:jasonroelofs,项目名称:slartibartfast,代码行数:13,代码来源:opengl_renderer.go

示例4: main

func main() {
	runtime.LockOSThread()

	if !glfw.Init() {
		fmt.Fprintf(os.Stderr, "Can't open GLFW")
		return
	}
	defer glfw.Terminate()

	glfw.WindowHint(glfw.Samples, 4)
	glfw.WindowHint(glfw.ContextVersionMajor, 3)
	glfw.WindowHint(glfw.ContextVersionMinor, 3)
	glfw.WindowHint(glfw.OpenglProfile, glfw.OpenglCoreProfile)
	glfw.WindowHint(glfw.OpenglForwardCompatible, glfw.True) // needed for macs

	window, err := glfw.CreateWindow(1024, 768, "Tutorial 1", nil, nil)
	if err != nil {
		fmt.Fprintf(os.Stderr, "%v\n", err)
		return
	}

	window.MakeContextCurrent()

	gl.Init()
	gl.GetError() // Ignore error
	window.SetInputMode(glfw.StickyKeys, 1)

	gl.ClearColor(0., 0., 0.4, 0.)
	// Equivalent to a do... while
	for ok := true; ok; ok = (window.GetKey(glfw.KeyEscape) != glfw.Press && !window.ShouldClose()) {
		window.SwapBuffers()
		glfw.PollEvents()
	}

}
开发者ID:krux02,项目名称:mathgl,代码行数:35,代码来源:main.go

示例5: NewRenderer

// NewRenderer creates a new Renderer with the given window size and title.
func NewRenderer(window *Window) (*Renderer, error) {
	logger.Debug("Initializing GLEW")

	// Init glew
	if gl.Init() != 0 {
		return nil, errors.New("Could not initialise glew.")
	}
	gl.GetError()

	if window.Settings.ClearColor != nil {
		color := window.Settings.ClearColor
		gl.ClearColor(
			gl.GLclampf(color.R()),
			gl.GLclampf(color.G()),
			gl.GLclampf(color.B()),
			0.,
		)
	}

	gl.Enable(gl.DEPTH_TEST)
	gl.DepthFunc(gl.LESS)

	gl.Enable(gl.CULL_FACE)

	// Vertex buffers
	vertexArray := gl.GenVertexArray()
	vertexArray.Bind()

	renderer := Renderer{
		vertexArray: vertexArray,
		window:      window,
	}
	return &renderer, nil
}
开发者ID:nobonobo,项目名称:go-three,代码行数:35,代码来源:renderer.go

示例6: RunIn3DContext

func RunIn3DContext(example func()) {
	if !glfw.Init() {
		log.Panic("glfw Error")
	}
	defer glfw.Terminate()

	glfw.WindowHint(glfw.ContextVersionMajor, 3)
	glfw.WindowHint(glfw.ContextVersionMinor, 3)
	glfw.WindowHint(glfw.OpenglForwardCompatible, glfw.True)
	glfw.WindowHint(glfw.OpenglProfile, glfw.OpenglCoreProfile)

	w, h := 100, 100
	window, err := glfw.CreateWindow(w, h, "Test", nil, nil)
	if err != nil {
		log.Panic(err)
	}
	window.MakeContextCurrent()

	if gl.Init() != 0 {
		log.Panic("gl error")
	}
	gl.GetError()

	vertexArray := gl.GenVertexArray()
	vertexArray.Bind()

	example()
}
开发者ID:nobonobo,项目名称:go-three,代码行数:28,代码来源:three_test.go

示例7: main

func main() {
	if err := glfw.Init(); err != nil {
		fmt.Fprintf(os.Stderr, "%s\n", err.Error())
		return
	}
	defer glfw.Terminate()

	glfw.OpenWindowHint(glfw.FsaaSamples, 4)
	glfw.OpenWindowHint(glfw.OpenGLVersionMajor, 3)
	glfw.OpenWindowHint(glfw.OpenGLVersionMinor, 3)
	glfw.OpenWindowHint(glfw.OpenGLProfile, glfw.OpenGLCoreProfile)

	if err := glfw.OpenWindow(1024, 768, 0, 0, 0, 0, 32, 0, glfw.Windowed); err != nil {
		fmt.Fprintf(os.Stderr, "%s\n", err.Error())
		return
	}

	gl.Init()
	gl.GetError() // Ignore error

	glfw.SetWindowTitle("Tutorial 01")
	glfw.Enable(glfw.StickyKeys)

	gl.ClearColor(0., 0., 0.4, 0.)
	// Equivalent to a do... while
	for ok := true; ok; ok = (glfw.Key(glfw.KeyEsc) != glfw.KeyPress && glfw.WindowParam(glfw.Opened) == gl.TRUE) {
		glfw.SwapBuffers()
	}

}
开发者ID:GlenKelley,项目名称:mathgl,代码行数:30,代码来源:main.go

示例8: CheckGLError

// CheckGLError returns an opengl error if one exists.
func CheckGLError() error {
	errno := gl.GetError()

	if errno == gl.NO_ERROR {
		return nil
	}
	return fmt.Errorf("Unknown GL error: %d", errno)
}
开发者ID:kurrik,项目名称:gltext,代码行数:9,代码来源:font.go

示例9: CheckGlError

func CheckGlError() *GlError {
	ec := gl.GetError()
	if ec == gl.NO_ERROR {
		return nil
	}
	err := GlError{
		Error_code: ec,
		Stack:      retreiveStackTrace(),
	}
	return &err
}
开发者ID:Niriel,项目名称:daggor,代码行数:11,代码来源:errors.go

示例10: OpenGLSentinel

// Used as "defer OpenGLSentinel()()" checks the gl error code on call and exit
func OpenGLSentinel() func() {
	check := func() {
		e := gl.GetError()
		if e != gl.NO_ERROR {
			s, err := glu.ErrorString(e)
			if err != nil {
				log.Panic("Invalid error code: ", err)
			}
			log.Panic("Encountered GLError: ", e, " = ", s)
		}
	}
	check()
	return check
}
开发者ID:jasonrpowers,项目名称:glh,代码行数:15,代码来源:util.go

示例11: CheckGLError

// CheckGLError returns an opengl error if one exists.
func CheckGLError() error {
	errno := gl.GetError()

	if errno == gl.NO_ERROR {
		return nil
	}

	str, err := glu.ErrorString(errno)
	if err != nil {
		return fmt.Errorf("Unknown GL error: %d", errno)
	}

	return fmt.Errorf(str)
}
开发者ID:jasonrpowers,项目名称:glh,代码行数:15,代码来源:error.go

示例12: checkGlError

func checkGlError(expeced ...gl.GLenum) error {
	gle := gl.GetError()
	if gle != gl.NO_ERROR {
		str, err := glu.ErrorString(gle)
		if err != nil {
			str = err.Error()
		}
		for _, v := range expeced {
			if v == gle {
				return Error(fmt.Sprintf("[gl][expected] %v: %v", gle, str))
			}
		}
		return Error(fmt.Sprintf("[gl][unexpected] %v: %v", gle, str))
	}
	return nil
}
开发者ID:andrebq,项目名称:exp,代码行数:16,代码来源:error.go

示例13: loadShader

func loadShader(shaderType gl.GLenum, source string) gl.Shader {
	shader := gl.CreateShader(shaderType)
	if err := gl.GetError(); err != gl.NO_ERROR {
		panic(fmt.Errorf("gl error: %v", err))
	}

	shader.Source(source)
	shader.Compile()

	if shader.Get(gl.COMPILE_STATUS) != gl.TRUE {
		log := shader.GetInfoLog()
		panic(fmt.Errorf("Failed to compile shader: %v, shader: %v", log, source))
	}

	return shader
}
开发者ID:nick-fedesna,项目名称:Fergulator,代码行数:16,代码来源:video.go

示例14: validateProgram

//-----------------------------------------------------------------------------
func validateProgram(program gl.Program) {
	program.Validate()
	if err := CheckGlError(); err != nil {
		err.Description = "program.Validate failed"
		panic(err)
	}
	status := program.Get(gl.VALIDATE_STATUS)
	if err := CheckGlError(); err != nil {
		err.Description = "program.Get(VALIDATE_STATUS) failed"
		panic(err)
	}
	if status == gl.FALSE {
		infolog := program.GetInfoLog()
		gl.GetError() // Clear error flag if infolog derped.
		panic(fmt.Errorf("program validation failed with log: %v", infolog))
	}
}
开发者ID:Niriel,项目名称:daggor,代码行数:18,代码来源:renderer.go

示例15: 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()
}
开发者ID:TheOnly92,项目名称:gexic,代码行数:46,代码来源:hex.go


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