示例#1
0
        protected override void Draw()
        {
            /*
             * if(visibleTileRangeDirty)
             *  UpdateVisibleTileRange();*/

            base.Draw();

            CCDrawManager drawManager = Window.DrawManager;

            var alphaTest = drawManager.AlphaTestEffect;

            alphaTest.AlphaFunction  = CompareFunction.Greater;
            alphaTest.ReferenceAlpha = 0;

            drawManager.PushEffect(alphaTest);
            drawManager.BindTexture(tileSetTexture);

            foreach (var buffer in drawBufferManager.Buffers)
            {
                drawManager.DrawBuffer(buffer.QuadsVertexBuffer, buffer.IndexBuffer, 0,
                                       buffer.NumberOfTiles * NumOfPrimitivesPerQuad);
            }

            drawManager.PopEffect();
        }
示例#2
0
 public virtual void Blit()
 {
     if (RenderTexture != null)
     {
         CCDrawManager drawManager = Scene.GameView.DrawManager;
         drawManager.BindTexture(RenderTexture.Texture);
     }
 }
示例#3
0
        protected override void Draw()
        {
            base.Draw();

            Debug.Assert(batchNode == null);

            CCDrawManager drawManager = Window.DrawManager;

            drawManager.BlendFunc(BlendFunc);
            drawManager.BindTexture(Texture);
            drawManager.DrawQuad(ref quad);
        }
示例#4
0
        internal override void Execute(CCDrawManager drawManager)
        {
            // Set Texture
            drawManager.BindTexture(Texture);

            // Set blend mode
            drawManager.BlendFunc(BlendType);

            // Draw the Primitives
            Primitive.Draw(drawManager);

            drawManager.DrawCount++;  // Drawn batches
            //drawManager.DrawVerticesCount = Primitive.Count; // Drawn Vertices in this batch
        }
示例#5
0
        protected override void Draw()
        {
            if (visibleTileRangeDirty)
            {
                UpdateVisibleTileRange();
            }

            if (tileAnimationsDirty)
            {
                UpdateTileAnimations();
            }

            base.Draw();

            CCDrawManager drawManager = Window.DrawManager;

            var alphaTest = drawManager.AlphaTestEffect;

            alphaTest.AlphaFunction  = CompareFunction.Greater;
            alphaTest.ReferenceAlpha = 0;

            drawManager.PushEffect(alphaTest);

            foreach (var drawBufferManager in drawBufferManagers)
            {
                drawManager.BindTexture(drawBufferManager.TileSetInfo.Texture);

                foreach (var buffer in drawBufferManager.Buffers)
                {
                    if (buffer.ShouldDrawBuffer == false || buffer.NumberOfVisibleVertices == 0)
                    {
                        continue;
                    }

                    drawManager.DrawBuffer(buffer.QuadsVertexBuffer, buffer.IndexBuffer, 0,
                                           buffer.NumberOfVisiblePrimitives);
                }
            }

            drawManager.PopEffect();
        }
示例#6
0
 internal override void Execute(CCDrawManager drawManager)
 {
     drawManager.BindTexture(Texture.Texture);
     drawManager.BlendFunc(BlendType);
     Texture.DrawQuads();
 }
示例#7
0
 internal void UseMaterial(CCDrawManager drawManager)
 {
     drawManager.BlendFunc(BlendType);
     drawManager.BindTexture(Texture);
 }
        public virtual void Blit()
        {
            CCDrawManager drawManager = Scene.Window.DrawManager;

            drawManager.BindTexture(Texture);
        }