You can upload to a new directory in project/ if you like so we don't
disturb the release.

Matt.

On Feb 20, 7:12 am, Sebastien Lelong <[email protected]>
wrote:
> Hi Matt, guys,
>
> OK, I'm starting to see some improvements regarding generic font usage. I
> hesitate to create a new branch in SVN on which I could commit my changes,
> dedicated to this glcd refactoring, because I don't want to bug buildbot
> since we should soon release... We could merge our chancges after the
> release.
>
> BTW, we really, really lack pointers and references. There's much overhead
> because of this, not to mention barely readable code due to some "tricks"...
>
> Cheers,
> Seb
>
> 2011/2/20 Sebastien Lelong <[email protected]>
>
>
>
> > Hi Matt,
>
> > I think, as a first step, that I'll try to normalizz the way fonts are
> > handled. After I'll take care of pixel based functions.
>
> > Cheers,
> > Seb
>
> > 2011/2/20 mattschinkel <[email protected]>
>
> > Thanks Seb, I'll take a look at these comments of yours and try them
> >> out :)
>
> >> Feel free to edit the file as you please! There doesn't have to be
> >> only one of us fixing this. Maybe you have a somewhat edited file you
> >> can upload?
>
> >> I do agree with all your comments.
>
> >> Matt
>
> >> On Feb 19, 5:32 am, Sebastien Lelong <[email protected]>
> >> wrote:
> >> > Hi Matt,
>
> >> > So I tried to understand what's behind glcd_common & co, here's some
> >> > feedback:
>
> >> > First, there are unused things, like GLCD_COLOR_SIZE for instance. I'd
> >> > suggest to remove all unnecessary, unused code, to make it clearer to
> >> read.
> >> > There are lots of portions of code commented out, better delete them too
> >> > (SVN is here to help if needed).
>
> >> > When specifying size, for instance height and width, you then use this
> >> kind
> >> > of logic:
>
> >> > -- set width of pixel x,y variables
> >> > if !defined(GLCD_X_PIXELS) then
> >> >    const GLCD_X_SIZE = 1
> >> > else
> >> >    if GLCD_X_PIXELS < 256 then
> >> >       const GLCD_X_SIZE = 1
> >> >    else
> >> >       const GLCD_X_SIZE = 2
> >> >    end if
> >> > end if
>
> >> > GLCD_X_SIZE is then used to define the number of bytes needed to store
> >> this
> >> > information ("byte*..."). Why not GLCD_X_SIZE = (GLCD_X_PIXELS / 256) +
> >> 1 ?
> >> > at least it would scale when screen is bigger, and I found the logic
> >> easier
> >> > to understand (that's a personal taste though). We'd need to check about
> >> > integer part when using division like this.
>
> >> > I think I can now try to migrate nokia_3310 on current API, at least
> >> slowly
> >> > moving to it. But having glcd_common, glcd_font cleaned would help me
> >> > understand the big picture.
>
> >> > See other comments inlined.
>
> >> > HTH
> >> > Cheers,
> >> > Seb
>
> >> > 2011/2/13 mattschinkel <[email protected]>
>
> >> > > I wrote some notes by just a quick look at my libs. may not be
> >> > > complete or accurate.
>
> >> > > LCD DEVICE LIB REQUIREMENTS (must be contained in lib):
>
> >> > > -- constants required on all glcd's
> >> > > const GLCD_X_PIXELS = 240
> >> > > const GLCD_Y_PIXELS = 320
>
> >> > Also, about GLCD_X_PIXELS: why not just "GLCD_PIXEL_WIDTH" ? Well, not
> >> an
> >> > issue, we'll see later about names...
>
> >> > > const GLCD_COLOR_BITS = 16 -- 16bit color, 65535 colors
>
> >> > > -- required for drawing shapes.
> >> > > procedure lcd_write_pixel(byte in x,word in y,word in color) is
>
> >> > > -- only required if using fonts.
>
> >> > currently, you can't use chars *or* pixels, both are required
> >> > (compilation).
>
> >> > > -- See glcd_font.jal for an explanation of how fonts work
> >> > > -- and how they should be printed to the screen.
> >> > > -- by lcd'put(byte in char) in glcd_common
> >> > > procedure lcd_write_char(byte in font[], byte in x,word in y,byte in
> >> > > value) is
>
> >> > > GLCD FONT LIB INCLUDE BLOCK (for your sample)
>
> >> > > -- setup fonts
> >> > > const byte FONT_MORE_THEN_ONE = TRUE -- use more then one font
>
> >> > I think it's "_THAN_" :)
>
> >> > > const byte FONT_BIT_DIRECTION = FONT_TOP_RIGHT_HORIZONTAL -- see
> >> > > constants_jallib.jal
> >> > > const byte FONT_AUTO_WRAP = TRUE -- auto wrap text at end of screen
> >> > > --
> >> > > include glcd_font -- include the font library
> >> > > --
> >> > > -- choose some fonts
> >> > > alias FONT_1        is FONT_8X12_TOP_RIGHT_HORIZONTAL_NO_NAME
> >> > > alias FONT_1_WIDTH  is FONT_8X12_WIDTH
> >> > > alias FONT_1_HEIGHT is FONT_8X12_HEIGHT
> >> > > --
> >> > > -- set your current font
> >> > > FONT_NUMBER = 1  -- select your font number
> >> > > FONT_WIDTH  = FONT_1_WIDTH  -- must match current font width
> >> > > FONT_HEIGHT = FONT_1_HEIGHT -- must match current font height
>
> >> > OK, I can see what you mean, but usage is quite clumsy IMHO, specifying
> >> how
> >> > font_1 is created, then specifying all parameters for current font, from
> >> > font_1.
>
> >> > > GLCD_COMMON INCLUDE BLOCK (for your sample)
>
> >> > > var word LCD_BACK_COLOR = 0xFFFF -- white
> >> > > var word LCD_PEN_COLOR  = 0      -- black
>
> >> > How colors are coded (!= RGB) ? Is it GLCD specific ? If so, maybe each
> >> GLCD
> >> > lib should provide common aliases (GLCD_BLACK, _WHITE, _BLUE,...) and
> >> maybe
> >> > a glcd_rgb_color(r,g,b) returning appropriate color encoding.
>
> >> > include glcd_stm032qvt-003
>
> >> > > glcd_init()
> >> > > include glcd_common
>
> >> > > HOW TO PRINT A FONT AND SHAPE IN YOUR SAMPLE
>
> >> > > -- set back color
> >> > > LCD_BACK_COLOR = 0xffe0 -- yellow
> >> > > LCD_PEN_COLOR  = 0xf800 -- red pen
> >> > > --
> >> > > -- prints a string with current font
> >> > > -- see "-- set your current font" near your glcd_font include
> >> > > glcd_char_x_pos = 80             -- set a x position
> >> > > glcd_char_y_pos = 320 - 12       -- set a y position
> >> > > const byte string_y[] = "Y:   "  -- define a string
> >> > > print_string(lcd,string_y)       -- print a string
>
> >> > > -- draw a new circle
> >> > > LCD_PEN_COLOR = 0xf800 -- RED PEN
> >> > > lcd_circle(touch_x,touch_y,20)
>
> >> > > --
> >> > > You received this message because you are subscribed to the Google
> >> Groups
> >> > > "jallib" group.
> >> > > To post to this group, send email to [email protected].
> >> > > To unsubscribe from this group, send email to
> >> > > [email protected].
> >> > > For more options, visit this group at
> >> > >http://groups.google.com/group/jallib?hl=en.
>
> >> > --
> >> > Sébastien Lelonghttp://www.sirloon.nethttp://sirbot.org
>
> >> --
> >> You received this message because you are subscribed to the Google Groups
> >> "jallib" group.
> >> To post to this group, send email to [email protected].
> >> To unsubscribe from this group, send email to
> >> [email protected].
> >> For more options, visit this group at
> >>http://groups.google.com/group/jallib?hl=en.
>
> > --
> > Sébastien Lelong
> >http://www.sirloon.net
> >http://sirbot.org
>
> --
> Sébastien Lelonghttp://www.sirloon.nethttp://sirbot.org

-- 
You received this message because you are subscribed to the Google Groups 
"jallib" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/jallib?hl=en.

Reply via email to