public PostEffectComponent(D3DEngine engine, [Named("SkyBuffer")] StaggingBackBuffer backBufferClouds) { _engine = engine; _backBufferClouds = backBufferClouds; _engine.ScreenSize_Updated += engine_ScreenSize_Updated; _registeredEffects = new Dictionary <string, IPostEffect>(); this.DrawOrders.UpdateIndex(0, 11, "FROM"); //Call at the beginning of what must be draw into this texture. _postEffectEndingDrawId = this.DrawOrders.AddIndex(9999, "TO"); //Call when the drawing is finished. }
public Clouds(D3DEngine engine, [Named("SkyBuffer")] StaggingBackBuffer skyBackBuffer, IClock worldclock, WorldFocusManager worldFocusManager, CameraManager <ICameraFocused> cameraManager, IWeather weather) { if (engine == null) { throw new ArgumentNullException("engine"); } _d3DEngine = engine; _skyBackBuffer = skyBackBuffer; _worldclock = worldclock; _worldFocusManager = worldFocusManager; _cameraManager = cameraManager; _weather = weather; _skyBackBuffer.OnStaggingBackBufferChanged += _skyBackBuffer_OnStaggingBackBufferChanged; }
private void ChangeLandscapeFog(string landscapeFogType) { if (isGameRunning) { var skyDome = _iocContainer.Get <ISkyDome>(); if (landscapeFogType == "SkyFog") { StaggingBackBuffer skyBackBuffer = _iocContainer.Get <StaggingBackBuffer>("SkyBuffer"); skyBackBuffer.EnableComponent(true); skyDome.DrawOrders.UpdateIndex(0, 40); } else { StaggingBackBuffer skyBackBuffer = _iocContainer.Get <StaggingBackBuffer>("SkyBuffer"); skyBackBuffer.DisableComponent(); skyDome.DrawOrders.UpdateIndex(0, 990); } } }
public WorldChunks(D3DEngine d3dEngine, CameraManager <ICameraFocused> camManager, VisualWorldParameters visualWorldParameters, WorldFocusManager worldFocusManager, GameStatesManager gameStates, IClock gameClock, SingleArrayChunkContainer cubesHolder, ILandscapeManager2D landscapeManager, IChunkMeshManager chunkMeshManager, IChunksWrapper chunkWrapper, ILightingManager lightingManager, IChunkStorageManager chunkstorage, ServerComponent server, IWeather weather, [Named("SkyBuffer")] StaggingBackBuffer skyBackBuffer, VoxelModelManager voxelModelManager, IChunkEntityImpactManager chunkEntityImpactManager, InputsManager inputsManager ) { _server = server; _chunkstorage = chunkstorage; _d3dEngine = d3dEngine; _worldFocusManager = worldFocusManager; _gameStates = gameStates; _camManager = camManager; _gameClock = gameClock; VisualWorldParameters = visualWorldParameters; _cubesHolder = cubesHolder; _chunkWrapper = chunkWrapper; _landscapeManager = landscapeManager; _chunkMeshManager = chunkMeshManager; _lightingManager = lightingManager; _weather = weather; _skyBackBuffer = skyBackBuffer; _voxelModelManager = voxelModelManager; _chunkEntityImpactManager = chunkEntityImpactManager; _inputsManager = inputsManager; _skyBackBuffer.OnStaggingBackBufferChanged += _skyBackBuffer_OnStaggingBackBufferChanged; SliceViewChunks = 25; DrawStaticInstanced = true; if (visualWorldParameters.WorldParameters.Configuration is UtopiaWorldConfiguration) { _utopiaProcessorParam = ((UtopiaWorldConfiguration)visualWorldParameters.WorldParameters.Configuration).ProcessorParam; } //Self injecting inside components, to avoid circular dependency _chunkWrapper.WorldChunks = this; lightingManager.WorldChunk = this; _chunkMeshManager.WorldChunks = this; landscapeManager.WorldChunks = this; DrawOrders.UpdateIndex(SOLID_DRAW, 100, "SOLID_DRAW"); TRANSPARENT_DRAW = DrawOrders.AddIndex(1050, "TRANSPARENT_DRAW"); ENTITIES_DRAW = DrawOrders.AddIndex(101, "ENTITIES_DRAW"); this.IsDefferedLoadContent = true; }