private void CalculateSingleThread() { double mult = 2 * Math.PI / 800; double r, g, b; int index = 0; // Assign the parser variables ParserVariable x = new ParserVariable(0); ParserVariable y = new ParserVariable(0); foreach (muParser.Parser p in m_parserImg) { p.DefineVar("x", x); p.DefineVar("y", y); } for (int yi = 0; yi < pbImage.Height; ++yi) { y.Value = (yi - 400) * mult; for (int xi = 0; xi < pbImage.Width; ++xi) { x.Value = (xi - 400) * mult; r = m_parserImg[(int)EColorPlane.red].Eval(); g = m_parserImg[(int)EColorPlane.green].Eval(); b = m_parserImg[(int)EColorPlane.blue].Eval(); r = GetColorComponent(r); g = GetColorComponent(g); b = GetColorComponent(b); m_data[index] = (byte)(r * 255); m_data[index + 1] = (byte)(g * 255); m_data[index + 2] = (byte)(b * 255); index += 3; } } }
private void CalculateMultiReturn() { double mult = 2 * Math.PI / 800; double r, g, b; int index = 0; // Assign the parser variables ParserVariable x = new ParserVariable(0); ParserVariable y = new ParserVariable(0); muParser.Parser p = new muParser.Parser(muParser.Parser.EBaseType.tpDOUBLE); p.DefineOprt("%", new Parser.Fun2Delegate(mod), 2); p.SetExpr(m_parserImg[0].GetExpr() + "," + m_parserImg[1].GetExpr() + "," + m_parserImg[2].GetExpr()); p.DefineVar("x", x); p.DefineVar("y", y); for (int yi = 0; yi < pbImage.Height; ++yi) { y.Value = (yi - 400) * mult; for (int xi = 0; xi < pbImage.Width; ++xi) { x.Value = (xi - 400) * mult; int nNum; double[] ret = p.EvalMultiExpr(); r = GetColorComponent(ret[0]); g = GetColorComponent(ret[1]); b = GetColorComponent(ret[2]); m_data[index] = (byte)(r * 255); m_data[index + 1] = (byte)(g * 255); m_data[index + 2] = (byte)(b * 255); index += 3; } } }
private void CalculateMultiThread(object s) { CalcState cs = s as CalcState; double mult = 2 * Math.PI / 800; int index = 0; // Set up parser variables Parser p = cs.Parser; ParserVariable x = new ParserVariable(0); ParserVariable y = new ParserVariable(0); p.DefineVar("x", x); p.DefineVar("y", y); // Do the actual looping for a single colorplane double v; for (int yi = 0; yi < pbImage.Height; ++yi) { y.Value = (yi - 400) * mult; for (int xi = 0; xi < pbImage.Width; ++xi) { x.Value = (xi - 400) * mult; v = GetColorComponent(p.Eval()); m_data[index + cs.Offset] = (byte)(v * 255); index += 3; } } cs.Reset.Set(); }
public void DefineVar(string name, ParserVariable var) { mupDefineVar(m_parser, name, var.Pointer); m_varBuf[name] = var; }
public void DefineVar(string name, ParserVariable var) { mecDefineVar(m_parser, name, var.Pointer); m_varBuf[name] = var; }
private void CalculateSingleThread() { float mult = 2 * (float)Math.PI / (float)256.0; float r, g, b; int index = 0; //// Assign the parser variables ParserVariable x = new ParserVariable(0); ParserVariable y = new ParserVariable(0); foreach (muParser.Parser p in m_parserImg) { p.DefineVar("x", x); p.DefineVar("y", y); } //Parser.CompiledFunDelegate funRed = m_parserImg[(int)EColorPlane.red].Compile(); //Parser.CompiledFunDelegate funGreen = m_parserImg[(int)EColorPlane.green].Compile(); //Parser.CompiledFunDelegate funBlue = m_parserImg[(int)EColorPlane.blue].Compile(); int h = pbImage.Height; int w = pbImage.Width; for (int yi = 0; yi < h; ++yi) { y.Value = (yi - 128) * mult; for (int xi = 0; xi < w; ++xi) { x.Value = (xi - 128) * mult; r = GetColorComponent(m_parserImg[(int)EColorPlane.red].Eval()); g = GetColorComponent(m_parserImg[(int)EColorPlane.green].Eval()); b = GetColorComponent(m_parserImg[(int)EColorPlane.blue].Eval()); m_data[index] = (byte)(r * 255); m_data[index + 1] = (byte)(g * 255); m_data[index + 2] = (byte)(b * 255); index += 3; } } }
private void CalculateMultiThread(object s) { CalcState cs = s as CalcState; float mult = 2 * (float)Math.PI / (float)256.0; int index = 0; // Set up parser variables Parser p = cs.Parser; ParserVariable x = new ParserVariable(0); ParserVariable y = new ParserVariable(0); p.DefineVar("x", x); p.DefineVar("y", y); Parser.CompiledFunDelegate fun = p.Compile(); // Do the actual looping for a single colorplane float v; for (int yi = 0; yi < pbImage.Height; ++yi) { y.Value = (yi - 128) * mult; for (int xi = 0; xi < pbImage.Width; ++xi) { x.Value = (xi - 128) * mult; //v = GetColorComponent(p.Eval()); v = GetColorComponent(fun()); m_data[index + cs.Offset] = (byte)(v * 255); index += 3; } } cs.Reset.Set(); }