sf

package module
v0.0.0-...-d9a4ee1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 24, 2015 License: MIT Imports: 8 Imported by: 1

README

gosfml

A rewrite of my favorite multimedia library, SFML, in Go.

Installing Dependencies

Having installed go with proper path, you will additionally need some Open GL headers and the glfw3 go package. The required headers are glfw3 and glew. Make sure all the C libraries are dynamically linked, as CGO can't handle static libraries.

  • Mac
brew tap homebrew/versions
brew install glfw3
brew install glew
  • Windows

Detailed tutorial coming soon... You'll need to build and install glew and glfw using CMAKE. Make sure they're dynamically linked (with dlls)

  • Linux

Install opengl, glew, and glfw from whichever package manager your distribution comes with

Then you can install the Go bindings for OpenGL and gflw3 using go get:

go get github.com/go-gl/gl
go get github.com/go-gl/glfw3

There's some known issues building Go's glfw bindings though. Here's the workaround:

cd $GOPATH/src/github.com/go-gl/glfw3
CGO_CFLAGS=-ftrack-macro-expansion=0 go install

Note: mac users - you may need to use llvm-gcc instead of clang to build glfw, in shell, before running go get, type:

export CC=llvm-gcc

Installing gosfml

If all dependencies have been installed without error, you can simply use go get to grab gosfml:

go get github.com/tedsta/gosfml

Examples

Check out example usages from the examples folder!

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BlendMode

type BlendMode uint8
const (
	BlendAlpha    BlendMode = iota // Pixel = Source * Source.a + Dest * (1 - Source.a)
	BlendAdd                       // Pixel = Source + Dest
	BlendMultiply                  // Pixel = Source * Dest
	BlendNone                      /// Pixel = Source
)

type Clock

type Clock struct {
	// contains filtered or unexported fields
}

func NewClock

func NewClock() *Clock

func (*Clock) ElapsedTime

func (c *Clock) ElapsedTime() time.Duration

func (*Clock) Restart

func (c *Clock) Restart() time.Duration

type Color

type Color struct {
	R uint8
	G uint8
	B uint8
	A uint8
}

Represents an RGBA color with intensities between 0 and 255

type CoordType

type CoordType uint8
const (
	CoordNormalized CoordType = iota
	CoordPixels
)

type PrimitiveType

type PrimitiveType byte

Omg badass render times

const (
	Points PrimitiveType = iota
	Lines
	LineStrip
	Triangles
	TriangleStrip
	TriangleFan
	Quads
)

type Rect

type Rect struct {
	Left float32
	Top  float32
	W    float32
	H    float32
}

func (Rect) IntersectsWith

func (r Rect) IntersectsWith(r2 Rect) bool

type RenderStates

type RenderStates struct {
	BlendMode BlendMode // Blending mode
	Transform Transform // Transform
	Texture   *Texture  // Textures

}

type RenderTarget

type RenderTarget struct {
	// contains filtered or unexported fields
}

func NewRenderTarget

func NewRenderTarget(size Vector2) *RenderTarget

func (*RenderTarget) Clear

func (r *RenderTarget) Clear(color Color)

func (*RenderTarget) DefaultView

func (r *RenderTarget) DefaultView() View

func (*RenderTarget) Render

func (r *RenderTarget) Render(verts []Vertex, primType PrimitiveType, states RenderStates)

func (*RenderTarget) SetSize

func (r *RenderTarget) SetSize(size Vector2)

func (*RenderTarget) SetView

func (r *RenderTarget) SetView(view View)

func (*RenderTarget) Size

func (r *RenderTarget) Size() Vector2

func (*RenderTarget) View

func (r *RenderTarget) View() View

func (*RenderTarget) Viewport

func (r *RenderTarget) Viewport(view *View) Rect

type Sprite

type Sprite struct {
	// contains filtered or unexported fields
}

func NewSprite

func NewSprite(t *Texture) *Sprite

func (*Sprite) LocalBounds

func (s *Sprite) LocalBounds() Rect

func (*Sprite) Render

func (s *Sprite) Render(t *RenderTarget, states RenderStates)

func (*Sprite) SetColor

func (s *Sprite) SetColor(Color Color)

func (*Sprite) SetTexture

func (s *Sprite) SetTexture(t *Texture)

func (*Sprite) SetTextureRect

func (s *Sprite) SetTextureRect(rect Rect)

func (*Sprite) Texture

func (s *Sprite) Texture() *Texture

type Texture

type Texture struct {
	// contains filtered or unexported fields
}

func CreateTexture

func CreateTexture(img image.Image) (*Texture, error)

func NewTextureFromFile

func NewTextureFromFile(fname string) *Texture

func (*Texture) Bind

func (t *Texture) Bind(coordType CoordType)

Bind binds the texture

func (*Texture) Size

func (t *Texture) Size() Vector2

type Transform

type Transform struct {
	Matrix [16]float32
}

func IdentityTransform

func IdentityTransform() Transform

func NewTransformFrom3x3

func NewTransformFrom3x3(a00, a01, a02, a10, a11, a12, a20, a21, a22 float32) Transform

func (*Transform) Combine

