Re: Pango CVS and gdkdrawable-fb2.c hate each other.



On Sun, 25 Nov 2001, Mark J Roberts wrote:

> gdkdrawable-fb2.c: In function `_gdk_fb_draw_glyphs':
> gdkdrawable-fb2.c:1188: `PangoFT2Subfont' undeclared (first use in this function)
> gdkdrawable-fb2.c:1188: (Each undeclared identifier is reported only once
> gdkdrawable-fb2.c:1188: for each function it appears in.)
> gdkdrawable-fb2.c:1188: parse error before "subfont_index"
> gdkdrawable-fb2.c:1214: warning: implicit declaration of function `PANGO_FT2_GLYPH_INDEX'
> gdkdrawable-fb2.c:1215: `subfont_index' undeclared (first use in this function)
> gdkdrawable-fb2.c:1215: warning: implicit declaration of function `PANGO_FT2_GLYPH_SUBFONT'
> gdkdrawable-fb2.c:1216: warning: implicit declaration of function `pango_ft2_get_face'
> gdkdrawable-fb2.c:1216: warning: assignment makes pointer from integer without a cast

That should have been fixed by this checking from yosh:

Sat Nov 24 13:39:51 2001  Manish Singh  <yosh gimp org>
	* gdk/linux-fb/gdkdrawable-fb2.c
	* gdk/linux-fb/gdkpango-fb.c: update to latest Pango API
	* gdk/linux-fb/gdkwindow-fb.c: implement gdk_window_show_unraised
	* gdk/linux-fb/gdkfont-fb.c (gdk_font_load): plug memleak on
	set_family
	
	* gdk/linux-fb/gdkfbswitch.c: minor cleanups


I haven't tested it recently though.
 
> pango-0.21 has them and pango cvs doesn't.
>
> So I install 0.21 (forcing ./configure to use it) and forge ahead...

Ugh. 
 
> gdkproperty-fb.c: In function `gdk_atom_name':
> gdkproperty-fb.c:75: pointers are not permitted as case values
> gdkproperty-fb.c:76: pointers are not permitted as case values
> gdkproperty-fb.c:77: pointers are not permitted as case values
> gdkproperty-fb.c:78: pointers are not permitted as case values
> gdkproperty-fb.c:79: pointers are not permitted as case values
> gdkproperty-fb.c:80: pointers are not permitted as case values
> gdkproperty-fb.c:81: pointers are not permitted as case values
> gdkproperty-fb.c:82: pointers are not permitted as case values
> gdkproperty-fb.c:83: pointers are not permitted as case values
> gdkproperty-fb.c:84: pointers are not permitted as case values
> gdkproperty-fb.c:85: pointers are not permitted as case values
> 
> Looks like a gcc incompatibility. I'm running gcc 3.0.x from cvs.
> 
> So I wrap all those constants in GPOINTER_TO_UINT() and forge ahead...

Ok. Sounds fine. We should apply this.

> /me waits and waits for gtk to compile...
> /me waits some more...
> /me 's still waiting...
> 
> /.libs/libgtk-linux-fb-1.3.so: undefined reference to `gdk_window_show_unraised'
> 
> Hmm. What's this one... gdk/x11/ has that function but gdk/linux-fb/
> doesn't. For now I'll just duplicate gdk_show_window() and leave out
> the gdk_fb_window_raise (window); thing....

This is fixed in cvs.
 
> Woohoo, it built. However:
> 
> gtk+# gtk-demo
> 
> gtk-demo (pid:2947): Gdk-WARNING **: Can't open /dev/tty7: No such file or directory
> 
> gtk-demo (pid:2947): Gtk-WARNING **: cannot open display: /dev/fb0
> gtk+#
> 
> Looks like it doesn't like devfs. If GDK_DISPLAY isn't set you
> should try FRAMEBUFFER and also try "/dev/fb/0". (I forget what
> other apps use FRAMEBUFFER, but it is an ad hoc standard by now..)
> 
> And "/dev/tty%d" should fall back to "/dev/vc/%d" similarly.
> 
> /me changes that one and rebuilds....
> 
> Ack, the mouse init fails for the same reason: "/dev/psaux" ->
> "/dev/misc/psaux". Rebuild...

Yeah. Can you file a bugzilla bug about these.
 
> And the widgets basically work, too, but moving things introduces
> nasty artifacts. In fact the highlighting colors are so strange, I'm
> tempted to suspect that pixels aren't being written in BGR24 format,
> but strangely the color selector widget and the animated widget look
> perfect. So I'm stumped. Oh well....

Truecolor BGR24? I wouldn't be suprised if there are bugs in supporting 
this. Please file a bugzilla bug.

> Uh-oh. When I make a new file I see a flood of "assertion device !=
> NULL" messages and a segfault at gimpdisplayshell-callbacks.c:104.
> There's obviously something more to this device==NULL bug. The
> "device" pointer in all these instances is assigned from
> gdk_devices_list(). Hmm, linux-fb/gdkinput.c:
> 
> GList *
> gdk_devices_list (void)
> {
>   return _gdk_input_devices;
> }
> 
> So why are there bogus entries in that? I can't even figure out
> where anything is added to that list besides _gdk_core_pointer,
> which seems guaranteed valid.

Something randomly overwrote memory probably.
 
> So I think this is where my journey ends for the moment. Oh, one
> more thing: gdk/linux-fb doesn't know how to deal with virtual
> framebuffer resolutions that are bigger than the visible res. And it
> doesn't reset the terminal attributes correctly even on normal
> exits. And changing themes doesn't resolve the weird
> artifacts/corruption problem.

bugzilla.

/ Alex





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]