Esempio n. 1
0
		/// <summary>
		/// Initialise the scene
		/// </summary>
		/// <param name="window">The IWin32Window to render to.  System.Windows.Forms.Form implements IWin32Window</param>
		/// <param name="target">The render target</param>
		/// <param name="resolution">The resolution to render in</param>
		public void Initialise(IWin32Window window, EnumRenderTarget target, Resolution resolution) {
			try {
				R3DRENDERTARGET r3dtarget = convertRenderTarget( target );
				Engine.R3DEngine.Inf_SetRenderTarget(window.Handle.ToInt32(), ref r3dtarget);
				if(resolution != Resolution.Automatic) {
					Engine.R3DEngine.Inf_ForceResolution(resolution.Width, resolution.Height, resolution.ColourDepth);
				}
				Engine.R3DEngine.InitializeMe( false );

				R3DColor color = new R3DColor();
				color.r = 30;
				color.g = 30;
				color.b = 140;
				Engine.Pipeline.SetBackColor(ref color);
				Engine.Pipeline.SetDithering(true);
				Engine.Pipeline.SetFillMode(R3D089_VBasic.R3DFILLMODE.R3DFILLMODE_SOLID);
				R3DColor white = new R3DColor();
				white.r = 128;
				white.b = 128;
				white.g = 128;
				Engine.Pipeline.SetAmbientLight(ref white);
				Engine.Pipeline.SetColorKeying(true);
				Engine.Pipeline.SetSpecular(true);
				Engine.Pipeline.SetMipMapping(false);
				Engine.Pipeline.SetShadeMode(R3DSHADEMODE.R3DSHADEMODE_GOURAUD);
				Engine.Pipeline.SetTextureFilter(R3DTEXTUREFILTER.R3DTEXTUREFILTER_LINEARFILTER);
				_renderTarget = window;
			}
			catch(Exception e) {
				throw new EngineInitialisationException(e);
			}
		}
