Refactoring

This commit is contained in:
Hajime Hoshi 2013-11-27 11:56:44 +09:00
parent f76171c79d
commit dc9f682863
2 changed files with 12 additions and 21 deletions

View File

@ -10,32 +10,25 @@ import (
"github.com/hajimehoshi/go-ebiten/graphics/matrix"
"github.com/hajimehoshi/go-ebiten/graphics/opengl/offscreen"
"github.com/hajimehoshi/go-ebiten/graphics/opengl/texture"
grendertarget "github.com/hajimehoshi/go-ebiten/graphics/rendertarget"
"image"
"math"
)
type Context struct {
screenId graphics.RenderTargetId
screenWidth int
screenHeight int
screenScale int
ids *ids
offscreen *offscreen.Offscreen
}
func newContext(screenWidth, screenHeight, screenScale int) *Context {
context := &Context{
screenWidth: screenWidth,
screenHeight: screenHeight,
screenScale: screenScale,
ids: newIds(),
offscreen: offscreen.New(screenWidth, screenHeight, screenScale),
}
var err error
context.screenId, err = context.createRenderTarget(
context.screenWidth, context.screenHeight, texture.FilterNearest)
screenWidth, screenHeight, texture.FilterNearest)
if err != nil {
panic("initializing the offscreen failed: " + err.Error())
}
@ -88,11 +81,7 @@ func (context *Context) ResetOffscreen() {
func (context *Context) SetOffscreen(renderTargetId graphics.RenderTargetId) {
renderTarget := context.ids.RenderTargetAt(renderTargetId)
context.setOffscreen(renderTarget)
}
func (context *Context) setOffscreen(rt *grendertarget.RenderTarget) {
context.offscreen.Set(rt)
context.offscreen.Set(renderTarget)
}
func (context *Context) setMainFramebufferOffscreen() {

View File

@ -7,12 +7,14 @@ import (
type Device struct {
context *Context
screenScale int
}
func NewDevice(screenWidth, screenHeight, screenScale int) *Device {
context := newContext(screenWidth, screenHeight, screenScale)
return &Device{
context: context,
screenScale: screenScale,
}
}
@ -28,7 +30,7 @@ func (device *Device) Update(draw func(graphics.Context)) {
context.setMainFramebufferOffscreen()
context.Clear()
scale := float64(context.screenScale)
scale := float64(device.screenScale)
geometryMatrix := matrix.IdentityGeometry()
geometryMatrix.Scale(scale, scale)
context.DrawTexture(context.ToTexture(context.screenId),