[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: A bug in tetris
From: |
Leo |
Subject: |
Re: A bug in tetris |
Date: |
Thu, 23 Aug 2007 13:38:45 +0100 |
User-agent: |
Gnus/5.110007 Emacs/23.0.0 (20070727) Fedora 7 (gnu/linux) |
On 2007-08-23 13:17 +0100, Kenichi Handa wrote:
> In article <address@hidden>, Kenichi Handa <address@hidden> writes:
>
>> I don't have a strong objection to it. Anyway, I found that
>> the current problem is in the different place. gamegrid.el
>> has this function.
>
>> (defun gamegrid-setup-default-font ()
>> (setq gamegrid-face
>> (copy-face 'default
>> (intern (concat "gamegrid-face-" (buffer-name)))))
>> (when (eq gamegrid-display-mode 'glyph)
>> (let ((max-height nil))
>> (loop for c from 0 to 255 do
>> (let ((glyph (aref gamegrid-display-table c)))
>> (when (and (listp glyph) (eq (car glyph) 'image))
>> (let ((height (cdr (image-size glyph))))
>> (if (or (null max-height)
>> (< max-height height))
>> (setq max-height height))))))
>> (when (and max-height (< max-height 1))
>> (set-face-attribute gamegrid-face nil :height max-height)))))
>
>> It tries to make a face height shorter than the grid-glyph
>> height. I confirmed that when I change the last line to:
>
>> (set-face-attribute gamegrid-face nil :height (- max-height 0.1))))))
>
>> the resulting face is good and doesn't produce 1-dot
>> horizontal gap in the play field. I'm now investigating
>> why the original code isn't good enough.
>
> The source of the problem is the rounding off done while
> converting a point size to pixel size. In my environment,
> resolution of the screen is 96dpi, grid-glyph height is
> 16dots, canonical char height is 20dots, the default font
> height is 12.1pt, thus the requested height of the font is
> 9.6pt (== 12.1 * (16 / 20)). The corresponding pixel size
> is 12.75 (== 96 * (9.6 / 72.27)). So, it's rounded off to 13,
> but what we want here is a font of 12 pixel size.
>
> So, I've just installed the attached change. It may be
> possible to add a special face attribute to tell not to
> choose a font that is larger than the requested size, but
> that require many C code changes. In addition, I think such
> a case (need a font equal to or smaller than a requested
> size) is rare.
[...]
Thanks. The patch works great.
--
Leo <sdl.web AT gmail.com> (GPG Key: 9283AA3F)
Gnus is one component of the Emacs operating system.
- Re: A bug in tetris, (continued)
- Re: A bug in tetris, Kim F. Storm, 2007/08/19
- Re: A bug in tetris, Kenichi Handa, 2007/08/19
- Re: A bug in tetris, Kim F. Storm, 2007/08/20
- Re: A bug in tetris, Richard Stallman, 2007/08/20
- Re: A bug in tetris, Kim F. Storm, 2007/08/21
- Re: A bug in tetris, Kenichi Handa, 2007/08/21
- Re: A bug in tetris, Kenichi Handa, 2007/08/23
- Re: A bug in tetris,
Leo <=
- Re: A bug in tetris, Richard Stallman, 2007/08/21
- Re: A bug in tetris, Richard Stallman, 2007/08/20
- Re: A bug in tetris, Leo, 2007/08/20
- Re: A bug in tetris, Richard Stallman, 2007/08/19
Re: A bug in tetris, Leo, 2007/08/19
Re: A bug in tetris, Richard Stallman, 2007/08/21