func (m *Menu) DrawItem(renderer *sdl.Renderer, index int) { var text_surface *sdl.Surface var text_texture *sdl.Texture var text_width, text_height int32 var text_rect sdl.Rect var screen_width, _, _ int = renderer.GetRendererOutputSize() for index, menu_item := range m.menu_items { if index == m.selected_item { text_surface = m.font.RenderText_Solid(menu_item.text, *m.selected_color) } else { text_surface = m.font.RenderText_Solid(menu_item.text, *m.unselected_color) } text_width = text_surface.W text_height = text_surface.H text_texture = renderer.CreateTextureFromSurface(text_surface) text_rect = sdl.Rect{ int32(screen_width) - 10 - text_width, //X position (m.font_size_32 * int32(index)), text_width, text_height, } renderer.Copy(text_texture, nil, &text_rect) } }
func (m *Menu) DrawTitle(renderer *sdl.Renderer) { var text_surface *sdl.Surface var text_texture *sdl.Texture var text_width, text_height int32 var title_rect sdl.Rect var _, screen_height, _ int = renderer.GetRendererOutputSize() text_surface = m.title_font.RenderText_Solid(m.menu_title, *m.title_color) text_width = text_surface.W text_height = text_surface.H text_texture = renderer.CreateTextureFromSurface(text_surface) title_rect = sdl.Rect{ 20, //X position int32(screen_height) - 20 - text_height, //Y position text_width, text_height, } renderer.Copy(text_texture, nil, &title_rect) }