Commit Graph

70 Commits

Author SHA1 Message Date
Kevin Lange
ac52d41144 Unicode Text Support
* Some applications now support UTF-8 text through the use of a very
  simple decoder.
* The terminal uses a slow, but accurate method to determine the width
  of a character the first time it is printed to the screen. Characters
  are now stored in the terminal in two bytes, rather than one, and may
  in the future be increased to 3 or 4 bytes to ensure support for
  Unicode supplemental planes.
* A simple font-fallback method is employed in the applications that
  support unicode that will make use of the VL Gothic fonts if the
  DejaVu font does not have a character. No guarantees are made for
  support of writing systems other than extended Latin and Japanese.
2012-09-05 20:19:52 -07:00
Kevin Lange
07955c83c6 Fix dozens of build warnings and other oddities.
* Finally bring syscall.h up to speed and include all syscalls in the
  syscall module of the C library.
* Remove the third-party obfuscated C demos (we have nyancat, good
  enough)
* Fix userspace apps to build without complaining about undeclared
  strtok_r by disable __STRICT_ANSI__
* Fix .eh_frame by including the proper stuff with libgcc.
2012-09-04 20:27:49 -07:00
Kevin Lange
c88d6dcb4f Add or update the heading comments for user apps.
Adds useful descriptions to ones that were lacking them, updates ones
that were innacurate, etc.
2012-07-06 21:08:28 -07:00
Kevin Lange
4cb3f0020b Minor stuff 2012-04-17 15:34:34 -05:00
Kevin Lange
4f2c122af5 Context-based graphics library.
All graphics library commands now take a gfx_context_t pointer, which
points to a simple datastructure describing a rendering context (width,
height, depth, total size, front buffer, backbuffer; where backbuffer =
front buffer when not in double-buffering mode, thus we always render to
backbuffer except on a flip). This may have caused a minor speed
reduction, but I don't really care as it's far more important that we
support multiple graphics contexts.

TODO:
- Shared Memory Fonts library (there are a couple of apps that use these
  so-called "shmem fonts" on their own; we need a dedicated library for
  them)
- Break off "TTK" GUI toolkit into its own library. Since it's just a
  callback-based button framework, this shouldn't be too hard right now.
  Also, with the previous tick, I'll be able to put labels on controls
  and start using text in more places.
