All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.freedesktop.wayland.client.WlShmPoolProxy Maven / Gradle / Ivy

There is a newer version: 1.4.1
Show newest version
package org.freedesktop.wayland.client;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import org.freedesktop.wayland.util.Arguments;
import org.freedesktop.wayland.util.Interface;
import org.freedesktop.wayland.util.Message;
// 
//
//    Copyright © 2008-2011 Kristian Høgsberg
//    Copyright © 2010-2011 Intel Corporation
//    Copyright © 2012-2013 Collabora, Ltd.
//
//    Permission to use, copy, modify, distribute, and sell this
//    software and its documentation for any purpose is hereby granted
//    without fee, provided that the above copyright notice appear in
//    all copies and that both that copyright notice and this permission
//    notice appear in supporting documentation, and that the name of
//    the copyright holders not be used in advertising or publicity
//    pertaining to distribution of the software without specific,
//    written prior permission.  The copyright holders make no
//    representations about the suitability of this software for any
//    purpose.  It is provided "as is" without express or implied
//    warranty.
//
//    THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
//    SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
//    FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
//    SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
//    WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
//    AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
//    ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
//    THIS SOFTWARE.
//  
/**
 * a shared memory pool
 * 

* * The wl_shm_pool object encapsulates a piece of memory shared * between the compositor and client. Through the wl_shm_pool * object, the client can allocate shared memory wl_buffer objects. * All objects created through the same pool share the same * underlying mapped memory. Reusing the mapped memory avoids the * setup/teardown overhead and is useful when interactively resizing * a surface or for many small buffers. * */ @Interface( methods = { @Message( types = { org.freedesktop.wayland.client.WlBufferProxy.class, int.class, int.class, int.class, int.class, int.class }, signature = "niiiiu", functionName = "createBuffer", name = "create_buffer" ) , @Message( types = { }, signature = "", functionName = "destroy", name = "destroy" ) , @Message( types = { int.class }, signature = "i", functionName = "resize", name = "resize" ) }, name = "wl_shm_pool", version = 1, events = { } ) public class WlShmPoolProxy extends Proxy { public static final String INTERFACE_NAME = "wl_shm_pool"; public WlShmPoolProxy(com.sun.jna.Pointer pointer, WlShmPoolEvents implementation, int version) { super(pointer, implementation, version); } public WlShmPoolProxy(com.sun.jna.Pointer pointer) { super(pointer); } /** * create a buffer from the pool *

* * Create a wl_buffer object from the pool. *

* The buffer is created offset bytes into the pool and has * width and height as specified. The stride arguments specifies * the number of bytes from beginning of one row to the beginning * of the next. The format is the pixel format of the buffer and * must be one of those advertised through the wl_shm.format event. *

* A buffer will keep a reference to the pool it was created from * so it is valid to destroy the pool immediately after creating * a buffer from it. * * @param implementation A protocol event listener for the newly created proxy. * @param offset * @param width * @param height * @param stride * @param format */ public WlBufferProxy createBuffer(WlBufferEvents implementation, int offset, int width, int height, int stride, int format) { return marshalConstructor(0, implementation, getVersion(), org.freedesktop.wayland.client.WlBufferProxy.class, Arguments.create(6).set(0, 0).set(1, offset).set(2, width).set(3, height).set(4, stride).set(5, format)); } /** * destroy the pool *

* * Destroy the shared memory pool. *

* The mmapped memory will be released when all * buffers that have been created from this pool * are gone. * */ public void destroy() { marshal(1); } /** * change the size of the pool mapping *

* * This request will cause the server to remap the backing memory * for the pool from the file descriptor passed when the pool was * created, but using the new size. This request can only be * used to make the pool bigger. * * @param size */ public void resize(int size) { marshal(2, Arguments.create(1).set(0, size)); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy