Example #1
0
        protected Dictionary <string, byte[]> Process(FlScriptExecutionContext context)
        {
            MemoryBuffer  buf = CLAPI.CreateBuffer(Instance, context.Input, MemoryFlag.ReadWrite);
            FLInterpreter ret = new FLInterpreter(Instance, context.Filename, buf, context.Width,
                                                  context.Height, 1, 4, Db, true);

            do
            {
                ret.Step();
            } while (!ret.Terminated);


            byte[] buffer = ret.GetResult <byte>();
            Dictionary <string, byte[]> result = new Dictionary <string, byte[]> {
                { "result", buffer }
            };

            foreach (KeyValuePair <string, Bitmap> keyValuePair in context.TextureMap)
            {
                CLBufferInfo mbuf = ret.GetBuffer(keyValuePair.Key);
                if (mbuf == null)
                {
                    continue;
                }

                byte[] spec = CLAPI.ReadBuffer <byte>(Instance, mbuf.Buffer, (int)mbuf.Buffer.Size);
                result.Add(keyValuePair.Key, spec);
                mbuf.Buffer.Dispose();
            }

            return(result);
        }