コード例 #1
0
 public SystemRenderer(ICamera camera, GameDataManager data, GameResourceManager rescache, Game game)
 {
     this.camera      = camera;
     AsteroidFields   = new List <AsteroidFieldRenderer>();
     Nebulae          = new List <NebulaRenderer>();
     StarSphereModels = new RigidModel[0];
     Polyline         = new PolylineRender(commands);
     FxPool           = new ParticleEffectPool(commands);
     cache            = rescache;
     rstate           = rescache.Game.RenderState;
     this.game        = game;
     gconfig          = game.GetService <GameConfig>();
     billboards       = game.GetService <Billboards>();
     resman           = game.GetService <ResourceManager>();
     nebulae          = game.GetService <NebulaVertices>();
     dot           = (Texture2D)rescache.FindTexture(ResourceManager.WhiteTextureName);
     DebugRenderer = new PhysicsDebugRenderer();
     Beams         = new BeamsBuffer();
     if (GLExtensions.Features430)
     {
         pointLightBuffer = new ShaderStorageBuffer(MAX_POINTS * (16 * sizeof(float)));
         if (pointLightCull == null)
         {
             pointLightCull = new ComputeShader(Resources.LoadString("LibreLancer.Shaders.lightingcull.glcompute"));
         }
     }
 }
コード例 #2
0
 public override bool PrepareRender(ICamera camera, NebulaRenderer nr, SystemRenderer sys)
 {
     beams       = sys.Beams;
     renderCount = 0;
     for (int i = 0; i < Projectiles.Projectiles.Length; i++)
     {
         if (Projectiles.Projectiles[i].Alive)
         {
             toRender[renderCount++] = Projectiles.Projectiles[i];
         }
     }
     if (renderCount > 0)
     {
         sys.AddObject(this);
     }
     return(true);
 }
コード例 #3
0
 public override bool PrepareRender(ICamera camera, NebulaRenderer nr, SystemRenderer sys)
 {
     beams       = sys.Beams;
     renderCount = 0;
     for (int i = 0; i < Projectiles.Projectiles.Length; i++)
     {
         if (Projectiles.Projectiles[i].Alive)
         {
             if (Projectiles.Projectiles[i].Effect != null)
             {
                 Projectiles.Projectiles[i].Effect.Resources = sys.ResourceManager;
                 Projectiles.Projectiles[i].Effect.Pool      = sys.FxPool;
             }
             toRender[renderCount++] = Projectiles.Projectiles[i];
         }
     }
     if (renderCount > 0)
     {
         sys.AddObject(this);
     }
     return(true);
 }