public async Task <string> RenderAsync <T>(string path, T model, object viewBag = null, CultureInfo culture = null) { culture = culture ?? Thread.CurrentThread.CurrentCulture; var template = await ResolveTemplateAsync(path, culture, model); if (template == null) { return(null); } try { var concreteTemplate = template as Template; if (concreteTemplate == null) { throw new TypeMismatchException(template.GetType(), typeof(Template)); } var renderer = new StringRenderer(); return(await Task.Run(() => renderer.Render(concreteTemplate, viewBag))); } catch (Exception ex) { throw new TemplateEngineException(ex); } }
public Logger(Type type, ConcurrentQueue <LogLine> lines, StringRenderer stringRenderer, bool outputToConsole) { _type = type ?? throw new ArgumentNullException(nameof(type)); _lines = lines ?? throw new ArgumentNullException(nameof(lines)); _stringRenderer = stringRenderer ?? throw new ArgumentNullException(nameof(stringRenderer)); _outputToConsole = outputToConsole; }
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is null) { return(AvaloniaProperty.UnsetValue); } PBELocalizedString localized = null; switch (value) { case PBEAbility ability: localized = PBELocalizedString.GetAbilityName(ability); break; case PBEGender gender: localized = PBELocalizedString.GetGenderName(gender); break; case PBEItem item: localized = PBELocalizedString.GetItemName(item); break; case PBELocalizedString l: localized = l; break; case PBEMove move: localized = PBELocalizedString.GetMoveName(move); break; case PBENature nature: localized = PBELocalizedString.GetNatureName(nature); break; case PBESpecies species: localized = PBELocalizedString.GetSpeciesName(species); break; case PBEStat stat: localized = PBELocalizedString.GetStatName(stat); break; case PBEType type: localized = PBELocalizedString.GetTypeName(type); break; } return(StringRenderer.Render(localized == null ? value.ToString() : localized.ToString(), parameter?.ToString()) ?? AvaloniaProperty.UnsetValue); }
private void DoDisassembly() { using (var dasm = new Disassembler(_selectedFile)) { if (File.Exists(_outputFile)) { File.Delete(_outputFile); } _statusLabel.Text = "Performing Disassembly..."; var inputFile = dasm.Disassemble(_optionMinimal); //Apply Selected Analysis if (_optionMBBSAnalysis) { _statusLabel.Text = "Performing Additional Analysis..."; Analysis.MBBS.Analyze(inputFile); } _progressBar.Fraction = .25f; var _stringRenderer = new StringRenderer(inputFile); _statusLabel.Text = "Processing Segment Information..."; File.AppendAllText(_outputFile, _stringRenderer.RenderSegmentInformation()); _progressBar.Fraction = .50f; _statusLabel.Text = "Processing Entry Table..."; File.AppendAllText(_outputFile, _stringRenderer.RenderEntryTable()); _progressBar.Fraction = .75f; _statusLabel.Text = "Processing Disassembly..."; File.AppendAllText(_outputFile, _stringRenderer.RenderDisassembly(_optionMBBSAnalysis)); _progressBar.Fraction = .85f; if (_optionStrings) { _statusLabel.Text = "Processing Strings..."; File.AppendAllText(_outputFile, _stringRenderer.RenderStrings()); } _statusLabel.Text = "Done!"; _progressBar.Fraction = 1f; } var d = new Dialog($"Disassembly Complete!", 50, 12); d.Add(new Label(0, 0, $"Output File: {_outputFile}"), new Label(0, 1, $"Bytes Written: {new FileInfo(_outputFile).Length}") ); var okBtn = new Button("OK", true); okBtn.Clicked += () => { Application.RequestStop(); }; d.AddButton(okBtn); Application.Run(d); }
public void Simulation_Blinker_ShouldIterate(int ticks, string expectedOutput) { Coordinate.XGridSize = 10; Coordinate.YGridSize = 10; var definedStates = new DefinedInitialStates(StatePattern.Blinker); var stringRenderer = new StringRenderer('#'); var clock = new ManualClock(); var simulation = new Simulation( ticks, clock, stringRenderer, new ConsoleKeyboardController(), new God(definedStates.InitialState) ); // Invoke handler simulation.TogglePlayStateEventHandler(null, null); clock.TickMany(ticks); Assert.Equal(expectedOutput, stringRenderer.Out); }
public BufferedStringRenderer(StringRenderer sr) { this.m_stringRenderer = sr; this.m_stringRects = (StringRect[])null; this.m_stringRectHistory = (short[])null; this.m_stringRectsCount = 0; this.m_bufferImage = (Image)null; this.m_bufferGraphics = (Graphics)null; this.m_bufferLineHeight = 0; this.m_bufferImage = Image.createImage(512, 512); this.m_bufferGraphics = this.m_bufferImage.getGraphics(); int x0 = 0; int x1 = 0; int y0 = 0; int y1 = 0; this.m_stringRenderer.getStringTexturePadding(ref x0, ref x1, ref y0, ref y1); this.m_bufferLineHeight = this.m_stringRenderer.getHeight() + y0 + y1; this.m_stringRectsCount = this.m_bufferImage.getHeight() / this.m_bufferLineHeight; this.m_stringRects = new StringRect[this.m_stringRectsCount]; this.m_stringRectHistory = new short[this.m_stringRectsCount]; for (int index = 0; index < this.m_stringRectsCount; ++index) { this.m_stringRectHistory[index] = (short)(this.m_stringRectsCount - 1 - index); } }
protected virtual void Update() { if (!isStringGrabbed) { if (!StringNock.transform.localPosition.ApproxEquals(nockRestingPosition)) { StringNock.transform.localPosition = Vector3.MoveTowards(StringNock.transform.localPosition, nockRestingPosition, StringReturnSpeed * Time.deltaTime); } } else { secondaryInteractor = BowInteractable.GrabbingInteractors.Count > 1 ? BowInteractable.GrabbingInteractors[1] : null; if (secondaryInteractor != null) { StringNock.transform.position = secondaryInteractor.GrabAttachPoint.transform.position; StringNock.transform.localPosition = Vector3.forward * Mathf.Clamp(StringNock.transform.localPosition.z, MaxStringPull * -1, minStringPull); } } FlexAnimationScrubber.Scrub(Mathf.Clamp01(NormalizedPullDistance - 0.001f)); for (int linePoint = 0; linePoint < StringPoints.Length; linePoint++) { StringRenderer.SetPosition(linePoint, StringPoints[linePoint].position); } }
private static string Render(IRenderable renderable) { var builder = new StringBuilder(); var renderer = new StringRenderer(builder); renderable.Render(renderer); return(builder.ToString().NormalizeLineEndings().Trim()); }
/// <summary> /// /// </summary> /// <param name="param">the edges of the viewport to which a SimpleUIRect is bound and determines how it is resized with its parent. /// <para>something like AnchorStyles.Left | AnchorStyles.Bottom.</para></param> /// <param name="content"></param> public DummyLabel(IUILayoutParam param, string content) { this.renderer = new StringRenderer(content.GetModel()); IUILayout layout = this; layout.Param = param; }
public void ShouldReturnAStringWhenTheTemplateIsRendered() { var renderer = new StringRenderer(Mock.Of <ITemplate>(t => t.Elements == new List <JElement>())); var text = renderer.Render(); Assert.IsNotNull(text); }
private void RunTest(string expected, params ushort[] words) { var instr = RunTest(words); var r = new StringRenderer(instr.Address); instr.Render(r, options); Assert.AreEqual(expected, r.ToString()); }
private void drawWrappedStringLines( Graphics g, string str, ref short[] offsets, int font, int x, int y, int anchor, int startLine, int numLines) { if (str.Length == 0) { return; } StringRenderer stringRenderer = this.getStringRenderer(font); int num1 = 320 - g.getClipX() - g.getClipWidth(); int num2 = num1 + g.getClipWidth(); int x1 = x; int y1 = y; int anchor1 = anchor; int height = stringRenderer.getHeight(); int num3 = 0; int num4 = startLine + numLines - 1; if ((anchor & 2) != 0) { y1 -= numLines * height >> 1; anchor1 = anchor1 & -3 | 1; } else if ((anchor & 4) != 0) { y1 -= numLines * height; anchor1 = anchor1 & -5 | 1; } int num5 = height; for (int index = startLine; index <= num4; ++index) { int start = (int)offsets[index + 1]; int end = (int)offsets[index + 2] - start; switch (str[(int)offsets[index + 2] - 1]) { case '\n': case ' ': case '|': --end; break; } if (end > 0 && y1 + num5 > num1 && y1 < num2) { this.drawSubString(g, str, start, end, font, x1, y1, anchor1); } x1 += num3; y1 += num5; } }
public void ShouldCallDocTypeRenderWhenTheTemplateIsRendered() { var docType = new Mock <DocType>("html"); var template = Mock.Of <ITemplate>(t => t.Elements == new List <JElement>() && t.DocType == docType.Object); var renderer = new StringRenderer(template); renderer.Render(); docType.Verify(d => d.Render(It.IsAny <IXmlWriter>()), Times.Once); }
public DisplayManager(PresentationPanel presentationPanel) { GL = GlobalWin.GL; this.presentationPanel = presentationPanel; GraphicsControl = this.presentationPanel.GraphicsControl; CR_GraphicsControl = GlobalWin.GLManager.GetContextForGraphicsControl(GraphicsControl); //it's sort of important for these to be initialized to something nonzero currEmuWidth = currEmuHeight = 1; Renderer = new GuiRenderer(GL); VideoTextureFrugalizer = new TextureFrugalizer(GL); ShaderChainFrugalizers = new RenderTargetFrugalizer[16]; //hacky hardcoded limit.. need some other way to manage these for (int i = 0; i < 16; i++) { ShaderChainFrugalizers[i] = new RenderTargetFrugalizer(GL); } using (var xml = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.courier16px.fnt")) using (var tex = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.courier16px_0.png")) TheOneFont = new StringRenderer(GL, xml, tex); var fiHq2x = new FileInfo(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk/hq2x.cgp")); if (fiHq2x.Exists) { using (var stream = fiHq2x.OpenRead()) ShaderChain_hq2x = new Filters.RetroShaderChain(GL, new Filters.RetroShaderPreset(stream), Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk")); } var fiScanlines = new FileInfo(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk/BizScanlines.cgp")); if (fiScanlines.Exists) { using (var stream = fiScanlines.OpenRead()) ShaderChain_scanlines = new Filters.RetroShaderChain(GL, new Filters.RetroShaderPreset(stream), Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk")); } var fiBicubic = new FileInfo(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk/bicubic-fast.cgp")); if (fiBicubic.Exists) { using (var stream = fiBicubic.OpenRead()) ShaderChain_bicubic = new Filters.RetroShaderChain(GL, new Filters.RetroShaderPreset(stream), Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk")); } LuaSurfaceSets["emu"] = new SwappableDisplaySurfaceSet(); LuaSurfaceSets["native"] = new SwappableDisplaySurfaceSet(); LuaSurfaceFrugalizers["emu"] = new TextureFrugalizer(GL); LuaSurfaceFrugalizers["native"] = new TextureFrugalizer(GL); RefreshUserShader(); }
public void drawSubString( Graphics g, string str, int start, int end, int font, int x, int y, int anchor) { this.temp_sr = this.getStringRenderer(font); this.temp_sr.drawSubstring(g, str, start, end, x, y, anchor); }
public object Convert(IList <object> values, Type targetType, object parameter, CultureInfo culture) { var species = (PBESpecies)values[0]; if (!PBEDataUtils.HasForms(species, true)) { return(AvaloniaProperty.UnsetValue); } PBEForm form = true ? 0 : (PBEForm)values[1]; // TODO IPBELocalizedString localized = PBEDataProvider.Instance.GetFormName(species, form); return(StringRenderer.Render(localized.FromPBECultureInfo(), parameter?.ToString())); }
public CachedStringRenderer(StringRenderer sr, int bufferCount) { this.m_stringRenderer = sr; this.m_stringRecords = (StringRecord[])null; this.m_stringRecordHistory = (short[])null; this.m_stringRecordsCount = bufferCount; this.m_stringRecords = new StringRecord[this.m_stringRecordsCount]; this.m_stringRecordHistory = new short[this.m_stringRecordsCount]; for (int index = 0; index < this.m_stringRecordsCount; ++index) { this.m_stringRecordHistory[index] = (short)(this.m_stringRecordsCount - 1 - index); } }
public void ShouldCallRenderForEachElementWhenTheTemplateIsRendered() { var element1 = Mock.Of <JElement>(); var element2 = Mock.Of <JElement>(); var template = Mock.Of <ITemplate>(t => t.Elements == new List <JElement> { element1, element2 }); var renderer = new StringRenderer(template); renderer.Render(); Mock.Get(element1).Verify(e => e.Render(It.IsAny <IXmlWriter>()), Times.Once); Mock.Get(element2).Verify(e => e.Render(It.IsAny <IXmlWriter>()), Times.Once); }
internal Message(string message) { Bitmap = StringRenderer.Render(message, "MenuBlack"); Match m = Regex.Match(message, @"^Turn (\d+)$"); if (m.Success) { Alignment = HorizontalAlignment.Center; Scale = 2; } else { Alignment = HorizontalAlignment.Left; Scale = 1; } Height = Bitmap.PixelSize.Height * Scale; }
public Message(string message) { Bitmap = StringRenderer.Render(message, "MenuBlack"); MatchCollection matches = Regex.Matches(message, @"Turn \d{1,}"); if (matches.Count == 1 && matches[0].Value == message) { Alignment = HorizontalAlignment.Center; Scale = 2d; } else { Alignment = HorizontalAlignment.Left; Scale = 1d; } Height = Bitmap.PixelSize.Height * Scale; }
public InterfaceManager(ContentManager content) { fontLibrary = new Library(); fontFace = new Face(fontLibrary, "Content/Fonts/Jack.ttf"); fontFace.SetCharSize(0, 18f, 0, 0); textureRenderer = new TextureRenderer(content, 800, 450); shapeRenderer = new ShapeRenderer(content, 800, 450); stringRenderer = new StringRenderer(); shapeRenderer.Begin(); shapeRenderer.SetProjection(Matrix4.CreateOrthographicOffCenter(0f, 800f, 450f, 0f, -1f, 1f)); shapeRenderer.End(); screens = new Dictionary <string, Screen>(); screens.Add("MainMenu", new MainMenu(this)); screens.Add("GameOverlay", new GameOverlay(this)); ChangeScreen("GameOverlay"); }
public string Render <T>(string path, T model, object viewBag = null, CultureInfo culture = null) { culture = culture ?? Thread.CurrentThread.CurrentCulture; var template = ResolveTemplate(path, culture, model); try { var concreteTemplate = template as Template; if (concreteTemplate == null) { throw new TypeMismatchException(template.GetType(), typeof(Template)); } var renderer = new StringRenderer(); return(renderer.Render(concreteTemplate, viewBag)); } catch (Exception ex) { throw new TemplateEngineException(ex); } }
public BucketStringRenderer(StringRenderer sr, int bufferCount) { this.m_stringRenderer = sr; this.m_historyCount = bufferCount; this.m_buckets = (BucketStringRenderer.Bucket[])null; this.m_bucketCount = 0; this.m_bucketMaximumWidth = 0; this.m_fontHeight = 0; this.m_history = new List <BucketStringRenderer.Slot>(); List <int> intList = new List <int>(); this.m_bucketMaximumWidth = 0; for (int index = 8; index <= 256; index *= 2) { intList.Add(index); } this.m_buckets = new BucketStringRenderer.Bucket[intList.Count]; for (int index = 0; index < intList.Count; ++index) { this.m_buckets[index] = new BucketStringRenderer.Bucket(); this.m_buckets[index].m_width = intList[index]; this.m_bucketMaximumWidth = intList[index]; } this.m_bucketCount = intList.Count; int x0 = 0; int x1 = 0; int y0 = 0; int y1 = 0; this.m_stringRenderer.getStringTexturePadding(ref x0, ref x1, ref y0, ref y1); this.m_fontHeight = this.m_stringRenderer.getHeight() + y0 + y1; int num = 1; while (this.m_fontHeight > num) { num *= 2; } this.m_fontHeight = num; }
private void Update() { if (Input.GetKeyDown(KeyCode.X)) { RaycastHit2D hit = Physics2D.Raycast(gameObject.transform.position, getDirection()); if (hit.collider != null && hit.transform.gameObject.layer == GameManager.I.GrappleSurfaceLayer) { grappleString = Instantiate(grappleStringPrefab.gameObject).GetComponent <StringRenderer>(); grappleString.point3.position = hit.point; grappleString.point1.position = gameObject.transform.position; grappleString.centerString(); joint = gameObject.AddComponent(typeof(DistanceJoint2D)) as DistanceJoint2D; joint.connectedBody = grappleString.point3.GetComponent <Rigidbody2D>(); joint.maxDistanceOnly = true; } } if (Input.GetKeyUp(KeyCode.X)) { if (grappleString != null) { Destroy(grappleString.gameObject); } if (joint != null) { Destroy(joint); } } if (grappleString != null) { grappleString.point1.position = gameObject.transform.position; rigidBody.AddForce(rigidBody.velocity * Time.deltaTime * 25); } gameObject.transform.rotation = Quaternion.Euler(0, 0, 0); }
public DisplayManager(PresentationPanel presentationPanel) { GL = GlobalWin.GL; this.presentationPanel = presentationPanel; GraphicsControl = this.presentationPanel.GraphicsControl; CR_GraphicsControl = GlobalWin.GLManager.GetContextForGraphicsControl(GraphicsControl); //it's sort of important for these to be initialized to something nonzero currEmuWidth = currEmuHeight = 1; if (GL is BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK) { Renderer = new GuiRenderer(GL); } else if (GL is BizHawk.Bizware.BizwareGL.Drivers.SlimDX.IGL_SlimDX9) { Renderer = new GuiRenderer(GL); } else { Renderer = new GDIPlusGuiRenderer((BizHawk.Bizware.BizwareGL.Drivers.GdiPlus.IGL_GdiPlus)GL); } VideoTextureFrugalizer = new TextureFrugalizer(GL); ShaderChainFrugalizers = new RenderTargetFrugalizer[16]; //hacky hardcoded limit.. need some other way to manage these for (int i = 0; i < 16; i++) { ShaderChainFrugalizers[i] = new RenderTargetFrugalizer(GL); } using (var xml = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.courier16px.fnt")) using (var tex = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.courier16px_0.png")) TheOneFont = new StringRenderer(GL, xml, tex); using (var gens = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.gens.ttf")) LoadCustomFont(gens); using (var fceux = typeof(Program).Assembly.GetManifestResourceStream("BizHawk.Client.EmuHawk.Resources.fceux.ttf")) LoadCustomFont(fceux); if (GL is BizHawk.Bizware.BizwareGL.Drivers.OpenTK.IGL_TK || GL is BizHawk.Bizware.BizwareGL.Drivers.SlimDX.IGL_SlimDX9) { var fiHq2x = new FileInfo(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk/hq2x.cgp")); if (fiHq2x.Exists) { using (var stream = fiHq2x.OpenRead()) ShaderChain_hq2x = new Filters.RetroShaderChain(GL, new Filters.RetroShaderPreset(stream), Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk")); } var fiScanlines = new FileInfo(Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk/BizScanlines.cgp")); if (fiScanlines.Exists) { using (var stream = fiScanlines.OpenRead()) ShaderChain_scanlines = new Filters.RetroShaderChain(GL, new Filters.RetroShaderPreset(stream), Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk")); } string bicubic_path = "Shaders/BizHawk/bicubic-fast.cgp"; if (GL is BizHawk.Bizware.BizwareGL.Drivers.SlimDX.IGL_SlimDX9) { bicubic_path = "Shaders/BizHawk/bicubic-normal.cgp"; } var fiBicubic = new FileInfo(Path.Combine(PathManager.GetExeDirectoryAbsolute(), bicubic_path)); if (fiBicubic.Exists) { using (var stream = fiBicubic.Open(FileMode.Open, FileAccess.Read, FileShare.Read)) ShaderChain_bicubic = new Filters.RetroShaderChain(GL, new Filters.RetroShaderPreset(stream), Path.Combine(PathManager.GetExeDirectoryAbsolute(), "Shaders/BizHawk")); } } LuaSurfaceSets["emu"] = new SwappableDisplaySurfaceSet(); LuaSurfaceSets["native"] = new SwappableDisplaySurfaceSet(); LuaSurfaceFrugalizers["emu"] = new TextureFrugalizer(GL); LuaSurfaceFrugalizers["native"] = new TextureFrugalizer(GL); RefreshUserShader(); }
//Camera modelRotationCamera; //SatelliteRotator modelRotator; //private float rotateAngle; public FormNormalLine() { InitializeComponent(); this.camera = new Camera(CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height); this.camera.Position = new GLM.vec3(50, 5, 5); this.cameraRotator = new SatelliteRotator(this.camera); //this.modelRotationCamera = new Camera(CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height); //this.modelRotator = new SatelliteRotator(this.modelRotationCamera); this.modelRotator = new ArcBallRotator(this.camera); //this.groundRenderer = new GroundRenderer(new Ground(100, 100, 0.1f, 0.1f)); this.groundRenderer = new GroundRenderer(new Ground(100, 100, 1f, 1f)); this.groundRenderer.Initialize(); Padding uiPadding = new System.Windows.Forms.Padding(10, 10, 10, 10); Size uiSize = new System.Drawing.Size(50, 50); IUILayoutParam uiParam = new IUILayoutParam(AnchorStyles.Left | AnchorStyles.Bottom, uiPadding, uiSize); uiAxis = new SimpleUIAxis(uiParam); uiAxis.Initialize(); IModel model = (new TeapotFactory()).Create(1.0f); this.renderer = new NormalLineRenderer(model); this.renderer.Initialize();//不在此显式初始化也可以。 //this.demoLifebar = new DemoLifeBar(0.2f, 0.02f, 4); //this.demolifebarRenderer = new NormalLineRenderer(this.demoLifebar); //this.demolifebarRenderer.Initialize(); this.lifebarRenderer = new LifeBarRenderer(new LifeBar(2f, 0.2f, 4f)); this.lifebarRenderer.Initialize(); //StringModel stringModel = DummyStringModelFactory.GetModel("teapot"); this.stringRenderer = new StringRenderer("teapot".GetModel()); this.stringRenderer.Initialize(); uiParam = new IUILayoutParam(AnchorStyles.Right | AnchorStyles.Bottom, new Padding(10, 10, 120, 10), new Size(50, 50)); this.label = new DummyLabel(uiParam, "Hello Label!"); this.label.Initialize(); this.glCanvas1.MouseWheel += glCanvas1_MouseWheel; this.glCanvas1.KeyPress += glCanvas1_KeyPress; this.glCanvas1.MouseDown += glCanvas1_MouseDown; this.glCanvas1.MouseMove += glCanvas1_MouseMove; this.glCanvas1.MouseUp += glCanvas1_MouseUp; this.glCanvas1.OpenGLDraw += glCanvas1_OpenGLDraw; this.glCanvas1.Resize += glCanvas1_Resize; //var displayer = new FormNormalLineDisplay(this.demolifebarRenderer); //displayer.Show(); var displayer = new FormNormalLineDisplay(this.renderer); displayer.Show(); var cameraController = new FormCameraController(this.camera); cameraController.Show(); Application.Idle += Application_Idle; }
public void DrawString(string s, StringRenderer font, Color color, float x, float y) { _owner._renderer.SetModulateColor(color); font.RenderString(_owner._renderer, x, y, s); _owner._renderer.SetModulateColorWhite(); }
public void Write(ArmInstructionOperand op, MachineInstructionWriter writer, MachineInstructionWriterOptions options) { switch (op.Type) { case ArmInstructionOperandType.Immediate: if (instruction.Id == Opcode.B || instruction.Id == Opcode.BL || instruction.Id == Opcode.BLX) { writer.Write("$"); writer.WriteAddress( string.Format("{0:X8}", op.ImmediateValue.Value), Address.Ptr32((uint)op.ImmediateValue.Value)); break; } writer.Write("#"); WriteImmediateValue(op.ImmediateValue.Value, writer); break; case ArmInstructionOperandType.CImmediate: writer.Write("c{0}", op.ImmediateValue); break; case ArmInstructionOperandType.PImmediate: writer.Write("p{0}", op.ImmediateValue); break; case ArmInstructionOperandType.Register: if (op.IsSubtracted) { writer.Write('-'); } writer.Write(A32Registers.RegisterByCapstoneID[op.RegisterValue.Value].Name); WriteShift(op, writer); break; case ArmInstructionOperandType.SysRegister: writer.Write(A32Registers.SysRegisterByCapstoneID[op.SysRegisterValue.Value].Name); break; case ArmInstructionOperandType.Memory: if (op.MemoryValue.BaseRegister == ArmRegister.PC) { var uAddr = (uint)((int)this.Address.ToUInt32() + op.MemoryValue.Displacement) + 8u; var addr = Address.Ptr32(uAddr); if (op.MemoryValue.IndexRegister == ArmRegister.Invalid && (options & MachineInstructionWriterOptions.ResolvePcRelativeAddress) != 0) { writer.Write('['); writer.WriteAddress(addr.ToString(), addr); writer.Write(']'); var sr = new StringRenderer(); WriteMemoryOperand(op, sr); writer.AddAnnotation(sr.ToString()); } else { WriteMemoryOperand(op, writer); writer.AddAnnotation(addr.ToString()); } return; } WriteMemoryOperand(op, writer); break; case ArmInstructionOperandType.SetEnd: writer.Write(op.SetEndValue.ToString().ToLowerInvariant()); break; case ArmInstructionOperandType.FloatingPoint: var f = op.FloatingPointValue.Value.ToString("g", CultureInfo.InvariantCulture); if (f.IndexOfAny(nosuffixRequired) < 0) { f += ".0"; } writer.Write("#{0}", f); break; default: throw new NotImplementedException(string.Format( "Can't disassemble {0} {1}. Unknown operand type: {2}", instruction.Mnemonic, instruction.Operand, op.Type)); } }
public FontWrapper(StringRenderer font) { Font = font; }
public SizeF MeasureString(string s, StringRenderer font) => font.Measure(s);