mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-01-28 03:32:45 +01:00
Updated Cheat Sheet (markdown)
parent
5b7434e244
commit
9cdbd3a1d0
@ -96,8 +96,8 @@ When the given image is as same as `i`, DrawImage panics.
|
||||
|
||||
`DrawImage` works more efficiently as batches when the successive calls of DrawImages satisfies the below conditions:
|
||||
|
||||
* All render targets are same (A in A.DrawImage(B, op))
|
||||
* All render sources are same (B in A.DrawImage(B, op))
|
||||
* All render targets are same (`A` in `A.DrawImage(B, op)`)
|
||||
* All render sources are same (`B` in `A.DrawImage(B, op)`)
|
||||
* This is not a strong request since different images might share a same inner
|
||||
OpenGL texture in high possibility. This is not 100%, so using the same render
|
||||
source is safer.
|
||||
@ -115,18 +115,6 @@ For more performance tips, see [[Performance Tips]].
|
||||
type DrawImageOptions struct {
|
||||
// SourceRect is the region of the source image to draw.
|
||||
// If SourceRect is nil, whole image is used.
|
||||
//
|
||||
// It is assured that texels out of the SourceRect are never used.
|
||||
//
|
||||
// Calling DrawImage copies the content of SourceRect pointer. This means that
|
||||
// even if the SourceRect value is modified after passed to DrawImage,
|
||||
// the result of DrawImage doen't change.
|
||||
//
|
||||
// op := &ebiten.DrawImageOptions{}
|
||||
// r := image.Rect(0, 0, 100, 100)
|
||||
// op.SourceRect = &r
|
||||
// dst.DrawImage(src, op)
|
||||
// r.Min.X = 10 // This doesn't affect the previous DrawImage.
|
||||
SourceRect *image.Rectangle
|
||||
|
||||
// GeoM is a geometry matrix to draw.
|
||||
@ -169,3 +157,77 @@ const (
|
||||
FilterLinear Filter = Filter(graphics.FilterLinear)
|
||||
)
|
||||
```
|
||||
|
||||
## `ebiten.GeoM`
|
||||
|
||||
```go
|
||||
type GeoM struct {
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
`GeoM` represents a matrix to transform geometry when rendering an image.
|
||||
|
||||
The initial value is identity.
|
||||
|
||||
### `(*ebiten.GeoM).Translate`
|
||||
|
||||
```go
|
||||
func (g *GeoM) Translate(tx, ty float64)
|
||||
```
|
||||
|
||||
`Translate` translates the matrix by (`tx`, `ty`).
|
||||
|
||||
### `(*ebiten.GeoM).Scale`
|
||||
|
||||
```go
|
||||
func (g *GeoM) Scale(x, y float64)
|
||||
```
|
||||
|
||||
`Scale` scales the matrix by (`x`, `y`).
|
||||
|
||||
### `(*ebiten.GeoM).Rotate`
|
||||
|
||||
```go
|
||||
func (g *GeoM) Rotate(theta float64)
|
||||
```
|
||||
|
||||
`Rotate` rotates the matrix by `theta`. The unit is radian.
|
||||
|
||||
## `ebiten.ColorM`
|
||||
|
||||
```go
|
||||
type ColorM struct {
|
||||
// contains filtered or unexported fields
|
||||
}
|
||||
```
|
||||
|
||||
`ColorM` represents a matrix to transform coloring when rendering an image.
|
||||
|
||||
`ColorM` is applied to the straight alpha color while an Image's pixels' format is alpha premultiplied. Before applying a matrix, a color is un-multiplied, and after applying the matrix, the color is multiplied again.
|
||||
|
||||
The initial value is identity.
|
||||
|
||||
### `(*ebiten.ColorM).Scale`
|
||||
|
||||
```go
|
||||
func (c *ColorM) Scale(r, g, b, a float64)
|
||||
```
|
||||
|
||||
`Scale` scales the matrix by (`r`, `g`, `b`, `a`).
|
||||
|
||||
### `(*ebiten.ColorM).Translate`
|
||||
|
||||
```go
|
||||
func (c *ColorM) Translate(r, g, b, a float64)
|
||||
```
|
||||
|
||||
`Translate` translates the matrix by (`r`, `g`, `b`, `a`).
|
||||
|
||||
### `(*ebiten.ColorM).ChangeHSV`
|
||||
|
||||
```go
|
||||
func (c *ColorM) ChangeHSV(hueTheta float64, saturationScale float64, valueScale float64)
|
||||
```
|
||||
|
||||
`ChangeHSV` changes HSV (Hue-Saturation-Value) values. `hueTheta` is a radian value to rotate hue. `saturationScale` is a value to scale saturation. `valueScale` is a value to scale value (a.k.a. brightness).
|
||||
|
Loading…
Reference in New Issue
Block a user