func (t *Transform) Combine(t2 Transform)

func (Transform) Inverse

func (t Transform) Inverse() Transform

func (*Transform) Rotate

func (t *Transform) Rotate(angle float32)

func (*Transform) RotateAbout

func (t *Transform) RotateAbout(angle float32, center Vector2)

func (*Transform) RotateAboutXY

func (t *Transform) RotateAboutXY(angle, centerX, centerY float32)

func (*Transform) Scale

func (t *Transform) Scale(s Vector2)

func (*Transform) ScaleAbout

func (t *Transform) ScaleAbout(factors, center Vector2)

func (*Transform) ScaleAboutXY

func (t *Transform) ScaleAboutXY(scaleX, scaleY, centerX, centerY float32)

func (*Transform) ScaleXY

func (t *Transform) ScaleXY(scaleX, scaleY float32)

func (*Transform) TransformPoint

func (t *Transform) TransformPoint(point Vector2) Vector2

func (*Transform) TransformPointXY

func (t *Transform) TransformPointXY(x, y float32) Vector2

func (*Transform) TransformRect

func (t *Transform) TransformRect(rect Rect) Rect

func (*Transform) Translate

func (t *Transform) Translate(offset Vector2)

func (*Transform) TranslateXY

func (t *Transform) TranslateXY(x, y float32)

type Transformable

type Transformable struct {
	// contains filtered or unexported fields
}

func NewTransformable

func NewTransformable() *Transformable

func (*Transformable) InverseTransform

func (t *Transformable) InverseTransform() Transform

func (*Transformable) Move

func (t *Transformable) Move(offset Vector2)

func (*Transformable) MoveXY

func (t *Transformable) MoveXY(offsetX, offsetY float32)

func (*Transformable) Origin

func (t *Transformable) Origin() Vector2

func (*Transformable) Position

func (t *Transformable) Position() Vector2

func (*Transformable) Rotate

func (t *Transformable) Rotate(angle float32)

func (*Transformable) Rotation

func (t *Transformable) Rotation() float32

func (*Transformable) Scale

func (t *Transformable) Scale() Vector2

func (*Transformable) ScaleBy

func (t *Transformable) ScaleBy(factor Vector2)

func (*Transformable) ScaleXY

func (t *Transformable) ScaleXY(factorX, factorY float32)

func (*Transformable) SetOrigin

func (t *Transformable) SetOrigin(origin Vector2)

func (*Transformable) SetOriginXY

func (t *Transformable) SetOriginXY(x, y float32)

func (*Transformable) SetPosition

func (t *Transformable) SetPosition(pos Vector2)

func (*Transformable) SetPositionXY

func (t *Transformable) SetPositionXY(x, y float32)

func (*Transformable) SetRotation

func (t *Transformable) SetRotation(angle float32)

func (*Transformable) SetScale

func (t *Transformable) SetScale(factors Vector2)

func (*Transformable) SetScaleXY

func (t *Transformable) SetScaleXY(factorX, factorY float32)

func (*Transformable) Transform

func (t *Transformable) Transform() Transform

type Vector2

type Vector2 struct {
	X float32
	Y float32
}

func (Vector2) Add

func (v Vector2) Add(r Vector2) Vector2

func (Vector2) Div

func (v Vector2) Div(s float32) Vector2

func (Vector2) Length

func (v Vector2) Length() float32

func (Vector2) Mult

func (v Vector2) Mult(s float32) Vector2

func (Vector2) Normalize

func (v Vector2) Normalize() Vector2

func (Vector2) Sub

func (v Vector2) Sub(r Vector2) Vector2

type Vertex

type Vertex struct {
	Pos       Vector2 // 2D position of the vertex
	Color     Color   // Color of the vertex
	TexCoords Vector2 // Coordinates of the texture's pixel to map to the vertex
}

type View

type View struct {
	// contains filtered or unexported fields
}

func NewView

func NewView() *View

func (*View) Center

func (v *View) Center() Vector2

func (*View) InverseTransform

func (v *View) InverseTransform() Transform

func (*View) Move

func (v *View) Move(offset Vector2)

func (*View) MoveXY

func (v *View) MoveXY(offsetX, offsetY float32)

func (*View) Reset

func (v *View) Reset(rect Rect)

func (*View) Rotate

func (v *View) Rotate(angle float32)

func (*View) Rotation

func (v *View) Rotation() float32

func (*View) SetCenter

func (v *View) SetCenter(center Vector2)

func (*View) SetCenterXY

func (v *View) SetCenterXY(x, y float32)

func (*View) SetRotation

func (v *View) SetRotation(angle float32)

func (*View) SetSize

func (v *View) SetSize(size Vector2)

func (*View) SetSizeXY

func (v *View) SetSizeXY(w, h float32)

func (*View) SetViewport

func (v *View) SetViewport(viewport Rect)

func (*View) Size

func (v *View) Size() Vector2

func (*View) Transform

func (v *View) Transform() Transform

func (*View) Viewport

func (v *View) Viewport() Rect

func (*View) Zoom

func (v *View) Zoom(factor float32)

Directories

Path Synopsis
examples

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL