diff --git a/mobile/compat.go b/mobile/compat.go deleted file mode 100644 index d83fa2472..000000000 --- a/mobile/compat.go +++ /dev/null @@ -1,162 +0,0 @@ -// Copyright 2016 Hajime Hoshi -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -// +build android ios - -package mobile - -import ( - "github.com/hajimehoshi/ebiten/v2" - "github.com/hajimehoshi/ebiten/v2/mobile/ebitenmobileview" -) - -type game struct { - update func(*ebiten.Image) error - width int - height int -} - -func (g *game) Update(screen *ebiten.Image) error { - return g.update(screen) -} - -func (g *game) Layout(viewWidth, viewHeight int) (screenWidth, screenHeight int) { - return g.width, g.height -} - -// Start starts the game and returns immediately. -// -// Deprecated: (as of 1.10.0) Use `ebitenmobile` command and `SetGame` instead. -// -// Different from ebiten.Run, this invokes only the game loop and not the main (UI) loop. -// -// The unit of width/height is device-independent pixel (dp on Android and point on iOS). -// -// Start is concurrent-safe. -// -// The argument title is ignored. This is for backward compatibility. -// -// Start always returns nil as of 1.5.0-alpha. -func Start(f func(*ebiten.Image) error, width, height int, scale float64, title string) error { - ebitenmobileview.SetGame(&game{ - update: f, - width: width, - height: height, - }) - // As the view layout is already determined, ignore the layout calculation at ebitenmobileview. - w := float64(width) * scale - h := float64(height) * scale - ebitenmobileview.Layout(w, h) - return nil -} - -// Update updates and renders the game. -// This should be called on every frame. -// -// Deprecated: (as of 1.10.0) Use `ebitenmobile` command and `SetGame` instead. -// -// If Update is called before Start is called, Update panics. -// -// On Android, this should be called at onDrawFrame of Renderer (used by GLSurfaceView). -// -// On iOS, this should be called at glkView:drawInRect: of GLKViewDelegate. -// -// Update is concurrent-safe. -// -// Update returns error when 1) OpenGL error happens, or 2) f in Start returns error samely as ebiten.Run. -func Update() error { - return ebitenmobileview.Update() -} - -// UpdateTouchesOnAndroid updates the touch state on Android. -// -// Deprecated: (as of 1.10.0) Use `ebitenmobile` command instead. -// -// This should be called with onTouchEvent of GLSurfaceView like this: -// -// private double mDeviceScale = 0.0; -// -// // pxToDp converts an value in pixels to dp. -// private double pxToDp(double x) { -// if (mDeviceScale == 0.0) { -// mDeviceScale = getResources().getDisplayMetrics().density; -// } -// return x / mDeviceScale; -// } -// -// @Override -// public boolean onTouchEvent(MotionEvent e) { -// for (int i = 0; i < e.getPointerCount(); i++) { -// int id = e.getPointerId(i); -// int x = (int)e.getX(i); -// int y = (int)e.getY(i); -// // Exported function for UpdateTouchesOnAndroid -// YourGame.UpdateTouchesOnAndroid(e.getActionMasked(), id, (int)pxToDp(x), (int)pxToDp(y)); -// } -// return true; -// } -// -// The coodinate x/y is in dp. -// -// UpdateTouchesOnAndroid can be called even before Start is called. -// -// UpdateTouchesOnAndroid is concurrent-safe. -// -// For more details, see https://github.com/hajimehoshi/ebiten/v2/wiki/Android. -func UpdateTouchesOnAndroid(action int, id int, x, y int) { - ebitenmobileview.UpdateTouchesOnAndroid(action, id, x, y) -} - -// UpdateTouchesOnIOS updates the touch state on iOS. -// -// Deprecated: (as of 1.10.0) Use `ebitenmobile` command instead. -// -// This should be called with touch handlers of UIViewController like this: -// -// - (GLKView*)glkView { -// return (GLKView*)[self.view viewWithTag:100]; -// } -// - (void)updateTouches:(NSSet*)touches { -// for (UITouch* touch in touches) { -// if (touch.view != [self glkView]) { -// continue; -// } -// CGPoint location = [touch locationInView: [self glkView]]; -// // Exported function for UpdateTouchesOnIOS -// YourGameUpdateTouchesOnIOS(touch.phase, (int64_t)touch, location.x, location.y); -// } -// } -// - (void)touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event { -// [self updateTouches:touches]; -// } -// - (void)touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event { -// [self updateTouches:touches]; -// } -// - (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event { -// [self updateTouches:touches]; -// } -// - (void)touchesCancelled:(NSSet*)touches withEvent:(UIEvent*)event { -// [self updateTouches:touches]; -// } -// -// The coodinate x/y is in point. -// -// UpdateTouchesOnIOS can be called even before Start is called. -// -// UpdateTouchesOnIOS is concurrent-safe. -// -// For more details, see https://github.com/hajimehoshi/ebiten/v2/wiki/iOS. -func UpdateTouchesOnIOS(phase int, ptr int64, x, y int) { - ebitenmobileview.UpdateTouchesOnIOS(phase, ptr, x, y) -} diff --git a/mobile/ebitenmobileview/input_android.go b/mobile/ebitenmobileview/input_android.go index b65539133..f3528b1db 100644 --- a/mobile/ebitenmobileview/input_android.go +++ b/mobile/ebitenmobileview/input_android.go @@ -209,12 +209,6 @@ func UpdateTouchesOnAndroid(action int, id int, x, y int) { } } -// UpdateTouchesOnIOS is a dummy function for backward compatibility. -// UpdateTouchesOnIOS is called from ebiten/mobile package. -func UpdateTouchesOnIOS(phase int, ptr int64, x, y int) { - panic("ebitenmobileview: updateTouchesOnIOSImpl must not be called on Android") -} - func OnKeyDownOnAndroid(keyCode int, unicodeChar int, source int, deviceID int) { switch { case source&sourceGamepad == sourceGamepad: diff --git a/mobile/ebitenmobileview/input_ios.go b/mobile/ebitenmobileview/input_ios.go index bf296f8d0..6a1f9688a 100644 --- a/mobile/ebitenmobileview/input_ios.go +++ b/mobile/ebitenmobileview/input_ios.go @@ -43,12 +43,6 @@ func getIDFromPtr(ptr int64) int { return id } -// UpdateTouchesOnAndroid is a dummy function for backward compatibility. -// UpdateTouchesOnAndroid is called from ebiten/mobile package. -func UpdateTouchesOnAndroid(action int, id int, x, y int) { - panic("ebitenmobileview: updateTouchesOnAndroid must not be called on iOS") -} - func UpdateTouchesOnIOS(phase int, ptr int64, x, y int) { switch phase { case C.UITouchPhaseBegan, C.UITouchPhaseMoved, C.UITouchPhaseStationary: