Feature: OpenGL backend

- Add experimental OpenGL backend (--opengl). --blur-background is
  currently not possible with this backend, because I'm still trying to
  find a proper way to do blur with OpenGL. Flipping backend on-the-fly
  is really hard, so it isn't supported right now. No configuration file
  option exists to enable this, because it isn't stable enough.

- Add `opengl-swc` VSync method that uses SGI_swap_control to control
  buffer swap, with OpenGL backend. (#7)

- Fix a potential read-from-freed-memory issue in paint_all().

- Correctly reattach GLX context after fork.

- Dump error text in error(). Add GLX error code handling.

- Code clean-up.

- Known issues: Region operations take a lot of time in glx_render().
  I'm hesitating about what to do.
This commit is contained in:
Richard Grenville
2013-03-15 23:16:23 +08:00
parent 4bc3de81ab
commit 8ffcf1c1e8
7 changed files with 1183 additions and 424 deletions

5
.gitignore vendored
View File

@ -33,8 +33,8 @@ install_manifest.txt
*~
# Misc files
core
*.core
/core
/*.core
oprofile_data/
compton.plist
callgrind.out.*
@ -42,3 +42,4 @@ man/*.html
man/*.1
doxygen/
.clang_complete
/src/backtrace-symbols.[ch]