cmp_bmp: allow negative X, Y values for display command
PATCH 2/2 cmp_bmp: allow negative X, Y values for display command
The 'bmp display' command accepts optional X and Y values for the position of the image to be displayed. Change the code which parses the command line to accept negative values.
This feature is useful if you want to use a frame buffer for the console, and you want a banner displayed on the top of the screen that never scrolls off. This can be accomplished by declaring that the width and height of the video screen is smaller than it really is, and then drawing an image in the undeclared area.
For example, if you have 1280x1024 monitor, and you want to display a banner on the top of the screen that's 100 pixels tall, then video_hw_init() should say that display is really 1280x924, and then the banner should be drawn at position (0, -100).
--- common/cmd_bmp.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-)
common/cmd_bmp.c +2 -2
@@ -122,8 +122,8 @@ static int do_bmp_display(cmd_tbl_t * cmdtp, int flag, int argc, char * const arbreak ;case 4 : addr =simple_strtoul (argv[1 ],NULL ,16 ); - x =simple_strtoul (argv[2 ],NULL ,10 ); - y =simple_strtoul (argv[3 ],NULL ,10 ); + x =simple_strtol (argv[2 ],NULL ,10 ); + y =simple_strtol (argv[3 ],NULL ,10 );break ;default :return cmd_usage (cmdtp);
Signature · 1 line
1.7.2.1
PATCH 2/2 cmp_bmp: allow negative X, Y values for display command
Hi Timur,
Quoted 10 lines
The 'bmp display' command accepts optional X and Y values for the position of the image to be displayed. Change the code which parses the command line to accept negative values.
This feature is useful if you want to use a frame buffer for the console, and you want a banner displayed on the top of the screen that never scrolls off. This can be accomplished by declaring that the width and height of the video screen is smaller than it really is, and then drawing an image in the undeclared area.
Quoted 4 lines
For example, if you have 1280x1024 monitor, and you want to display a banner on the top of the screen that's 100 pixels tall, then
video_hw_init()should say that display is really 1280x924, and then the banner should be drawn at position (0, -100).
Ugh. I have to admit that I really dislike this patch. What you effectively do is to erase the "aboluteness" of coordinates. Instead of the current 1:1 correspondence between a pixel coordinate and its location on the physical display, you introduce virtual coordinates without any possibility to inquire about the virtual coordinate system in use.
Currently if we display an image at (0, 0) we can be sure that it appears at the edge of the display. With your system one cannot tell without knowing the complete context.
Can't you come up with a scheme which does not destroy this valuable property of our coordinates?
Cheers
Detlev
Signature · 8 lines
When you loosen yourself from all the obvious delusions - religion,
ideology, Communism - you're still left with the myth of your own
goodness. Which is the final delusion.
-- Philip Roth
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.dePATCH 2/2 cmp_bmp: allow negative X, Y values for display command
Quoted 2 lines · Detlev Zundel
Can't you come up with a scheme which does not destroy this valuable property of our coordinates?
I'm only doing two things:
1) Exposing a feature of the existing code. Notice that I only had to change two lines in the cmd_bmp code, not any of the core bitmap code, which already takes signed integers.
2) Trying to use the existing bitmap code to do the same thing that we do with the Freescale-specific bitmap code.
If you can tell me how I can display a logo on top of the screen, and have all of the boot text appear below the logo, I'll be happy to do that instead.
The logo will then scroll off the top of the screen, but that's okay.
Signature · 2 lines
Timur Tabi Linux kernel developer
PATCH 2/2 cmp_bmp: allow negative X, Y values for display command
Hi Timur,
Quoted 10 lines
Quoted 2 lines · Detlev Zundel
Can't you come up with a scheme which does not destroy this valuable property of our coordinates?
I'm only doing two things:
1) Exposing a feature of the existing code. Notice that I only had to change two lines in the
cmd_bmpcode, not any of the core bitmap code, which already takes signed integers.
Yes, I fully expected such an answer. Please show me the "existing feature" which started to leak in such virtual coordinates into the code. We should take a look at this and re-evaluate it.
Quoted 6 lines
2) Trying to use the existing bitmap code to do the same thing that we do with the Freescale-specific bitmap code.
If you can tell me how I can display a logo on top of the screen, and have all of the boot text appear below the logo, I'll be happy to do that instead.
The logo will then scroll off the top of the screen, but that's okay.
We can discuss this once I see the code that makes virtual coordinates neccessary.
Cheers
Detlev
Signature · 8 lines
Quality isn't something you lay on top of subjects and objects like
tinsel on a christmas tree. Real Quality must be the source of the
subjects and objects, the cone from which the tree must start.
-- Robert M. Pirsig
--
DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: dzu at denx.dePATCH 2/2 cmp_bmp: allow negative X, Y values for display command
Quoted 2 lines · Detlev Zundel
We can discuss this once I see the code that makes virtual coordinates
If you can help me figure out how to get the boot text to appear below the logo, I won't need to use virtual coordinates.
Quoted 1 line
PATCH 2/2 cmp_bmp: allow negative X, Y values for display command
Dear Timur,
Quoted 6 lines · Detlev Zundel
Quoted 3 lines
We can discuss this once I see the code that makes virtual coordinates
If you can help me figure out how to get the boot text to appear below the logo, I won't need to use virtual coordinates.
1. would it be possible to output several line-feeds before u-boot starts its output?
2. would it be possible to just manipulate the initial Y for text output?
3. most elegant, however, would be to add a scroll area feature...
just my 0.001 ? ;)
Reinhard
PATCH 2/2 cmp_bmp: allow negative X, Y values for display command
Quoted 1 line · Reinhard Meyer
2. would it be possible to just manipulate the initial Y for text output?
I'll try this approach. It should be simple enough.
Quoted 1 line
PATCH 2/2 cmp_bmp: allow negative X, Y values for display command
In reply to Timur TabiI'm rescinding this patch. I have some new code that doesn't need this hack.
Quoted 16 lines · Timur Tabi
The 'bmp display' command accepts optional X and Y values for the position of the image to be displayed. ?Change the code which parses the command line to accept negative values.
This feature is useful if you want to use a frame buffer for the console, and you want a banner displayed on the top of the screen that never scrolls off. This can be accomplished by declaring that the width and height of the video screen is smaller than it really is, and then drawing an image in the undeclared area.
For example, if you have 1280x1024 monitor, and you want to display a banner on the top of the screen that's 100 pixels tall, then
video_hw_init()should say that display is really 1280x924, and then the banner should be drawn at position (0, -100).Signed-off-by Timur Tabi <[email protected]>
Signature · 2 lines
Timur Tabi Linux kernel developer at Freescale