deferred

package
v0.3.1 Latest Latest
Warning

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

Go to latest
Published: Oct 18, 2017 License: BSD-2-Clause Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type DeferredAfterDraw

type DeferredAfterDraw func(dr *DeferredRenderer, deltaFrameTime float32)

DeferredAfterDraw is the type of the function called by the renderer after endtering the geometry draw function.

type DeferredBeforeDraw

type DeferredBeforeDraw func(dr *DeferredRenderer, deltaFrameTime float32)

DeferredBeforeDraw is the type of the function called by the renderer before endtering the geometry draw function.

type DeferredCompositePass

type DeferredCompositePass func(dr *DeferredRenderer, deltaFrameTime float32)

DeferredCompositePass is the type of the function called to render the framebuffers to the screen in the deferred renderer.

type DeferredGeometryPass

type DeferredGeometryPass func(dr *DeferredRenderer, deltaFrameTime float32)

DeferredGeometryPass is the type of the function called to render geometry to the framebuffers in the deferred renderer.

type DeferredRenderer

type DeferredRenderer struct {
	Frame          graphics.Buffer
	Depth          graphics.Buffer
	Diffuse        graphics.Texture
	Positions      graphics.Texture
	Normals        graphics.Texture
	CompositePlane *Renderable

	// GeometryPass is the function called to render geometry to the
	// framebuffers in the deferred renderer.
	GeometryPass DeferredGeometryPass

	// CompositePass is the function called to render the framebuffers
	// to the screen in the deferred renderer.
	CompositePass DeferredCompositePass

	// BeforeDraw is the function called by the renderer before
	// endtering the geometry draw function.
	BeforeDraw DeferredBeforeDraw

	// AfterDraw is the function called by the renderer after
	// endtering the geometry draw function.
	AfterDraw DeferredAfterDraw

	// OnScreenSizeChanged is the function called by the renderer after
	// a screen size change is detected.
	OnScreenSizeChanged ScreenSizeChanged

	// MainWindow the window used to show the rendered composite plane to.
	MainWindow *glfw.Window

	// UIManager is the user interface manager assigned to the renderer.
	UIManager *UIManager
	// contains filtered or unexported fields
}

DeferredRenderer is a deferred-rendering style renderer. Which means that it creates several framebuffers for shaders to write to and has two main rendering steps: 1) geometry and 2) compositing.

func NewDeferredRenderer

func NewDeferredRenderer(window *glfw.Window) *DeferredRenderer

NewDeferredRenderer creates a new DeferredRenderer and sets some of the default callback functions as well as other default values.

func (*DeferredRenderer) ChangeResolution

func (dr *DeferredRenderer) ChangeResolution(width, height int32)

ChangeResolution internally changes the size of the framebuffers and compositing plane that are used for rendering.

func (*DeferredRenderer) CompositeDraw

func (dr *DeferredRenderer) CompositeDraw()

CompositeDraw draws the final composite image onto the composite plane using the composite shader.

func (*DeferredRenderer) Destroy

func (dr *DeferredRenderer) Destroy()

Destroy releases all of the OpenGL buffers the DeferredRenderer is holding on to.

func (*DeferredRenderer) DrawDirectionalLight

func (dr *DeferredRenderer) DrawDirectionalLight(eye mgl.Vec3, dir mgl.Vec3, color mgl.Vec3, ambient float32, diffuse float32, specular float32)

DrawDirectionalLight draws the composite plane while lighting everything with a directional light using the parameters specified.

func (*DeferredRenderer) DrawLines

func (dr *DeferredRenderer) DrawLines(r *Renderable, shader *RenderShader, binder RenderBinder, perspective mgl.Mat4, view mgl.Mat4)

DrawLines draws the Renderable using graphics.LINES mode instead of graphics.TRIANGLES.

func (*DeferredRenderer) DrawRenderable

func (dr *DeferredRenderer) DrawRenderable(r *Renderable, binder RenderBinder, perspective mgl.Mat4, view mgl.Mat4)

DrawRenderable draws a Renderable object with the supplied projection and view matrixes.

func (*DeferredRenderer) DrawRenderableWithShader

func (dr *DeferredRenderer) DrawRenderableWithShader(r *Renderable, shader *RenderShader, binder RenderBinder, perspective mgl.Mat4, view mgl.Mat4)

DrawRenderableWithShader draws a Renderable object with the supplied projection and view matrixes and a different shader than what is set in the Renderable.

func (*DeferredRenderer) EndRenderFrame

func (dr *DeferredRenderer) EndRenderFrame()

EndRenderFrame swaps the buffers and calls GLFW to poll for input.

func (*DeferredRenderer) GetAspectRatio

func (dr *DeferredRenderer) GetAspectRatio() float32

GetAspectRatio returns the ratio of screen width to height.

func (*DeferredRenderer) GetResolution

func (dr *DeferredRenderer) GetResolution() (int32, int32)

GetResolution returns the current dimensions of the renderer.

func (*DeferredRenderer) Init

func (dr *DeferredRenderer) Init(width, height int32) error

Init sets up the DeferredRenderer by creating all of the framebuffers and creating the compositing plane.

func (*DeferredRenderer) InitShaders

func (dr *DeferredRenderer) InitShaders(compositeBaseFilepath string, dirlightShaderFilepath string) error

InitShaders sets up the special shaders used in a deferred rendering pipeline.

func (*DeferredRenderer) RenderLoop

func (dr *DeferredRenderer) RenderLoop()

RenderLoop keeps running a render loop function until MainWindow is set to should close

type ScreenSizeChanged

type ScreenSizeChanged func(dr *DeferredRenderer, width int32, height int32)

ScreenSizeChanged is the type of the function called by the renderer after a screen size change is detected.

Jump to

Keyboard shortcuts

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