mirror of
https://github.com/quelsolaar/MergeSource
synced 2025-02-01 09:58:42 -05:00
63 lines
2.3 KiB
C
63 lines
2.3 KiB
C
|
|
#include "betray_plugin_api.h"
|
|
#include "betray_plugin_pxc_wrapper.h"
|
|
#include "imagine.h"
|
|
#include <stdio.h>
|
|
#include <math.h>
|
|
|
|
//#define DRAW_IMAGE
|
|
FILE *output_file = NULL;
|
|
|
|
uint pxc_plugin_setting_ids[3];
|
|
float pxc_plugin_setting_values[3];
|
|
float pxc_plugin_vantage[3] = {0, 0, 2};
|
|
void *pxc_plugin_mutex = NULL;
|
|
void betray_view_vantage2(float *view);
|
|
|
|
extern void pxc_facial_tracking(float *view, float delta_time, float screen_size, float x_displace, float y_displace);
|
|
|
|
void pxc_plugin_vantage_func(float *pos)
|
|
{
|
|
imagine_mutex_lock(pxc_plugin_mutex);
|
|
pos[0] = pxc_plugin_vantage[0];
|
|
pos[1] = pxc_plugin_vantage[1];
|
|
pos[2] = pxc_plugin_vantage[2];
|
|
pxc_plugin_setting_values[0] = betray_settings_number_float_get(pxc_plugin_setting_ids[0]);
|
|
pxc_plugin_setting_values[1] = betray_settings_number_float_get(pxc_plugin_setting_ids[1]);
|
|
pxc_plugin_setting_values[2] = betray_settings_number_float_get(pxc_plugin_setting_ids[2]);
|
|
imagine_mutex_unlock(pxc_plugin_mutex);
|
|
}
|
|
|
|
void pxc_plugin_thread_func(void *data)
|
|
{
|
|
float vantage[3] = {0, 0, 2}, settings[3];
|
|
settings[0] = pxc_plugin_setting_values[0];
|
|
settings[1] = pxc_plugin_setting_values[1];
|
|
settings[2] = pxc_plugin_setting_values[2];
|
|
while(TRUE)
|
|
{
|
|
pxc_facial_tracking(vantage, 0.01, settings[0], settings[1], settings[2]);
|
|
imagine_mutex_lock(pxc_plugin_mutex);
|
|
pxc_plugin_vantage[0] = vantage[0];
|
|
pxc_plugin_vantage[1] = vantage[1];
|
|
pxc_plugin_vantage[2] = vantage[2];
|
|
settings[0] = pxc_plugin_setting_values[0];
|
|
settings[1] = pxc_plugin_setting_values[1];
|
|
settings[2] = pxc_plugin_setting_values[2];
|
|
imagine_mutex_unlock(pxc_plugin_mutex);
|
|
}
|
|
}
|
|
void betray_plugin_init(void)
|
|
{
|
|
uint status;
|
|
pxc_plugin_mutex = imagine_mutex_create();
|
|
betray_plugin_callback_set_view_vantage(pxc_plugin_vantage_func, FALSE);
|
|
pxc_plugin_setting_ids[0] = betray_settings_create(BETRAY_ST_NUMBER_FLOAT, "Screen Width MM", 0, NULL);
|
|
betray_settings_number_float_set(pxc_plugin_setting_ids[0], 240);
|
|
pxc_plugin_setting_ids[1] = betray_settings_create(BETRAY_ST_NUMBER_FLOAT, "Camera Offset X", 0, NULL);
|
|
betray_settings_number_float_set(pxc_plugin_setting_ids[1], 0);
|
|
pxc_plugin_setting_ids[2] = betray_settings_create(BETRAY_ST_NUMBER_FLOAT, "Camera Offset Y", 0, NULL);
|
|
betray_settings_number_float_set(pxc_plugin_setting_ids[2], 1);
|
|
imagine_thread(pxc_plugin_thread_func, NULL, "Betray PXC plugin");
|
|
}
|