Find a file
Andreas Kling 9b71307d49 WindowServer: Support windows with alpha channels. And per-WSWindow opacity.
This patch also adds a Format concept to GraphicsBitmap. For now there are
only two formats: RGB32 and RGBA32. Windows with alpha channel have their
backing stores created in the RGBA32 format.

Use this to make Terminal windows semi-transparent for that comfy rice look.
There is one problem here, in that window compositing overdraw incurs
multiple passes of blending of the same pixels. This leads to a mismatch in
opacity which is obviously not good. I will work on this in a later patch.

The alpha blending is currently straight C++. It should be relatively easy
to optimize this using SSE instructions.

For now I'm just happy with the cute effect. :^)
2019-02-19 01:42:53 +01:00
AK AK: Fix broken instrumentation code for StringImpl. 2019-02-17 10:35:48 +01:00
Applications WindowServer: Support windows with alpha channels. And per-WSWindow opacity. 2019-02-19 01:42:53 +01:00
Base Base: Adjust the OS logo icon a little bit. 2019-02-12 15:46:32 +01:00
Kernel Kernel: Run the sync daemon once every second. 2019-02-17 15:18:35 +01:00
LibC Prune compiler flags a bit. Let's go with -march=i686 for now. 2019-02-17 15:17:21 +01:00
LibGUI WindowServer: Support windows with alpha channels. And per-WSWindow opacity. 2019-02-19 01:42:53 +01:00
Meta Meta: Update ReadMe with a new screenshot. :^) 2019-02-12 15:47:37 +01:00
SharedGraphics WindowServer: Support windows with alpha channels. And per-WSWindow opacity. 2019-02-19 01:42:53 +01:00
Userland Prune compiler flags a bit. Let's go with -march=i686 for now. 2019-02-17 15:17:21 +01:00
WindowServer WindowServer: Support windows with alpha channels. And per-WSWindow opacity. 2019-02-19 01:42:53 +01:00
.gitignore Kernel: Much improved BochsVGA (BXVGA) support. 2019-02-06 10:17:26 +01:00
ReadMe.md Meta: Add some quick instructions for how to build and run this thing. 2019-02-17 09:45:39 +01:00

Serenity

x86 Unix-like operating system for IBM PC-compatibles.

About

I always wanted to write my own operating system, but I never took it seriously. Until now.

Screenshot

Screenshot as of 000ccc0

Current features

  • Pre-emptive multitasking
  • Compositing window server (in userspace)
  • ext2 filesystem support
  • mmap()
  • Unix-like libc and userland
  • Pseudoterminals
  • Event-driven GUI library
  • Other stuff I can't think of right now...

How do I get it to run?

I've only tested this on an Ubuntu 18.10 host with clang, so I'm not sure it works anywhere else. If you'd like to run it, here's how you'd get it to boot:

cd Kernel
./makeall.sh
sudo ./sync.sh
./run q          # Runs in QEMU
./run            # Runs in bochs

Author

License

Undecided. Probably something close to 2-clause BSD.