Mark Sibly преди 9 години
родител
ревизия
37d77c3481
променени са 2 файла, в които са добавени 41 реда и са изтрити 23 реда
  1. 27 6
      modules/mojo/bananas/rendertoimage/rendertoimage.monkey2
  2. 14 17
      modules/mojo/bananas/spacechimps/spacechimps.monkey2

+ 27 - 6
modules/mojo/bananas/rendertoimage/rendertoimage.monkey2

@@ -17,17 +17,17 @@ Class MyWindow Extends mojo.app.Window
 
 	Method New()
 	
-		image=New Image( 256,256 )
+		image=New Image( 256,256,TextureFlags.Mipmap|TextureFlags.Dynamic )
 		
 		image.Handle=New Vec2f( .5,.5 )
 		
 		icanvas=New Canvas( image )
+		
+'		RenderImage()
 	End
 	
-	Method OnRender( canvas:Canvas ) Override
-	
-		App.RequestRender()
-	
+	Method RenderImage()
+
 		'render to image...
 		For Local x:=0 Until 16
 			For Local y:=0 Until 16
@@ -42,12 +42,33 @@ Class MyWindow Extends mojo.app.Window
 		icanvas.Color=Color.White
 		icanvas.DrawText( "This way up!",icanvas.Viewport.Width/2,0,.5,0 )
 		icanvas.Flush()
+
+	End
+	
+	Method OnRender( canvas:Canvas ) Override
+	
+		App.RequestRender()
 		
-		canvas.DrawImage( image,App.MouseLocation.x,App.MouseLocation.y )
+		RenderImage()
+				
+'		canvas.DrawImage( image,App.MouseLocation.x,App.MouseLocation.y,0,1,1 )
+		canvas.DrawImage( image,App.MouseLocation.x,App.MouseLocation.y,0,.5,.5 )
 		
 		canvas.DrawText( "Here!",0,0 )
 	End
 	
+	Method OnKeyEvent( event:KeyEvent ) Override
+	
+		Select event.Type
+		Case EventType.KeyDown
+			Select event.Key
+			Case Key.Space
+				Print "Invalidating graphics!"
+				mojo.graphics.glutil.glGraphicsSeq+=1
+			End
+		End
+	End
+	
 End
 
 Function Main()

+ 14 - 17
modules/mojo/bananas/spacechimps/spacechimps.monkey2

@@ -10,6 +10,9 @@ Namespace spacechimps
 Using std..
 Using mojo..
 
+Const VirtualWidth:=320
+Const VirtualHeight:=240
+
 Class MyWindow Extends Window
 
 	Field timer:Timer
@@ -50,7 +53,7 @@ Class MyWindow Extends Window
 		
 		'Set initial image pos
 		'
-		pos=New Vec2f( 160,120 )
+		pos=New Vec2f( VirtualWidth/2,VirtualHeight/2 )
 		
 		'Start update timer
 		'
@@ -159,24 +162,19 @@ Class MyWindow Extends Window
 		
 		'Turn off texture filtering for a 'pixel art' look
 		'
-		canvas.FilteringEnabled=filter
-		
-		'Title text
-		'	
-		canvas.DrawText( "FPS="+App.FPS,Width/2,8,.5,0 )
-		canvas.DrawText( "Arrow keys to fly",Width/2,24,.5,0 )
-		canvas.DrawText( "Swap interval="+SwapInterval +" ('S' to toggle)",Width/2,40,.5,0 )
-'#If __TARGET__="emscripten"
-'		canvas.Color=Color.Grey
-'#Endif
-		canvas.DrawText( "Timer sync="+(timer ? "true" Else "false")+" ('T' to toggle)",Width/2,56,.5,0 )
-		canvas.Color=Color.White
-		canvas.DrawText( "Filtering="+(filter ? "true" Else "false")+" ('F' to toggle",Width/2,72,.5,0 )
+		canvas.TextureFilteringEnabled=filter
+
+		canvas.DrawText( "FPS="+App.FPS,Width/2,0,.5,0 )
+		canvas.DrawText( "Arrow keys to fly",Width/2,16,.5,0 )
+		canvas.DrawText( "Swap interval="+SwapInterval +" ('S' to toggle)",Width/2,32,.5,0 )
+		canvas.DrawText( "Timer sync="+(timer ? "true" Else "false")+" ('T' to toggle)",Width/2,48,.5,0 )
+		canvas.DrawText( "Filtering="+(filter ? "true" Else "false")+" ('F' to toggle)",Width/2,64,.5,0 )
 		
 		'Draw image
 		'
 		Local x:=pos.x,y:=pos.y,r:=rot-Pi/2
-		If Not filter x=Floor( x ) ; y=Floor( y )
+		
+'		If Not filter x=Round( x ) ; y=Round( y )
 		
 		canvas.DrawImage( image,x,y,r )
 
@@ -187,12 +185,11 @@ Class MyWindow Extends Window
 		
 		If y-image.Radius<0 canvas.DrawImage( image,x,y+Height,r )
 		If y+image.Radius>Height canvas.DrawImage( image,x,y-Height,r )
-
 	End
 	
 	Method OnMeasure:Vec2i() Override
 	
-		Return New Vec2i( 320,240 )
+		Return New Vec2i( VirtualWidth,VirtualHeight )
 		
 	End