Re: gnome-mag and gnopernicus magnifier services TODOs



Hi Carlos:

Perhaps we should move further technical discussion to the gnome-accessibility-devel list.

One comment I'd like to make concerns the relationship of X (the X server and apis) to the magnification issues we face. Because X is quite a mature standard and a central part of our desktop software stack, there are limitations to what APIs and services we can use to implement magnification. The short answer is that we must use X apis if we hope for our solution to be adopted and successful. Those X apis include "extensions" to the X specification, and there is a procedure for proposing and developing such extensions. Things like better cursor control and "dirty region" notification are examples of capabilities that have been added to the X server via the DAMAGE and XFIXES extensions. These extensions were developed in consultation with desktop accessibility developers like myself, partly in response to the needs of magnification users. COMPOSITE is another such extension.

However there are significant limitations to what extensions can do, for instance because X is a client-server model which insulates the client from details of the service implementation, we can't readily do direct manipulation of video memory or replace video drivers. That's a good thing really, because we don't want to have to rewrite drivers for the many different hardware configurations that exist and are under development.

GL is something of an exception, in that it is another standard API which exists alongside the X API for most modern graphics hardware. It has some attractive features - it does have some scaling API built in, but perhaps even more significantly, because it is used for 3D gaming applications, its implementation in graphics firmware has often been more optimized for performance than the 2D APIs used by X. So I think that a GL-based magnification service may be a reasonable thing to explore.

I suggest that you read a good text on the basics of the X Window System in order to understand the basic architecture (perhaps chapters 1 and 2 of the Xlib Programming Manual from O'Reilly and Associates). Then you might look at the 'standard' method of getting pixels from an X display (XGetImage), writing them to another display or window (XPutImage), and moving them (XCopyArea). The last one, XCopyArea, is the only API available in X for scrolling, so this is a bit of a bottleneck. The COMPOSITE extension allows us to get around this issue by virtualizing the basic pixmap drawing operations, and delegating the actual rendering of the onscreen contents to a "compositing manager". That compositing manager can transform the pixmaps as it sees fit, for instance alpha-blending them, recoloring them, or rescaling them, and thus it avoids the XCopyArea bottleneck.

regards

Bill

Carlos Eduardo Rodrigues Diogenes wrote:

Hi Gunnar,

I leave the gnome-accessibility-list in the e-mail because I think that the informations that you could provide can be interesting for the list.


First of all, I want to say that we have a group in a university studing accessibility and we want to develop an screen magnifier. We verify that the GNOME Accessibility Project is a good project to provide the support that is needed by assistive technologies, so here we are.

Second, I want to sorry if some question are very stupid of comprehend a lot concepts that can't be easely synthetized. Our experience if free software ins't very large. We hope too that we aren't take much of your time.

Do you have any screen-shot of your magnifier?

You are developing it to be an X solution or it will be tweaked (have the look and feel) of a specific window manager? Your objective is to make it usable for visually impaired people now? Or things like UI must be developed later?

I want to learn more about the internal of X, I think that this way we can develop better magnifiers. If X could done something for us I think that we can gain in performance. This things could be render text with a bigger size in an buffer that we could access and then calculate where the text goes in the desired image, so we have better quality in texts. Do you know any good reference about this or the best way to know if something is good or not, is possibly or not in X is hacking?

What do you think about Xgl and what this can offer for magnification services. Do you saw this: http://vizzzion.org/stuff/xgl_wanking.avi . What do you think about this magnification? Do you thing that this is a good path to follow or the way that you are developing is better (is more realistic now)? Do you know if it can be utilizided easely in a X server based on OpenGL?

Thanks,
Carlos.

Olaf Jan Schmidt wrote:

[Carlos Eduardo Rodrigues Diogenes]
How I yet said, I saw the 'diopter' application developed by Keith
Packard that do a COMPOSITE-based magnifier in the xapps directory of
the free desktop cvs tree. Is this software that you are saying about?
Do you have any reference where to find informations about this and
contact the developers?


No, Bill is speaking about a new screen magnifier my brother is writing as his diploma thesis. The new magnifier will contain a new X.org composition manager and support more features for partially sighted people than all existing screen magnifiers (including Lunar and ZoomText). The current plan does include braille support or full screen reading support (which are not needed by partially sighted people).

Gunnar's application will be available open-source, but I think he wishes to finish it first, which might take some more months. I am cc'ing him, so you can contact him for questions.

Olaf
_______________________________________________
gnome-accessibility-list mailing list
gnome-accessibility-list gnome org
http://mail.gnome.org/mailman/listinfo/gnome-accessibility-list


_______________________________________________
gnome-accessibility-list mailing list
gnome-accessibility-list gnome org
http://mail.gnome.org/mailman/listinfo/gnome-accessibility-list





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