Update e_wayland to use our own E_Buffer structure
Signed-off-by: Chris Michael <cp.michael@samsung.com>
This commit is contained in:
parent
ba0b2a339b
commit
11054d55e5
|
@ -43,7 +43,7 @@ static Eina_Bool _e_renderer_cb_pixels_read(E_Output *output, int format, void *
|
|||
static void _e_renderer_cb_output_buffer_set(E_Output *output, pixman_image_t *buffer);
|
||||
static void _e_renderer_cb_output_repaint(E_Output *output, pixman_region32_t *damage);
|
||||
static void _e_renderer_cb_damage_flush(E_Surface *surface);
|
||||
static void _e_renderer_cb_attach(E_Surface *surface, struct wl_buffer *buffer);
|
||||
static void _e_renderer_cb_attach(E_Surface *surface, E_Buffer *buffer);
|
||||
static Eina_Bool _e_renderer_cb_output_create(E_Output *output, unsigned int window);
|
||||
static void _e_renderer_cb_output_destroy(E_Output *output);
|
||||
static Eina_Bool _e_renderer_cb_surface_create(E_Surface *surface);
|
||||
|
@ -260,7 +260,7 @@ _e_renderer_cb_damage_flush(E_Surface *surface)
|
|||
}
|
||||
|
||||
static void
|
||||
_e_renderer_cb_attach(E_Surface *surface, struct wl_buffer *buffer)
|
||||
_e_renderer_cb_attach(E_Surface *surface, E_Buffer *buffer)
|
||||
{
|
||||
E_Renderer_Surface_State *state;
|
||||
pixman_format_code_t format = 0;
|
||||
|
@ -278,7 +278,7 @@ _e_renderer_cb_attach(E_Surface *surface, struct wl_buffer *buffer)
|
|||
|
||||
if (!buffer) return;
|
||||
|
||||
if (!(shm_buffer = wl_shm_buffer_get(&buffer->resource)))
|
||||
if (!(shm_buffer = wl_shm_buffer_get(buffer->wl.resource)))
|
||||
{
|
||||
e_buffer_reference(&state->buffer_reference, NULL);
|
||||
return;
|
||||
|
@ -294,12 +294,14 @@ _e_renderer_cb_attach(E_Surface *surface, struct wl_buffer *buffer)
|
|||
break;
|
||||
}
|
||||
|
||||
w = wl_shm_buffer_get_width(shm_buffer);
|
||||
h = wl_shm_buffer_get_height(shm_buffer);
|
||||
buffer->shm_buffer = shm_buffer;
|
||||
buffer->w = wl_shm_buffer_get_width(shm_buffer);
|
||||
buffer->h = wl_shm_buffer_get_height(shm_buffer);
|
||||
data = wl_shm_buffer_get_data(shm_buffer);
|
||||
stride = wl_shm_buffer_get_stride(shm_buffer);
|
||||
|
||||
state->image = pixman_image_create_bits(format, w, h, data, stride);
|
||||
state->image =
|
||||
pixman_image_create_bits(format, buffer->w, buffer->h, data, stride);
|
||||
}
|
||||
|
||||
static Eina_Bool
|
||||
|
|
|
@ -82,7 +82,7 @@ struct _E_Renderer
|
|||
void (*output_buffer_set)(E_Output *output, pixman_image_t *buffer);
|
||||
void (*output_repaint)(E_Output *output, pixman_region32_t *damage);
|
||||
void (*damage_flush)(E_Surface *surface);
|
||||
void (*attach)(E_Surface *surface, struct wl_buffer *buffer);
|
||||
void (*attach)(E_Surface *surface, E_Buffer *buffer);
|
||||
Eina_Bool (*output_create)(E_Output *output, unsigned int window);
|
||||
void (*output_destroy)(E_Output *output);
|
||||
Eina_Bool (*surface_create)(E_Surface *surface);
|
||||
|
|
|
@ -65,7 +65,7 @@ e_surface_new(struct wl_client *client, unsigned int id)
|
|||
}
|
||||
|
||||
EAPI void
|
||||
e_surface_attach(E_Surface *es, struct wl_buffer *buffer)
|
||||
e_surface_attach(E_Surface *es, E_Buffer *buffer)
|
||||
{
|
||||
/* check for valid surface */
|
||||
if (!es) return;
|
||||
|
@ -191,7 +191,7 @@ e_surface_damage_calculate(E_Surface *es, pixman_region32_t *opaque)
|
|||
if (es->buffer.reference.buffer)
|
||||
{
|
||||
/* if this is an shm buffer, flush any pending damage */
|
||||
if (wl_shm_buffer_get(&es->buffer.reference.buffer->resource))
|
||||
if (wl_shm_buffer_get(es->buffer.reference.buffer->wl.resource))
|
||||
{
|
||||
if (_e_comp->renderer->damage_flush)
|
||||
_e_comp->renderer->damage_flush(es);
|
||||
|
@ -300,13 +300,13 @@ static void
|
|||
_e_surface_cb_attach(struct wl_client *client EINA_UNUSED, struct wl_resource *resource, struct wl_resource *buffer_resource, int x, int y)
|
||||
{
|
||||
E_Surface *es;
|
||||
struct wl_buffer *buffer = NULL;
|
||||
E_Buffer *buffer = NULL;
|
||||
|
||||
/* try to cast the resource to our surface */
|
||||
if (!(es = wl_resource_get_user_data(resource))) return;
|
||||
|
||||
/* if we have a buffer resource, get a wl_buffer from it */
|
||||
if (buffer_resource) buffer = buffer_resource->data;
|
||||
if (buffer_resource) buffer = e_buffer_resource_get(buffer_resource);
|
||||
|
||||
/* if we have a previous pending buffer, remove it
|
||||
*
|
||||
|
@ -323,8 +323,7 @@ _e_surface_cb_attach(struct wl_client *client EINA_UNUSED, struct wl_resource *r
|
|||
|
||||
/* if we have a valid pending buffer, setup a destroy listener */
|
||||
if (buffer)
|
||||
wl_signal_add(&buffer->resource.destroy_signal,
|
||||
&es->pending.buffer_destroy);
|
||||
wl_signal_add(&buffer->signals.destroy, &es->pending.buffer_destroy);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -357,8 +356,8 @@ _e_surface_cb_commit(struct wl_client *client EINA_UNUSED, struct wl_resource *r
|
|||
/* if we have a referenced buffer, get it's size */
|
||||
if (es->buffer.reference.buffer)
|
||||
{
|
||||
bw = es->buffer.reference.buffer->width;
|
||||
bh = es->buffer.reference.buffer->height;
|
||||
bw = es->buffer.reference.buffer->w;
|
||||
bh = es->buffer.reference.buffer->h;
|
||||
}
|
||||
|
||||
/* if we attached a new buffer, call the surface configure function */
|
||||
|
|
|
@ -29,7 +29,7 @@ struct _E_Surface
|
|||
|
||||
struct
|
||||
{
|
||||
struct wl_buffer *buffer;
|
||||
E_Buffer *buffer;
|
||||
struct wl_listener buffer_destroy;
|
||||
struct wl_list frames;
|
||||
|
||||
|
@ -76,7 +76,7 @@ struct _E_Surface_Frame
|
|||
};
|
||||
|
||||
EAPI E_Surface *e_surface_new(struct wl_client *client, unsigned int id);
|
||||
EAPI void e_surface_attach(E_Surface *es, struct wl_buffer *buffer);
|
||||
EAPI void e_surface_attach(E_Surface *es, E_Buffer *buffer);
|
||||
EAPI void e_surface_unmap(E_Surface *es);
|
||||
EAPI void e_surface_damage(E_Surface *es);
|
||||
EAPI void e_surface_damage_below(E_Surface *es);
|
||||
|
|
Loading…
Reference in New Issue