Squashed all the stuff:
init
Update README.md
options
performance
Animation no longer jumps if started in the middle of an animation
Doubled default transition length
Minor bugfix, preformance
Track x and y separately to aviod jumping in mid-animation repositioning
Added video to readme
docs
docs
fixed graphical glitch with non-transparent windows
now animates window scaling too (but only if the window grows)
added options for size transitions
and actually respect the new options..
and actually respect the new options..
added center-spawn option
added center-spawn-screen option
fixed center spawn
added no-scale-down
goofed
remember old windows
remember old windows
docs
fixed shadow
fixed shadow
fixed shadow
fixed shadow
lost no-scale-down due to revert
lost spawn-center due to revert
Fixed#2
fix missing window borders
Call `glViewport()` once when initializing the backend with the maximum
supported dimensions. Since all shaders are equipped with the
corresponding projection matrix, the viewport does not have to be
updated prior to each draw call.
Related: a7bd48f5ab
Set viewport in `gl_average_texture_color()` to global `vp_width` and
`vp_height` as the projection matrix has been initialized to these dimensions
as well.
Related: a7bd48f5ab
- Query maximum supported dimensions of `glViewport()` when initializing
so we don't have to worry about differently sized textures when
rendering (usually the same as the maximum supported texture size, but
dependend on the driver).
- Set projection matrix in all shaders at startup to queried viewport
dimensions. Allows using screen coordinates for all vertex positions
without having to keep track of framebuffer dimensions.
- Follow recommendations and set `glViewport()` to queried maximum dimensions
for each draw call (`glDraw*()`, `glClear()`).
Related: #349
xrender-sync-fence might be enabled after init because of driver
detection. Instead of creating it on demand, just always create it as
this is simpler.
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
We use the __GL_YIELD=usleep workaround when we detect the NVIDIA
driver, so we could use glFinish without the NVIDIA driver taking all
the CPU.
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
Because it needs to be cleared when we reset, so we don't use a freed
fbconfig across reset.
Related: #381
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
GLX context is not destroyed immediately after calling
glXDestroyContext. It is only destroyed when it's no longer
being used. So make sure to release the context
Fixes#381
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
Flags might be cleared on a destroyed window, if it's set because of an
event received before the window is destroyed.
Eventually we want to delay the handling of destroy notify as well.
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
Mark it CLIENT_STALE and clear the client instead of recheck it
immediately. It's better to recheck when we have the server grabbed.
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
Make sure the window struct is indeed destroyed and freed when a window
is reparented away from root. So we won't find it later and get
confused.
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>
Don't just mark it as CLIENT_STALE. To make sure we don't later find the
old frame window as the frame of the client.
Fix assertion failure in ev_destroy_notify.
Signed-off-by: Yuxuan Shui <yshuiv7@gmail.com>