예제 #1
0
		protected override void shown()
		{
			try
			{
				root = new RootDisposable();

				#if WIN32
				InputTypes inputType = InputTypes.WinForms;
				#elif WINRT
				InputTypes inputType = InputTypes.WinRT;
				#elif OSX
				InputTypes inputType = InputTypes.Cocoa;
				#elif LINUX
				InputTypes inputType = InputTypes.X11;
				#endif

				input = Input.Init(inputType, out inputType, root, this);
				keyboard = KeyboardAPI.New(input);
				loaded = true;
			}
			catch (Exception e)
			{
				Message.Show("Error", e.Message);
			}
		}
예제 #2
0
		public override void Shown()
		{
			try
			{
				root = new RootDisposable();

				VideoTypes videoType;
				video = Video.Init(VideoTypes.D3D11, out videoType, root, this, DepthStencilFormats.Defualt, true);
				viewPort = ViewPortAPI.New(video, new Point2(), video.BackBufferSize);
				float cameraDis = 10;
				camera = new Camera(viewPort, new Vector3(cameraDis, cameraDis, cameraDis), new Vector3(), new Vector3(cameraDis, cameraDis+1, cameraDis));

				//DiffuseSolidColorMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);
				//DiffuseSolidColorMaterial.ApplyInstanceConstantsCallback = applyTransform;
				DiffuseTextureMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);
				DiffuseTextureMaterial.ApplyObjectMeshCallback = applyTransform;
				DiffuseTextureMaterial.ApplyInstanceObjectMeshCallback = applyInstanceTransform;

				var materialTypes = new Dictionary<string,Type>();
				materialTypes.Add("Material", typeof(DiffuseTextureMaterial));
				var value3Types = new List<MaterialFieldBinder>();
				var textureTypes = new List<MaterialFieldBinder>();
				textureTypes.Add(new MaterialFieldBinder("Material", "Diffuse", "Diffuse"));
				model = new Model(video, "Data/untitled2.rm", "Data/", materialTypes, null, null, value3Types, null, textureTypes, null, 0, modelLoaded);

				QuickDraw3ColorMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, quickDrawShaderLoaded);
				qdMaterial = new QuickDraw3ColorMaterial();

				rasterizerState = RasterizerStateAPI.New(video, RasterizerStateDescAPI.New(RasterizerStateTypes.Solid_CullCW));
				depthState = DepthStencilStateAPI.New(video, DepthStencilStateDescAPI.New(DepthStencilStateTypes.ReadWrite_Less));
				blendState = BlendStateAPI.New(video, BlendStateDescAPI.New(BlendStateTypes.None));
				samplerState = SamplerStateAPI.New(video, SamplerStateDescAPI.New(SamplerStateTypes.Linear_Wrap));

				inited = true;
			}
			catch (Exception e)
			{
				Message.Show("Error", e.Message);
				dispose();
			}
		}
