~sergiusens/libhybris/autotests

« back to all changes in this revision

Viewing changes to hybris/egl/platforms/common/server_wlegl_buffer.h

  • Committer: Package Import Robot
  • Author(s): Ricardo Salveti de Araujo
  • Date: 2013-06-04 07:33:11 UTC
  • Revision ID: package-import@ubuntu.com-20130604073311-20ldi2hm1axkvjl1
Tags: upstream-0.1.0+git20130601+dfb2e26
Import upstream version 0.1.0+git20130601+dfb2e26

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * Copyright © 2012 Collabora, Ltd.
 
3
 *
 
4
 * Permission to use, copy, modify, distribute, and sell this software and
 
5
 * its documentation for any purpose is hereby granted without fee, provided
 
6
 * that the above copyright notice appear in all copies and that both that
 
7
 * copyright notice and this permission notice appear in supporting
 
8
 * documentation, and that the name of the copyright holders not be used in
 
9
 * advertising or publicity pertaining to distribution of the software
 
10
 * without specific, written prior permission.  The copyright holders make
 
11
 * no representations about the suitability of this software for any
 
12
 * purpose.  It is provided "as is" without express or implied warranty.
 
13
 *
 
14
 * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
 
15
 * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
 
16
 * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
 
17
 * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 
18
 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
 
19
 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 
20
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 
21
 */
 
22
 
 
23
#ifndef SERVER_WLEGL_BUFFER_H
 
24
#define SERVER_WLEGL_BUFFER_H
 
25
 
 
26
#include <cutils/native_handle.h>
 
27
#include <system/window.h>
 
28
#include <hardware/gralloc.h>
 
29
#include <wayland-server.h>
 
30
#include "nativewindowbase.h"
 
31
 
 
32
struct server_wlegl;
 
33
struct server_wlegl_buffer;
 
34
 
 
35
class RemoteWindowBuffer : public BaseNativeWindowBuffer
 
36
{
 
37
        public:
 
38
                RemoteWindowBuffer(unsigned int width,
 
39
                                unsigned int height,
 
40
                                unsigned int stride,
 
41
                                unsigned int format,
 
42
                                unsigned int usage,
 
43
                                buffer_handle_t handle,
 
44
                                const gralloc_module_t *gralloc 
 
45
                                ) {
 
46
                        // Base members
 
47
                        ANativeWindowBuffer::width = width;
 
48
                        ANativeWindowBuffer::height = height;
 
49
                        ANativeWindowBuffer::format = format;
 
50
                        ANativeWindowBuffer::usage = usage;
 
51
                        ANativeWindowBuffer::stride = stride;
 
52
                        ANativeWindowBuffer::handle = handle;
 
53
                        this->m_gralloc = gralloc;
 
54
                };
 
55
                ~RemoteWindowBuffer();
 
56
        private:
 
57
                const gralloc_module_t *m_gralloc;
 
58
};
 
59
 
 
60
struct server_wlegl_buffer {
 
61
        struct wl_buffer base;
 
62
        server_wlegl *wlegl;
 
63
 
 
64
        RemoteWindowBuffer *buf;
 
65
};
 
66
 
 
67
server_wlegl_buffer *
 
68
server_wlegl_buffer_create(uint32_t id, int32_t width, int32_t height,
 
69
                           int32_t stride, int32_t format, int32_t usage,
 
70
                           buffer_handle_t handle, server_wlegl *wlegl);
 
71
 
 
72
server_wlegl_buffer *
 
73
server_wlegl_buffer_from(struct wl_buffer *);
 
74
 
 
75
#endif /* SERVER_WLEGL_BUFFER_H */