branding: one mark, and PSOGM draws it
Guru and SchCotie are gone. Shift is the only mark, and the crash screen draws it where the face used to be. Guru was an icon -- a pictogram with a face, denoting one state -- that lived on the crash screen and nowhere else. Its argument was identity: `:(` is recognisably Microsoft's, and a crash screen is the single screenshot most likely to leave the machine, so it is the worst place to be wearing somebody else's face. That part holds, and it is kept in the branding README because it is the argument against any second mark. What does not follow is that the answer is a *new* mark. Shift already signs the system, it is already what the machine drew on the splash it started with, and a reader who has seen it twice before the crash recognises it faster than a face they have never seen. SchCotie was a mascot, and never existed: the file said so itself under "what this does not cover". A brief for a character nobody is about to draw is not worth carrying. So `draw_guru()` and its SVG-space geometry leave panic.c, the two `guru.svg` files are deleted, and PSOGM calls gfx_draw_logo() -- the same include/logo.h mask the loader splash and the boot console composite. At its native 128 px: there is no resampler in the crash path, and the face was scalable in a place that only ever drew it at one size. The name stays. "Purple Screen of Guru Meditation" is the Amiga nod, which panic.c's own header already called out as a separate thing from the mark. **And taking the screenshot to check it caught a regression from the TTF console work.** `gfx_draw_char()` -- the pixel-positioned path, which only PSOGM uses -- still walked `font_data[c][row]` for `row < CHAR_HEIGHT`. font_data has exactly 16 rows per glyph; CHAR_HEIGHT is the *TrueType* cell height now, about 21. So every line of the crash report drew five rows of the next character's bitmap underneath itself, and it looked like each line had been printed twice. The grid path had been updated when the cell size stopped being a constant; this one had not, because nothing routine draws text in pixel coordinates. Both go through one draw_glyph_px() now, and the bitmap's own geometry is spelled BITMAP_W/BITMAP_H so it cannot be mistaken for a cell size again. Two stale claims corrected while in there, in panic.c's header and in graphics.md: PSOGM has not dimmed-and-floated over the old screen for a while -- it clears to full purple, and the file's own code comment says why -- and there is no longer "a face that is obviously a cartoon". The website's crash section shows the mark in flat white rather than its own violets, which is what the kernel actually draws: PSOGM composites a coverage mask in one colour, and those violets sit close enough to #4B1D9A to half-disappear against it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
e577791e5e
commit
953f9c5c3c
11 changed files with 158 additions and 216 deletions
|
|
@ -1,12 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 200 200" width="200" height="200">
|
||||
<title>Guru — the PSOGM face</title>
|
||||
<desc>The crash-screen face. Chamfered corners quote the old SchOS letterforms.
|
||||
Drawn here for reference only: kernel/core/panic.c builds it from primitives
|
||||
rather than from a bitmap, so it scales with the display and costs nothing in
|
||||
the kernel image.</desc>
|
||||
|
||||
<path fill="#7C5CFF" d="M58 24 L142 24 L176 58 L176 142 L142 176 L58 176 L24 142 L24 58 Z"/>
|
||||
<path fill="#2B0F52" d="M74 82 h16 v22 h-16 Z"/>
|
||||
<path fill="#2B0F52" d="M110 82 h16 v22 h-16 Z"/>
|
||||
<path fill="#2B0F52" d="M72 128 h56 v11 h-56 Z"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 655 B |
|
|
@ -11,7 +11,7 @@ docs.html the documentation reader
|
|||
style.css the palette, transcribed from include/theme.h
|
||||
app.js the front page: the boot log types, sections fade in
|
||||
docs.js the Markdown renderer and the doc index
|
||||
Assets/ shift.svg (logo), uberblock.svg (SchFS), guru.svg (PSOGM),
|
||||
Assets/ shift.svg (logo), uberblock.svg (SchFS),
|
||||
usb.svg (downloads), pride.svg
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -358,7 +358,7 @@
|
|||
|
||||
<section class="crash reveal">
|
||||
<div class="wrap">
|
||||
<img src="Assets/guru.svg" alt="Guru, the SchOS crash-screen icon">
|
||||
<img src="Assets/shift.svg" alt="Shift, the SchOS mark, as the crash screen draws it">
|
||||
<div>
|
||||
<p class="eyebrow">When it stops</p>
|
||||
<h2>PSOGM</h2>
|
||||
|
|
|
|||
|
|
@ -326,7 +326,16 @@ header.top {
|
|||
align-items: start;
|
||||
}
|
||||
@media (max-width: 44rem) { .crash .wrap { grid-template-columns: 1fr; } }
|
||||
.crash img { width: 100%; max-width: 8rem; height: auto; }
|
||||
/* Flat white, not the logo's own violets. This is what the kernel actually
|
||||
draws: PSOGM composites the coverage mask in one colour, so a full-colour
|
||||
mark here would show something the crash screen never shows -- and those
|
||||
violets are close enough to this purple to half-disappear against it. */
|
||||
.crash img {
|
||||
width: 100%;
|
||||
max-width: 8rem;
|
||||
height: auto;
|
||||
filter: brightness(0) invert(1);
|
||||
}
|
||||
.crash .eyebrow { color: #C3AEEC; }
|
||||
.crash h2 { color: #fff; }
|
||||
.crash p { color: #DBCEF5; }
|
||||
|
|
|
|||
Loading…
Reference in a new issue