Ejemplo n.º 1
0
 /// <summary>
 /// Gets a render bucket by its type.
 /// </summary>
 /// <param name="type">Type to get</param>
 /// <returns>Bucket, if it exists</returns>
 public IRenderBucket GetRenderBucket(RenderBucketType type)
 {
     lock (_syncObject) {
         IRenderBucket bucket;
         _buckets.TryGetValue((int)type, out bucket);
         return(bucket);
     }
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Deserializes this SceneHints.
 /// </summary>
 /// <param name="input">Input to read from</param>
 public void Read(ISavableReader input)
 {
     _cullHint   = input.ReadEnum <CullHint>();
     _pickHint   = input.ReadEnum <PickingHint>();
     _lightHint  = input.ReadEnum <LightCombineHint>();
     _transHint  = input.ReadEnum <TransparencyType>();
     _bucketType = input.ReadEnum <RenderBucketType>();
     _orthoOrder = input.ReadInt();
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Add a render bucket to the queue. Overwrites an existing bucket.
 /// </summary>
 /// <param name="type">Bucket type to add</param>
 /// <param name="bucket">Bucket to add</param>
 public void AddRenderBucket(RenderBucketType type, IRenderBucket bucket)
 {
     lock (_syncObject) {
         if (bucket == null)
         {
             throw new ArgumentNullException("RenderBucket cannot be null");
         }
         _buckets[(int)type] = bucket;
     }
 }
Ejemplo n.º 4
0
        /// <summary>
        /// Removes the renderable from the queue.
        /// </summary>
        /// <param name="renderable">Renderable to remove</param>
        /// <returns>True if it was removed, if it was found</returns>
        public bool RemoveFromQueue(IRenderable renderable)
        {
            lock (_syncObject) {
                RenderBucketType type = renderable.RenderBucketType;
                if (type == RenderBucketType.Skip)
                {
                    return(false);
                }

                if (type == RenderBucketType.Default)
                {
                    type = RenderBucketType.Opaque;
                }

                IRenderBucket bucket = GetRenderBucket(type);
                if (bucket != null)
                {
                    bucket.Remove(renderable);
                    return(true);
                }
                return(false);
            }
        }