예제 #1
0
        public static IDisposable Push(RenderCubinContext ctx)
        {
            if (Current == ctx)
            {
                return new DisposableAction(() => {});
            }
            else
            {
                _stack.Push(ctx);

                return new DisposableAction(() =>
                {
                    (Current == ctx).AssertTrue();
                    _stack.Pop();
                });
            }
        }
예제 #2
0
        public static byte[] PeekRenderCubin(this Renderable renderable, RenderCubinContext ctx)
        {
            if (renderable == null) return null;
            if (ctx == null) return PeekRenderCubin(renderable);

            using (RenderCubinContext.Push(ctx))
            {
                var buf = new MemoryStream();
                using (ctx.OverrideBuf(buf))
                {
                    renderable.RenderCubin(ctx);
                    var cubin = ctx.Result;
                    return cubin;
                }
            }
        }
예제 #3
0
        public static void RenderCubin(this Renderable renderable, RenderCubinContext ctx)
        {
            if (renderable == null) return;
            if (ctx == null) RenderCubin(renderable);

            using (RenderCubinContext.Push(ctx))
            {
                renderable.RenderCubin();
            }
        }