HISE Logo Forum
    • Categories
    • Register
    • Login

    Text Kerning / Character Spacing?

    Scheduled Pinned Locked Moved General Questions
    12 Posts 2 Posters 597 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • E
      ericchesek @d.healey
      last edited by

      @d-healey Excellent! Now if I want to get the width of that text, getStringWidth doesn't work anymore. Is there an alternative for that?

      d.healeyD 1 Reply Last reply Reply Quote 0
      • d.healeyD
        d.healey @ericchesek
        last edited by

        @ericchesek g.getStringWidth()?

        Libre Wave - Freedom respecting instruments and effects
        My Patreon - HISE tutorials
        YouTube Channel - Public HISE tutorials

        E 1 Reply Last reply Reply Quote 0
        • E
          ericchesek @d.healey
          last edited by

          @d-healey Are you suggesting to keep using that, or asking for clarification? I am using g.getStringWidth("TEXT"); after setting the font using g.setFontWithSpacing(). The value of g.getStringWidth stays the same as if the spacing was set to 0.

          d.healeyD 1 Reply Last reply Reply Quote 0
          • d.healeyD
            d.healey @ericchesek
            last edited by

            @ericchesek I was asking for clarification because there is also Engine.getStringWidth() - don't know if that will work...

            Libre Wave - Freedom respecting instruments and effects
            My Patreon - HISE tutorials
            YouTube Channel - Public HISE tutorials

            1 Reply Last reply Reply Quote 0
            • d.healeyD
              d.healey
              last edited by d.healey

              Actually g.getStringWidth() works here

              HiseSnippet 862.3ocsV01aSCCD1taAQKuHPhe.Q8SYRSUsvXLIDhw5KPEcqkkwFeC4k3lXMG6nXmsUglD+j4e.bNN8M1z1nRjOTk6dty9wmetKcTlLfpTxLDt5QSRoH7ic7mHzwsiILApeGD9oN6STZZlq00dSRIJEMDgwq8QiCb00QEO+586Q3DQ.ctKD5XIKfNfkvzy8NZ2Oy37djP5QrjEhdqc6GHEskbYNvm0bZhRIAmQhnGPLgUwAgeP2PlVl4qIZpBhYOY3D+X4EBa7GyTrS4TiQKjOrPV2n1wLd3nomUEBgWez7S9Z1S9Kb1mExl4edE3YE.tyyXwZ.txsQoV+CTBu.kV2Rom63GjwR0yQL74QN8EvExXBTpWjJ1XQU7q3zVBQHzMRHmQ6kAFyxva6lM2zE9Yi2VqFTtUZ2yIYtiHBJuk66bmlYDU2VljJEfgWcKbcSN1Wann5QPARenLWyDTuw4h.MSJ7h1n1OpU0rlDX4zwLkYsFHCH78j4hPkWwVWMpwXPE7AN2ydiqZbJGttAL.RY1ci2YfWDyzTCXIbOfmmvzw9fFgIh7pO7xIQTQ8McasyltMa7Z6BElQt3H5kvQ3ScGLXn6ICObPGHHhAFNqJIm1HMCNHdQFd5qg2iNgEpiWNkMr688Z2a0n4pr7WswamVEckhCjZ5PgWQ0r1U0b+anwiuQLy8WljyoY2HroiK61RzSjmbJMaSPUvyoyBDjjKqyev8SmGXkSKDnTzWvzCSok18j7Pi907906JPk5Q3su1uCQSLMJk9f3RoYZlgN3NzygIM11lpNcnpyzxzhXKEw.k0EnOYZSkQHiXvV+PGqnFc47gQ82cxLie9kcuvbkgvN3swHTLkEEqMV0wl4YWquElXHCy4D8xiQLyKKAfZ9R8tl9Sghomr37z+gYKMu0YK2WJ9bmQLcP7MywJ2.Ggai+Gbrbh7Sb5NdLMPOmfq6z6aq5326X6sCxh1m.snfNv4f7DeXxS.E1cAnNTl66JFEo0tow1TA7ohvBieCOkfsL13RvVSAQIjfL42CrcZlY9OrvCvIQwm3pBeqErcagJ59VrNm.eB56AAKuTWKwWtpI9pUMwsV0De8pl31qZhuYUSbm6NQy+P3C4ZYhssAg1eT2hwUXbWAATfEpUze.k7gnlA
              

              Libre Wave - Freedom respecting instruments and effects
              My Patreon - HISE tutorials
              YouTube Channel - Public HISE tutorials

              E 1 Reply Last reply Reply Quote 1
              • E
                ericchesek @d.healey
                last edited by

                @d-healey Oops. You are right. Something else must be wrong in my code. Thanks!
                I'm off to debug. :)

                1 Reply Last reply Reply Quote 0
                • E
                  ericchesek
                  last edited by ericchesek

                  I see the source of my confusion.
                  Using g.setFontWithSpacing(font, size, spacing); results in a length of spacing at the end of the string.

                  For example, if I write
                  g.getStringWidth("TEXT");
                  I expect TEXT's width and spacing (shown with underscores) to be calculated as T_E_X_T.
                  Instead, it is calculated as T_E_X_T_.

                  So using
                  g.drawAlignedText("TEXT", [0, 0, this.getWidth(), this.getHeight()], "centred"); doesn't actually center the text due to that kerning offset.

                  1 Reply Last reply Reply Quote 1
                  • E
                    ericchesek
                    last edited by

                    Might anyone know how to calculate that extra bit of kerning so I can account for it?

                    d.healeyD 1 Reply Last reply Reply Quote 0
                    • d.healeyD
                      d.healey @ericchesek
                      last edited by

                      @ericchesek Perhaps calculate the width of 1 space separately and deduct it from the total width?

                      Libre Wave - Freedom respecting instruments and effects
                      My Patreon - HISE tutorials
                      YouTube Channel - Public HISE tutorials

                      E 1 Reply Last reply Reply Quote 1
                      • E
                        ericchesek @d.healey
                        last edited by

                        @d-healey Hmm this might work for monospace fonts, but I get different results based on getting the string width of a space or any character. I don't see why the kerning adds a space at the end of a string. I don't think this is common.

                        Maybe Christoph can provide some insight? @Christoph-Hart

                        1 Reply Last reply Reply Quote 0
                        • First post
                          Last post

                        45

                        Online

                        1.7k

                        Users

                        11.7k

                        Topics

                        101.8k

                        Posts