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/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
|
||||
screenId graphics.RenderTargetId
|
||||
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),
|
||||
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() {
|
||||
|
@ -6,13 +6,15 @@ import (
|
||||
)
|
||||
|
||||
type Device struct {
|
||||
context *Context
|
||||
context *Context
|
||||
screenScale int
|
||||
}
|
||||
|
||||
func NewDevice(screenWidth, screenHeight, screenScale int) *Device {
|
||||
context := newContext(screenWidth, screenHeight, screenScale)
|
||||
return &Device{
|
||||
context: context,
|
||||
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),
|
||||
|
Loading…
Reference in New Issue
Block a user