1 #ifndef _QEMU_YAGL_GLES_FRAMEBUFFER_H
2 #define _QEMU_YAGL_GLES_FRAMEBUFFER_H
4 #include "yagl_gles_types.h"
5 #include "yagl_object.h"
7 #define YAGL_NS_FRAMEBUFFER 2
9 struct yagl_gles_driver_ps;
10 struct yagl_gles_texture;
11 struct yagl_gles_renderbuffer;
13 struct yagl_gles_framebuffer_attachment_state
17 yagl_object_name local_name;
20 struct yagl_gles_framebuffer
22 struct yagl_object base;
24 struct yagl_gles_driver_ps *driver_ps;
26 yagl_object_name global_name;
30 struct yagl_gles_framebuffer_attachment_state attachment_states[YAGL_NUM_GLES_FRAMEBUFFER_ATTACHMENTS];
35 struct yagl_gles_framebuffer
36 *yagl_gles_framebuffer_create(struct yagl_gles_driver_ps *driver_ps);
39 * Passing NULL won't hurt, this is for convenience.
41 void yagl_gles_framebuffer_acquire(struct yagl_gles_framebuffer *fb);
44 * Passing NULL won't hurt, this is for convenience.
46 void yagl_gles_framebuffer_release(struct yagl_gles_framebuffer *fb);
48 bool yagl_gles_framebuffer_renderbuffer(struct yagl_gles_framebuffer *fb,
51 GLenum renderbuffer_target,
52 struct yagl_gles_renderbuffer *rb,
53 yagl_object_name rb_local_name);
55 bool yagl_gles_framebuffer_texture2d(struct yagl_gles_framebuffer *fb,
60 struct yagl_gles_texture *texture,
61 yagl_object_name texture_local_name);
63 bool yagl_gles_framebuffer_get_attachment_parameter(struct yagl_gles_framebuffer *fb,
68 void yagl_gles_framebuffer_set_bound(struct yagl_gles_framebuffer *fb);
70 bool yagl_gles_framebuffer_was_bound(struct yagl_gles_framebuffer *fb);