Documentation ¶
Index ¶
- type DeferredAfterDraw
- type DeferredBeforeDraw
- type DeferredCompositePass
- type DeferredGeometryPass
- type DeferredRenderer
- func (dr *DeferredRenderer) ChangeResolution(width, height int32)
- func (dr *DeferredRenderer) CompositeDraw()
- func (dr *DeferredRenderer) Destroy()
- func (dr *DeferredRenderer) DrawDirectionalLight(eye mgl.Vec3, dir mgl.Vec3, color mgl.Vec3, ambient float32, diffuse float32, ...)
- func (dr *DeferredRenderer) DrawLines(r *Renderable, shader *RenderShader, binder RenderBinder, perspective mgl.Mat4, ...)
- func (dr *DeferredRenderer) DrawRenderable(r *Renderable, binder RenderBinder, perspective mgl.Mat4, view mgl.Mat4)
- func (dr *DeferredRenderer) DrawRenderableWithShader(r *Renderable, shader *RenderShader, binder RenderBinder, perspective mgl.Mat4, ...)
- func (dr *DeferredRenderer) EndRenderFrame()
- func (dr *DeferredRenderer) GetAspectRatio() float32
- func (dr *DeferredRenderer) GetResolution() (int32, int32)
- func (dr *DeferredRenderer) Init(width, height int32) error
- func (dr *DeferredRenderer) InitShaders(compositeBaseFilepath string, dirlightShaderFilepath string) error
- func (dr *DeferredRenderer) RenderLoop()
- type ScreenSizeChanged
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.