set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${YAGL_OUT_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${YAGL_OUT_DIR}/lib)
-set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -D_REENTRANT -fPIC -DPIC -DMESA_EGL_NO_X11_HEADERS")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Werror -D_REENTRANT -fPIC -DPIC -DMESA_EGL_NO_X11_HEADERS")
foreach (CONFIGURATION RELEASE MINSIZEREL RELWITHDEBINFO)
string(REPLACE "-O3" "-O2" CMAKE_C_FLAGS_${CONFIGURATION} "${CMAKE_C_FLAGS_${CONFIGURATION}}")
endforeach ()
struct wl_drm_buffer
{
- struct wl_resource resource;
+ struct wl_resource *resource;
struct wl_drm *drm;
}
buffer->drm = drm;
+ buffer->resource = wl_resource_create(client, &wl_buffer_interface, 1, id);
- buffer->resource.object.id = id;
- buffer->resource.object.interface = &wl_buffer_interface;
- buffer->resource.object.implementation = (void(**)(void))&drm->buffer_interface;
- buffer->resource.data = buffer;
-
- buffer->resource.destroy = buffer_destroy;
- buffer->resource.client = resource->client;
+ if (!buffer->resource) {
+ wl_resource_post_no_memory(resource);
+ free(buffer);
+ return;
+ }
- wl_client_add_resource(resource->client, &buffer->resource);
+ wl_resource_set_implementation(buffer->resource,
+ (void(**)(void))&drm->buffer_interface,
+ buffer,
+ buffer_destroy);
}
static void drm_create_planar_buffer(struct wl_client *client,