예제 #3
0
		protected override void shown()
		{
			try
			{
				root = new RootDisposable();

				// video objects
				VideoTypes videoType;
				#if WINRT
				VideoTypes createVideoTypes = VideoTypes.D3D11;
				#elif WIN32
				VideoTypes createVideoTypes = VideoTypes.D3D11;// | VideoTypes.D3D9 | VideoTypes.OpenGL;
				#elif XNA
				VideoTypes createVideoTypes = VideoTypes.XNA;
				#elif OSX
				VideoTypes createVideoTypes = VideoTypes.OpenGL;
				#endif

				#if WIN32 || WINRT || OSX
				video = Video.Init(createVideoTypes, out videoType, root, this, true);
				#elif XNA
				video = Video.Init(createVideoTypes, out videoType, root, this, true);
				#endif
				
				QuickDraw3ColorUVMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, qdMaterialLoaded);
				material = new QuickDraw3ColorUVMaterial();
				texture = Texture2DAPI.New(video, "Data/Roxy.dds", null);

				var frame = FrameSize;
				viewPort = ViewPortAPI.New(video, 0, 0, frame.Width, frame.Height);
				camera = new Camera(viewPort, new Vector3(0, 0, 5), new Vector3(), new Vector3(0, 0+1, 5));

				// states
				rasterizerState = RasterizerStateAPI.New(video, RasterizerStateDescAPI.New(RasterizerStateTypes.Solid_CullNone));
				samplerState = SamplerStateAPI.New(video, SamplerStateDescAPI.New(SamplerStateTypes.Linear_Wrap));
				blendState = BlendStateAPI.New(video, BlendStateDescAPI.New(BlendStateTypes.Alpha));
				depthStencilState = DepthStencilStateAPI.New(video, DepthStencilStateDescAPI.New(DepthStencilStateTypes.None));

				// input
				InputTypes inputType;
				#if WINRT
				InputTypes createInputTypes = InputTypes.WinRT;
				#elif WIN32
				InputTypes createInputTypes = InputTypes.WinForms;
				#elif XNA
				InputTypes createInputTypes = InputTypes.XNA;
				#elif OSX
				InputTypes createInputTypes = InputTypes.Cocoa;
				#endif
				input = Input.Init(createInputTypes, out inputType, root, this);
				#if WIN32 || WINRT || OSX
				mouse = MouseAPI.New(input);
				keyboard = KeyboardAPI.New(input);
				#elif XNA
				gamePad = GamePadAPI.New(input, GamePadControllers.All);
				#endif

				loaded = true;
			}
			catch (Exception e)
			{
				Message.Show("Error", e.Message);
				dispose();
			}
		}
예제 #4
0
		protected override void shown()
		{
			try
			{
				root = new RootDisposable();

				// video objects
				VideoTypes videoType;
				#if METRO
				VideoTypes createVideoTypes = VideoTypes.D3D11;
				#elif WIN32
				VideoTypes createVideoTypes = VideoTypes.D3D11 | VideoTypes.D3D9 | VideoTypes.OpenGL;
				#elif XNA
				VideoTypes createVideoTypes = VideoTypes.XNA;
				#endif

				#if WIN32 || METRO
				video = Video.Init(createVideoTypes, out videoType, root, this, true);
				#elif XNA
				video = Video.Create(createVideoTypes, out videoType, root, this);
				#endif

				// shaders
				DiffuseTextureMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);
				DiffuseTextureMaterial.ApplyInstanceConstantsCallback = applyDiffuseCallbackMethod;
				QuickDraw3ColorMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);
				material = new QuickDraw3ColorMaterial();
				texture = Texture2DAPI.New(video, "Data/Rocks.dds", null);
				qd = QuickDrawAPI.New(video, QuickDraw3ColorMaterial.BufferLayoutDesc);

				var frame = FrameSize;
				viewPort = ViewPortAPI.New(video, 0, 0, frame.Width, frame.Height);
				float camDis = 50;
				camera = new Camera(viewPort, new Vector3(0, 5, camDis), new Vector3(), new Vector3(0, 5+1, camDis));

				// states
				rasterizerState = RasterizerStateAPI.New(video, RasterizerStateDescAPI.New(RasterizerStateTypes.Solid_CullCW));
				samplerState = SamplerStateAPI.New(video, SamplerStateDescAPI.New(SamplerStateTypes.Linear_Wrap));
				blendState = BlendStateAPI.New(video, BlendStateDescAPI.New(BlendStateTypes.None));
				depthStencilState = DepthStencilStateAPI.New(video, DepthStencilStateDescAPI.New(DepthStencilStateTypes.ReadWrite_Less));

				// models
				var materialTypes = new Dictionary<string,Type>();
				materialTypes.Add("Material", typeof(DiffuseTextureMaterial));

				var materialFieldTypes = new List<MaterialFieldBinder>();
				materialFieldTypes.Add(new MaterialFieldBinder("Material", "Paint_dds", "Diffuse"));

				var extOverrides = new Dictionary<string,string>();
				var emptyBinders = new List<MaterialFieldBinder>();
				sphereModel = new Model(video, "Data/sphere.rm", "Data/", materialTypes, emptyBinders, emptyBinders, emptyBinders, emptyBinders, materialFieldTypes, extOverrides, 0, null);
				//capsuleModel = Model.Create(videoType, video, "Data/capsule.rm", "Data/", materialTypes, emptyBinders, emptyBinders, emptyBinders, emptyBinders, materialFieldTypes, extOverrides);
				boxModel = new Model(video, "Data/box.rm", "Data/", materialTypes, emptyBinders, emptyBinders, emptyBinders, emptyBinders, materialFieldTypes, extOverrides, 0, null);
				monkeyModel = new Model(video, "Data/monkeyFlat.rm", "Data/", materialTypes, emptyBinders, emptyBinders, emptyBinders, emptyBinders, materialFieldTypes, extOverrides, 0, null);
				
				// physics
				collisionSystem = new CollisionSystemPersistentSAP();
				world = new World(collisionSystem);
				world.Gravity = new JVector(0, -9.81f, 0);
				
				spheres = new RigidBody[35];
				for (int i = 0; i != spheres.Length; ++i)
				{
					spheres[i] = new RigidBody(new SphereShape(1));
					spheres[i].Position = new JVector(spheres.Length/(float)(i+1), (i*3)+5, 0);
					world.AddBody(spheres[i]);
				}
				floorBox = new RigidBody(new BoxShape(30, 1, 30));
				floorBox.Shape.TransformScale = new Vector3(30, 1, 30) * .5f;
				floorBox.Position = new JVector(0, -7, 0);
				floorBox.IsStatic = true;
				//floorBox.Orientation = JMatrix.CreateFromYawPitchRoll(0, -.25f, 0);
				world.AddBody(floorBox);
				triangleMesh = new TriangleMesh("Data/monkeyFlat.rtmm", loadTiangleMesh);

				loaded = true;
			}
			catch (Exception e)
			{
				Message.Show("Error", e.Message);
				dispose();
			}
		}
