func (c *newImageCommand) Exec(context *opengl.Context, indexOffsetInBytes int) error { w := NextPowerOf2Int(c.width) h := NextPowerOf2Int(c.height) if w < 1 { return errors.New("graphics: width must be equal or more than 1.") } if h < 1 { return errors.New("graphics: height must be equal or more than 1.") } native, err := context.NewTexture(w, h, nil, c.filter) if err != nil { return err } c.result.texture = &texture{ native: native, } return nil }
func (c *newImageFromImageCommand) Exec(context *opengl.Context, indexOffsetInBytes int) error { origSize := c.img.Bounds().Size() if origSize.X < 1 { return errors.New("graphics: width must be equal or more than 1.") } if origSize.Y < 1 { return errors.New("graphics: height must be equal or more than 1.") } w, h := c.img.Bounds().Size().X, c.img.Bounds().Size().Y if c.img.Bounds() != image.Rect(0, 0, NextPowerOf2Int(w), NextPowerOf2Int(h)) { panic(fmt.Sprintf("graphics: invalid image bounds: %v", c.img.Bounds())) } native, err := context.NewTexture(w, h, c.img.Pix, c.filter) if err != nil { return err } c.result.texture = &texture{ native: native, } return nil }