Esempio n. 2
0
        /// <summary>
        /// Initialise the scene
        /// </summary>
        /// <param name="window">The IWin32Window to render to.  System.Windows.Forms.Form implements IWin32Window</param>
        /// <param name="target">The render target</param>
        /// <param name="resolution">The resolution to render in</param>
        public void Initialise(IWin32Window window, EnumRenderTarget target, Resolution resolution)
        {
            try {
                R3DRENDERTARGET r3dtarget = convertRenderTarget(target);
                Engine.R3DEngine.Inf_SetRenderTarget(window.Handle.ToInt32(), ref r3dtarget);
                if (resolution != Resolution.Automatic)
                {
                    Engine.R3DEngine.Inf_ForceResolution(resolution.Width, resolution.Height, resolution.ColourDepth);
                }
                Engine.R3DEngine.InitializeMe(false);

                R3DColor color = new R3DColor();
                color.r = 30;
                color.g = 30;
                color.b = 140;
                Engine.Pipeline.SetBackColor(ref color);
                Engine.Pipeline.SetDithering(true);
                Engine.Pipeline.SetFillMode(R3D089_VBasic.R3DFILLMODE.R3DFILLMODE_SOLID);
                R3DColor white = new R3DColor();
                white.r = 128;
                white.b = 128;
                white.g = 128;
                Engine.Pipeline.SetAmbientLight(ref white);
                Engine.Pipeline.SetColorKeying(true);
                Engine.Pipeline.SetSpecular(true);
                Engine.Pipeline.SetMipMapping(false);
                Engine.Pipeline.SetShadeMode(R3DSHADEMODE.R3DSHADEMODE_GOURAUD);
                Engine.Pipeline.SetTextureFilter(R3DTEXTUREFILTER.R3DTEXTUREFILTER_LINEARFILTER);
                _renderTarget = window;
            }
            catch (Exception e) {
                throw new EngineInitialisationException(e);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Converts Strive.Rendering.RenderTarget instances to the appropriate underlying instance
        /// </summary>
        internal R3DRENDERTARGET this[EnumRenderTarget target]
        {
            get
            {
                switch (target)
                {
                case EnumRenderTarget.Window:
                {
                    return(R3DRENDERTARGET.R3DRENDERTARGET_WINDOW);
                }

                case EnumRenderTarget.FullScreen:
                {
                    return(R3DRENDERTARGET.R3DRENDERTARGET_FULLSCREEN);
                }

                case EnumRenderTarget.PictureBox:
                {
                    return(R3DRENDERTARGET.R3DRENDERTARGET_PICTUREBOX);
                }
                }
                return(new R3DRENDERTARGET());
            }
            set
            {
            }
        }
Esempio n. 4
0
        /// <summary>
        /// Initialise the scene
        /// </summary>
        /// <param name="window">The IWin32Window to render to.  System.Windows.Forms.Form implements IWin32Window</param>
        /// <param name="target">The render target</param>
        /// <param name="resolution">The resolution to render in</param>
        public void Initialise(IWin32Window window, EnumRenderTarget target, Resolution resolution)
        {
            if (TV3DEngine != null)
            {
                Terminate();
            }
            TV3DEngine = new TVEngine();
            try {
                Engine.TV3DEngine.Init3DWindowedMode(window.Handle.ToInt32(), true);
                //TV3DEngine.Init3DFullscreen( 800, 600, 16, true, false, CONST_TV_DEPTHMODE.TV_DEPTHBUFFER_BESTBUFFER, 1, 0 );
                _renderTarget = window;
            }
            catch (Exception e) {
                throw new EngineInitialisationException(e);
            }
            TV3DEngine.SetAngleSystem(CONST_TV_ANGLE.TV_ANGLE_DEGREE);
            TV3DEngine.SetVSync(true);
            TV3DEngine.DisplayFPS = true;
            TV3DScene             = new TVScene();
            TV3DScene.SetDepthBuffer(CONST_TV_DEPTHBUFFER.TV_WBUFFER);
            //TV3DScene.SetRenderMode( CONST_TV_RENDERMODE.TV_LINE );
            TV3DScene.SetTextureFilter(CONST_TV_TEXTUREFILTER.TV_FILTER_ANISOTROPIC);
            TexFactory        = new TVTextureFactory();
            Screen2DImmediate = new TVScreen2DImmediate();

            // TODO: this hax setting is to allow for clearing part of a rendersurface
            // would be nice if there is a better way....
            Screen2DImmediate.SETTINGS_SetBlendingMode(DxVBLibA.CONST_D3DBLEND.D3DBLEND_ZERO, DxVBLibA.CONST_D3DBLEND.D3DBLEND_ONE, false);

            Screen2DText = new TVScreen2DText();
            LightEngine  = new TVLightEngine();
            Gl           = new TVGlobals();
            Camera       = new TVCamera();
            Atmosphere   = new TVAtmosphere();
            Atmosphere.Fog_SetParameters(100F, 10000F, 0.0005F);
            Atmosphere.Fog_Enable(true);
            Input     = new TVInputEngine();
            FontIndex = Screen2DText.TextureFont_Create("font", "Verdana", 20, true, false, false, false);
        }
Esempio n. 5
0
		/// <summary>
		/// Converts Strive.Rendering.R3D.RenderTarget instances to the appropriate underlying instance
		/// </summary>
		internal R3DRENDERTARGET convertRenderTarget( EnumRenderTarget target ) {
			switch(target) {
				case EnumRenderTarget.Window: {
					return R3DRENDERTARGET.R3DRENDERTARGET_WINDOW;
				}
				case EnumRenderTarget.FullScreen: {
					return R3DRENDERTARGET.R3DRENDERTARGET_FULLSCREEN;
				}
				case EnumRenderTarget.PictureBox: {
					return R3DRENDERTARGET.R3DRENDERTARGET_PICTUREBOX;
				}
			}
			return new R3DRENDERTARGET();
		}
Esempio n. 6
0
		/// <summary>
		/// Initialise the scene
		/// </summary>
		/// <param name="window">The IWin32Window to render to.  System.Windows.Forms.Form implements IWin32Window</param>
		/// <param name="target">The render target</param>
		/// <param name="resolution">The resolution to render in</param>
		public void Initialise(IWin32Window window, EnumRenderTarget target, Resolution resolution) {
			if ( TV3DEngine != null ) {
				Terminate();
			}
			TV3DEngine = new TVEngine();
			try {
				Engine.TV3DEngine.Init3DWindowedMode(window.Handle.ToInt32(), true);
				//TV3DEngine.Init3DFullscreen( 800, 600, 16, true, false, CONST_TV_DEPTHMODE.TV_DEPTHBUFFER_BESTBUFFER, 1, 0 );
				_renderTarget = window;
			}
			catch(Exception e) {
				throw new EngineInitialisationException(e);
			}
			TV3DEngine.SetAngleSystem( CONST_TV_ANGLE.TV_ANGLE_DEGREE );
			TV3DEngine.SetVSync( true );
			TV3DEngine.DisplayFPS = true;
			TV3DScene = new TVScene();
			TV3DScene.SetDepthBuffer( CONST_TV_DEPTHBUFFER.TV_WBUFFER );
			//TV3DScene.SetRenderMode( CONST_TV_RENDERMODE.TV_LINE );
			TV3DScene.SetTextureFilter( CONST_TV_TEXTUREFILTER.TV_FILTER_ANISOTROPIC );
			TexFactory = new TVTextureFactory();
			Screen2DImmediate = new TVScreen2DImmediate();

			// TODO: this hax setting is to allow for clearing part of a rendersurface
			// would be nice if there is a better way....
			Screen2DImmediate.SETTINGS_SetBlendingMode( DxVBLibA.CONST_D3DBLEND.D3DBLEND_ZERO, DxVBLibA.CONST_D3DBLEND.D3DBLEND_ONE, false );

			Screen2DText = new TVScreen2DText();
			LightEngine = new TVLightEngine();
			Gl = new TVGlobals();
			Camera = new TVCamera();
			Atmosphere = new TVAtmosphere();
			Atmosphere.Fog_SetParameters( 100F, 10000F, 0.0005F );
			Atmosphere.Fog_Enable( true );
			Input = new TVInputEngine();
			FontIndex = Screen2DText.TextureFont_Create("font", "Verdana", 20, true, false, false, false);
		}