wlmaker
Loading...
Searching...
No Matches
Classes | Macros | Functions | Variables
subcompositor.c File Reference
#include "subcompositor.h"
#include <libbase/libbase.h>
#include <stdint.h>
#include <stdlib.h>
#include <time.h>
#include <toolkit/toolkit.h>
#include <wayland-server-core.h>
#include <wlr/backend.h>
#include <wlr/backend/wayland.h>
#include <wlr/render/allocator.h>
#include <wlr/render/wlr_renderer.h>
#include <wlr/types/wlr_compositor.h>
#include <wlr/types/wlr_output.h>
#include <wlr/types/wlr_output_layout.h>
#include <wlr/types/wlr_scene.h>
#include <wlr/types/wlr_seat.h>
#include "wlr-layer-shell-unstable-v1-client-protocol.h"
#include "input/manager.h"
Include dependency graph for subcompositor.c:

Classes

struct  _wlmdock_subcompositor_t
 

Functions

static void _wlmdock_subcompositor_request_size (wlmdock_subcompositor_t *subcompositor_ptr)
 
static void _wlmdock_subcompositor_element_layout (wlmtk_element_t *element_ptr)
 
static void _wlmdock_subcompositor_handle_wlclient_keymap (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmdock_subcompositor_handle_wlclient_keyboard_repeat_info (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmdock_subcompositor_handle_output_frame (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmdock_subcompositor_handle_container_layout_invalidated (struct wl_listener *listener_ptr, void *data_ptr)
 
static void _wlmdock_subcompositor_handle_layer_surface_configure (void *userdata_ptr, uint32_t width, uint32_t height)
 
static void _wlmdock_subcompositor_commit (wlmdock_subcompositor_t *subcompositor_ptr)
 
wlmdock_subcompositor_t * wlmdock_subcompositor_create (struct wl_display *wl_display_ptr, struct wlr_backend *wlr_backend_ptr, wlmcl_client_t *client_ptr, wlmcl_layer_surface_t *layer_surface_ptr, struct wlmim_cursor_style *cursor_style_ptr, wlmtk_container_t *container_ptr)
 
bool wlmdock_subcompositor_start (wlmdock_subcompositor_t *subcompositor_ptr, struct wlr_backend *wlr_backend_ptr, struct wlr_allocator *wlr_allocator_ptr, struct wlr_renderer *wlr_renderer_ptr)
 
void wlmdock_subcompositor_destroy (wlmdock_subcompositor_t *subcompositor_ptr)
 
wlmtk_element_t * wlmdock_subcompositor_element (wlmdock_subcompositor_t *subcompositor_ptr)
 

Variables

static const wlmtk_element_vmt_t _wlmdock_subcompositor_element_vmt
 

Detailed Description

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Function Documentation

◆ _wlmdock_subcompositor_commit()

void _wlmdock_subcompositor_commit ( wlmdock_subcompositor_t *  subcompositor_ptr)
static

Commits output dimensions and scene graph.

◆ _wlmdock_subcompositor_element_layout()

void _wlmdock_subcompositor_element_layout ( wlmtk_element_t *  element_ptr)
static

Updates the subcompositor's surface layout dimensions accordingly.

◆ _wlmdock_subcompositor_handle_container_layout_invalidated()

void _wlmdock_subcompositor_handle_container_layout_invalidated ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Handles when the tilebox' layout is invalidated. Reconfigure the output.

◆ _wlmdock_subcompositor_handle_layer_surface_configure()

void _wlmdock_subcompositor_handle_layer_surface_configure ( void *  userdata_ptr,
uint32_t  width,
uint32_t  height 
)
static

Handles server-side configure request.

◆ _wlmdock_subcompositor_handle_output_frame()

void _wlmdock_subcompositor_handle_output_frame ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Commits the frame.

◆ _wlmdock_subcompositor_handle_wlclient_keyboard_repeat_info()

static void _wlmdock_subcompositor_handle_wlclient_keyboard_repeat_info ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Forwards the keyboard repeat info to the input manager.

◆ _wlmdock_subcompositor_handle_wlclient_keymap()

static void _wlmdock_subcompositor_handle_wlclient_keymap ( struct wl_listener *  listener_ptr,
void *  data_ptr 
)
static

Forwards the keymap to the input manager.

◆ _wlmdock_subcompositor_request_size()

void _wlmdock_subcompositor_request_size ( wlmdock_subcompositor_t *  subcompositor_ptr)
static

Checks the element's size and requests updated size, if needed.

◆ wlmdock_subcompositor_create()

wlmdock_subcompositor_t * wlmdock_subcompositor_create ( struct wl_display *  wl_display_ptr,
struct wlr_backend *  wlr_backend_ptr,
wlmcl_client_t *  client_ptr,
wlmcl_layer_surface_t *  layer_surface_ptr,
struct wlmim_cursor_style *  cursor_style_ptr,
wlmtk_container_t *  container_ptr 
)

Creates a subcompositor.

Parameters
wl_display_ptr
wlr_backend_ptrMust be a wayland backend, not started (yet).
client_ptr
layer_surface_ptr
cursor_style_ptr
container_ptr
Returns
Handle of the compositor, or NULL on error.

◆ wlmdock_subcompositor_destroy()

void wlmdock_subcompositor_destroy ( wlmdock_subcompositor_t *  subcompositor_ptr)

Destroys the subcompositor.

Parameters
subcompositor_ptr

◆ wlmdock_subcompositor_element()

wlmtk_element_t * wlmdock_subcompositor_element ( wlmdock_subcompositor_t *  subcompositor_ptr)

Returns the topmost element of the subcompositor's element tree.

Parameters
subcompositor_ptr
Returns
Pointer to wlmdock_subcompositor_t::container super element.

◆ wlmdock_subcompositor_start()

bool wlmdock_subcompositor_start ( wlmdock_subcompositor_t *  subcompositor_ptr,
struct wlr_backend *  wlr_backend_ptr,
struct wlr_allocator *  wlr_allocator_ptr,
struct wlr_renderer *  wlr_renderer_ptr 
)

Starts the subcompositor.

Parameters
subcompositor_ptr
wlr_backend_ptrMust be a wayland backend, must be started.
wlr_allocator_ptr
wlr_renderer_ptr
Returns
true on success.

Variable Documentation

◆ _wlmdock_subcompositor_element_vmt

const wlmtk_element_vmt_t _wlmdock_subcompositor_element_vmt
static
Initial value:
= {
}
static void _wlmdock_subcompositor_element_layout(wlmtk_element_t *element_ptr)
Definition subcompositor.c:397

The subcompositor's element virtual method table.