예제 #5
0
		public override void Shown()
		{
			try
			{
				root = new RootDisposable();
				VideoTypes videoType;
				//video = Video.Init(VideoTypes.D3D11 | VideoTypes.D3D9 | VideoTypes.OpenGL | VideoTypes.XNA | VideoTypes.Vita, out videoType, root, this, true);
				video = Video.Init(VideoTypes.D3D11, out videoType, root, this, true);
				
				DiffuseTextureMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);
				DiffuseTextureMaterial.ApplyInstanceConstantsCallback = applyInstanceData;
				
				var materialTypes = new Dictionary<string,Type>();
				materialTypes.Add("Material", typeof(DiffuseTextureMaterial));
				materialTypes.Add("Material.001", typeof(DiffuseTextureMaterial));
				var materialFieldTypes = new List<MaterialFieldBinder>();
				materialFieldTypes.Add(new MaterialFieldBinder("Material", "Roxy_dds", "Diffuse"));
				materialFieldTypes.Add(new MaterialFieldBinder("Material.001", "Wolf_dds", "Diffuse"));
				var extOverrides = new Dictionary<string,string>();
				#if SILVERLIGHT || VITA || (LINUX && ARM)
				extOverrides.Add(".dds", ".png");
				#endif
				#if iOS
				extOverrides.Add(".dds", ".pvr");
				#endif
				#if ANDROID
				if (((Reign.Video.OpenGL.Video)video).Caps.TextureCompression_ATC) extOverrides.Add(".dds", ".atc");
				else if (((Reign.Video.OpenGL.Video)video).Caps.TextureCompression_PVR) extOverrides.Add(".dds", ".pvr");
				#endif
				var emptyBinders = new List<MaterialFieldBinder>();
				model = new Model(video, "Data/boxes.rm", "Data/", materialTypes, emptyBinders, emptyBinders, emptyBinders, emptyBinders, materialFieldTypes, extOverrides, 0, null);
				
				var frame = FrameSize;
				viewPort = ViewPortAPI.New(video, 0, 0, frame.Width, frame.Height);
				camera = new Camera(viewPort, new Vector3(5, 5, 5), new Vector3(), new Vector3(5, 5+1, 5), 1, 50, MathUtilities.DegToRad(45));
				
				rasterizerState = RasterizerStateAPI.New(video, RasterizerStateDescAPI.New(RasterizerStateTypes.Solid_CullCW));
				depthStencilState = DepthStencilStateAPI.New(video, DepthStencilStateDescAPI.New(DepthStencilStateTypes.ReadWrite_Less));
				blendState = BlendStateAPI.New(video, BlendStateDescAPI.New(BlendStateTypes.None));
				samplerState = SamplerStateAPI.New(video, SamplerStateDescAPI.New(SamplerStateTypes.Linear_Wrap));

				InputTypes inputType;
				input = Input.Init(InputTypes.WinForms, out inputType, root, this);
				mouse = MouseAPI.New(input);
				keyboard = KeyboardAPI.New(input);

				// -----------------------
				FontMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);
				var fontTexture = Texture2DAPI.New(video, "Data/WhiteFont.png", null);
				font = new Font(video, FontMaterial.Shader, fontTexture, "Data/WhiteFont.font", null);

				UISolidColorMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);
				UISolidTextureMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);
				UISolidTexture2Material.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);
				UISolidTexture3Material.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);
				ui = new UI(root, video, UISolidColorMaterial.Shader, UISolidTextureMaterial.Shader, UISolidTexture2Material.Shader, UISolidTexture3Material.Shader, font, 16, mouse);
				button = new Reign.UI.Button(ui, "Hello World!", 10, 10, 128, 32);
				ui.AddElement(button);

				var idleTexture = Texture2DAPI.New(video, "Data/PlayIdle.png", null);
				var rolloverTexture = Texture2DAPI.New(video, "Data/PlayRollover.png", null);
				var pressedTexture = Texture2DAPI.New(video, "Data/PlayPressed.png", null);
				buttonImage = new ButtonImage(ui, idleTexture, rolloverTexture, pressedTexture, 400, 10, 64, 64);
				ui.AddElement(buttonImage);
				// -----------------------

				loaded = true;
			}
			catch (Exception e)
			{
				dispose();
				Message.Show("Error", e.Message);
			}
		}
