EDIT: There is a slight esthetic dismissal in the current logic when in 4:3 mode: canon's own OSD elements are not drawn on the black bars when zebra is visible; this is particularly noticable if you comment out the line#define ZEBRA_CANONOSD_BORDER_RESTORE 1near the beginning of the file core\gui_osd.c (this should cause all of canon's own elements to show with zebra, not just borders as the define does). It is due to the fact that I added a condition that nothing is drawn on the black bars when any zebra is drawn . Will correct it later.
PEV69! EXCELLENT!!! Clean and structured coding! and most important: WORKING! :-D...BTW: Regarding the EdgeOverlay....the fix for our SX1 is also within the EdgeOverlay Code....is it of use, if I'm tracking down the issue there and describe (in my simplified language) of what I think needs to be done?
EDIT2: Oh, I don't know if we are talking about the same thing now, but if you are in 4:3 and have zebra on, when you press half-shoot, e.g. the camera's own ISO display on the right black bar disappears whenever there is any zebra stripes drawn on screen.
Also I am planning to change the GUI-drawing system, because at the moment it is a bit mixed up, and also things like the zebra are unnecessarily consuming more RAM (albeit sometimes only temporarily, but this can still lead to RAM fragmentation, which is not good and can potentially lead to trouble in the firmware) particularly if trying to "restore" the original OSD. My new system would draw all elements in the same frame-buffer, and when combined with the user-defined drawing order, should be consistent, more user- and firmware-friendly, and potentially faster and more efficient.I know, this all sounds so pompous, but I'll see what I can do
Quote from: pev69 on 20 / April / 2009, 15:49:48Also I am planning to change the GUI-drawing system, because at the moment it is a bit mixed up ...I know, this all sounds so pompous, but I'll see what I can do Pompous or not, if you can do it, that would be GREAT. The gui system is a mess. FWIW, I found the variable that stores the current canon bitmap buffer for the SD990. This is listed in lib.c along with hints to finding it.
Also I am planning to change the GUI-drawing system, because at the moment it is a bit mixed up ...I know, this all sounds so pompous, but I'll see what I can do
I'll try to look at the zebra stuff as soon as I can if none of the other devs get to it, but I'm going to be quite busy for the next few days
Okay, here's the zebra modification for trunk 744. Unzip under the trunk744 dir and let it replace the files.The changes in code are in core\gui_osd.c in functions gui_osd_zebra_init and gui_osd_draw_zebra. Plus definitions added for CAM_HAS_VARIABLE_ASPECT (include\camera.h) and PROPCASE_ASPECT_RATIO (include\propset2.h).EDIT: There is a slight esthetic dismissal in the current logic when in 4:3 mode: canon's own OSD elements are not drawn on the black bars when zebra is visible; this is particularly noticable if you comment out the line#define ZEBRA_CANONOSD_BORDER_RESTORE 1near the beginning of the file core\gui_osd.c (this should cause all of canon's own elements to show with zebra, not just borders as the define does). It is due to the fact that I added a condition that nothing is drawn on the black bars when any zebra is drawn . Will correct it later.