func Vsync(enable bool) { if enable { C.SDL_GL_SetSwapInterval(1) } else { C.SDL_GL_SetSwapInterval(0) } }
// SetVerticalSync sets the vertical sync status func (window *Screen) SetVerticalSync(enabled bool) { if enabled { C.SDL_GL_SetSwapInterval(1) } else { C.SDL_GL_SetSwapInterval(0) } window.vsync = enabled }
func GL_SetSwapInterval(vsync bool) error { var interval C.int if vsync { interval = 1 } if C.SDL_GL_SetSwapInterval(interval) != 0 { return getError() } return nil }
// New returns a newly created Screen func New(width int, height int, fullscreen bool, FSAA int, name string) *Screen { window := &Screen{} C.SDL_Init(C.SDL_INIT_VIDEO) C.setGlContextAttributes() C.SDL_GL_SetAttribute(C.SDL_GL_DOUBLEBUFFER, 1) // Force hardware accel C.SDL_GL_SetAttribute(C.SDL_GL_ACCELERATED_VISUAL, 1) if FSAA > 0 { // FSAA (Fullscreen antialiasing) C.SDL_GL_SetAttribute(C.SDL_GL_MULTISAMPLEBUFFERS, 1) C.SDL_GL_SetAttribute(C.SDL_GL_MULTISAMPLESAMPLES, C.int(FSAA)) // 2, 4, 8 } flags := C.SDL_WINDOW_OPENGL | C.SDL_RENDERER_ACCELERATED if fullscreen { flags = flags | C.SDL_WINDOW_FULLSCREEN } C.SDL_CreateWindowAndRenderer(C.int(width), C.int(height), C.Uint32(flags), &window.sdlWindow, &window.renderer) C.SDL_SetWindowTitle(window.sdlWindow, C.CString(name)) C.SDL_GL_CreateContext(window.sdlWindow) if err := gl.Init(); err != nil { panic(err) } version := gl.GoStr(gl.GetString(gl.VERSION)) fmt.Println("OpenGL version", version) // Configure global settings gl.Enable(gl.BLEND) gl.BlendFunc(gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA) gl.ClearColor(0.0, 0.0, 0.0, 1.0) gl.Clear(gl.COLOR_BUFFER_BIT | gl.DEPTH_BUFFER_BIT) window.Width = width window.Height = height window.name = name window.shouldClose = false C.SDL_GL_SwapWindow(window.sdlWindow) window.startTime = time.Now() window.frameTime = time.Now() C.SDL_GL_SetSwapInterval(1) window.vsync = true return window }
func GL_SetSwapInterval(_interval int) error { if C.SDL_GL_SetSwapInterval(C.int(_interval)) < 0 { return errors.New(GetError()) } return nil }
func GL_SetSwapInterval(interval int) int { _interval := (C.int)(interval) return (int)(C.SDL_GL_SetSwapInterval(_interval)) }
// GL_SetSwapInterval (https://wiki.libsdl.org/SDL_GL_SetSwapInterval) func GL_SetSwapInterval(interval int) error { if C.SDL_GL_SetSwapInterval(C.int(interval)) != 0 { return GetError() } return nil }
func GL_SetSwapInterval(interval int) int { return int(C.SDL_GL_SetSwapInterval(C.int(interval))) }