本文整理汇总了Golang中github.com/veandco/go-sdl2/sdl.Window.GetSurface方法的典型用法代码示例。如果您正苦于以下问题:Golang Window.GetSurface方法的具体用法?Golang Window.GetSurface怎么用?Golang Window.GetSurface使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类github.com/veandco/go-sdl2/sdl.Window
的用法示例。
在下文中一共展示了Window.GetSurface方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Golang代码示例。
示例1: createMainWindow
func createMainWindow() {
var err error
var mainWindow *sdl.Window
gc := gamecontext.GContext
gc.WindowWidth = 800
gc.WindowHeight = 600
mainWindow, err = sdl.CreateWindow("Eggdrop!", sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED, int(gc.WindowWidth), int(gc.WindowHeight), sdl.WINDOW_SHOWN)
if err != nil {
panic(err)
}
gc.MainSurface, err = mainWindow.GetSurface()
if err != nil {
panic(err)
}
gc.PixelFormatEnum, err = mainWindow.GetPixelFormat()
if err != nil {
panic(err)
}
gc.PixelFormat, err = sdl.AllocFormat(uint(gc.PixelFormatEnum)) // TODO why the cast? Seems to work?
if err != nil {
panic(err)
}
gc.MainWindow = mainWindow
}
示例2: run
func run() int {
var window *sdl.Window
var font *ttf.Font
var surface *sdl.Surface
var solid *sdl.Surface
var err error
sdl.Init(sdl.INIT_VIDEO)
if err := ttf.Init(); err != nil {
fmt.Fprintf(os.Stderr, "Failed to initialize TTF: %s\n", err)
return 1
}
if window, err = sdl.CreateWindow(winTitle, sdl.WINDOWPOS_UNDEFINED, sdl.WINDOWPOS_UNDEFINED, winWidth, winHeight, sdl.WINDOW_SHOWN); err != nil {
fmt.Fprintf(os.Stderr, "Failed to create window: %s\n", err)
return 2
}
defer window.Destroy()
if font, err = ttf.OpenFont("../../assets/test.ttf", 32); err != nil {
fmt.Fprint(os.Stderr, "Failed to open font: %s\n", err)
return 4
}
defer font.Close()
if solid, err = font.RenderUTF8_Solid("Hello, World!", sdl.Color{255, 0, 0, 255}); err != nil {
fmt.Fprint(os.Stderr, "Failed to render text: %s\n", err)
return 5
}
defer solid.Free()
if surface, err = window.GetSurface(); err != nil {
fmt.Fprint(os.Stderr, "Failed to get window surface: %s\n", err)
return 6
}
if err = solid.Blit(nil, surface, nil); err != nil {
fmt.Fprint(os.Stderr, "Failed to put text on window surface: %s\n", err)
return 7
}
// Show the pixels for a while
window.UpdateSurface()
sdl.Delay(3000)
return 0
}
示例3: Draw
func Draw(window *sdl.Window, parsedInput *ParsedInput, loop *bool) inputManager.Update {
surface, err := window.GetSurface()
if err != nil {
panic(err)
}
surface.FillRect(&sdl.Rect{0, 0, surface.W, surface.H}, 0xff000000)
var player2Rects [6]sdl.Rect
for i := 0; i < 6; i++ {
player2Rects[i] = sdl.Rect{(256 + player1Rects[i].X), (player1Rects[i].Y), (player1Rects[i].W), (player1Rects[i].H)}
}
return func(state int) int {
if *loop {
for i := 0; i < 6; i++ {
if parsedInput[i] {
surface.FillRect(&player1Rects[i], 0xffff0000)
} else {
surface.FillRect(&player1Rects[i], 0xffffff00)
}
if parsedInput[i+6] {
surface.FillRect(&player2Rects[i], 0xffff0000)
} else {
surface.FillRect(&player2Rects[i], 0xffffff00)
}
}
if parsedInput[12] {
surface.FillRect(&sdl.Rect{192, 160, 64, 64}, 0xffff0000)
} else {
surface.FillRect(&sdl.Rect{192, 160, 64, 64}, 0xffffff00)
}
if parsedInput[13] {
surface.FillRect(&sdl.Rect{192, 224, 64, 64}, 0xffff0000)
} else {
surface.FillRect(&sdl.Rect{192, 224, 64, 64}, 0xffffff00)
}
err := window.UpdateSurface()
if err != nil {
panic(err)
}
} else {
return -1
}
return 0
}
}
示例4: NewPPU
func NewPPU(window *sdl.Window, vram *VRAM) *PPU {
return &PPU{window: window, surface: window.GetSurface(), vram: vram}
}