Documentation ¶
Overview ¶
Package video takes care on the game display. It also creates the window using GLFW. It exports the Refresh callback used by the libretro implementation.
Index ¶
- func NewImage(file string) uint32
- func XYWHTo4points(x, y, w, h, fbh float32) (x1, y1, x2, y2, x3, y3, x4, y4 float32)
- type Color
- type Video
- func (video *Video) Configure(fullscreen bool)
- func (video *Video) CoreRatioViewport(fbWidth int, fbHeight int)
- func (video *Video) DrawBorder(x, y, w, h, borderWidth float32, c Color)
- func (video *Video) DrawCircle(x, y, r float32, c Color)
- func (video *Video) DrawImage(image uint32, x, y, w, h float32, scale float32, c Color)
- func (video *Video) DrawRect(x, y, w, h float32, scale float32, c Color)
- func (video *Video) DrawRoundedRect(x, y, w, h, r float32, c Color)
- func (video *Video) Reconfigure(fullscreen bool)
- func (video *Video) Refresh(data unsafe.Pointer, width int32, height int32, pitch int32)
- func (video *Video) Render()
- func (video *Video) SetPixelFormat(format uint32) bool
- func (video *Video) TakeScreenshot()
- type WindowInterface
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func XYWHTo4points ¶
XYWHTo4points converts coordinates from (x, y, width, height) to (x1, y1, x2, y2, x3, y3, x4, y4)
Types ¶
type Video ¶
type Video struct { GLVersion string Window WindowInterface Geom libretro.GameGeometry Font *glfont.Font // contains filtered or unexported fields }
Video holds the state of the video package
func (*Video) CoreRatioViewport ¶
CoreRatioViewport configures the vertex array to display the game at the center of the window while preserving the original ascpect ratio of the game or core
func (*Video) DrawBorder ¶
DrawBorder draws a colored rectangle border
func (*Video) DrawCircle ¶
DrawCircle draws a circle
func (*Video) DrawRoundedRect ¶
DrawRoundedRect draws a rectangle with rounded corners
func (*Video) Reconfigure ¶
Reconfigure destroys and recreates the window with new attributes
func (*Video) SetPixelFormat ¶
SetPixelFormat is a callback passed to the libretro implementation. It allows the core or the game to tell us which pixel format should be used for the display.
func (*Video) TakeScreenshot ¶
func (video *Video) TakeScreenshot()
TakeScreenshot captures the ouput of video.Render and writes it to a file
type WindowInterface ¶
type WindowInterface interface { GetFramebufferSize() (width, height int) Destroy() MakeContextCurrent() SetSizeLimits(minw, minh, maxw, maxh int) SetInputMode(mode glfw.InputMode, value int) GetKey(key glfw.Key) glfw.Action SetShouldClose(bool) ShouldClose() bool SetTitle(string) SwapBuffers() }
WindowInterface lists all the methods from glfw.Window that we are using. It is there only to allow mocking during tests.