mirror of
https://github.com/hajimehoshi/ebiten.git
synced 2025-02-23 08:20:10 +01:00
Refactoring
This commit is contained in:
parent
f76171c79d
commit
dc9f682863
@ -10,32 +10,25 @@ import (
|
|||||||
"github.com/hajimehoshi/go-ebiten/graphics/matrix"
|
"github.com/hajimehoshi/go-ebiten/graphics/matrix"
|
||||||
"github.com/hajimehoshi/go-ebiten/graphics/opengl/offscreen"
|
"github.com/hajimehoshi/go-ebiten/graphics/opengl/offscreen"
|
||||||
"github.com/hajimehoshi/go-ebiten/graphics/opengl/texture"
|
"github.com/hajimehoshi/go-ebiten/graphics/opengl/texture"
|
||||||
grendertarget "github.com/hajimehoshi/go-ebiten/graphics/rendertarget"
|
|
||||||
"image"
|
"image"
|
||||||
"math"
|
"math"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Context struct {
|
type Context struct {
|
||||||
screenId graphics.RenderTargetId
|
screenId graphics.RenderTargetId
|
||||||
screenWidth int
|
ids *ids
|
||||||
screenHeight int
|
offscreen *offscreen.Offscreen
|
||||||
screenScale int
|
|
||||||
ids *ids
|
|
||||||
offscreen *offscreen.Offscreen
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func newContext(screenWidth, screenHeight, screenScale int) *Context {
|
func newContext(screenWidth, screenHeight, screenScale int) *Context {
|
||||||
context := &Context{
|
context := &Context{
|
||||||
screenWidth: screenWidth,
|
ids: newIds(),
|
||||||
screenHeight: screenHeight,
|
offscreen: offscreen.New(screenWidth, screenHeight, screenScale),
|
||||||
screenScale: screenScale,
|
|
||||||
ids: newIds(),
|
|
||||||
offscreen: offscreen.New(screenWidth, screenHeight, screenScale),
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var err error
|
var err error
|
||||||
context.screenId, err = context.createRenderTarget(
|
context.screenId, err = context.createRenderTarget(
|
||||||
context.screenWidth, context.screenHeight, texture.FilterNearest)
|
screenWidth, screenHeight, texture.FilterNearest)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
panic("initializing the offscreen failed: " + err.Error())
|
panic("initializing the offscreen failed: " + err.Error())
|
||||||
}
|
}
|
||||||
@ -88,11 +81,7 @@ func (context *Context) ResetOffscreen() {
|
|||||||
|
|
||||||
func (context *Context) SetOffscreen(renderTargetId graphics.RenderTargetId) {
|
func (context *Context) SetOffscreen(renderTargetId graphics.RenderTargetId) {
|
||||||
renderTarget := context.ids.RenderTargetAt(renderTargetId)
|
renderTarget := context.ids.RenderTargetAt(renderTargetId)
|
||||||
context.setOffscreen(renderTarget)
|
context.offscreen.Set(renderTarget)
|
||||||
}
|
|
||||||
|
|
||||||
func (context *Context) setOffscreen(rt *grendertarget.RenderTarget) {
|
|
||||||
context.offscreen.Set(rt)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (context *Context) setMainFramebufferOffscreen() {
|
func (context *Context) setMainFramebufferOffscreen() {
|
||||||
|
@ -6,13 +6,15 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
type Device struct {
|
type Device struct {
|
||||||
context *Context
|
context *Context
|
||||||
|
screenScale int
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewDevice(screenWidth, screenHeight, screenScale int) *Device {
|
func NewDevice(screenWidth, screenHeight, screenScale int) *Device {
|
||||||
context := newContext(screenWidth, screenHeight, screenScale)
|
context := newContext(screenWidth, screenHeight, screenScale)
|
||||||
return &Device{
|
return &Device{
|
||||||
context: context,
|
context: context,
|
||||||
|
screenScale: screenScale,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -28,7 +30,7 @@ func (device *Device) Update(draw func(graphics.Context)) {
|
|||||||
context.setMainFramebufferOffscreen()
|
context.setMainFramebufferOffscreen()
|
||||||
context.Clear()
|
context.Clear()
|
||||||
|
|
||||||
scale := float64(context.screenScale)
|
scale := float64(device.screenScale)
|
||||||
geometryMatrix := matrix.IdentityGeometry()
|
geometryMatrix := matrix.IdentityGeometry()
|
||||||
geometryMatrix.Scale(scale, scale)
|
geometryMatrix.Scale(scale, scale)
|
||||||
context.DrawTexture(context.ToTexture(context.screenId),
|
context.DrawTexture(context.ToTexture(context.screenId),
|
||||||
|
Loading…
Reference in New Issue
Block a user