summaryrefslogtreecommitdiffstats
path: root/video/out/wayland_common.h
Commit message (Collapse)AuthorAgeFilesLines
* wayland_common: fix changing videos when fullscreenAlexander Preisinger2014-09-101-1/+0
| | | | I broke it again.
* wayland: print some useful outptu infoAlexander Preisinger2014-09-031-0/+2
| | | | | Prints output informations, useful for finding out if we detect the right mode and for debugging.
* wayland: dynamically report display fpsAlexander Preisinger2014-08-181-1/+2
| | | | | | | | Only reports the most recently entered output if the window is displayed on 2 or more outputs. Should be changed to the lowest fps of all outputs the window is visible. Until no one complains this will have to wait. Look for the VO framedropping for more information on this topic.
* wayland: move subsurfaces to wayland voAlexander Preisinger2014-06-151-5/+0
| | | | | | | Subsurfaces are only used by the wayland vo. Thats why it makes sense to move all osd and subsurface specific parts to the vo_wayland.c Also destroy the subsurfaces and subcompositor properly.
* wayland: don't use VOCTRL_UPDATE_SCREENINFOwm42014-05-061-1/+1
| | | | Not very tested. Appears to work.
* wayland/shm: Use subsurfaces for OSDAlexander Preisinger2014-04-161-1/+8
|
* wayland: fix fullscreen & resizing for goodAlexander Preisinger2014-01-071-1/+4
| | | | | | | I added enough logic to never set ontop or fullscreen twitce. This commit keeps also the size of the video if multiple videos are played. If the ratio differs the width will be kept at the same size and only the height changes.
* Revert "wayland/egl: use redraw callback"Alexander Preisinger2014-01-041-2/+0
| | | | | | | | | | | Because of this commit there were problems displaying the frmase in their right order. This reverts commit 96e75d234a4df1a09f38eaf932d00d79dccdc324. Conflicts: video/out/gl_wayland.c video/out/wayland_common.h
* wayland/egl: misc fixes and cleanupsAlexander Preisinger2014-01-041-1/+0
|
* wayland/egl: use redraw callbackAlexander Preisinger2014-01-041-0/+3
| | | | | | | This solves the issue where we would not receive any frame events. The difference to my earlier tests is that now it looks like eglSwapBuffers uses it's own event queue or something similiar along the lines. Becaues the performance is the same as without any redraw callback.
* wayland/egl: add egl_context to the wayland stateAlexander Preisinger2014-01-041-0/+20
| | | | | | | | | | | At the moment there are visual glitches when we resize the window. This happens because in wayland there a special function for resizing EGL windows. To prevent the glitches move the egl_context to the wayland state in wayland_common.h and add a new control function to gl_wayland.c to wrap the vo_wayland_control function to check for resize events. With the new control wrapper the glitches are gone and the resizing is fluid.
* wayland: implement dropping files on the VO windowAlexander Preisinger2014-01-041-0/+5
| | | | Needs some proper testing.
* wayland: better name for mouse coordinatesAlexander Preisinger2013-10-251-2/+2
| | | | | I had to look up what the surf_x and surf_y members do. That means the name is not very good. Also a comment.
* wayland: fix fullscreen transparent border regionsAlexander Preisinger2013-10-251-0/+2
| | | | | | | The default behavior of weston changed some time ago to not fill the surface black for fullscreen windows. Now let mpv draw the whole screen in fullscreen mode.
* wayland: use mp_input_test_draggingAlexander Preisinger2013-10-201-0/+2
| | | | | | Instead of removing dragging we now test if it we should drag the window or not. Because if the OSC shows up we can not drag the window because that would cause mouse events that makes the OSC disappear.
* Revert "wayland: don't create our own log context"Alexander Preisinger2013-09-121-0/+1
| | | | | | | This reverts commit beab54506e61bc080880e827e351439f76542e68. Conflicts: video/out/wayland_common.c
* wayland: update license headersAlexander Preisinger2013-09-091-7/+5
|
* wayland: don't create our own log contextAlexander Preisinger2013-08-261-1/+0
| | | | This was more problematic than useful ([vo/wayland/wayland])
* wayland: remove shm listener for the backendAlexander Preisinger2013-08-251-1/+0
| | | | | | The obtained information from the shm listener isn't used by anything and is also wrong now in wayland git master branch because of new shm formats which need a different way of saving the supported formats.
* wayland/egl: rework resizing (again)Alexander Preisinger2013-08-251-12/+5
| | | | | | | | | Moves a good chunk of the resizing code to wayland_common.c. This makes it possible to share it with future video drivers. It doesn't resizit it immediatly, it calcutlates the new position and size and then shedules a resizing event. This removes the ugly callback and void pointer from the wayland data structure.
* wayland: separate shm and cursor contextAlexander Preisinger2013-08-191-2/+2
| | | | | | The display, window, keyboard and cursor structures are now cleanly and logically separated. Also could prevent a future bug where no shm format is set when the cursor image is loaded (Never happened until now).
* wayland: switch to the new mp_msg apiAlexander Preisinger2013-07-311-0/+1
|
* wayland: use a unified struct for the stateAlexander Preisinger2013-07-181-56/+51
| | | | | | | | | | This commit removes the pointer to the single different structures for input and window and puts them as anonymous structures inside the wayland_state structure. This has the disadvantage of passing the substructure to the listeners, but the advantage is that we don't have to allocate them and check for NULL pointers. This makes it more reliable and easier to follow.
* video: remove fullscreen flags chaoswm42013-07-181-7/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was a MPOpts fullscreen field, a mp_vo_opts.fs field, and VOFLAG_FULLSCREEN. Remove all these and introduce a mp_vo_opts.fullscreen flag instead. When VOs receive VOCTRL_FULLSCREEN, they are supposed to set the current fullscreen mode to the state in mp_vo_opts.fullscreen. They also should do this implicitly on config(). VOs which are capable of doing so can update the mp_vo_opts.fullscreen if the actual fullscreen mode changes (e.g. if the user uses the window manager controls). If fullscreen mode switching fails, they can also set mp_vo_opts.fullscreen to the actual state. Note that the X11 backend does almost none of this, and it has a private fs flag to store the fullscreen flag, instead of getting it from the WM. (Possibly because it has to deal with broken WMs.) The fullscreen option has to be checked on config() to deal with the -fs option, especially with something like: mpv --fs file1.mkv --{ --no-fs file2.mkv --} (It should start in fullscreen mode, but go to windowed mode when playing file2.mkv.) Wayland changes by: Alexander Preisinger <alexander.preisinger@gmail.com> Cocoa changes by: Stefano Pigozzi <stefano.pigozzi@gmail.com>
* wayland: early aspect calculation in vo_configAlexander Preisinger2013-07-161-0/+1
| | | | | | | | | | | | Calculate the aspect ratio in vo_config, when we get the window size and in the inside the resize function we calculate the aspect ratio of the output in order to determine if we have to change the height or the width of the video. If the ratio of the output is bigger than the ratio of the video then we have to set the width accordingly and if the ratio is smaller we change the size. But only if no resize edges are passed, because this indicates that we want to change the windows state instead of just a simple resize and the video should not grow bigger than the requested size.
* wayland: remove unused membersAlexander Preisinger2013-07-031-2/+0
|
* wayland: use VOCTRL_SET_CURSOR_VISIBILITYAlexander Preisinger2013-05-261-3/+2
|
* wayland: introduce vo_wayland_configAlexander Preisinger2013-05-261-6/+1
| | | | | This removes the need for exposing vo_wayland_fullscreen and other functions also this will be usefull for other vos in the future.
* video/out: introduce vo_control for gl_common based VOswm42013-05-261-0/+1
| | | | | | | | | | | | | | | | Instead of having separate callbacks for each backend-handled feature (like MPGLContext.fullscreen, MPGLContext.border, etc.), pass the VOCTRL responsible for this directly to the backend. This allows removing a bunch of callbacks, that currently must be set even for optional/lesser features (like VOCTRL_BORDER). This requires changes to all VOs using gl_common, as well as all backends that support gl_common. Also introduce VOCTRL_CHECK_EVENTS. vo.check_events is now optional. VO backends can use VOCTRL_CHECK_EVENTS instead to implementing check_events. This has the advantage that the event handling code in VOs doesn't have to be duplicated if vo_control() is used.
* wayland: reworked resizingAlexander Preisinger2013-05-071-6/+14
| | | | | | | | | | This fixes 2 bugs: * Resizing very fast breaks the aspect of the window and the width and height don't match with the video anymore * Pressing 'f' for fullscreen very fast can overwrite the backup variables for the previous width and height. Also includes a better aspect calculation with fluid resizing.
* wayland: remove unused stuffAlexander Preisinger2013-05-021-5/+0
|
* wayland: remove input modifier variableAlexander Preisinger2013-05-011-2/+0
| | | | This variable was never used anywhere.
* wayland: use GetTimerMS for hiding mouse cursorAlexander Preisinger2013-05-011-13/+3
| | | | | | This commit remove a lot of linux specific code, like epoll. It also reduces the complexity of the code. Instead of epoll we use poll which makes the wayland backend more portable to other platforms.
* wayland: use mpv internal key auto-repeat handlingAlexander Preisinger2013-05-011-8/+0
| | | | | | This removes a good chunk of code trying to recreate key repeat. Because the wayland protocol and xkbcommon don't have an interface for auto-repeating pressed keys.
* x11_common: use private variables for window statewm42013-03-031-1/+0
| | | | | | | | | | | | | | | | Store the window state (position and size) in vo_x11_state, instead of in vo->dx/dy/dwidth/dheight. The VO variables are overwritten by vo.c on every vo_config() call, which is extremely not helpful. Now vo->dx/dy are mostly unused (except for passing the position forced by the --geometry option), and vo->dwidth/dheight are set for the VO, and otherwise read for resize detection only. In the long term, the way vo_config() handles the --geometry option should be changed, and vo->dx/dy should be removed. Remove some useless stuff: VO_EVENT_MOVE and VO_EVENT_KEYPRESS were generated, but unused. Wayland changes by Alexander Preisinger.
* wayland: add wayland supportAlexander Preisinger2013-02-281-0/+153
All wayland only specific routines are placed in wayland_common. This makes it easier to write other video outputs. The EGL specific parts, as well as opengl context creation, are in gl_common. This backend works for: * opengl-old * opengl * opengl-hq To use it just specify the opengl backend --vo=opengl:backend=wayland or disable the x11 build. Don't forget to set EGL_PLATFORM to wayland. Co-Author: Scott Moreau (Sorry I lost the old commit history due to the file structure changes)