4 * Copyright (c) 2012 Samsung Electronics Co., Ltd. All rights reserved.
7 * Vasily Ulyanov <v.ulyanov@samsung.com>
8 * Jinhyung Jo <jinhyung.jo@samsung.com>
9 * YeongKyoon Lee <yeongkyoon.lee@samsung.com>
11 * Permission is hereby granted, free of charge, to any person obtaining a copy
12 * of this software and associated documentation files (the "Software"), to deal
13 * in the Software without restriction, including without limitation the rights
14 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
15 * copies of the Software, and to permit persons to whom the Software is
16 * furnished to do so, subject to the following conditions:
18 * The above copyright notice and this permission notice shall be included in
19 * all copies or substantial portions of the Software.
21 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
22 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
24 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
25 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
26 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
34 #include "yagl_onscreen_image_gl_texture_2d.h"
35 #include "yagl_client_interface.h"
36 #include "yagl_client_image.h"
37 #include "yagl_egl_state.h"
38 #include "yagl_context.h"
39 #include "yagl_malloc.h"
41 static void yagl_onscreen_image_gl_texture_2d_update(struct yagl_image *image)
45 static void yagl_onscreen_image_gl_texture_2d_destroy(struct yagl_ref *ref)
47 struct yagl_onscreen_image_gl_texture_2d *image = (struct yagl_onscreen_image_gl_texture_2d *)ref;
49 yagl_image_cleanup(&image->base);
55 struct yagl_onscreen_image_gl_texture_2d
56 *yagl_onscreen_image_gl_texture_2d_create(struct yagl_display *dpy,
57 struct yagl_context *ctx,
58 yagl_object_name texture,
59 struct yagl_client_interface *iface)
61 struct yagl_client_image *client_image;
62 struct yagl_onscreen_image_gl_texture_2d *image;
64 image = yagl_malloc0(sizeof(*image));
66 client_image = iface->wrap_texture(iface,
71 yagl_set_error(EGL_BAD_PARAMETER);
75 yagl_image_init(&image->base,
76 &yagl_onscreen_image_gl_texture_2d_destroy,
81 yagl_client_image_release(client_image);
83 image->base.update = &yagl_onscreen_image_gl_texture_2d_update;