' Cerberus X - Simple graphics compatibility test ' ' A test of various drawing operations which should show the same results on all build targets Strict Import mojo2 Class myApp Extends App Field myCanvas:Canvas Field myImage:Image Method OnCreate:Int() myCanvas = New Canvas() myImage = Image.Load("images/Logo.png") 'unthrottled frame rate SetUpdateRate(0) Return 0 End Method OnRender:Int() ' test various graphics effects using Millisecs() as the basis for animation myCanvas.SetScissor(0, 0, DeviceWidth(), DeviceHeight()) myCanvas.Clear(0.2, 0.2, 0.2) Local sz:Float = Sin(Millisecs() * 0.1) * 32 Local sx:Float = 32 + sz Local sy:Float = 32 Local sw:Float = DeviceWidth() - (64 + sz * 2) Local sh:Float = DeviceHeight() - (64 + sz) myCanvas.SetScissor(sx, sy,sw, sh) myCanvas.Clear(0.94, 0.4, 0) myCanvas.PushMatrix() myCanvas.Scale(DeviceWidth() / 640.0, DeviceHeight() / 480.0) myCanvas.Translate(320, 240) myCanvas.Rotate(Millisecs() / 1000.0 * 12) myCanvas.Translate(-320, -240) myCanvas.SetColor(0, 0, 0) myCanvas.DrawRect(32, 32, 640-64, 480-64) myCanvas.SetAlpha(1) myCanvas.SetColor(1, 1, 1) myCanvas.DrawOval(64, 64, 640-128, 480-128) myCanvas.SetColor(1,0, 0.5) myCanvas.SetColor(1, 1, 1, Sin(Millisecs() * 0.3) * 0.5 + 0.5) myCanvas.DrawImage(myImage, 320, 240, 0) myCanvas.SetAlpha(1) myCanvas.PushMatrix() myCanvas.Translate(0, Cos(Millisecs()) * 10) myCanvas.SetColor(0, 0, 0) myCanvas.SetAlpha(0.25) myCanvas.DrawPoly([140.0, 336.0, 320.0, 330.0, 500.0, 336.0, 500.0, 352.0, 320.0, 360.0, 140.0, 352.0]) myCanvas.SetAlpha(1) myCanvas.SetColor(0, 0, 0) myCanvas.DrawText(" ----=== Cerberus X ===----", 320, 344, 0.5, 0.5) myCanvas.PopMatrix() myCanvas.PopMatrix() myCanvas.SetScissor(0, 0, DeviceWidth(), DeviceHeight()) myCanvas.SetColor(1, 0, 0) myCanvas.DrawRect(0, 0, DeviceWidth(), 1) myCanvas.DrawRect(DeviceWidth() - 1, 0, 1, DeviceHeight()) myCanvas.DrawRect(0, DeviceHeight() - 1, DeviceWidth(), 1) myCanvas.DrawRect(0, 0, 1, DeviceHeight() - 1) myCanvas.Flush() Return 0 End End Function Main:Int() New myApp() Return 0 End