Follow, Greg relpy. I have forgot to CC to the ML.
Sorry, Cristian.

Starting from pcfdemo.c, I have write builtinfont.c that use GrText
function that also call GdText function: I'm not be able to see the
right symbols

You're switching from win32 to nano-X API, so you're
introducing new code paths to debug.  You should write
the demo in win32.


but I have some new questions:
1) UTF8 use 1 2 and sometimes 4 bytes for one symbol: I use a char array
  for store the text file. Is this correct? (see attach for source code)

The "tmp" variable should be short not int since you're specifying
UC16, not UC32.  Taking an address of an int doesn't guarantee
working especially on big-endian archs.



2) with fontforge I have open the .bdf and I have see that first
cyrillic symbol is the 1024 (unicode). I have try to show this only one
but I get an error (see attach char_utf8.txt). Why?

Pretty strange.  You might try turning off background painting
with GrSetGCUseBackground(FALSE) before the GrText
call, we need to debug why a drawhorzline call is being made
for text, I think its for text field area clearing...  a gdb stack
trace would be a good idea, there is something wrong here.
Could have something to do with the converted builtin bdf
file.  Make sure you're running CVS code by the way, since
there were some bugs fixed in the convbdf program some
months ago.

Regards,

Greg




Tnx.
Regards, Cristian



----------------------------------------------------------------------------
----


/*
 * pcfdemo - demonstrate PCF font loading for Nano-X
 */
#include <stdio.h>
#include <stdlib.h>
#define MWINCLUDECOLORS
#include "nano-X.h"

GR_FONT_ID font = 0;
GR_WINDOW_ID main_wid;
GR_FONT_INFO finfo;

static void
draw_string(void)
{
int count = 0;
int x = 10;
int y = 10;
unsigned char ch;
int tmp = 1024;
GR_GC_ID gc = GrNewGC();

GrSetGCFont(gc, font);

GrSetGCForeground(gc, GR_RGB(255, 255, 255));
GrSetGCBackground(gc, GR_RGB(0, 0, 0));

printf("First char = %d, last char = %d\n", finfo.firstchar,
       finfo.lastchar);
printf("Max width = %d, max height = %d\n", finfo.maxwidth,
       finfo.height);

GrText(main_wid, gc, x, y, &tmp, 1, GR_TFTOP | GR_TFUC16); //this cause an
assert error

/*
for (ch = 0; ch < 255; ch++) {
if (ch < finfo.firstchar || ch > finfo.lastchar)
GrFillRect(main_wid, gc, x, y, finfo.maxwidth, finfo.height);
else
GrText(main_wid, gc, x, y, &ch, 1, GR_TFTOP | GR_TFASCII);

if (++count >= 16) {
x = 0;
y += finfo.height;
count = 0;
} else
x += finfo.maxwidth + 2;
}
*/
GrDestroyGC(gc);
}

static void drawFile(const char * fname){
char buf[20]; //or int... unsigned?
int count = 0;
int x = 0;
int y = 10;
unsigned char ch;
FILE * pfile;

GR_GC_ID gc = GrNewGC();

GrSetGCFont(gc, font);

GrSetGCForeground(gc, GR_RGB(255, 255, 255));
GrSetGCBackground(gc, GR_RGB(0, 0, 0));

pfile = fopen(fname, "r");
if( pfile > 0 ){
fread(buf, 1, 20, pfile);
GrText(main_wid, gc, x, y, buf, 20, GR_TFTOP | GR_TFUTF8);
}
GrDestroyGC(gc);
}

int
main(int argc, char **argv)
{
int width, height;

if (GrOpen() == -1)
return (-1);

font = GrCreateFont("DejaVuLGCSans", 19, 0); //This is a builtin fonts
generated by convbdf
if (!font)
printf("Unable to load font\n");

GrGetFontInfo(font, &finfo);

width = ((finfo.maxwidth + 2) * 16);
height =
(((finfo.lastchar - finfo.firstchar) / 16) +
5) * finfo.height;

main_wid = GrNewWindowEx(GR_WM_PROPS_APPWINDOW, "builtinfont",
GR_ROOT_WINDOW_ID, 0, 0, width, height, BLACK);
GrSelectEvents(main_wid, GR_EVENT_MASK_EXPOSURE|GR_EVENT_MASK_CLOSE_REQ);
GrMapWindow(main_wid);

while (1) {
GR_EVENT event;
GrGetNextEvent(&event);

if (event.type == GR_EVENT_TYPE_EXPOSURE)
draw_string();
// drawFile("utf8.txt");
// drawFile("unicode.txt");

        if(event.type == GR_EVENT_TYPE_CLOSE_REQ) {
GrClose();
exit(0);
      }
}
}



----------------------------------------------------------------------------
----


[EMAIL PROTECTED]:~/src/x86/microwin_cvs/src/bin$ ./builtinfont
XDefaultVisual:
  Visual  class: TrueColor (4)
             id: 35
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Screen RootDepth: 24
Screen RootVisual
  Visual  class: TrueColor (4)
             id: 35
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Depth: 24
Visual: 0
  Visual  class: TrueColor (4)
             id: 35
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 1
  Visual  class: TrueColor (4)
             id: 36
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 2
  Visual  class: TrueColor (4)
             id: 37
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 3
  Visual  class: TrueColor (4)
             id: 38
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 4
  Visual  class: TrueColor (4)
             id: 39
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 5
  Visual  class: TrueColor (4)
             id: 40
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 6
  Visual  class: TrueColor (4)
             id: 41
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 7
  Visual  class: TrueColor (4)
             id: 42
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 8
  Visual  class: DirectColor (5)
             id: 43
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 9
  Visual  class: DirectColor (5)
             id: 44
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 10
  Visual  class: DirectColor (5)
             id: 45
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 11
  Visual  class: DirectColor (5)
             id: 46
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 12
  Visual  class: DirectColor (5)
             id: 47
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 13
  Visual  class: DirectColor (5)
             id: 48
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 14
  Visual  class: DirectColor (5)
             id: 49
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Visual: 15
  Visual  class: DirectColor (5)
             id: 50
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Depth: 1
Depth: 4
Depth: 8
Depth: 15
Depth: 16
Depth: 32
Visual: 0
  Visual  class: TrueColor (4)
             id: 96
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
Selected Visual:
  Visual  class: TrueColor (4)
             id: 35
   bits_per_rgb: 8
    map_entries: 256
       red_mask: 0x00ff0000
     green_mask: 0x0000ff00
      blue_mask: 0x000000ff
createfont: (height == 0) found builtin font System (0)
createfont: (height == 0) found builtin font System (0)
fnt_createfont: DejaVuLGCSans,19 not found
pcf_createfont: DejaVuLGCSans,19 not found
createfont: (height != 0) using builtin font DejaVuLGCSans (4)
First char = 32, last char = 65533
Max width = 74, max height = 19
builtinfont: /home/tfb800/src/x86/microwin_cvs/src/drivers/fblin32.c:68:
linear32_drawhorzline: Assertion `x2 >= x1' failed.
Aborted (core dumped)





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to