示例#1
0
 private void InitializeBuffer()
 {
     if (_buffer == null)
     {
         FLBuffer i = Loader(Root);
         _buffer = i.Buffer;
         Width   = i.Width;
         Height  = i.Height;
         Depth   = i.Depth;
     }
 }
示例#2
0
        public LazyFromFileFLBuffer(string file, bool isArray, int size, FLBufferModifiers modifiers) : base(
                null,
                modifiers
                .InitializeOnStart
                )
        {
            File = file;
            MemoryFlag flag = modifiers.IsReadOnly ? MemoryFlag.ReadOnly : MemoryFlag.ReadWrite;

            if (isArray)
            {
                Loader = root =>
                {
                    Bitmap   bmp = new Bitmap(Image.FromStream(IOManager.GetStream(File)));
                    FLBuffer buf = new FLBuffer(root.Instance, bmp, DefinedBufferName + ":" + File, flag);
                    bmp.Dispose();
                    return(buf);
                };
            }
            else
            {
                Loader = root =>
                {
                    if (File == "INPUT")
                    {
                        return(root.Input);
                    }

                    Bitmap bmp = new Bitmap(
                        Image.FromStream(IOManager.GetStream(File)),
                        root.Dimensions.x,
                        root.Dimensions.y
                        );
                    FLBuffer buf = new FLBuffer(root.Instance, bmp, DefinedBufferName + ":" + File, flag);
                    bmp.Dispose();
                    return(buf);
                };
            }
        }