browser-window-ffi 0.4.1

FFI bindings for the browser-window crate.
Documentation
#include "../application.h"
#include "../common.h"

#include "impl.h"

#include <stdlib.h>



void bw_Application_free( bw_Application* app ) {

	bw_ApplicationEngineImpl_free( &app->engine_impl );
	bw_ApplicationImpl_free( &app->impl );
	free( app );
}

int bw_Application_run( bw_Application* app, bw_ApplicationReadyFn on_ready, void* user_data ) {
	bw_Application_assertCorrectThread( app );

	bw_ApplicationImpl_ReadyHandlerData ready_handler_data = {
		app,
		on_ready,
		user_data
	};

	return bw_ApplicationImpl_run( app, &ready_handler_data );
}

bw_Application* bw_Application_initialize( int argc, char** argv ) {

    bw_Application* app = (bw_Application*)malloc( sizeof( bw_Application ) );
    app->windows_alive = 0;

    app->engine_impl = bw_ApplicationEngineImpl_initialize( app, argc, argv );
	app->impl = bw_ApplicationImpl_initialize( app, argc, argv );

    return app;
}

bool bw_Application_dispatch( bw_Application* app, bw_ApplicationDispatchFn func, void* data ) {

    bw_ApplicationDispatchData* dispatch_data = (bw_ApplicationDispatchData*)malloc( sizeof(bw_ApplicationDispatchData) );
    dispatch_data->func = func;
    dispatch_data->data = data;

    return bw_ApplicationImpl_dispatch( app, dispatch_data );
}