public void Init() { screen = new FakeScreen (); effect = new FakeEffect (screen); world = new World (screen: screen, drawOrder: DisplayLayer.GameWorld, effect: effect, bounds: screen.Bounds); cam1 = new Camera (screen: screen, world: world); }
/// <summary> /// Liest den Standard-Effekt aus der Konfigurationsdatei aus und liefert ein entsprechendes RenderEffekt-Objekt zurück. /// </summary> private static IRenderEffect DefaultEffect(IScreen screen) { // suche den eingestellten Standardeffekt heraus string effectName = Config.Default ["video", "current-world-effect", "default"]; IRenderEffect effect = RenderEffectLibrary.CreateEffect(screen: screen, name: effectName); return(effect); }
public void AddRemoveTest() { screen = screen ?? new FakeScreen (); effect = effect ?? new FakeEffect (screen); // Erstelle einen Knoten new Knot (); /* Knot knot = new Knot (); // Erstelle eine Rasterpunkt-Zuordnung Grid nodeMap = new Grid (screen: screen); nodeMap.Knot = knot; nodeMap.OnEdgesChanged (); List<Pipe> models = new List<Pipe> (); // Erstelle ein paar Pipes foreach (Edge edge in knot) { Pipe pipe = new Pipe (screen: screen, nodeMap: nodeMap, knot: knot, edge: edge); models.Add (pipe); } Assert.AreEqual (knot.Count (), models.Count (), "Für jede Edge eine Pipe"); return; // das hier zu sehr in XNA verwoben, macht als test wahrscheinlich keinen sinn!! World world = new World (screen: screen, effect: effect); foreach (PipeModel model in models) { world.Add (model); } Assert.AreEqual (knot.Count (), world.Count (), "Anzahl GameObjects"); foreach (PipeModel model in models) { world.Add (model); } Assert.AreEqual (knot.Count (), world.Count (), "GameObjects sind Unique"); foreach (PipeModel model in models) { world.Remove (model); } Assert.AreEqual (0, world.Count (), "Leere World"); */ }
private static Model LoadModel(ContentManager content, IRenderEffect pp, string name) { if (invalidModels.Contains (name)) { return null; } else { try { Model model = content.Load<Model> (name); pp.RemapModel (model); return model; } catch (ContentLoadException) { Console.WriteLine ("Warning: Model " + name + " does not exist!"); invalidModels.Add (name); return null; } } }
/// <summary> /// Erstellt eine neue Spielwelt im angegebenen Spielzustand, dem angegebenen Rendereffekt und dem /// angegebenen Bounds-Objekt. /// </summary> public World(IScreen screen, DisplayLayer drawOrder, IRenderEffect effect, Bounds bounds) : base(screen, drawOrder) { // die Kamera für diese Spielwelt _camera = new Camera(screen, this); // die Liste der Spielobjekte Objects = new HashSet <IGameObject> (); // der Rendereffekt CurrentEffect = effect; // die relative Standard-Position und Größe Bounds = bounds; if (Screen.Game != null) { Screen.Game.FullScreenChanged += () => viewportCache.Clear(); } }
private static Model LoadModel(ContentManager content, IRenderEffect pp, string name) { if (invalidModels.Contains(name)) { return(null); } else { try { Model model = content.Load <Model> ("Models/" + name); pp.RemapModel(model); return(model); } catch (ContentLoadException) { Log.Debug("Warning: Model ", name, " does not exist!"); invalidModels.Add(name); return(null); } } }
/// <summary> /// Entfernt den obersten Rendereffekt vom Stapel. /// </summary> public IRenderEffect Pop() { if (stack.Count > 0) { IRenderEffect removed = stack.Pop(); if (stack.Count > 0) { screen.GraphicsDevice.SetRenderTarget(CurrentEffect.RenderTarget); } else { screen.GraphicsDevice.SetRenderTarget(null); } return(removed); } else { return(defaultEffect); } }
/// <summary> /// Erstellt einen neuen Rendereffekt-Stapel. /// </summary> public RenderEffectStack(IScreen screen, IRenderEffect defaultEffect) { this.screen = screen; this.defaultEffect = defaultEffect; stack = new Stack<IRenderEffect> (); }
/// <summary> /// Legt einen Rendereffekt auf den Stapel. /// </summary> public void Push(IRenderEffect effect) { stack.Push (effect); screen.GraphicsDevice.SetRenderTarget (effect.RenderTarget); }
public void Push(IRenderEffect current) { activeEffects.Push (current); }
public RenderEffectStack(IRenderEffect defaultEffect) { this.defaultEffect = defaultEffect; }
/// <summary> /// Legt einen Rendereffekt auf den Stapel. /// </summary> public void Push(IRenderEffect effect) { stack.Push (effect); }
/// <summary> /// Erstellt einen neuen Rendereffekt-Stapel. /// </summary> public RenderEffectStack(IScreen screen, IRenderEffect defaultEffect) { this.screen = screen; this.defaultEffect = defaultEffect; stack = new Stack <IRenderEffect> (); }
/// <summary> /// Legt einen Rendereffekt auf den Stapel. /// </summary> public void Push(IRenderEffect effect) { stack.Push(effect); screen.GraphicsDevice.SetRenderTarget(effect.RenderTarget); }
/// <summary> /// Append a rendering effect to the pipeline /// and load the effect's content /// </summary> /// <param name="effect">The effect to be added</param> public void AddRenderEffect(IRenderEffect effect) { effects.Add(effect); if (batch == null) LoadContent(); else effect.LoadContent(contentManager, graphicsDevice, batch); }
/// <summary> /// Remove a rendering effect from the pipeline /// Unloads that effect's content /// </summary> /// <param name="effect"></param> public void RemoveRenderEffect(IRenderEffect effect) { effects.Remove(effect); effect.UnloadContent(); }