예제 #6
0
		private void dispose()
		{
			loaded = false;
			if (root != null)
			{
				root.Dispose();
				root = null;
			}
		}
예제 #7
0
        public override void Shown()
        {
            try
            {
                root = new RootDisposable();
                VideoTypes videoType;
                #if WIN32
                video = Video.Init(VideoTypes.D3D11 | VideoTypes.D3D9 | VideoTypes.OpenGL, out videoType, root, this, true);
                #elif METRO
                video = Video.Create(VideoTypes.D3D11, out videoType, root, this, true);
                #elif XNA
                video = Video.Create(VideoTypes.XNA, out videoType, root, this);
                #endif

                FontMaterial.Init(video, "Data/", video.FileTag, ShaderVersions.Max, null);

                fontTexture = Texture2DAPI.New(video, "Data/Font.png", null);
                font = new Font(video, FontMaterial.Shader, fontTexture, "Data/Font.font", null);

                var frame = FrameSize;
                viewPort = ViewPortAPI.New(video, 0, 0, frame.Width, frame.Height);
                camera = new Camera(viewPort, new Vector3(5, 5, 5), new Vector3(), new Vector3(5, 5+1, 5), 1, 50, MathUtilities.DegToRad(45));

                rasterizerState = RasterizerStateAPI.New(video, RasterizerStateDescAPI.New(RasterizerStateTypes.Solid_CullNone));
                depthStencilState = DepthStencilStateAPI.New(video, DepthStencilStateDescAPI.New(DepthStencilStateTypes.ReadWrite_Less));
                samplerState = SamplerStateAPI.New(video, SamplerStateDescAPI.New(SamplerStateTypes.Linear_Wrap));
                blendState = BlendStateAPI.New(video, BlendStateDescAPI.New(BlendStateTypes.Alpha));

                loaded = true;
            }
            catch (Exception e)
            {
                dispose();
                Message.Show("Error", e.Message);
            }
        }