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);
            }
        }
Exemplo n.º 2
0
 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;
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
    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);
        }
    }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
            private static string Render(IRenderable renderable)
            {
                var builder  = new StringBuilder();
                var renderer = new StringRenderer(builder);

                renderable.Render(renderer);
                return(builder.ToString().NormalizeLineEndings().Trim());
            }
Exemplo n.º 9
0
        /// <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;
        }
Exemplo n.º 10
0
        public void ShouldReturnAStringWhenTheTemplateIsRendered()
        {
            var renderer = new StringRenderer(Mock.Of <ITemplate>(t => t.Elements == new List <JElement>()));

            var text = renderer.Render();

            Assert.IsNotNull(text);
        }
Exemplo n.º 11
0
        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());
        }
Exemplo n.º 12
0
    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;
        }
    }
Exemplo n.º 13
0
        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);
        }
Exemplo n.º 14
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;

            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();
        }
Exemplo n.º 15
0
 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);
 }
Exemplo n.º 16
0
        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);
     }
 }
Exemplo n.º 18
0
        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;
            }
Exemplo n.º 21
0
        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");
        }
Exemplo n.º 22
0
        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);
            }
        }
Exemplo n.º 23
0
    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;
    }
Exemplo n.º 24
0
    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);
    }
Exemplo n.º 25
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();
        }
Exemplo n.º 26
0
        //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;
        }
Exemplo n.º 27
0
 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();
 }
Exemplo n.º 28
0
        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));
            }
        }
Exemplo n.º 29
0
 public FontWrapper(StringRenderer font)
 {
     Font = font;
 }
Exemplo n.º 30
0
 public SizeF MeasureString(string s, StringRenderer font) => font.Measure(s);