Refined again the boot splash artwork. Everything is now centered as a whole.

The dividing line is back although with a little more spacing. Also the icon
spacing is a little increased and I added a subtle outline as well as a little
brighter background for the active icon look. The placement logic is now not
independant of each other anymore, otherwise I couldn't center both images
as a unit. But only the vertical placement is affected.
Comments as always on the commit mailing list... :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24796 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus 2008-04-04 19:13:00 +00:00
parent 64b7ef1d0f
commit 75ab36bd50
7 changed files with 12997 additions and 9515 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 17 KiB

File diff suppressed because it is too large Load Diff

View File

@ -872,34 +872,40 @@ fallback:
// TODO: support compressed RGB image data (simple RLE?)
// render splash logo
uint16 iconsHalfHeight = kSplashIconsHeight / 2;
int width = min_c(kSplashLogoWidth, gKernelArgs.frame_buffer.width);
int height = min_c(kSplashLogoHeight, gKernelArgs.frame_buffer.height);
int height = min_c(kSplashLogoHeight + iconsHalfHeight,
gKernelArgs.frame_buffer.height);
int placementX = max_c(0, min_c(100, kSplashLogoPlacementX));
int placementY = max_c(0, min_c(100, kSplashLogoPlacementY));
int x = (gKernelArgs.frame_buffer.width - width) * placementX / 100;
int y = (gKernelArgs.frame_buffer.height - height) * placementY / 100;
height = min_c(kSplashLogoHeight, gKernelArgs.frame_buffer.height);
blit_image(kSplashLogoImage, NULL, width, height, kSplashLogoWidth,
NULL, x, y);
// render initial (grayed out) icons
// the grayed out version is the lower half of the icons image
uint16 iconsHalfHeight = kSplashIconsHeight / 2;
width = min_c(kSplashIconsWidth, gKernelArgs.frame_buffer.width);
height = min_c(iconsHalfHeight, gKernelArgs.frame_buffer.height);
height = min_c(kSplashLogoHeight + iconsHalfHeight,
gKernelArgs.frame_buffer.height);
placementX = max_c(0, min_c(100, kSplashIconsPlacementX));
placementY = max_c(0, min_c(100, kSplashIconsPlacementY));
x = (gKernelArgs.frame_buffer.width - width) * placementX / 100;
y = (gKernelArgs.frame_buffer.height - height) * placementY / 100;
y = kSplashLogoHeight + (gKernelArgs.frame_buffer.height - height)
* placementY / 100;
// pointer into the lower half of the icons image data
const uint8* lowerHalfIconImage = kSplashIconsImage
+ (kSplashIconsWidth * iconsHalfHeight) * 3;
blit_image(lowerHalfIconImage, NULL, width, height, kSplashIconsWidth,
NULL, x, y);
height = min_c(iconsHalfHeight, gKernelArgs.frame_buffer.height);
blit_image(lowerHalfIconImage, NULL, width, height,
kSplashIconsWidth, NULL, x, y);
}

View File

@ -190,17 +190,18 @@ boot_splash_set_stage(int stage)
int iconsHalfHeight = kSplashIconsHeight / 2;
int width = min_c(kSplashIconsWidth, sInfo->width);
int height = min_c(iconsHalfHeight, sInfo->height);
int height = min_c(kSplashLogoHeight + iconsHalfHeight, sInfo->height);
int placementX = max_c(0, min_c(100, kSplashIconsPlacementX));
int placementY = max_c(0, min_c(100, kSplashIconsPlacementY));
int x = (sInfo->width - width) * placementX / 100;
int y = (sInfo->height - height) * placementY / 100;
int y = kSplashLogoHeight + (sInfo->height - height) * placementY / 100;
int stageLeftEdge = width * stage / BOOT_SPLASH_STAGE_MAX;
int stageRightEdge = width * (stage + 1) / BOOT_SPLASH_STAGE_MAX;
height = min_c(iconsHalfHeight, sInfo->height);
blit_cropped(kSplashIconsImage, NULL, stageLeftEdge, 0, stageRightEdge,
iconsHalfHeight, kSplashIconsWidth, NULL, x, y);
height, kSplashIconsWidth, NULL, x, y);
}