Ejemplo n.º 1
0
static void
loop_set_after_draw_frame_func (SCM after_frame)
{
    SCM var = scm_lookup (after_frame);
    if (!scm_is_true (var) || !scm_is_true (scm_variable_p (var)))
    {
        g_critical ("invalid after frame func");
        return;
    }

    SCM ref = guile_variable_ref_safe (var);
    if (!scm_is_true (ref) || !scm_is_true (scm_procedure_p (ref)))
    {
        g_critical ("invalid after frame func");
        return;
    }

    do_after_draw_frame = ref;
}
Ejemplo n.º 2
0
static void
loop_set_game_update_func (SCM idle)
{
    SCM var = scm_lookup (idle);
    if (!scm_is_true (var) || !scm_is_true (scm_variable_p (var)))
    {
        g_critical ("invalid game update func");
        return;
    }
#if 0
    SCM ref = guile_variable_ref_safe (var);
    if (!scm_is_true (ref) || !scm_is_true (scm_procedure_p (ref)))
    {
        g_critical ("invalid game update func");
        return;
    }
#endif
    scm_remember_upto_here_1(var);
    do_idle = scm_variable_ref(scm_lookup(idle));
}
Ejemplo n.º 3
0
bool
xscm_is_variable(SCM x)
{
    return scm_is_true (scm_variable_p (x));
}