2012-04-17 13:21:34 -05:00
Kevin Lange
9987416fad Drawing app has buttons (working on a toolkit) 2012-04-13 01:21:01 -05:00
Kevin Lange
9d4e560b8b Minor mouse fixes 2012-04-12 23:30:04 -05:00
Kevin Lange
5a1a45bc09 Faster mouse response
- Discard lots of packets
- Don't yield?
2012-04-12 23:21:38 -05:00
Kevin Lange
0eaf3a99a3 Separate pthread; add mouse move events? 2012-04-12 22:42:24 -05:00
Kevin Lange
e60cd2b49e Collect, but do not send, mouse events. 2012-04-10 22:34:36 -05:00
Kevin Lange
76f96a431e Fix some graphics-related things 2012-03-28 15:54:31 -05:00
Kevin Lange
639881f931 Make things faster, better, stronger, etc. 2012-03-27 19:09:11 -05:00
Kevin Lange
0448e530ec Render moving windows in a cool way 2012-03-27 18:19:35 -05:00
Kevin Lange
9fd73be686 Trying a few fixes... We're still doing some things very, very wrong. 2012-03-27 16:52:46 -05:00
Kevin Lange
fb6e5d59e3 Completely rewrite rendering model for compositor.
We know longer accept DAMAGE and REDRAW commands. Instead, we just loop
and redraw everything anyway (efficiently, mind you). Pipes still have
issues when closed and various other different things.
2012-03-27 13:58:21 -05:00
Kevin Lange
182de81a79 [userspace] Various. BOOT TO TERMINAL 2012-03-23 17:44:37 -05:00
Kevin Lange
1038ceab72 There is something terribly wrong with how we're doing this. 2012-03-20 16:23:24 -05:00
Kevin Lange
fc00d3f1f9 Terminal improvements 2012-03-16 17:09:00 -05:00
Kevin Lange
816ddc8f3e Lots of process cleanup implemented; improved cursor rendering 2012-03-14 22:03:55 -05:00
Kevin Lange
ffbe7b7b38 A bunch of stuff. 2012-03-14 15:04:12 -05:00
Kevin Lange
2c4e4e5d03 Fix up destroy() so we can (in theory) delete windows from their owning apps 2012-03-13 17:44:19 -05:00
Kevin Lange
2791e7fd35 We've been doing some really stupid shit here... 2012-03-10 18:20:34 -06:00
Kevin Lange
db617812e4 Disable resizing of windows 2012-03-10 12:39:13 -06:00
Kevin Lange
73c6171226 Last minute bug fixes 2012-03-08 23:36:40 -06:00
Kevin Lange
19a12bec78 lol panel 2012-03-07 23:44:02 -06:00
Kevin Lange
c15402af4c Use window server to determine window size for wallpaper 2012-03-07 22:40:58 -06:00
Kevin Lange
7a9961a9b2 Wallpaper application for scalable wallpaper support 2012-03-07 22:31:24 -06:00
Kevin Lange
8fb8edba3a I have no idea idea what I'm doing. 2012-03-01 21:13:52 -06:00
Kevin Lange
a1a6303bee Faster is_top by way of a depth map 2012-02-26 00:45:46 -06:00
Kevin Lange
2b0d6f6759 Some very simplistic window management 2012-02-25 23:52:09 -06:00
Kevin Lange
35f5266acf *sigh*... 2012-02-25 22:47:20 -06:00
Kevin Lange
61967e17e4 Use shmem fonts for terminal 2012-02-25 21:28:33 -06:00
Kevin Lange
7e71b3c2af Fix focusing 2012-02-23 01:40:37 -06:00
Kevin Lange
52dd077032 Multiple terminals, fixed focusing, getopt is borked 2012-02-23 01:30:56 -06:00
Kevin Lange
ef82703d5d Terminal actually handles input properly [kbd only] 2012-02-23 00:58:14 -06:00
Kevin Lange
db8a75071d We have a terminal. In a window. Seriously. 2012-02-23 00:36:49 -06:00
Kevin Lange
2da22312a5 Merge branch 'master' of github.com:klange/osdev 2012-02-20 23:32:10 -06:00
Kevin Lange
de7a984938 Fix a bunch of bugs in signal handling and scheduling 2012-02-20 23:31:00 -06:00
Kevin Lange
5de319b816 Work on Shmem fonts
Still need to pass sizes around to shm_* functions as a pointer rather
than the actual size so we can retreive sizes; additionally, *p = 0
should mean "we don't want to create this buffer, we only want to
access it if it exists".
2012-02-20 18:33:09 -06:00
Kevin Lange
16b71c532f [compositor] Load up fonts into shm 2012-02-20 12:18:13 -06:00
Kevin Lange
e335a2970a [glogin] Working on the graphical login application 2012-02-19 21:29:40 -06:00
Kevin Lange
b30cd50864 Keyboard handling in the compositor 2012-02-17 01:28:12 -06:00
Kevin Lange
678ed81c65 Extensive stability fixes. I think I finally squashed those stack bugs. 2012-02-16 22:43:41 -06:00
Kevin Lange
8fb69d44cd I have no frickin' clue what's causing these startup crashes. Requires further investigation. 2012-02-16 15:09:56 -06:00
Kevin Lange
a1d821de9b Various fixes 2012-02-16 14:38:50 -06:00
Kevin Lange
a72f9bc7cf Fix stack bug. 2012-02-16 14:31:40 -06:00
Markus Schober
71fd14d6f7 shm_obtain takes a (size_t *), altering it according to the size of the
block it returned.

Conflicts:
	userspace/compositor.c
2012-02-16 03:43:30 -06:00
Markus Schober
6dc90b1ac2 shm_obtain takes a (size_t *) and modifies the value based on the true
size of the block returned.
2012-02-16 03:34:42 -06:00
Kevin Lange
cffbb02240 Stuff and things 2012-02-15 20:50:31 -06:00
Kevin Lange
3980460484 top/left offsets are SIGNED; add julia fractal thingy 2012-02-13 19:46:00 -06:00